WPScanとバージョン検出の網羅性

よく「Wordpress セキュリティ対策」でググると攻撃者に余計な情報を与えないという意味で「バージョン情報を非表示にする」と書いてある記事がちらほらあるのですが、Wordpressで構築されたサイト内にバージョン情報を消しきれてないケースがあることに気づきました。

よくある記事で紹介されているのは下記の2パターンがメイン。

  1. 各ページのMETAタグにバージョン情報が表示されているケース
  2. jsやcssなどのassetsファイルにバージョン情報がパラメータとして付与されているケース

atomやrdfなどのfeedに記載されていることもあったり、古いWordpressだとreadme.htmlに大きく記載されていることもある。
なので、バージョン情報が記載されている箇所をある程度網羅する必要がある。

そこで利用するのがWPScan

WPScanは、ブラックボックス型のWordpressの脆弱性スキャナで、自身で構築したWordpressの検査に時々利用している。

gemでインストールできるのだが、Docker Imageもあるので、普段はこちらを利用しています。

https://hub.docker.com/r/wpscanteam/wpscan/

通常の利用方法でもバージョン情報を検出は可能なのだが、検出できた時点で探索をやめてしまうので、網羅的に探すことができない。

$ docker run -it --rm wpscanteam/wpscan --url https://target.tld/

と困っていたところ、 --wp-version-all というオプションがあることを教えてもらった。これでバージョン情報が表示されている場所をある程度網羅ができそう。

$ docker run -it --rm wpscanteam/wpscan --url https://target.tld/ --wp-version-all

マニュアルに載っていないなと思ったら --hh オプションのマニュアルにちゃんと書いてあった^^;

ここまでやっておいてなんだけど、バージョンを非表示にすることよりもちゃんと最新版にアップデートしていくほうに時間を使いたい。