【実録】 WPサイトがパスワードクラックされて記事にスパムっぽい文字列を書き込まれた

う、うちのサイトじゃないですよ

発覚

ある日、管理しているWPサイトの記事をみると、本文の最後に以下のようなテキストが追加されていると連絡があった。


<div id="a bold attempt is half success" style="left: -13128px; position: absolute; top: -4096px;">
<h1><strong>Discount Jerseys</strong></h1>
  The condition of the gutters is a factor. so it helps if they know you are coming for a reserved car, black and orange.3 shot attempts/hour Justin Schultz: 2. SETH AND THE CITY What to eat and drink in Portland, called controls the renewal of taste cells by regulating separate <a href="http://www.michaelkorsoutlet2013.com/">Michael Kors Outlet</a> stages of taste cell turnover.<br>   and so on. says Levine.development of an electric 4x4 Range Rover that was estimated to <a href="http://www.cheapjordan13.com/">cheap retro air jordan</a> cost $261 Also. in Georgia prompted police departments there to extend similar invitations to online shoppers. The jersey is blue and gray instead of black and white. That causes some issues. and what's called for is not a reversal but a step back from extremes GOP lawmakers are taking another run at the issue.Gerry s Tochter Gerilyn Sports Hall of Fame It can <a href="http://cheapjerseysupply.com/">cheap jerseys</a> draw as many as 150.
</div>

top:-4096px がにくいね、三菱!(三菱は関係ない)

たまたまそのサイトでは記事本文は利用していなかったので大きな実害はなかったのだけど、まぁ、気持ち悪い。

git diff しても何も出てこない。

どこかシステムに変なファイルを埋め込まれているのかもと思い、wordpressのシステムまるごとバックアップとっていたので、
そっちもdiffしてみたが、怪しい差分は見当たらない。

sqlインジェクションは一応対策しているはずだけど、漏れがあるかも?
でも、sqlインジェクションされてたらこんな可愛らしいイタズラじゃすまない気がしてた。

ま、まぁ、sqlインジェクションでも、毎日バックアップとってるから平気だけどね!!(涙目)

それはともかく、sqlインジェクションを調べるのは疲れるので、まずは、パスワードクラックを疑って、アクセスログを見た。

cat /var/log/nginx/access.log | grep login

パスワードクラックなら、ログイン画面へ大量アクセスがあるんじゃ・・とコマンドを叩くとビンゴだった…


1.82.207.71 - - [15/Nov/2016:03:06:45 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106671%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:46 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106670%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:47 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106669%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:49 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106668%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:50 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106667%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:51 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106666%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:52 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106665%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:52 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106664%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:53 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106663%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:54 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106662%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:55 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106661%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:03:06:56 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D106660%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
...(略)...

前日の夜から、同じipからログイン画面に4000回くらいアクセスしているのがわかった。

今度はこのipで調べてみると、

cat /var/log/nginx/access.log | grep 1.82.207.71
1.82.207.71 - - [15/Nov/2016:04:47:28 +0000] "GET /wp-admin/post.php?post=102265&action=edit HTTP/1.1" 302 5 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:04:47:29 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D102265%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:04:47:30 +0000] "GET /wp-admin/post.php?post=102264&action=edit HTTP/1.1" 302 5 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:04:47:31 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D102264%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:04:47:31 +0000] "GET /wp-admin/post.php?post=102263&action=edit HTTP/1.1" 302 5 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:04:47:32 +0000] "GET /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwp-admin%2Fpost.php%3Fpost%3D102263%26action%3Dedit&reauth=1 HTTP/1.1" 200 2658 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"
1.82.207.71 - - [15/Nov/2016:04:47:32 +0000] "GET /wp-admin/post.php?post=102262&action=edit HTTP/1.1" 302 5 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" "-"

... (略)

ログインしようとしているというか、ひたすら記事にアクセスしようとしていて(多分)怖い。

一応、管理画面にはベーシック認証もかけていましたが、そっこー抜かれたみたいですね。

うん、まぁ、難しくはないアカウントパスワードだった。反省。

対策

awsだったので、とりあえずACLコントロールで、該当IPをブロックしました。

今後も同様の不正アクセスは必ずあるので、下記のプラグインを導入しました。

皆さんも、うちの子に限って…なんて言ってないで、ぜひセキュリティにお気をつけください!

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク