Wordpress
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
アップロードされたファイルは次の場所にあります: http://10.10.10.10/wp-content/uploads/2018/08/a.txt
テーマファイルは /wp-content/themes/ にあります。 そのため、RCEを取得するためにテーマのphpを変更する場合は、そのパスを使用することになります。例えば: テーマ twentytwelve を使用すると、次の場所にある 404.php ファイルに アクセス できます: /wp-content/themes/twentytwelve/404.php
別の便利なURLは次の通りです: /wp-content/themes/default/404.php
wp-config.php にはデータベースのルートパスワードが含まれています。
確認すべきデフォルトのログインパス: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
index.php
license.txt
にはインストールされたWordPressのバージョンなどの有用な情報が含まれています。
wp-activate.php
は新しいWordPressサイトを設定する際のメールアクティベーションプロセスに使用されます。
ログインフォルダ(隠すために名前が変更されることがあります):
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
は、HTTPを輸送メカニズム、XMLをエンコーディングメカニズムとしてデータを送信するWordPressの機能を表すファイルです。このタイプの通信は、WordPressのREST APIに置き換えられました。
wp-content
フォルダは、プラグインとテーマが保存される主なディレクトリです。
wp-content/uploads/
は、プラットフォームにアップロードされたファイルが保存されるディレクトリです。
wp-includes/
これは、証明書、フォント、JavaScriptファイル、ウィジェットなどのコアファイルが保存されるディレクトリです。
wp-sitemap.xml
WordPressバージョン5.5以降では、WordPressはすべての公開投稿と公開可能な投稿タイプおよびタクソノミーを含むサイトマップXMLファイルを生成します。
ポストエクスプロイト
wp-config.php
ファイルには、データベース名、データベースホスト、ユーザー名とパスワード、認証キーとソルト、データベーステーブルプレフィックスなど、WordPressがデータベースに接続するために必要な情報が含まれています。この設定ファイルは、トラブルシューティングに役立つDEBUGモードを有効にするためにも使用できます。
管理者
エディター: 自分と他の投稿を公開および管理
著者: 自分の投稿を公開および管理
寄稿者: 自分の投稿を書くことができるが、公開することはできない
購読者: 投稿をブラウズし、自分のプロフィールを編集
/license.txt
または /readme.html
ファイルが見つかるか確認します。
ページの ソースコード 内(https://wordpress.org/support/article/pages/ からの例):
grep
meta name
CSSリンクファイル
JavaScriptファイル
Trickestを使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築し、自動化します。 今すぐアクセスを取得:
すべてのプラグインとテーマを見つけることはできないでしょう。それらをすべて発見するためには、プラグインとテーマのリストをアクティブにブルートフォースする必要があります(幸いなことに、このリストを含む自動化ツールがあります)。
IDブルート: WordPressサイトからユーザーIDをブルートフォースすることで有効なユーザーを取得します:
もしレスポンスが 200 または 30X であれば、それは id が 有効 であることを意味します。レスポンスが 400 の場合、id は 無効 です。
wp-json: ユーザーに関する情報を取得するために、次のようにクエリを試すこともできます:
別の /wp-json/
エンドポイントで、ユーザーに関する情報を明らかにすることができるのは次の通りです:
このエンドポイントは、投稿を行ったユーザーのみを公開することに注意してください。この機能が有効なユーザーに関する情報のみが提供されます。
また、/wp-json/wp/v2/pages はIPアドレスを漏洩する可能性があることに注意してください。
ログインユーザー名の列挙: /wp-login.php
にログインすると、メッセージはユーザー名が存在するかどうかによって異なります。
xml-rpc.php
がアクティブな場合、資格情報のブルートフォース攻撃を実行するか、他のリソースに対してDoS攻撃を開始するために使用できます。(このプロセスを自動化するには、例えばこれを使用できます)。
アクティブかどうかを確認するには、/xmlrpc.php にアクセスして、このリクエストを送信してください:
チェック
クレデンシャルブルートフォース
wp.getUserBlogs
、wp.getCategories
または metaWeblog.getUsersBlogs
は、クレデンシャルをブルートフォースするために使用できるいくつかのメソッドです。これらのいずれかを見つけることができれば、次のようなものを送信できます:
メッセージ "不正なユーザー名またはパスワード" は、資格情報が無効な場合に200コードのレスポンス内に表示されるべきです。
正しい資格情報を使用すると、ファイルをアップロードできます。レスポンスにはパスが表示されます (https://gist.github.com/georgestephanis/5681982)
また、system.multicall
を使用して、同じリクエストで複数の資格情報を試すことで、資格情報をブルートフォースするより速い方法があります:
2FAのバイパス
この方法はプログラム向けであり、人間向けではなく、古いため、2FAをサポートしていません。したがって、有効な資格情報があるが、メインの入り口が2FAで保護されている場合、xmlrpc.phpを悪用してその資格情報で2FAをバイパスしてログインできる可能性があります。コンソールを通じて行えるすべてのアクションを実行することはできませんが、Ippsecがhttps://www.youtube.com/watch?v=p8mIdm93mfw&t=1130sで説明しているように、RCEに到達できる可能性があります。
DDoSまたはポートスキャン
リスト内にメソッド_pingback.ping_が見つかれば、Wordpressに任意のホスト/ポートにリクエストを送信させることができます。 これを使用して、数千のWordpress サイトに1つの場所にアクセスさせることができ(その場所でDDoSが発生します)、またはWordpressに内部ネットワークをスキャンさせることができます(任意のポートを指定できます)。
faultCodeの値が0(17)より大きい場合、それはポートが開いていることを意味します。
このメソッドを悪用してDDoSを引き起こす方法を学ぶには、前のセクションでの**system.multicall
**の使用を見てください。
DDoS
このファイルは通常、Wordpressサイトのルートに存在します: /wp-cron.php
このファイルがアクセスされると、 "重い" MySQL クエリが実行されるため、攻撃者によってDoSを引き起こすために使用される可能性があります。
また、デフォルトでは、wp-cron.php
はすべてのページロード時に呼び出されます(クライアントが任意のWordpressページをリクエストするたびに)、高トラフィックのサイトでは問題を引き起こす可能性があります(DoS)。
Wp-Cronを無効にし、ホスト内で必要なアクションを定期的に実行する実際のcronjobを作成することをお勧めします(問題を引き起こさずに)。
https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net にアクセスしてみてください。Worpressサイトがあなたにリクエストを送信するかもしれません。
動作しないときのレスポンスは次のとおりです:
このツールは、methodName: pingback.pingと**/wp-json/oembed/1.0/proxy**のパスが存在するかどうかをチェックし、存在する場合はそれを悪用しようとします。
実際の攻撃というよりは好奇心です。CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man では、任意のwordpressファイルの1ビットを反転させることができました。したがって、ファイル /var/www/html/wp-includes/user.php
の位置 5389
を反転させてNOT(!
)操作をNOPにすることができました。
使用しているテーマのphpを変更する(管理者の資格情報が必要)
外観 → テーマエディタ → 404テンプレート(右側)
phpシェルの内容に変更します:
インターネットでその更新されたページにアクセスする方法を検索します。この場合、ここにアクセスする必要があります: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
使用できます:
to get a session.
プラグインとして .php ファイルをアップロードすることが可能かもしれません。 例えば、次のようにして php バックドアを作成します:
次に、新しいプラグインを追加します:
プラグインをアップロードし、今すぐインストールを押します:
続行をクリックします:
おそらく、これでは何も起こらないように見えますが、メディアに移動すると、アップロードしたシェルが表示されます:
アクセスすると、リバースシェルを実行するための URL が表示されます:
この方法は、脆弱性が知られている悪意のあるプラグインのインストールを含み、ウェブシェルを取得するために悪用される可能性があります。このプロセスは、WordPress ダッシュボードを通じて次のように実行されます:
プラグインの取得: プラグインは、こちらのような Exploit DB などのソースから取得されます。
プラグインのインストール:
WordPress ダッシュボードに移動し、ダッシュボード > プラグイン > プラグインのアップロード
に進みます。
ダウンロードしたプラグインの zip ファイルをアップロードします。
プラグインの有効化: プラグインが正常にインストールされたら、ダッシュボードを通じて有効化する必要があります。
悪用:
"reflex-gallery" プラグインがインストールされ、有効化されている場合、脆弱性が知られているため悪用できます。
Metasploit フレームワークは、この脆弱性に対するエクスプロイトを提供します。適切なモジュールを読み込み、特定のコマンドを実行することで、メーターpreter セッションを確立し、サイトへの不正アクセスを許可します。
これは、WordPress サイトを悪用するための多くの方法のうちの一つに過ぎないことに注意してください。
コンテンツには、プラグインのインストールと有効化の手順を示す視覚的な補助が含まれています。ただし、この方法で脆弱性を悪用することは、適切な承認なしに違法かつ非倫理的であることに注意が必要です。この情報は、責任を持って使用し、明示的な許可を伴うペネトレーションテストなどの法的な文脈でのみ使用されるべきです。
詳細な手順については、次を確認してください: https://www.hackingarticles.in/wordpress-reverse-shell/
権限昇格: WordPress にユーザーを作成します。
(RCE) カスタムプラグイン (バックドア) アップロード: カスタムプラグイン (バックドア) を WordPress にアップロードします。
(RCE) ビルトインプラグインの編集: WordPress のビルトインプラグインを編集します。
(RCE) ビルトインテーマの編集: WordPress のビルトインテーマを編集します。
(カスタム) カスタムエクスプロイト: サードパーティの WordPress プラグイン/テーマ用のカスタムエクスプロイト。
ユーザー名とパスワードを抽出します:
管理者パスワードを変更します:
Wordpressプラグインがどのように機能を公開するかを知ることは、その機能の脆弱性を見つけるための鍵です。プラグインがどのように機能を公開するかは、以下の箇条書きとこのブログ記事の脆弱なプラグインの例で確認できます。
wp_ajax
プラグインが機能をユーザーに公開する方法の一つは、AJAXハンドラーを介することです。これらには、ロジック、認可、または認証のバグが含まれている可能性があります。さらに、これらの関数は、Wordpressインスタンスに認証された任意のユーザーが持っている可能性のあるWordpress nonceの存在に基づいて、認証と認可の両方を行うことがよくあります(役割に関係なく)。
これらは、プラグイン内で機能を公開するために使用できる関数です:
nopriv
の使用により、エンドポイントはすべてのユーザー(認証されていないユーザーも含む)がアクセス可能になります。
さらに、関数がwp_verify_nonce
関数を使用してユーザーの認証を確認しているだけの場合、この関数はユーザーがログインしているかどうかを確認しているだけで、通常はユーザーの役割を確認していません。したがって、権限の低いユーザーが権限の高いアクションにアクセスできる可能性があります。
REST API
register_rest_route
関数を使用して、wordpressから関数を公開することも可能です:
permission_callback
は、特定のユーザーがAPIメソッドを呼び出す権限があるかどうかを確認するためのコールバック関数です。
組み込みの __return_true
関数が使用されている場合、ユーザー権限のチェックは単にスキップされます。
phpファイルへの直接アクセス
もちろん、WordPressはPHPを使用しており、プラグイン内のファイルはウェブから直接アクセス可能です。したがって、プラグインがファイルにアクセスするだけでトリガーされる脆弱な機能を公開している場合、どのユーザーでも悪用可能です。
WordPress、プラグイン、およびテーマが最新であることを確認してください。また、wp-config.phpで自動更新が有効になっていることを確認してください:
また、信頼できるWordPressプラグインとテーマのみをインストールしてください。
デフォルトのadminユーザーを削除する
強力なパスワードと2FAを使用する
定期的にユーザーの権限をレビューする
ブルートフォース攻撃を防ぐためにログイン試行回数を制限する
**wp-admin.php
**ファイルの名前を変更し、内部または特定のIPアドレスからのみアクセスを許可する。
Trickestを使用して、世界で最も先進的なコミュニティツールによって駆動されるワークフローを簡単に構築し、自動化してください。 今すぐアクセスを取得:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)