Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,201 views

Published on

OWASP Nagoya Chapter ミーティング 第4回 / ハンズオン資料
~WordPressの脆弱性スキャンを行い、セキュアなWordPressを構築しよう!~

OWASPが提供する「OWASP Wordpress Security Implementation Guideline(OWASP WordPress セキュリティ実装ガイドライン)」を参考にしてWordPressのセキュリティ対策について説明し、実際に実装してみます。

  • Be the first to comment

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

  1. 1. WPScanハンズオン 1 2018.04.07 (Sat) OWASP Nagoya
  2. 2. 自己紹介 丹羽 雪晴(にわ ゆきはる) • OWASP Nagoya Chapter Board Member • 株式会社 LAC ◆主な業務経歴 - セキュリティコンサルティング全般 - PF脆弱性診断 - WAF導入~運用構築 など よろしくおねがいします。 2
  3. 3. ● この資料は、「OWASP Nagoya Chapter ミーティング 第4 回〜セキュアなWordPressを構築しよう!〜」のハンズオ ンで使用する実行マニュアルです。 ● ハンズオン開始までに「WordPress環境構築マニュアル」 に基づいて、仮想環境の構築を行ってください。 ● ハンズオン最中に不明なことがあれば、気軽に手を挙げて ください。 はじめに 3
  4. 4. ● WPScanを用いた脆弱性診断を通して以下のことを学ぶ - WPScanってどんなことができるのか - 脆弱性診断の結果から、対処すべきことは何か - 脆弱性を包含しないためには、どうすればよいか ハンズオンの目的 4
  5. 5. ● 脆弱性診断は、インターネットに接続していないローカル 環境で行ってください。 特に、自身の管理サイト以外に対して、興味本位での脆弱 性検査は、絶対にしないでください。 注意事項 5
  6. 6. ● VirtualBoxの動作要件については次のURLを 参照ください。 ○ https://www.virtualbox.org/wiki/End-user_documentation ● ハンズオンで使用するハンズオンサーバの必要リソースは 次の通りです。 ○ メモリ :512MB以上(1024MB以上推奨) ○ ディスク :40GB以上 動作環境 6
  7. 7. ● WPScanとは ● WPScanの実行① 侵入を試行しない単純な脆弱性診断の実行 ● (参考)CVE, CVSS, CWE について ● WPScanの実行② プラグインに対する脆弱性診断の実行 ● WPScanの実行③ ブルートフォース攻撃の実行 ● まとめ 目次 7
  8. 8. WPScanとは 8
  9. 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. 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. 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. 12. WPScanの実行① 侵入を試行しない単純な脆弱性診断の実行 12
  13. 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. 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. 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. 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. 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. 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. 19. (参照元)https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5610 (参考)CVE, CVSS, CWE について 19
  20. 20. (参照元)https://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-001405.html (参考)CVE, CVSS, CWE について CWE CVE-ID CVSS v3 Base 20
  21. 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. 22. WPScanの実行① ◆検出された脆弱性の見方(検出脆弱性2:コンテンツ改ざん) 「Wordpress」,「 REST API」, 「4.7.1」,「脆弱性」をキーワードにWebで検索してみた結果 (参照元)https://www.ipa.go.jp/security/ciadr/vul/20170206-wordpress.html 22
  23. 23. WPScanの実行① ◆検出された脆弱性の見方(検出脆弱性2:コンテンツ改ざん) 「Wordpress」,「 REST API」, 「4.7.1」,「脆弱性」をキーワードにWebで検索してみた結果 (参照元)http://d.hatena.ne.jp/Kango/20170205/1486314605 23
  24. 24. WPScanの実行② プラグインに対する脆弱性診断の実行 24
  25. 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. 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. 27. WPScanの実行② ◆検出された脆弱性の見方(検出脆弱性:プラグイン「backwpup」) (参照元)https://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-008570.html 27
  28. 28. WPScanの実行③ ブルートフォース攻撃の実行 28
  29. 29. WPScanの実行③ ◆登録ユーザに対するブルートフォース攻撃の実行の前に ● ブルートフォース攻撃とは 暗号やパスワードの解読方法のひとつで、予め用意したよく使われる文言リスト 等の考えられる組み合わせを全て試行して、解析を試みる手法 (総当たり攻撃) 本来権限の持たない者が、情報システムへの内部侵入を行う行為(不正アクセス) となりますので、自身の管理サイト以外に対して、興味本位での脆弱性検査は、 絶対にしないでください。 29
  30. 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. 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. 32. WPScanの実行③ ◆WPScanで取得したユーザ名/パスワードでWordPressにログイン Hands-on 32
  33. 33. まとめ 33
  34. 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. 35. Thank you. Any Questions ? 35
  36. 36. 謝辞 36 本資料の作成に当たり多大なる支援をしてくださった方々に 感謝の意を表します。 (順不同) ・井上 茂 ・村井 剛 ・西村 将利 ・谷口 貴之 ・丹羽 雪晴 ・All OWASP Nagoya Staff ・坂梨 功典 ・加藤 人生 ・清水 健吾 ・浅田 竜起

×