前置き
関わったことのないWPシステムのログ調査を依頼されたのですが、
アクセスログが攻撃の無法地帯で、どこから手を付けてよいものか。。と悩んだ末、
まずはログインに成功したか否かの観点で調査を進めることにしました。
ログイン成功のログを調査
どうやらログインに成功すると「302」失敗すると「200」のHttpStatusになるようなので、その線でgrepする。
cat ssl_access.log* | grep "POST /wp-login.php HTTP/...\" 302
結果は伏せますが、13個ほどのIPのアクセスが、ログイン成功していました。
該当IPのログを調査
cat ssl_access.log* | grep 111.222.333.44
上記の結果、
- 大量のログイン失敗後に成功している(総当たり攻撃が成功している)
- ログイン後に怪しげな攻撃アクセスを行っている
といったログがあればアウト。
また、下記のようなアクセスは、正常ログイン時にも記録されるものなので無視でOKです。
ログイン直後
"GET /wp-admin/ HTTP/2.0" 200
"GET /wp-admin/load-scripts.php?c=1&lo......
"GET /wp-admin/load-styles.php?c=1&dir=ltr&load%5Bchu.......
"GET /wp-admin/admin-ajax.php?action=dashboard-widgets&widge.........
ダッシュボード等の画面表示中
"POST /wp-cron.php?doing_wp_cron=1594281453.2171.........
"POST /wp-admin/admin-ajax.php HTTP/2.0" 200
あとがき
ログイン成功時にwp-settings-time
という文字がログに追記されるという記事もあったのですが、どうやら設定で省略されてしまった様子でした。
参考にさせていただきました。
https://www.orange-ss.com/column/0108.html
https://www.kdl.co.jp/special/img/otaku/whpaper_20161101.pdf