先月、
イベントでWordpressのWebサイト改竄をするためにWPScanを使い、
その場で使い方をググりながらクラックできたのはいいのですが、
どういう仕組みでこうなるの?

ってなったので、
とりあえず食らう側作ってログでも見てみるか。
ということで
さっさと作る。


OS:WindowsServer2012R2
Webサーバ:IIS
Wordpress:WordPress 4.2.4

作り方は(検索すれば出てくるので)書かないけど
OSテンプレートとWeb Platform Installerを使って10分ぐらいで構築。
終わったら捨てる環境で
めんどくさいので更新はしない。

wpscan01



Wiresharkをインストールして、
IISのログ設定して

さっさとユーザスキャンを開始。
wpscan02


10秒ぐらいでユーザがバレる
wpscan03


IISログを見てみる。
リクエストをたくさん送ってるのはわかった。
ただ、めんどくさいので後回し
wpscan04


とりあえず
攻撃側のIPとhttpでフィルタして、
wpscan05


wp-userというユーザがバレたので、
その文字列がはいっているパケットを文字列検索。

ゲロってるところ発見。
wpscan06


ゲロっているパケットを
TCPストリームで開いて、
流れを見てみる。


wpscan07
wpscan08


GET /?author=1
のリクエストを送ると
ユーザ名が定義されているURLを案内してくれているっぽい

ちなみにこのページ
wpscan09


IISログを見てもauthor=1 ~ 10までリクエストを送ってる。
あとから調べるとWPscanのオプションでidどこからどこまでとか指定できるっぽい
wpscan10

author=3のTCPストリームを見てみたけど
ユーザー名は出てきていなかった。
他にもユーザを作成していたら出てきてたかも。



wordpressが自分でゲロっちゃってるので、
プラグインなどでの対策は必須なわけですね。



ちなみに
割れたユーザのパスワードクラック
wpscan11

21秒で割れているが、
これは自分のクラック用パスワードリストに100行目ぐらいに正解をいれているから。
wpscan12


IISログを見てみると
そりゃそうだとは思っていたけど
やっぱりログインページに力技でアタック
(前半、ちょっと違うことごにょごにょやってたけど)
wpscan13



Wordpressは
ユーザ名はバレるの前提で、
パスワードは攻撃者がリストに持っていない
長くてランダムな文字列を設定し、
何回かログイン失敗したら5分間ログインできなくするなどの
セキュリティプラグインや
多要素認証を入れないとやばいようですね