WPSCanによるWordPressの脆弱性スキャン

OWASP Nagoya
Apr. 30, 2018
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
WPSCanによるWordPressの脆弱性スキャン
1 of 36

More Related Content

Slideshows for you

Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならShohei Okada
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門VirtualTech Japan Inc.
Docker活用パターンの整理 ― どう組み合わせるのが正解?!Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!Etsuji Nakai
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpYahoo!デベロッパーネットワーク
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平

Slideshows for you(20)

Similar to WPSCanによるWordPressの脆弱性スキャン

OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)OWASP Nagoya
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
DebianとWordPressでハッピーになろう!DebianとWordPressでハッピーになろう!
DebianとWordPressでハッピーになろう!Jun Nogata
簡単!自動バックアップ設定でWordPressを安心運用簡単!自動バックアップ設定でWordPressを安心運用
簡単!自動バックアップ設定でWordPressを安心運用Hidekazu Ishikawa
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介Midori Oge

Similar to WPSCanによるWordPressの脆弱性スキャン(20)

More from OWASP Nagoya

OWASP TOP10 A01:2021 – アクセス制御の不備OWASP TOP10 A01:2021 – アクセス制御の不備
OWASP TOP10 A01:2021 – アクセス制御の不備OWASP Nagoya
(A7)cross site scripting(A7)cross site scripting
(A7)cross site scriptingOWASP Nagoya
#24 prepare for_hands-on#24 prepare for_hands-on
#24 prepare for_hands-onOWASP Nagoya
(A2)broken authentication(A2)broken authentication
(A2)broken authenticationOWASP Nagoya
Developer toolsDeveloper tools
Developer toolsOWASP Nagoya
#23 prepare for_hands-on#23 prepare for_hands-on
#23 prepare for_hands-onOWASP Nagoya

WPSCanによるWordPressの脆弱性スキャン

  1. WPScanハンズオン 1 2018.04.07 (Sat) OWASP Nagoya

  2. 自己紹介 丹羽 雪晴(にわ ゆきはる) • OWASP Nagoya Chapter Board Member • 株式会社 LAC ◆主な業務経歴 - セキュリティコンサルティング全般 - PF脆弱性診断 - WAF導入~運用構築 など よろしくおねがいします。 2

  3. ● この資料は、「OWASP Nagoya Chapter ミーティング 第4 回〜セキュアなWordPressを構築しよう!〜」のハンズオ ンで使用する実行マニュアルです。 ● ハンズオン開始までに「WordPress環境構築マニュアル」 に基づいて、仮想環境の構築を行ってください。 ● ハンズオン最中に不明なことがあれば、気軽に手を挙げて ください。 はじめに 3

  4. ● WPScanを用いた脆弱性診断を通して以下のことを学ぶ - WPScanってどんなことができるのか - 脆弱性診断の結果から、対処すべきことは何か - 脆弱性を包含しないためには、どうすればよいか ハンズオンの目的 4

  5. ● 脆弱性診断は、インターネットに接続していないローカル 環境で行ってください。 特に、自身の管理サイト以外に対して、興味本位での脆弱 性検査は、絶対にしないでください。 注意事項 5

  6. ● VirtualBoxの動作要件については次のURLを 参照ください。 ○ https://www.virtualbox.org/wiki/End-user_documentation ● ハンズオンで使用するハンズオンサーバの必要リソースは 次の通りです。 ○ メモリ :512MB以上(1024MB以上推奨) ○ ディスク :40GB以上 動作環境 6

  7. ● WPScanとは ● WPScanの実行① 侵入を試行しない単純な脆弱性診断の実行 ● (参考)CVE, CVSS, CWE について ● WPScanの実行② プラグインに対する脆弱性診断の実行 ● WPScanの実行③ ブルートフォース攻撃の実行 ● まとめ 目次 7

  8. WPScanとは 8

  9. WPScanとは ・ WPScanはRubyで動作するWordPressの脆弱性診断ツールです。 ・ 自身のシステムに対する脆弱性診断など、非商用の使用では無料で使用できます。 ・ Linux OSやmacOSで動作しており、Windowsはサポートされていません。 <前提条件> - Ruby> = 2.1.9 - 推奨:2.5.0 - Curl> = 7.21 - 推奨:最新 - RubyGems - 推奨:最新 - Git ・ 公式サイト:https://wpscan.org/ 9

  10. WPScanとは ・ WPScanはコマンドラインから起動します。 コマンドライン オプション(WPScanでできること抜粋) --url | -u <target url> 脆弱性診断対象のWebサイトのURLを指定します。 --force | -f WordPressの稼働チェックせずにWPScanを実行します。 --enumerate | -e [option(s)] オプション u id 1 から 10 までの username を列挙します u[10-20] id 10 から 20 までの username を列挙します( [] が必要です ) p プラグインを列挙します vp 脆弱性のあるプラグインだけを列挙します t テーマを列挙します vt 脆弱性のあるテーマだけを列挙します --username | -U <username> 指定されたusernameでブルートフォース攻撃をします。 --log [filename] 標準出力を指定したfilenameに出力します。 --update WPScanのデータベースを更新します。 10

  11. WPScanとは WPScanの実行は、WPScanをインストールしたディレクトリで動作します。 本ハンズオンサーバでは”/home/owaspnagoya/wpscan”となりますので、 当該ディレクトリに移動後、WPScanによる脆弱性診断を実行します。 $ cd /home/owaspnagoya/wpscan $ ls CHANGELOG.md Gemfile.lock cache example.conf.json wpscan.rb DISCLAIMER.txt LICENSE data lib Dockerfile README.md data.zip spec Gemfile bin dev stop_user_enumeration_bypass.rb (補足)ハンズオンサーバのWordPressは、”/var/www/html/wordpress471/”で動作しています。 Webブラウザでの接続は、”http://192.168.100.100/wordpress471"です。 WPScanの実行ファイル Hands-on 11

  12. WPScanの実行① 侵入を試行しない単純な脆弱性診断の実行 12

  13. WPScanの実行① ◆侵入を試行しない単純な脆弱性診断の実行(1/3) $ ./wpscan.rb -u "192.168.100.100/wordpress471" _______________________________________________________________ __ _______ _____ ¥ ¥ / / __ ¥ / ____| ¥ ¥ /¥ / /| |__) | (___ ___ __ _ _ __ R ¥ ¥/ ¥/ / | ___/ ¥___ ¥ / __|/ _` | '_ ¥ ¥ /¥ / | | ____) | (__| (_| | | | | ¥/ ¥/ |_| |_____/ ¥___|¥__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 2.9.4-dev Sponsored by Sucuri - https://sucuri.net @_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_ _______________________________________________________________ [i] It seems like you have not updated the database for some time. [?] Do you want to update now? [Y]es [N]o [A]bort, default: [N] N [+] URL: http://192.168.100.100/wordpress471/ [+] Started: Wed Mar 7 01:32:23 2018 ホストオンリー環境のため、”N”を入力 WPScan実行開始(以降は、WPScanの実行結果です。) Hands-on 13

  14. WPScanの実行① [+] Interesting header: LINK: <http://192.168.100.100/wordpress471/index.php/wp-json/>; rel="https://api.w.org/" [+] Interesting header: SERVER: Apache/2.4.6 (CentOS) PHP/5.4.16 [+] Interesting header: X-POWERED-BY: PHP/5.4.16 [+] XML-RPC Interface available under: http://192.168.100.100/wordpress471/xmlrpc.php [!] Includes directory has directory listing enabled: http://192.168.100.100/wordpress471/wp-includes/ [+] WordPress version 4.7.1 (Released on 2017-01-11) identified from meta generator, links opml [!] 31 vulnerabilities identified from the version number [!] Title: WordPress 4.2.0-4.7.1 - Press This UI Available to Unauthorised Users Reference: https://wpvulndb.com/vulnerabilities/8729 Reference: https://wordpress.org/news/2017/01/wordpress-4-7-2-security-release/ Reference: https://github.com/WordPress/WordPress/commit/21264a31e0849e6ff793a06a17de877dd88ea454 Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5610 [i] Fixed in: 4.7.2 ~~中略~~ [+] Finished: Wed Mar 7 01:32:34 2018 [+] Requests Done: 351 [+] Memory used: 28.02 MB [+] Elapsed time: 00:00:11 WPScanの実行が終了 ◆侵入を試行しない単純な脆弱性診断の実行(2/3) Hands-on 14

  15. WPScanの実行① [+] WordPress version 4.7.1 (Released on 2017-01-11) identified from links opml [!] 31 vulnerabilities identified from the version number [!] Title: WordPress 4.2.0-4.7.1 - Press This UI Available to Unauthorised Users Reference: https://wpvulndb.com/vulnerabilities/8729 Reference: https://wordpress.org/news/2017/01/wordpress-4-7-2-security-release/ Reference: https://github.com/WordPress/WordPress/commit/21264a31e0849e6ff793a06a17de877dd88ea454 Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5610 [i] Fixed in: 4.7.2 [!] Title: WordPress 3.5-4.7.1 - WP_Query SQL Injection Reference: https://wpvulndb.com/vulnerabilities/8730 Reference: https://wordpress.org/news/2017/01/wordpress-4-7-2-security-release/ Reference: https://github.com/WordPress/WordPress/commit/85384297a60900004e27e417eac56d24267054cb Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5611 [i] Fixed in: 4.7.2 ← Tille:脆弱性の概要 ← Fixed:脆弱性解消バージョン ← Reference:脆弱性の参照先 ← WordPressのバージョ ンと検出された脆弱性数 検出された脆弱性1つの解説(赤枠内) ◆侵入を試行しない単純な脆弱性診断の実行(3/3) Hands-on 15

  16. WPScanの実行① [!] Title: WordPress 3.5-4.7.1 - WP_Query SQL Injection Reference: https://wpvulndb.com/vulnerabilities/8730 Reference: https://wordpress.org/news/2017/01/wordpress-4-7-2-security-release/ Reference: https://github.com/WordPress/WordPress/commit/85384297a60900004e27e417eac56d24267054cb Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5611 [i] Fixed in: 4.7.2 ◆検出された脆弱性の見方(検出脆弱性1:SQL Injection) Referenceに記載されている サイト(WPScanの脆弱性DB) 参照結果 16

  17. WPScanの実行① [!] Title: WordPress 3.5-4.7.1 - WP_Query SQL Injection Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5611 ReferenceにあるCVE-IDから検索 ◆検出された脆弱性の見方(検出脆弱性1:SQL Injection) 17

  18. (参考)CVE, CVSS, CWE について 用語 意味 例 CVE (Common Vulnerabilities and Exposures) 【共通脆弱性識別子】 ・ソフトウェアの脆弱性を対象として、米国非営利団体のMITRE社が採番 している脆弱性識別子のことです。 ・CVE識別番号(CVE-ID)は、CVE-西暦-連番にて構成されています。 CVE-2017-5611 CVSS (Common Vulnerability Scoring System) 【共通脆弱性評価システム】 ・脆弱性の深刻度を評価するために、米国非営利団体のFIRSTが適用推進 や仕様改善を行う評価手法のことです。 ・当該手法により算出された深刻度により、脆弱性の深刻度を同一の基準 の下で定量的に比較することが可能です。 ・脆弱性の深刻度は、0(低)~10.0(高)となっています。 CVSS v3 Base: 9.8(緊急) CWE (Common Weakness Enumeration) 【共通脆弱性タイプ一覧】 ・脆弱性の種類を識別するために、米国非営利団体のMITREが中心となり 仕様策定した共通の脆弱性タイプの一覧です。 ・CWE識別子(CWE-ID)を付与して、脆弱性の原因や対策等の情報に紐 づいた階層構造となっています。 CWE-79:XSS CWE-89: SQLインジェクション (参照元) ・ IPA 共通脆弱性識別子CVE概説 :https://www.ipa.go.jp/security/vuln/CVE.html ・ IPA 共通脆弱性評価システムCVSS概説:https://www.ipa.go.jp/security/vuln/CVSS.html ・ IPA 共通脆弱性タイプ一覧CWE概説 :https://www.ipa.go.jp/security/vuln/CWE.html 脆弱性にはそれぞれCVE, CWE, CVSSが付与されます。それらの概要を以下に記載します。 18

  19. (参照元)https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5610 (参考)CVE, CVSS, CWE について 19

  20. (参照元)https://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-001405.html (参考)CVE, CVSS, CWE について CWE CVE-ID CVSS v3 Base 20

  21. WPScanの実行① つづき [!] Title: WordPress 4.7.0-4.7.1 - Unauthenticated Page/Post Content Modification via REST API Reference: https://wpvulndb.com/vulnerabilities/8734 Reference: https://blog.sucuri.net/2017/02/content-injection-vulnerability-wordpress-rest-api.html Reference: https://gist.github.com/leonjza/2244eb15510a0687ed93160c623762ab Reference: https://github.com/WordPress/WordPress/commit/e357195ce303017d517aff944644a7a1232926f7 [i] Fixed in: 4.7.2 ◆検出された脆弱性の見方(検出脆弱性2:コンテンツ改ざん) Referenceに記載されている サイト(WPScanの脆弱性DB) 参照結果 21

  22. WPScanの実行① ◆検出された脆弱性の見方(検出脆弱性2:コンテンツ改ざん) 「Wordpress」,「 REST API」, 「4.7.1」,「脆弱性」をキーワードにWebで検索してみた結果 (参照元)https://www.ipa.go.jp/security/ciadr/vul/20170206-wordpress.html 22

  23. WPScanの実行① ◆検出された脆弱性の見方(検出脆弱性2:コンテンツ改ざん) 「Wordpress」,「 REST API」, 「4.7.1」,「脆弱性」をキーワードにWebで検索してみた結果 (参照元)http://d.hatena.ne.jp/Kango/20170205/1486314605 23

  24. WPScanの実行② プラグインに対する脆弱性診断の実行 24

  25. WPScanの実行② ◆プラグインに対する脆弱性診断の実行(1/2) [owaspnagoya@www wpscan]$ ./wpscan.rb -u "192.168.100.100/wordpress471" -e vp _______________________________________________________________ __ _______ _____ ¥ ¥ / / __ ¥ / ____| ¥ ¥ /¥ / /| |__) | (___ ___ __ _ _ __ R ¥ ¥/ ¥/ / | ___/ ¥___ ¥ / __|/ _` | '_ ¥ ¥ /¥ / | | ____) | (__| (_| | | | | ¥/ ¥/ |_| |_____/ ¥___|¥__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 2.9.4-dev Sponsored by Sucuri - https://sucuri.net @_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_ _______________________________________________________________ [i] It seems like you have not updated the database for some time. [?] Do you want to update now? [Y]es [N]o [A]bort, default: [N] N [+] URL: http://192.168.100.100/wordpress471/ [+] Started: Wed Mar 7 02:10:28 2018 WPScan実行開始(以降は、WPScanの実行結果です。) Hands-on 25

  26. WPScanの実行② ◆プラグインに対する脆弱性診断の実行(2/2) [+] Enumerating installed plugins (only ones with known vulnerabilities) ... Time: 00:00:02 <===========================================> (1623 / 1623) 100.00% Time: 00:00:02 [+] We found 1 plugins: [+] Name: backwpup - v3.4.1 | Last updated: 2018-01-08T12:29:00.000Z | Location: http://localhost/wordpress/wp-content/plugins/backwpup/ | Readme: http://localhost/wordpress/wp-content/plugins/backwpup/readme.txt [!] The version is out of date, the latest version is 3.4.4 [!] Directory listing is enabled: http://localhost/wordpress/wp-content/plugins/backwpup/ [!] Title: BackWPup <= 3.4.1 - Backup File Download Reference: https://wpvulndb.com/vulnerabilities/8919 Reference: http://www.vapidlabs.com/advisory.php?v=201 Reference: https://plugins.trac.wordpress.org/changeset/1737123/backwpup Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2551 [i] Fixed in: 3.4.2 [+] Finished: Wed Mar 7 02:10:38 2018 ← Tille:脆弱性の概要 ← 検出した脆弱性のある プラグインの概要 ← Fixed:脆弱性解消バージョン ← Reference:脆弱性の参照先 Hands-on 26

  27. WPScanの実行② ◆検出された脆弱性の見方(検出脆弱性:プラグイン「backwpup」) (参照元)https://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-008570.html 27

  28. WPScanの実行③ ブルートフォース攻撃の実行 28

  29. WPScanの実行③ ◆登録ユーザに対するブルートフォース攻撃の実行の前に ● ブルートフォース攻撃とは 暗号やパスワードの解読方法のひとつで、予め用意したよく使われる文言リスト 等の考えられる組み合わせを全て試行して、解析を試みる手法 (総当たり攻撃) 本来権限の持たない者が、情報システムへの内部侵入を行う行為(不正アクセス) となりますので、自身の管理サイト以外に対して、興味本位での脆弱性検査は、 絶対にしないでください。 29

  30. WPScanの実行③ ◆登録ユーザに対するブルートフォース攻撃の実行(1/2) [owaspnagoya@www wpscan]$ ./wpscan.rb -u "192.168.100.100/wordpress471" -w pass.txt -U admin _______________________________________________________________ __ _______ _____ ¥ ¥ / / __ ¥ / ____| ¥ ¥ /¥ / /| |__) | (___ ___ __ _ _ __ R ¥ ¥/ ¥/ / | ___/ ¥___ ¥ / __|/ _` | '_ ¥ ¥ /¥ / | | ____) | (__| (_| | | | | ¥/ ¥/ |_| |_____/ ¥___|¥__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 2.9.4-dev Sponsored by Sucuri - https://sucuri.net @_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_ _______________________________________________________________ [i] It seems like you have not updated the database for some time. [?] Do you want to update now? [Y]es [N]o [A]bort, default: [N] N [+] URL: http://192.168.100.100/wordpress471/ [+] Started: Fri Mar 9 01:25:54 2018 WPScan実行開始(以降は、WPScanの実行結果です。) Hands-on 30

  31. WPScanの実行③ ◆Wordpressの登録ユーザに対するブルートフォース攻撃の実行(2/2) [+] Starting the password brute forcer [+] [SUCCESS] Login : admin Password : password Brute Forcing 'admin' Time: 00:00:03 <==== > (1 / 7) 14.28% ETA: 00:00:23 +----+-------+------+----------+ | Id | Login | Name | Password | +----+-------+------+----------+ | | admin | | password | +----+-------+------+----------+ [+] Finished: Fri Mar 9 01:26:05 2018 Login:admin、Password:password であることが判明 Hands-on 31

  32. WPScanの実行③ ◆WPScanで取得したユーザ名/パスワードでWordPressにログイン Hands-on 32

  33. まとめ 33

  34. まとめ ● コアやプラグイン、テーマの脆弱性を検出できる。 → 定期的に自身の管理サイトの脆弱性有無確認に活用 ※参考ガイド:OWASP Wordpress Security Implementation Guideline - 4.1, 4.2, 4.3, 4.6 ● WordPressの登録ユーザ名の取得、任意の登録ユーザに対 してのブルートフォース攻撃を実行できる。 → 推測が容易なユーザ名/パスワード、不要ユーザは危険 ※参考ガイド:OWASP Wordpress Security Implementation Guideline - 4.6, 4.7, 4.8, 4.9, 4.10 ● 自身の管理サイト以外に対して、興味本位での脆弱性検査 は、絶対にしないでください。 (参考)OWASP Wordpress Security Implementation Guideline https://www.owasp.org/index.php/OWASP_Wordpress_Security_Implementation_Guideline 34

  35. Thank you. Any Questions ? 35

  36. 謝辞 36 本資料の作成に当たり多大なる支援をしてくださった方々に 感謝の意を表します。 (順不同) ・井上 茂 ・村井 剛 ・西村 将利 ・谷口 貴之 ・丹羽 雪晴 ・All OWASP Nagoya Staff ・坂梨 功典 ・加藤 人生 ・清水 健吾 ・浅田 竜起