XML-RPCへのアクセスが激化

ここ2日ほどでXML-RPCの脆弱性を狙ったアクセスが急上昇しました。
WordPress - XML-RPC ログ
ログの殆どがXMLRPC関連で2日で600件前後ありました。

アクセスしてくるときの一部のデータはこんな感じ

[AuthDigestEnableQueryStringHack] => On
[CONTENT_LENGTH] => 246
[CONTENT_TYPE] => text/xml
[GATEWAY_INTERFACE] => CGI/1.1
[HTTP_HOST] => blog.wolfs.jp
[HTTP_USER_AGENT] => Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)
[PHP_SELF] => /xmlrpc.php
[QUERY_STRING] =>
[REMOTE_ADDR] => 5.39.85.104
[REMOTE_PORT] => 55470
[REQUEST_METHOD] => POST
[REQUEST_TIME] => 1411214404
[REQUEST_TIME_FLOAT] => 1411214404.624
[REQUEST_URI] => /xmlrpc.php
[SCRIPT_NAME] => /xmlrpc.php
[SERVER_ADDR] => 180.147.107.163
[SERVER_PORT] => 80
[SERVER_PROTOCOL] => HTTP/1.0
[dont-vary] => 1
[no-gzip] => 1
[POST] => ...

 
送られてくるXMLも変わらずこんなかんじ。

これはpingback
<?xmlversion="1.0"?>
<methodcall>
    <methodname>pingback.ping</methodname>
    <params>
        <param /><value><string>http://kolgeda.com/select_.html</string></value>
        <param /><value><string>http://blog.wolfs.jp/</string></value>
    </params>
</methodcall>
 
これはgetUsersBlogs
<?xml version="1.0" encoding="iso-8859-1"?>
<methodcall>
    <methodname>wp.getUsersBlogs</methodname>
    <params>
        <param /><value><string>admin</string></value>
        <param /><value><string>test</string></value>
    </params>
</methodcall>

ちょっと前から思っていたんだけど、この系統のアクセスをしてくるユーザーのユーザーエージェントは決まってMozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)なんですよね。
Windows VistaのInternet Explorer 7。

こんな綺麗なユーザーエージェントはそうないので、IPアドレスで弾くのが面倒になったらこれで弾いても良さそう。
送信元の殆どがフランスってのも気になる所。
続きを読む

XML-RPC アタック

WordPressのXML-RPCを使ったアタックやスパムが少しだけあったのですが、それがここ最近酷くなってきました。
ログを見てみると・・・あるわあるわ・・
WordPress - XML-RPC ログ

XML-RPC等、スパム系の物は詳細ログを取っているのでそれを表示してみる。
WordPress - XML-RPC 詳細情報
うんうん、やっぱりPingbackを使って他サイトへ負荷をかけているみたい。
だけれどうちは安心で、WordPressにログインしたIPアドレスからでないとpingback.pingを使えないように改造してあるのです。
 
そのログの中のPOSTにはこんなのがありました。

<?xml version="1.0"?>
<methodCall>
    <methodName>pingback.ping</methodName>
    <params>
        <param><value><string>http://ru.pmvf.net/calculator</string></value></param>
        <param><value><string>http://blog.wolfs.jp/</string></value></param>
    </params>
</methodCall>

大抵はこのXMLで、これはPingbackを送信する物。
 
稀にこんなのも混ざってたりします。

<?xml version="1.0"?>
<methodCall>
    <methodName>metaWeblog.getUsersBlogs</methodName>
    <params>
        <value><string>1</string></value><value><string>admin</string></value><value><string>admin</string></value>
    </params>
</methodCall>

これはブログを情報を表示させるXMLで、paramsで指定されているのはユーザー名とパスワード。
うちのブログはXML-RPCからログインできるユーザーを別に用意してあるので大丈夫。
仮にユーザー名とパスワードが判っても、WordPressメインユーザーでログインしたIPアドレスと同じでないとログインできないので問題ナシ。
 
それでもトライされるのは気持ちいいもんじゃないし、そんな奴らにリソースを使うのはイヤなのでIP層でパケットをドロップしてやります。