Shikata Ga Nai

Private? There is no such things.

Privilege Escalation - Hello Adminを訳してみた

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:

 

f:id:ThisIsOne:20220107161713p:plain

 

この脆弱性を見つける方法:

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 : ユーザを列挙して

 

f:id:ThisIsOne:20220107161648p:plain

 

スキャンが完了すると、古くて脆弱なものの結果が得られて。

 

3.結果、「WP Support Plus Responsive Ticket System」に対して脆弱で。

 

f:id:ThisIsOne:20220107161617p:plain

 

4.他に見つけたことは、デフォルトのユーザ名で。

f:id:ThisIsOne:20220107161553p:plain

 

5.googleで脆弱性を検索すると。

 https://www.exploit-db.com/で、エクスプロイトを見つけて。

 

f:id:ThisIsOne:20220107161517p:plain

 

 https://www.exploit-db.com/exploits/41006

f:id:ThisIsOne:20220107181851p:plain

 

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.

 

f:id:ThisIsOne:20220107181945p:plain

 

これを.htmlとして保存し、スクリプトを実行したものの。

その前に、これを悪用するには電子メールが必要であることがわかったので。

「theharvester」ツールで、サイトを列挙して。

4通のメールのうち1通はエクスプロイトを成功させるのに役立って。

 https://github.com/laramies/theHarvester

 

f:id:ThisIsOne:20220107163110p:plain

 

7.ポート80を介してファイルを転送するためのPythonスクリプトを実行すると。

 Python -m SimpleHTTPServer 80

 

f:id:ThisIsOne:20220107161439p:plain


8.htmlとして保存したエクスプロイトを実行すると。

 管理者へのログインに成功して。

 

f:id:ThisIsOne:20220107161414p:plain

 

9.パスワードを知らなくても管理者としてログインして。

 これは、wp_set_auth_cookie()の誤った使用が原因で発生して。

f:id:ThisIsOne:20220107161249p:plain

 

Best regards, (^^ゞ