Certlab_ -worm Analysis.hwp

Similar documents
<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

ActFax 4.31 Local Privilege Escalation Exploit

Secure Programming Lecture1 : Introduction

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

*2008년1월호진짜

[ 악성코드상세분석보고서 ] SK 커뮤니케이션즈해킹관련상세분석보고서 nateon.exe 대응 2 팀

chapter4

Remote UI Guide

Install stm32cubemx and st-link utility

Microsoft Word - Dropper.Agent D.doc

6강.hwp

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

ICAS CADWorx SPLM License 평가판설치가이드

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

*

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

월간악성코드분석보고서 ( ) 국내맞춤형랜섬웨어 갠드크랩 2.1 수산 INT 기술연구소 (CERT) 본문서는국내를대상으로노리는유포되는랜섬웨어갠드크랩 2.1을분석한보고서입니다. 실제침해사고내용을중심으로작성된보고서입니다. 본문서는수산아이앤티

주제별로명령들이따로있는것을보면주제끼리의순서는상관없어도명령들의위치를지 켜야할지도모른다. 하지만실험은해보지않았으니심심하면체크해봐도된다. [CRAB] CRAB 을하기위한가장기본적인세팅이다. jobtype = cmssw scheduler = glite 등이있다. 보통 CRAB

!K_InDesginCS_NFH

Chapter 1

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

목 차 1. 개요 선다운익스플로잇에의한변조형헤르메스 헤르메스와선다운익스플로잇 헤르메스공격경로및증상분석 분석사례 ( 헤르메스 2.1) 분석파일정보 동적분석 대응방안

Windows Server 2012

2009년 상반기 사업계획

Win-Trojan/Scar U 악성코드분석보고서 Written by extr Win-Trojan/Scar U 악성코드분석보고서 Page 1 / 14

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770>

ISP and CodeVisionAVR C Compiler.hwp

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

CNVZNGWAIYSE.hwp

*****

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

공지사항

신종파밍악성코드분석 Bolaven

0. 들어가기 전

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

#WI DNS DDoS 공격악성코드분석

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

3.20 테러 악성코드바이너리분석 손충호 (StolenByte) WOWHACKER Group 해당문서는 WOWHACKER Group 의문서이므로, 무단도용및수 정및변조는할수없습니다. 페이지 1 / 20

AVG PC TuneUp User Manual

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

<4D F736F F D2033BFF920BECBBEE0BFF9B0A3BAB8B0EDBCAD2E646F6378>

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

ÀÎÅÍ³Ý ÁøÈï¿ø 5¿ù

ÀÎÅÍ³Ý ÁøÈï¿ø 3¿ù ÀúÇØ»ó

DocsPin_Korean.pages

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

BH의 아이폰 추천 어플

소식지도 나름대로 정체성을 가지게 되는 시점이 된 거 같네요. 마흔 여덟번이나 계속된 회사 소식지를 가까이 하면서 소통의 좋은 점을 배우기도 했고 해상직원들의 소탈하고 소박한 목소리에 세속에 찌든 내 몸과 마음을 씻기도 했습니다. 참 고마운 일이지요 사람과 마찬가지로

SMB_ICMP_UDP(huichang).PDF

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

RHEV 2.2 인증서 만료 확인 및 갱신

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

악성코드분석보고서 (Lucci.exe) 작성자 : 김진태 1

Microsoft Word - MSOffice_WPS_analysis.doc

Studuino소프트웨어 설치

uFOCS

Sena Device Server Serial/IP TM Version

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

UDP Flooding Attack 공격과 방어

<C6F9C6AE20BAAFB0E6202D205BB1E2BCFAB9AEBCAD5D57696E646F777320BEC7BCBAC4DAB5E520BAD0BCAE20B0A1C0CCB5E52E687770>

Secure Programming Lecture1 : Introduction

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

DR-M140 사용 설명서

/ (application layer protocols) http ftp smtp pop dns 2

Endpoint Protector - Active Directory Deployment Guide

쿠폰형_상품소개서

<%DOC NAME%> (User Manual)

SRC PLUS 제어기 MANUAL

H3050(aap)

PowerPoint Template

<%DOC NAME%> (User Manual)

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap01-C언어개요.pptx

게시판 스팸 실시간 차단 시스템

XCom v2.x User's Manual

1. Execution sequence 첫번째로 GameGuard 의실행순서는다음과같습니다 오전 10:10:03 Type : Create 오전 10:10:03 Parent ID : 0xA 오전 10:10:03 Pro

NTD36HD Manual

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

ㅇ악성코드 분석

The Pocket Guide to TCP/IP Sockets: C Version

휠세미나3 ver0.4

악성코드분석보고서 학번 작성자김진홍작성일 2015 년 5 월 14 일 Keyword Downloader, Mouse cursor modification, Registry modification 1. 개요 1.1 요약 해당악성코드는악성코드를다운로드하는역할

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

K7VT2_QIG_v3

<%DOC NAME%> User Manual

Mango220 Android How to compile and Transfer image to Target

초보자를 위한 ASP.NET 2.0

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

++11월 소비자리포트-수정

Sun Java System Messaging Server 63 64

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

Transcription:

Email-Worm Analysis - - 2006. 12. 이강석 / certlab@gmail.com 어셈블리어개발자그룹 :: 어셈러브 http://www.asmlove.co.kr - 1 -

E-mail worm 분석과정을담고있는문서이고, 분석에쓰인악성코드는당연히첨부하지않았습니다. 첨부할시악성코드유포를하게되는것이고, 만약첨부하였더라도잘못관리하는경우가대부분이어서대신분석에쓰였던악성코드의 Strings 결과를첨부하였습니다. 처음이메일에첨부된파일이고, Message.com 악성코드대신 Strings 결과를 Message.txt 파일에저장하였습니다. 01 - Start 디렉토리 Message.txt Description.txt Message.com 은 UPX 로 Packing 되어있어 Unpacking 한파일의 Strings 결과를 Certlab_unpacked.txt 에 저장하였습니다. 악성코드가실행되면 regisp32.exe / windspl.exe 파일이생성되는데각각의 Strings 결과값. 02 - Strings 디렉토리 Certlab_unpacked.txt regisp32.exe.txt windspl.exe.txt IDA로분석하면서중요한부분을 IDA Graph로 PDF 파일로담았습니다. mailsend_flow.pdf는악성코드가메일을보낼때의 Flow입니다. regisp32_flow.pdf는 regisp32.exe 악성코드실행의한부분인 Flow입니다. 03 - Flow mailsend_flow.pdf regisp32_flow.pdf - 2 -

Email-Worm Analysis 어느날 21c@##.co.kr 에서 Gwd: Document 라는제목으로한통의메일을받았습니다. ( 보낸회사를알아보니현재는운영을안하는회사였습니다.) (id 부분을유추해 21c@21c.co.kr 로생각하시는분도계실지모르지만아닙니다. ^^) Message.com, Description.txt 파일두개가첨부되어있네요. 두개의파일을다운로드받아보았습니다. Message.com 을받으니다음과같이 AV 에탐지되네요 - 3 -

Description.txt 파일의내용입니다. 이파일은 Text 파일이기때문에분석에서제외하였습니다. you've got them already Message.com 분석결과 Strings 결과중에의미있는부분만따로뽑아낸부분입니다. ( 전체 Strings 결과는파일에첨부되어있습니다.)!This program cannot be run in DOS mode. Rich UPX0 UPX1 UPX2 $Id: UPX 0.61 Copyright (C) 1996-1999 Laszlo Molnar & Markus Oberhumer $ $Id: NRV 0.54 Copyright (C) 1996-1999 Markus F.X.J. Oberhumer $ $License: NRV for UPX is distributed under special license $ kernel32.dll Sleep user32.dll wsprintfa wsock32.dll send tole32.dll CoInitialize shlwapi.dll StrDupA wininet.dll InternetOpenA advapi32.dll RegCloseKey urlmon.dll URLDownloadToFileA shell32.dll ShellExecuteA gdi32.dll DeleteDC KERNEL32.DLL LoadLibraryA GetProcAddress UPX! MGGt SW3 bmp In a d ficult worlv nameless = ant o surviv So, you ill be mine!! Bagl AuthQ$29.04 GermFy. 127.0 SOFTWARE dispering - 4 -

lobje cts.exe http://ijj.t35.com/7$ 3've gonhem alreaa dyam image/bmpk[ Startup hutdown &k:#ibane Ex9 HELO %l" {RSET MAIL FROM:< CPT TO DATA msn MIME-N 7c-Typem 209.16.8 DEBU SYSTEM 'D'r'o'p e'd's'k'y'n 악성코드를분석할때는이렇게 Strings 로초기분석을하게되는데대략초기분석결과다음과같습니다. UPX Packing E-mail로어떤작업을수행레지스트리어떤작업을수행어떤 URL에어떤파일을다운로드시작프로그램에어떤프로그램이등록될지도다른사람에게메일을보낼수도... 그러나 Packing 된파일이기때문에분석을하려면꼭 Unpacking 된파일의 Strings 결과를봐야합니다. 왜그런것인지는관련된다른문서를참고해주시기바랍니다. - 5 -

이제분석시스템에 Message.com 파일을옮긴후에분석을시작해보도록하겠습니다. 분석시스템은 Windows XP Pro SP0 원본버전이고, 인터넷과단절된환경입니다. 외부로나가려는패킷은패킷캡쳐를통해분석을합니다. 만약 IRC 기능을하는패킷이나간다고한다면 IRC 서버를갖춘가상환경으로돌리면되고, 어떤웹사이트에연결하는패킷이면웹서버를갖춘가상환경으로돌리면됩니다. 분석과정에는여러가지가있지만 Email-worm 같은경우최대한코드의사이즈를줄이고, 많이퍼뜨려 야하기때문에첨부된파일의사이즈는 50kb 는안넘습니다. 보통 50kb 정도된다고보시면됩니다. 그럼, 이작은사이즈가과연어떤일들을할까요. 만약실행이된다면, 만약메일을받고첨부된수상한파일이실행된다면보통어떤사이트의악성코드를다운로드받은후에실행을하고, 시작프로그램에등록되고, IRC Bot 기능을갖고있다면 Client는악성코드가실행된지도모르고, 공격자가관리하고있는 IRC 채널에자동으로접속 / 대기하고공격자의명령을받을준비를하곤합니다. 한마디로첨부된파일은 명령 역할을할뿐입니다. 수상한파일을실행시키지맙시다. Strings 결과 UPX로 Packing 되었다고하니 UPX로 Unpacking 을합니다. 만약 Unpacking 도구가없거나, 신종 Packer로 Packing 된경우는 Manual Unpacking 을합니다. 단순히악성코드의행동패턴과흐름만을본다면 Unpacking을할필요는없습니다. 그냥 Message.com 파일을실행하면되니까요. 그러나. 분석을하는것이기에한번끝까지한번가봅시다. 다음화면에서 Message.com 파일은 UPX로 Packing된파일이고, Email에서첨부된파일입니다. Certlab_unpacked.exe 파일은 unpacking 한파일입니다. 왜악성코드는 Packing 하는지, 왜 Unpacking 하면코드의사이즈가틀린지.. 왜 Packing된파일과 Unpacking 된파일과서로 Strings 결과가틀린지는이문서에는다루지않고, 다음분석문서에서다루도록하겠습니다. - 6 -

Unpacking 후의 Certlab_unpacked.exe -> Strings 결과입니다. 마찬가지로의미있는문자열들만따로뽑아서정리하였습니다. 보시면아시겠지만한눈에봐도어떤일들을하는지알수가있을것이고, Strings 결과에대해조금의변조없이그대로보여드립니다.!This program cannot be run in DOS mode. Rich In a difficult world In a nameless time I want to survive // 저장되어있는어떤메시지가있습니다. So, you will be mine!! // 아마도나중에메일을보낼때사용하는제목일수도있겠네요. -- Bagle Author, 29.04.04, Germany. 127.0.0.1 SOFTWARE dispering DsplObjects windspl.exe // 이파일은아마도실행될악성코드의이름같습니다. http://ijj.t35.com/ // 사이트주소가있다는것은어떤작업을하는것입니다. 다시말하면어떻게해서든관련이있습니다. you've got them alreadyarial // 이메일로악성코드가첨부될때같이첨부되는 txt 파일의내용. ( 분석에서별필요없음 ) image/bmp image/gif image/jpeg gdiplus.dll GdiplusStartup GdiplusShutdown GdipGetImageEncodersSize GdipGetImageEncoders GdipLoadImageFromStream GdipSaveImageToFile GdipDisposeImage Can't find a viewer associated with the file Error! SOFTWARE Microsoft Windows CurrentVersion Run // 이것으로봐서악성코드가윈도우부팅될때시작프로그램에등록이됩니다. open.exe.scr.com.zip.vbs // 이런확장자목록같은경우여러가지이유들이있습니다..hta // 다운로드받거나생성된악성코드가다양한확장자로변형되거나.cpl // 목록에있는확장자파일들을공격하거나.. Internet Explorer 5.01 HELO %s.net HELO %s.com HELO %s.org RSET MAIL FROM:<%s> RCPT TO:<%s> // 악성코드가메일을보낼때사용하는명령어들입니다. DATA @hotmail @msn @microsoft - 7 -

rating@ f-secur news update anyone@ bugs@ contract@ feste gold-certs@ help@ info@ nobody@ noone@ kasp admin icrosoft support ntivi unix bsd linux listserv certific sopho // 지금보이는이목록들은나중에악성코드가메일을보낼때사용하는메일 ID 부분에해당되거나 @foo // 이목록에있는리스트에는메일을보내지않을수도있습니다. 악성코드제작자가어떻게프로그래밍했는지에따라 @iana // 다른결과가나올수있습니다. free-av @messagelab winzip google winrar samples abuse panda cafee spam pgp @avp. noreply local root@ postmaster@ *.*.wab.txt.msg.htm.shtm.stm.xml.dbx.mbx.mdx.eml.nch.mmf.ods - 8 -

.cfg.asp.php.pl.wsh.adb.tbb.sht.xls.oft // 이확장자목록은위에서봤었던.exe.scr 등등과성격이다릅니다..uin // 악성코드가왼쪽에있는확장자목록들에등록되어있는파일들을찾아이메일주소를찾는것입니다..cgi // 이렇게수집된메일주소를바탕으로악성코드는메일을뿌리게됩니다..mht // 만약웹서버가현재이악성코드에감염이되었다면웹서버에있는모든웹페이지들에등록되어있는메일주소에.dhtm // 퍼지게될것입니다..jsp shar Microsoft Office 2003 Crack, Working!.exe Microsoft Windows XP, WinXP Crack, working Keygen.exe Microsoft Office XP working Crack, Keygen.exe Porno, sex, oral, anal cool, awesome!!.exe // 지금이목록은공유폴더에다음의리스트의파일명으로복사됩니다. Porno Screensaver.scr // 악성코드가바보가아닌이상 virus.exe 라고하지않으니 Serials.txt.exe // 이런식으로그럴듯한파일명으로널리퍼지게끔합니다. Porno pics arhive, xxx.exe Windows Sourcecode update.doc.exe Ahead Nero 7.exe Windown Longhorn Beta Leak.exe Opera 8 New!.exe XXX hardcore images.exe WinAmp 6 New!.exe WinAmp 5 Pro Keygen Crack Update.exe Adobe Photoshop 9 full.exe Matrix 3 Revolution English Subtitles.exe ACDSee 9.exe KAV 5.0 Kaspersky Antivirus 5.0 // 왜악성코드안에 AV 프로그램이름이들어있는것일까요. // 보통악성코드안에 AV 관련프로그램이름이등록되어있는경우 // 찾아서값을삭제하곤합니다. ddd',' dd MMM yyyy HH:mm:ss %03i%02i Date: %s To: "%s" <%s> // 메일보낼때의부분입니다. From: "%s" <%s> Subject: %s Message-ID: <%s%s> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="--------%s" ----------%s Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: 7bit ----------%s Content-Type: %s; name="%s.%s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="%s.%s" Content-ID: <%s.%s> - 9 -

----------%s Content-Type: application/octet-stream; name="%s%s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="%s%s" ----------%s-- <br> <html><body> </body></html> <img src="cid:%s.%s"><br> Password: %s Pass - %s Password - %s Gwd: Msg reply Gwd: Hello :-) Gwd: Yahoo!!! Gwd: Thank you! Gwd: Thanks :) Gwd: Text message Gwd: Document Gwd: Incoming message // 이것은메일을보낼때의제목리스트들입니다. Gwd: Incoming Message // 이중에악성코드는랜덤하게골라메일을발송하게됩니다. Gwd: Incoming Msg Gwd: Message Notify Gwd: Notification Gwd: Changes.. Gwd: Update Gwd: Fax Message Gwd: Protected message Gwd: Protected message Gwd: Forum notify Gwd: Site changes Gwd: Hi Gwd: crypted document Ok. Read the attach.<br><br> Ok. Your file is attached.<br><br> Ok. More info is in attach<br><br> Ok. See attach.<br><br> Ok. Please, have a look at the attached file.<br> Ok. Your document is attached.<br><br> Ok. Please, read the document.<br><br> Ok. Attach tells everything.<br><br> Ok. Attached file tells everything.<br><br> Ok. Check attached file for details.<br><br> Ok. Check attached file.<br><br> Ok. Pay attention at the attach.<br><br> Ok. See the attached file for details.<br><br> Ok. Message is in attach<br><br> Ok. Here is the file.<br><br>.ini.cfg.txt.vxd.def.dll // 메일보낼때의본문내용 www.cumonherface Details - 10 -

XXX_livebabes XXX_PornoUpdates xxxporno fuck_her Info Common MoreInfo // 메일을발송할때악성코드의파일명을다음의리스트중에하나로보내게됩니다. Message // 저한테첨부되어온것은왼쪽의 Message를선택한악성코드. Message.com Description.txt // 악성코드가첨부될때같이첨부되는 Description.txt 파일 lstrlena GetTickCount lstrcpya lstrcata GetTempPathA ExitThread ExitProcess Sleep GetPrivateProfileIntA CreateThread CreateProcessA CloseHandle WriteFile // 광범위하게악성코드에서 WriteFile, CreateFileA 가있다면주위깊게봐야합니다. CreateFileA // 어떤 URL에서새로운악성코드를받을수도있고, packing된파일이 Unpacking 되면서생성되는파일등등.. // 환경에따라다르지만, 결국에는새로운파일이생성된다는것이기에생성되는파일을찾고, 분석을해야합니다. GetModuleFileNameA GetProcAddress GetModuleHandleA SetErrorMode ReleaseMutex GetLastError CreateMutexA KERNEL32.dll wsprintfa USER32.dll RegCloseKey RegSetValueExA RegOpenKeyA // 악성코드가시작레지스트리에등록을하는전형적인패턴 ADVAPI32.dll InternetCloseHandle InternetReadFile InternetOpenUrlA InternetOpenA WININET.dll http://dook.zoo.by/ http://debut.zoo.com/ http://myphotokool.t235.com/ // 사이트주소가명시되었다는것은리스트에나와있는사이트들이해킹되었거나 http://ijj.t235.com/ // 명시된사이트가메일서버로이용되고있을수있습니다. http://209.16.85.230/.%20/pr // 그게아니라면명시된사이트에서다른악성코드를다운받을수도있습니다. // 어떻게해서든관련이있습니다. win%s.tmp system.ini - 11 -

TFTempCache system.ini VideoVer mcidrv32 DEBUT.TMP SYSTEM CurrentControlSet Services SharedAccess Parameters FirewallPolicy StandardProfile AuthorizedApplications List %s:*:enabled:ipsec // 위의레지스트리경로에다음값을생성합니다. bagla_super_downloader_1000 RegisterServiceProcess kernel32 smtp_bagla_1000 http://noshit.fateback.com/ http://noshit.fateback.com/ regisp32.exe smtp_bagla_1000 SeDebugPrivilege advapi32.dll AdjustTokenPrivileges InitializeAcl LookupPrivilegeValueA OpenProcessToken SetSecurityInfo kernel32.dll RegisterServiceProcess iphlpapi.dll GetNetworkParams MuXxXxTENYKSDesignedAsTheFollowerOfSkynet-D 'D'r'o'p'p'e'd'S'k'y'N'e't' _-ooaxx -+S+-+k+-+y+-+N+-+e+-+t+- XxKOo-_ [SkyNet.cz]SystemsMutex // 다음 Mutex를생성합니다. AdmSkynetJklS003 // 여기서 Mutex란보통악성코드는중복실행을막기위해다음과같이특정웜들의 --->>>>U<<<<-- // Mutex값을이용합니다. 그래서다른웜들의중복실행을방지합니다. _-oo]xx -S-k-y-N-e-t- Xx[Oo-_ My AV Zone Labs Client Ex 9XHtProtect Antivirus Special Firewall Service service Tiny AV // 위에서말했듯이다음과같은목록의문자열이있다면삭제합니다. ICQNet HtProtect NetDy Jammer2nd FirewallSvr MsInfo SysMonXP EasyAV PandaAVEngine Norton Antivirus AV KasperskyAVEng SkynetsRevenge ICQ Net $$$$ GetLogicalDriveStringsA - 12 -

- 13 - GetModuleFileNameA GetLocalTime GetProcAddress GetSystemDirectoryA GetTickCount GetTimeFormatA GetTimeZoneInformation GetWindowsDirectoryA GlobalAlloc GlobalFree LoadLibraryA LocalAlloc LocalFree MapViewOfFile MultiByteToWideChar OpenProcess Process32First GetDriveTypeA GetFileSize ReleaseMutex SetEndOfFile SetFileAttributesA SetFilePointer Sleep SystemTimeToFileTime TerminateProcess UnmapViewOfFile WaitForSingleObject WideCharToMultiByte WinExec WriteFile lstrcata lstrcmpia lstrcpya lstrcpyna lstrlena CloseHandle GetDateFormatA GetCurrentProcessId GetCurrentProcess GetCommandLineA FindNextFileA FindFirstFileA FindClose ExitProcess CreateToolhelp32Snapshot CreateThread CreateMutexA CreateFileMappingA CreateFileA CopyFileA CompareFileTime ReadFile Process32Next wsprintfa DrawTextA CharUpperA socket

send gethostname gethostbyname connect closesocket bind // 소켓프로그래밍때많이나오는함수 accept WSAStartup listen inet_addr select recv CoInitialize CreateStreamOnHGlobal StrDupA StrChrIA StrRChrA StrStrIA StrTrimA InternetOpenUrlA InternetOpenA InternetGetConnectedState InternetCloseHandle RegCloseKey RegCreateKeyA RegDeleteKeyA RegDeleteValueA RegSetValueExA URLDownloadToFileA ShellExecuteA CreateBitmap CreateCompatibleDC CreateFontA DeleteDC DeleteObject FloodFill GetDIBits GetDeviceCaps GetObjectA SelectObject SetBkMode SetTextColor H6*w kernel32.dll Sleep user32.dll wsprintfa wsock32.dll send tole32.dll CoInitialize shlwapi.dll StrDupA wininet.dll InternetOpenA advapi32.dll - 14 -

RegCloseKey urlmon.dll URLDownloadToFileA shell32.dll ShellExecuteA gdi32.dll DeleteDC KERNEL32.DLL LoadLibraryA GetProcAddress HELO %l" {RSET MAIL FROM:< ADVAPI32.dll RegCloseKey RegCreateKeyA // 레지스트리값생성 / 삭제부분입니다. RegDeleteKeyA RegDeleteValueA RegSetValueExA GDI32.dll CreateBitmap CreateCompatibleDC CreateFontA DeleteDC DeleteObject FloodFill GetDIBits GetDeviceCaps GetObjectA SelectObject SetBkMode SetTextColor KERNEL32.dll GetLogicalDriveStringsA GetModuleFileNameA GetLocalTime GetProcAddress GetSystemDirectoryA GetTickCount GetTimeFormatA GetTimeZoneInformation GetWindowsDirectoryA GlobalAlloc GlobalFree LoadLibraryA LocalAlloc LocalFree MapViewOfFile MultiByteToWideChar OpenProcess Process32First GetDriveTypeA GetFileSize ReleaseMutex SetEndOfFile SetFileAttributesA - 15 -

SetFilePointer Sleep SystemTimeToFileTime TerminateProcess UnmapViewOfFile WaitForSingleObject WideCharToMultiByte WinExec WriteFile lstrcat lstrcmpi lstrcpy lstrcpyn lstrlen CloseHandle GetDateFormatA GetCurrentProcessId GetCurrentProcess GetCommandLineA FindNextFileA FindFirstFileA FindClose ExitProcess CreateToolhelp32Snapshot CreateThread CreateMutexA CreateFileMappingA CreateFileA CopyFileA CompareFileTime ReadFile Process32Next ole32.dll CoInitialize CreateStreamOnHGlobal SHELL32.dll ShellExecuteA SHLWAPI.dll StrDupA StrChrIA StrRChrA StrStrIA StrTrimA urlmon.dll URLDownloadToFileA USER32.dll wsprintfa DrawTextA CharUpperA WININET.dll InternetOpenUrlA InternetOpenA InternetGetConnectedState // 인터넷에연결한후어떤파일을다운로드받을것같습니다. InternetCloseHandle WSOCK32.dll socket - 16 -

send gethostname gethostbyname connect closesocket bind accept // bind, accept는네트워크소켓프로그래밍에자주나오는함수이름입니다. WSAStartup listen inet_addr select recv 지루하시나요? ^^; 이제장난은그만하고실제악성코드를실행시켜행동패턴과흐름을알아보겠습니다. 단순히 Strings 로본결과들은 참고 일뿐입니다. 어떤악성코드는실행을하면악성코드제작자의코딩상의실수로실행에러나기도하고, 10 가지기능이있다면 8 개만구현된다거나하는것들이있기때문에 100% 신뢰하기보다는실제분석할때 참고 로이용하는것이좋습니다. - 17 -

분석시스템은 Vmware Windows XP SP0입니다. 악성코드분석에필요한툴들의설명은다른문서에서다루도록하겠습니다. 악성코드는컴퓨터가자기스스로만들어서퍼지게하지않습니다. 당연한이야기이지요. 악성코드는 사람 이코딩하여어떤목적을갖고, 어떤취약점을이용해퍼지게끔하고, 만약 Client가감염이된다면악성코드제작자의생각데로흐름데로실행되는것입니다. 어떤파일을만들거나레지스트리에추가하고, 다시퍼지게끔하고... 또한, 동작되는환경도중요한데요즘같은경우는 Windows XP를사용하는모든사용자들은대부분서비스팩2가설치되어있고쓰고있습니다. 그런데이런환경속에악성코드제작자가서비스팩없는원본, 서비스팩1이설치된컴퓨터를공격하는악성코드는 90% 만들지않습니다. 왜냐하면악성코드제작자는악성코드가널리퍼뜨려져야됩니다. 왜냐하면악성코드제작자이니까요. 정상적인프로그래머라면상대방의컴퓨터에 Keylog를설치하거나레지스트리에어떤값을집어넣는다거나그런일들은않하는게정상이니까요. 다시말하자면악성코드도설치되는환경이중요하고, 분석시스템도다양한환경을구축해야합니다. 다음과같은환경을구축한후적절하게분석시스템을선정하여분석해야합니다. 또한가지분석툴들만설치하고끝이아니라실제분서시스템에서어느정도의웹서핑과 P2P프로그램, 메신저프로그램들을설치하고써봐야합니다. ( 다양한악성코드의반응때문에..) 그리고나서인터넷과통제된환경으로돌아와서분석을시작합니다. 2000 / 2000 SP4 / XP / XP SP0 / XP SP1 / XP SP2-18 -

자.. 이제분석을합시다. 아래사용하는툴은이럴때꼭이런툴을쓰는구나라는정답은없습니다. 네트워크패킷분석을해주는 Ethereal 을띄웁니다. Process 상태를보기위해 Process Explorer 를실행시킵니다. - 19 -

파일생성및엑세스모니터링을해주는 Filemon 레지스트리접근및생성모니터링을해주는 Regmon - 20 -

현재시스템의 TCP, UDP 포트및동작프로세스점검을해주는 CurrPorts Message.com 악성코드를실행하기전에 Regshot 을찍습니다. - 21 -

자이제악성코드를실행을합니다. - 실행하고나서의결과 - Process Explorer 에서의변화 windspl.exe / regisp32.exe 수상한 Process 생성 - 22 -

분석결과 Message.com 이라는 19.4kb 의악성코드를실행하게되면 windspl.exe 파일과 regisp32.exe 파일을생성하는것을볼수있습니다. 아래화면은악성코드원본 Message.com 파일과 Unpacking 한 Certlab_unpacked.exe 파일의 사이즈를보실수가있습니다. (txt 파일은각각의실행파일의 Strings 결과입니다.) 아래는 Message.com 을실행했을때시스템에자동으로생성되는파일입니다. windspl.exe, regisp32.exe, windspl.exeopen, windspl.exeopenopen 이렇게 4 개의파일이 생성되는것을볼수있습니다. 여기서눈여겨봐야할것은 Message.com 을 Unpacking 한 Certlab_unpacked.exe 파일과 생성된 windspl.exe 파일사이즈와 md5 hash 값이같다는것입니다. Certlab_unpacked.exe / md5 : 3052050B7877D51B707490AF70220A64 windspl.exe / md5 : 3052050B7877D51B707490AF70220A64 Message.com 이 Unpacking 되면서 windspl.exe / regisp32.exe / windspl.exeopen / windspl.exeopenopen 파일이생성된다는것을알수있습니다. 여기서생성된각각의파일분석은뒤에서하도록하겠습니다. - 23 -

Filemon의결과 ( 중요한부분만캡쳐하였습니다.) 다음은일반적으로악성코드가파일을생성하는부분입니다. 처음 c:\windows\system32\windspl.exe 파일을 open 하는데파일이없으니 Create 을통해파일을생성되는과정을보실수가있습니다. Regmon 의결과 - 24 -

- 25 - 어셈블리어개발자그룹 :: 어셈러브

처음분석할때 *.html / *.jsp 등문서파일에서이메일을추출하는부분이있어서 임의로 c:\ 디렉토리에 a.html / a.jsp / a.php / a.htm 파일을생성하고, 임의의이메일주소를넣었고, 화면은악성코드가각각의디렉토리를검색하여이메일을추출하는화면입니다. - 26 -

windspl.exe 6777 포트를 listening 하는모습입니다. 6777 번포트를 Listening 하는프로그램은생성된 c:\windows\system32\windspl.exe 입니다. 6000번대포트면 IRC 기능이있는지의심을해봐야하는데 Strings 결과에는 IRC에관련된명령어들과정보들이없었습니다. 그래도한번 6777 포트로접속을시도해본화면입니다. IRC 와관련없는악성코드가맞습니다. 만약에 IRC기능을한다면재밌는상황들을볼수있는데말이죠. - 27 -

어느정도악성코드가실행이되었다면악성코드를종료합니다. 그리고나서 Regshot 2nd 샷을찍습니다. 다음은결과화면중에중요부분만남겨놓은결과입니다. 시작레지스트리에등록되는것을볼수가있습니다. Regshot 1.7 Comments: Datetime:2006/12/21 09:41:37, 2006/12/21 09:44:11 Computer:XSTONE-ANALYSIS, XSTONE-ANALYSIS Username:m(^^)m, m(^^)m HKU S-1-5-21-1547161642-1563985344-1801674531-1003 Software Microsoft Windows CurrentVersion Run DsplObjects: "C: WINDOWS System32 windspl.exe" Ethereal에서외부로나가는패킷들이잡혔습니다. 도메인질의를하는것을볼수있습니다. 이제무엇을할까요. 웹서버가있는가상환경으로돌려봅시다. - 28 -

분석시스템에 hosts 파일을다음과같이편집합니다. 도메인질의를할시에 Windows는 hosts 파일을먼저참조하기때문에이곳에설정되어있는 IP로바로접속을시도하게됩니다. 따로도메인질의과정 (root 서버 -> 하위서버 ) 이런식의도메인질의는안하게됩니다. 총 4 개의도메인리스트가있지만 3 개만등록하고악성코드를실행시켜보겠습니다. - 29 -

이제다시악성코드를실행합니다. 다음과같이정상적으로웹서버에반응하고요청을하는것을볼수가있으며처음생각하기로는사이트에접속하여어떤다른악성코드를받으려고파일을요청하는패킷을보낼줄알았는데그냥웹문서만받는것을볼수있습니다. 이게아니라면실제환경상의차이로받아야할파일을못받는경우이거나사이트에접속을시도하면자동으로파일을 send 해주는 script를사이트에심을수도있구요. 악성코드를접속해서다운을받아야하는데받아야할사이트가동작을안하거나여러가지이유가있습니다. 일단은 index 웹페이지만요청을하는것을볼수있습니다. 또한가지외부에패킷을보내거나받을때는 regisp32.exe 파일이담당하는것을볼수있습니다. windspl.exe 는단지 6777 포트를 Listening 합니다. - 30 -

또한, 다음과같이계속트래픽을발생시킵니다. 6kb regisp32.exe 파일만단독실행해보면위에서일어났던 Regmon, Filemon, Ethereal 에서의 동작과같다는것을확인할수있습니다. - 31 -

이제 IDA 에서분석을해봅시다. 먼저 regisp32.exe 악성코드 Flow 의한부분입니다. 화면이작은데 regisp32_flow.pdf 파일을참고해주세요. 그리고 IDA 관련자세한분석은다른문서에서다루도록하겠습니다. - 32 -

다음은분석과중에스냅샷입니다. - 33 -

windspl.exe 파일생성과정 시작레지스트리에등록하는부분 - 34 -

실제메일을보낼때의부분입니다. mailsend_flow.pdf 을참고해주세요. 공유폴더에다음목록의파일명으로복사 - 35 -

메일발송시에명령어들 메일제목리스트 분석하면서중요한부분만했기때문에넘어간부분이너무많고, 마지막에조금빠르게끝내버린것같지만분석결과다른악성코드를받는시나리오인데받아야할사이트가현재서비스되지않거나여러가지이유로다음시나리오로못넘어가서분석을마칠까합니다. 실제악성코드를새로받아야분석하는의미가있는데다음에다루도록하겠습니다. 부족한글끝까지읽어주셔서감사드리고, 혹시잘못된내용이나잘못알고있는것이있거나 문의할내용이있으시면메일로보내주시기바랍니다. Certlab@gmail.com - 36 -