Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 36 Ad

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

Download to read offline

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

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

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

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

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

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

Advertisement
Advertisement

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 ・坂梨 功典 ・加藤 人生 ・清水 健吾 ・浅田 竜起

×