GSC Incident Report-바이킹 바이러스 분석

Similar documents
CKKeyPro 적용가이드

Deok9_Exploit Technique

07_alman.hwp

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

ActFax 4.31 Local Privilege Escalation Exploit

Reusing Dynamic Linker For Exploitation Author : Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

<4D F736F F D20B9D9C0CCB7B5B9D9C0CCB7AFBDBA5FBCF6C1A42E646F63>

hlogin2

*2008년1월호진짜

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

Microsoft PowerPoint - a10.ppt [호환 모드]

No Slide Title

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

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

IDA 5.x Manual hwp

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

Microsoft Word - building the win32 shellcode 01.doc

/* */

Windows 8에서 BioStar 1 설치하기

NTD36HD Manual

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

System Recovery 사용자 매뉴얼

컴퓨터관리2번째시간

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

신종파밍악성코드분석 Bolaven

공지사항

untitled

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

2006_8_14 (8_17 updated) ms ¿ú(wgareg.exe) ºÐ¼® º¸°í¼�.hwp

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

<4D F736F F F696E74202D E20C0CEC5CDB3DD20C0C0BFEB20B9D720BCADBAF1BDBA20B1E2BCFA E >

Secure Programming Lecture1 : Introduction

목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

C++ Programming

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Windows Server 2012

<%DOC NAME%> (User Manual)

Microsoft PowerPoint - hy2-12.pptx

01.ROP(Return Oriented Programming)-x86 Excuse the ads! We need some help to keep our site up. List Return Oriented Programming(ROP) -x86 Gadgets - PO

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C

슬라이드 1

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

ky55別冊表紙1用.indd

<%DOC NAME%> (User Manual)

Microsoft Word - Dropper.Agent D.doc

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

chap 5: Trees

ìœ€íŁ´IP( _0219).xlsx

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

1. 개요 악성코드는여러분류로나누어볼수가있다. 이중일반사용자의입장에서 악성코드 라는단어보다친숙한 바이러스 가있다. 사실필자도보안을공부하기이전에는 악성코드 라는단어는아예들어보지못했고, 대신 바이러스 라는단어로모든악성코드를지칭했었다. 바이러스는악성코드분류의한종류로 스스로를

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

PowerPoint 프레젠테이션

TGDPX white paper

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

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

금오공대 컴퓨터공학전공 강의자료

chapter4

untitled

Microsoft PowerPoint - a6.ppt [호환 모드]

서비스) 와서버( 관리대상서버) 간에자격증명을사용하여서로의 ID 를확인하고서로주고받는데이터를검사하고암호화하는프로세스 이다. 높은인증수준은일반적으로성능의저하를가져올수있지만높은 수준의보안과데이터무결성을제공한다. 기본값 - 관리대상서버에설정되어있는 DCOM 인증수준기본 값을

Microsoft Word - UFuz3 분석.doc

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

6강.hwp

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

User's Guide Manual

슬라이드 1

API 매뉴얼

PowerPoint 프레젠테이션

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

CPX-E-PB_BES_C_ _ k1

08_spam.hwp

CODESYS 런타임 설치과정

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

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

vRealize Automation용 VMware Remote Console - VMware

월간 CONTENTS 3 EXPERT COLUMN 영화 점퍼 와 트로이목마 4 SPECIAL REPORT 패치 관리의 한계와 AhnLab Patch Management 핵심은 패치 관리, 왜? 8 HOT ISSUE 2016년에 챙겨봐야 할 개인정보보호

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

SRC PLUS 제어기 MANUAL

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Install stm32cubemx and st-link utility


ODS-FM1

Microsoft Word ARM_ver2_0a.docx

0x <main+41>: lea eax,[ebp-264] 0x f <main+47>: push eax 0x080484a0 <main+48>: call 0x804835c <strcpy> 0x080484a5 <main+53>: add esp,0x1

Microsoft PowerPoint - a8a.ppt [호환 모드]

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

Chapter 05. 파일접근권한관리하기

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

DocsPin_Korean.pages

SMB_ICMP_UDP(huichang).PDF

Microsoft PowerPoint - a5a.ppt [호환 모드]


백서2011표지

Microsoft Word - FunctionCall

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

LCD Display

Transcription:

GSC Incident Report- 바이킹바이러스분석 1. 작성일시 : 2006.10.26 20:17(GMT +09:00) 2. 작성자 : 안창용 / 바이러스분석팀 3. 바이킹바이러스에대해서바이킹바이러스는 2005 년 2 월경최초발견된후잠시주춤하다가 2005 년 5 월부터국내에서웹해킹을통한악성코드유포사례가이슈화되면서 Internet Explorer 의취약성을공격하는 Exploit 과함께유포되는방식으로변경되었고지금까지다수의변종이발견되었다. 바이킹바이러스는다양한루트를통해자신을확산시킬수있는기능을가지고있어완벽한해결이어렵기때문에이번 Incident Report 를통해서어떻게하면바이킹바이러스에의한감염피해를최소한으로줄이고안전한컴퓨팅환경을만들수있는지알아본다. 4. 왜, 바이킹바이러스라명명되었나? 바이킹바이러스는특정백신의서비스를멈추려고하는루틴과.exe 확장자를가진파일을감염시키는 virus 기능을갖고있는데이두가지의특징이합쳐져바이킹 (Viking) 으로명명된것으로추정된다. 0x407AC1: 6A00 PUSH 0x0 Virus + Kingsoft = Viking 0x407AC3: 68C47B4000 PUSH 0x407BC4 ; DATA:net stop "Kingsoft AntiVirus Service" 0x407AC8: E8ABC9FFFF CALL 0x404478 <--- WinExec 5. 바이킹바이러스, 어떻게확산되나? 바이킹바이러스의주확산경로는아래와같다. Int erne t Explorer 의취약성과함께 파일감염 (*.exe 확장자를가진파일 ) 관리목적의공유폴더 ( I PC$, Admin$, C$ 등) 또는공유폴더 5-1. Internet Explorer 의취약성과함께 웹해킹과함께사용되는 Internet Explorer 의주요취약점 * MS04-013 : http://www.microsoft.com/korea/technet/security/bulletin/ms04-013.asp * MS04-025 : http://www.microsoft.com/korea/technet/security/bulletin/ms04-025.mspx * MS05-001 : http://www.microsoft.com/korea/technet/security/bulletin/ms05-001.mspx * MS06-001 : http://www.microsoft.com/korea/technet/security/bulletin/ms06-001.mspx * MS06-014 : http://www.microsoft.com/korea/technet/security/bulletin/ms06-001.mspx 웹해킹을통한악성코드유포사례가이슈화되기시작했던 2005 년 5 월부터주로 MS04-025 와 MS05-001 에기술된취약점을사용하였고, MS06-001 취약성과함께악성코드유포사례가발견되면서그당시해당취약점을사용한사례가증가할것으로예상했지만그렇지않았으며, 최근들어 MS06-014 에기술된취약점을사용한유포사례가주를이루고있다. exploit 들은 AV 제품의탐지를회피하기위해스트링 (string) 단위로코드를분할하거나코드를다중암호화된형태로유포되고있으며쉽게변형이가능하기때문에 AV 제품에서해당 exploit 을탐지하는데한계가있다. 스트링 (string) 단위로분할된경우 : str1="micro", str2="soft.x", str3="mlh", str4="ttp" str = str1 + str2 + str3 + str4,

암호화된경우 HtmlStrings=["=ujumf>=0ujumf>=ifbe>=0ifbe>=cpez>=tdsjqu!mbohvbhf>#W", "CTdsjqu#>po!fssps!sftvnf!ofyu 해킹된웹사이트를통해서유포되는악성코드의대부분은아래와같은형식을사용한다. [ 그림 1. 바이킹바이러스유포경로 ] 5-2. 파일감염바이킹바이러스는 *.exe 파일을가진파일에자신의코드를삽입 ( 감염, Infection) 하여확산을시도하며해당작업을수행하기위해서는다음과같은조건을만족해야한다. 바이킹바이러스가 *.exe 파일을감염시킬조건 5-2-1. 파일크기검사바이킹바이러스는수십개의변종이존재하므로각각의변종에서파일크기검사를하기위한조건이다르지만공통적으로 FindFirstFileA(), FindNextFileA(), GetFileSize() 를사용하여.exe 파일을검색하고파일크기를비교한후크거나파일을감염시키지않는다. 0x40992E: 56 PUSH ESI 0x40992F: 8D95B4FEFFFF LEA EDX,DWORD PTR [EBP-0x14C] 0x409935: B8049F4000 MOV EAX,0x409F04 ; DATA:*.exe 0x40993A: E811AEFFFF CALL 0x404750 ----중간생략---- 0x40994E: E8299AFFFF CALL 0x40337C 0x409953: 8B85B8FEFFFF MOV EAX,DWORD PTR [EBP-0x148] 0x409959: E8D29BFFFF CALL 0x403530 0x40995E: 50 PUSH EAX <--- lpfilename 0x40995F: E8ACA9FFFF CALL 0x404310 <--- FindFirstFileA 0x409964: 8BF8 MOV EDI,EAX 0x409966: 83FFFF CMP EDI,0xFF 0x409969: 0F8482000000 JE 0x4099F1 ; (*+0x88) [ 표 1. exe 파일을찾기위한루틴 ] 현재폴더에서 exe 파일을찾았다면 sub_409518 를호출하여해당파일의크기를자신의조건과비교하기위한작업을수행하여조건과일치하면해당파일에자신의코드를삽입하고불일치하면감염시키지않는다.

vir.viking.j.un Section.Upack (0x00401000) 0x409556: 6A00 PUSH 0x0 0x409558: 53 PUSH EBX 0x409559: E802AEFFFF CALL 0x404360 0x40955E: 8BF0 MOV ESI,EAX 0x409560: 81FE0000A000 CMP ESI,0xA00000 <--- FileSize 비교 0x409566: 0F8358010000 JAE 0x4096C4 <--- CloseHandle () [ 표 2. 파일크기비교 ] 5-2-2. 특정문자열을사용하는일부폴더에저장된 *.exe 는제외지금까지나온바이킹바이러스특징중에하나가특정문자열을사용하는폴더에존재하는 exe 파일은감염시키지않는다는것인데이는 Windows OS 의중요폴더를감염시킬경우제작자가의도하는목적과반대되는현상이일어날수있는것을방지하기위한것이다.( 부팅불가, 속도저하, 특정파일실행불가등 ) Disassembly of 0x00409A9B 0x409A95: 8B8594FEFFFF MOV EAX,DWORD PTR [EBP-0x16C] 0x409A9B: BA549F4000 MOV EDX,0x409F54 ; DATA:system 0x409AA0: E80FACFFFF CALL 0x4046B4 <--- CompareStringA () 0x409AA5: 85C0 TEST EAX,EAX 0x409AA7: 0F840E040000 JZ 0x409EBB ;(*+0x414) 0x409AAD: 8D8590FEFFFF LEA EAX,DWORD PTR [EBP-0x170] 0x409AB3: 8D562C LEA EDX,DWORD PTR [ESI+0x2C] 0x409AB6: B904010000 MOV ECX,0x104 0x409ABB: E85898FFFF CALL 0x403318 [ 표 3. 특정조건검사 ] 위코드는바이킹바이러스가시스템폴더인지를검사하는루틴이며만약조건이일치하지않으면 0x409AA7를호출하여해당폴더에서 exe 파일을찾기위한작업을수행한다. 바이킹바이러스는아래문자열을가진폴더에대해서도 [ 표 3.] 과같은동일한작업을수행하여만약.exe 파일이존재한다면감염시키지않는다. winnt, windows, system, system32 Documents and Settings System Volume Information Recycled Program Files Windows NT, WindowsUpdate, Windows Media Player, Outlook Express, Internet Explorer ComPlus Applications, NetMeeting, Common Files, Messenger, Microsoft Office, InstallShield Installation Information, Microsoft Frontpage, Movie Maker, MSN Gaming Zone. [ 표 4. 바이킹바이러스에감염되지않는폴더목록 ] 5-2-3. 파일감염바이킹바이러스는정상파일의앞부분에자신의코드를삽입하는전위형바이러스이다. 감염전 정 상 파 일 감염후 바 이 킹 정 상 파 일 [ 표 5. 감염전후파일구조 ] 바이킹바이러스가실행되면 %windir% 폴더에자신의복사본 (.exe,.dll) 을생성하고 %windir% Logo1_.exe %windir% rundl132.exe

%windir% Dll.dll 또는 vidll.dll 또는 vdll.dll 자신의코드를복제하기위한 *.exe 를검색하고조건이일치한 exe 파일을찾았을경우해당파일의앞부분에자신의코드를삽입한다. 감염된파일의크기는바이킹바이러스의원래크기만큼이증가하게되며아래로그는 Sysinternal(http://www.sysin ternals.com) 사의 Filemon 을사용하여바이킹바이러스가정상파일에자신의코드를복제하는과정을로그로기록한것이다. Logo1_.exe:456 OPEN E: Analysis Hacview PEDUMP32.EXE SUCCESS Options: Open Access: All Logo1_.exe:456 QUERY INFORMATION E: Analysis Hacview PEDUMP32.EXE SUCCESS Length: 29184 1 Logo1_.exe:456 READ E: Analysis Hacview PEDUMP32.EXE SUCCESS Offset: 0 Length: 27111 <-- virus code Logo1_.exe:456 READ E: Analysis Hacview PEDUMP32.EXE SUCCESS Offset: 0 Length: 28672 2 Logo1_.exe:456 READ E: Analysis Hacview PEDUMP32.EXE SUCCESS Offset: 0 Length: 29184 <-- file size Logo1_.exe:456 WRITE E: Analysis Hacview PEDUMP32.EXE SUCCESS Offset: 0 Length: 27111 3 Logo1_.exe:456 WRITE E: Analysis Hacview PEDUMP32.EXE SUCCESS Offset: 27111 Length: 29184 Logo1_.exe:456 READ E: Analysis Hacview PEDUMP32.EXE SUCCESS Offset: 53248 Length: 4096 Logo1_.exe:456 SET INFORMATION E: Analysis Hacview PEDUMP32.EXE SUCCESS FileBasicInformation Logo1_.exe:456 CLOSE E: Analysis Hacview PEDUMP32.EXE SUCCESS [ 표 6. 바이킹바이러스의감염과정로그 ] [ 그림 2. 감염후 vs 전파일의앞부분 ] 이미감염된파일들의속성은감염될때의시간으로변경된다. [ 그림 3. 감염된파일의속성 ].Upack:00409619 lea eax, [ebp+lastwritetime].upack:0040961c push eax ; lplastwritetime.upack:0040961d lea eax, [ebp+lastaccesstime].upack:00409620 push eax ; lplastaccesstime.upack:00409621 lea eax, [ebp+creationtime].upack:00409624 push eax ; lpcreationtime.upack:00409625 push ebx ; hfile.upack:00409626 call GetFileTime.Upack:0040962B push 0 ; dwmovemethod.upack:0040962d push 0 ; lpdistancetomovehigh.upack:0040962f push 0 ; ldistancetomove.upack:00409631 push ebx ; hfile.upack:00409632 call SetFilePointer

---- 중간생략 ----.Upack:004096A9 ; sub_409518+155 j....upack:004096a9 lea eax, [ebp+lastwritetime].upack:004096ac push eax ; lplastwritetime.upack:004096ad lea eax, [ebp+lastaccesstime].upack:004096b0 push eax ; lplastaccesstime.upack:004096b1 lea eax, [ebp+creationtime].upack:004096b4 push eax ; lpcreationtime.upack:004096b5 push ebx ; hfile.upack:004096b6 call SetFileTime.Upack:004096BB mov edx, esi.upack:004096bd mov eax, edi.upack:004096bf call sub_4024b4 [ 표 7. 감염된파일의속성을설정하는루틴 ] 5-2-4. 기타증상 바이킹바이러스는윈도우가부팅할때자동으로실행되도록아래루틴을사용하여자신의값을추가하며일부루틴은분석될 수없도록암호화되어있다. HKEY_CURRENT_USER Software Microsoft Windows NT CurrentVersion load="%windir% rundl132.exe".upack:004077f5 lea eax, [ebp+szshortpath].upack:004077fb push eax.upack:004077fc lea edx, [ebp+var_120].upack:00407802 mov eax, offset _str 1.Text <--- 암호화되어있는 Subkey.Upack:00407807 call sub_404af8 <--- 암호화된 Subkey 를복호화하는루틴.Upack:0040780C mov eax, [ebp+var_120].upack:00407812 call @System@@LStrToPChar$qqrv ; System:: linkproc LStrToPChar(void).Upack:00407817 mov edx, eax.upack:00407819 mov ecx, offset dword_4078ac <--- load.upack:0040781e mov eax, 80000001h <--- HKEY_CURRENT_USER.Upack:00407823 call sub_4053e8 <--- 레지스트리관련셋팅 API 함수호출루틴 [ 표 8. 자동실행루틴 ] 감염된파일이존재하는폴더마다감염시간이저장된 _desktop.ini 를생성한다. ex) 시스템시간 : 2006 년 10 월 30 일경우 => _desktop.ini 에는 2006/10/30 으로저장된다. 감염된파일이실행될때마다 %temp% 폴더에 % 랜덤파일명 %.bat 를생성하며아래와같은내용을저장하고있다. 이는감염된파일이실행되면앞부분에삽입되었던바이러스코드가분리되어 %windir% Logo_1.exe( 바이킹의복사본 ) 로생성되고감염되었던파일은정상파일로복구된다. 하지만 Logo_1.exe 에의해서재감염될가능성이높아실행시바이러스코드와분리되어정상파일로복구된다하더라도의미가없다. :try1 Del "E: Analysis SysInternals procexp.exe" if exist "E: Analysis SysInternals procexp.exe" goto try1 ren "E: Analysis SysInternals procexp.exe.exe" "procexp.exe" if exist "E: Analysis SysInternals procexp.exe.exe" goto try2 "E: Analysis SysInternals procexp.exe" :try2 del "C: DOCUME~1 ahnmaru LOCALS~1 Temp $$ac.bat" [ 표 9. 감염된파일이실행될때의예 ]

.Upack:00407EC4 lea eax, [ebp+lastwritetime].upack:00407ec7 push eax ; lplastwritetime.upack:00407ec8 lea eax, [ebp+lastaccesstime].upack:00407ecb push eax ; lplastaccesstime.upack:00407ecc lea eax, [ebp+creationtime].upack:00407ecf push eax ; lpcreationtime.upack:00407ed0 push esi ; hfile.upack:00407ed1 call GetFileTime.Upack:00407ED6 lea eax, [ebp+var_2a0].upack:00407edc call sub_406688 <-- 윈도우폴더경로가져오기.Upack:00407EE1 mov edx, [ebp+var_2a0].upack:00407ee7 lea eax, [ebp+var_10].upack:00407eea mov ecx, offset _str_logo1 exe.text [ 표 10. 복사본생성하는루틴 ].Upack:00408018 mov edx, offset _str bat.text.upack:0040801d call sub_4049c0.upack:00408022 mov eax, [ebp+var_18].upack:00408025 call @System@@LStrToPChar$qqrv ; System:: linkproc LStrToPChar(void).Upack:0040802A push eax ; lpfilename.upack:0040802b call DeleteFileA.Upack:00408030 mov eax, [ebp+var_18].upack:00408038 mov edi, eax.upack:0040803a cmp edi, 0FFFFFFFFh.Upack:0040803D jz loc_4081b4.upack:00408043 push offset _str try1 Del.Text.Upack:00408048 lea edx, [ebp+var_2a8].upack:0040804e xor eax, eax.upack:00408050 call sub_4026c4.upack:00408055 push [ebp+var_2a8].upack:0040805b push offset _str.text.upack:00408060 push offset _str_if_exist.text.upack:00408065 lea edx, [ebp+var_2ac].upack:0040806b xor eax, eax.upack:0040806d call sub_4026c4.upack:00408072 push [ebp+var_2ac].upack:00408078 push offset _str 5.Text.Upack:0040807D push offset _str goto_try1.text.upack:00408082 push offset _str_ren.text.upack:00408087 push [ebp+var_14] [ 표 11. 표 9의내용을수행하는 bat 파일을만들기위한코드 ] 5-3. 관리목적의공유폴더 (IPC$, Admin$, C$ 등 ) 또는공유폴더 파일감염, 취약점 < 네트워크 앞서설명한두확산경로보다네트워크를통한자기복제가더큰파급효과를가지고있다는것을의미한다. 바이킹바이러스는네트워크로확산할때감염된시스템이속해있는네트워크대역으로 ARP(Broadcast) 를발생시키기때문에기업과같은중앙형네트워크에큰피해를줄수가있다. 아래그림은바이킹바이러스에감염된시스템이자기복제를위해다른컴퓨터를찾기위해 ARP(Broadcast) 를발생시키는패킷을 Ethereal(http://www.ethereal.com) 으로캡쳐한것이다.

[ 그림 4. ARP(Broadcast) 패킷 ] [ 그림 5. ICMP 패킷 ] [ 그림 6. ICMP 패킷에포함된문자열 ] 이후같은네트워크대역에서발견한컴퓨터로 ICMP 패킷을발송하는데 Hello, World(Offset 002a ~ 0034) 라는문자열이포함되어있는것이특징이다..Upack:00408323 push eax ; lpwsadata.upack:00408324 push 101h ; wversionrequested.upack:00408329 call WSAStartup.Upack:0040832E push offset dword_4085a0 ; lplibfilename : icmp.dll.upack:00408333 call LoadLibraryA.Upack:00408338 mov [ebp+hmodule], eax.upack:0040833b push offset dword_4085ac ; lpprocname : IcmpCreateFile.Upack:00408340 mov eax, [ebp+hmodule].upack:00408343 push eax ; hmodule.upack:00408344 call GetProcAddress.Upack:00408349 mov ebx, eax.upack:0040834b push offset dword_4085bc ; lpprocname : IcmpCloseHandle.Upack:00408350 mov eax, [ebp+hmodule].upack:00408353 push eax ; hmodule.upack:00408354 call GetProcAddress.Upack:00408359 mov [ebp+var_10], eax.upack:0040835c push offset dword_4085cc ; lpprocname : IcmpSendEcho.Upack:00408361 mov eax, [ebp+hmodule].upack:00408364 push eax ; hmodule.upack:00408365 call GetProcAddress ----중간생략----.Upack:004083ED mov ebx, offset dword_4085dc : Hello, World [ 표 12. ICMP 패킷을발생시키는코드 ]

바이킹바이러스는네트워크를통해자기복제를할경우, 두가지경우를통해할수있다. 공유폴더 IPC$, Admin$ 5-3-1. 공유폴더 바이킹바이러스는 sub_403bf8 루틴을호출하여공유폴더의목록을쿼리 (Query) 하고해당폴더에존재하는모든.exe 파일을 감염시킨다..Upack:00407C84 call sub_403bf8 ---- 중간생략 ----.Upack:00407C92 loc_407c92: ; CODE XREF: sub_407c24+e4j.upack:00407c92 xor eax, eax.upack:00407c94 mov [edi+4], eax.upack:00407c97 xor eax, eax.upack:00407c99 mov [edi+10h], eax.upack:00407c9c mov eax, [ebp+var_c].upack:00407c9f mov eax, [eax+ebx*4].upack:00407ca2 call @System@@LStrToPChar$qqrv ; System:: linkproc LStrToPChar(void).Upack:00407CA7 mov [edi+14h], eax.upack:00407caa xor eax, eax.upack:00407cac mov [edi+1ch], eax.upack:00407caf push 0 ; dwflags.upack:00407cb1 push 0 ; lpusername.upack:00407cb3 push offset Password ; lppassword.upack:00407cb8 push edi ; lpnetresource.upack:00407cb9 call WNetAddConnection2A.Upack:00407CBE test eax, eax.upack:00407cc0 jz short loc_407cd2.upack:00407cc2 push 0 ; dwflags.upack:00407cc4 push 0 ; lpusername.upack:00407cc6 push 0 ; lppassword.upack:00407cc8 push edi ; lpnetresource.upack:00407cc9 call WNetAddConnection2A.Upack:00407CCE test eax, eax.upack:00407cd0 jnz short loc_407d06 [ 표 13. 공유폴더를이용한자기복제루틴 ] 바이킹바이러스가공유폴더를통해자기를복제할수있는가능성은크게두가지이다. 공유자원에액세스할때사용하는계정과패스워드가저장된경우 Windows OS 계열의시스템 ( 특히 Windows 2000 이상 ) 의시스템에서는네트워크공유자원에액세스시인증을요구하는윈도우가출력된다. 이때사용자들은매번아래와같은창이출력되는번거로움을없애기위해서 " 암호저장 (R)" 에표시하는경우가많으나이는바이킹바이러스처럼네트워크를통해자기복제를하는악성코드에게좋은확산수단이되기도한다. 바이킹바이러스는네트워크공유자원 (Admin$, IPC$, 공유폴더 ) 에액세스할때감염된로컬에존재하는계정들그리고공유자원에액세스할때저장된계정정보들을순차적으로사용하여네트워크공유자원에대해접속을시도한다. 아래패킷을참고하면이해가될것이다.

[ 그림 7. 네트워크액세스정보를모두삭제한후상태 ] [ 그림 8. 네트워크액세스정보를캐싱한후상태 ] [ 그림 7] 과 [ 그림 8] 의공통점은바이킹바이러스에감염된상태의패킷을캡쳐한것이고 IP 1 번과 128 번간에공유자원에액세스하기위해서인증권한을얻기위해서협상하는과정이다. [ 그림 7] 에서는 Testvm1 의 administrator 계정과패스워드는 Null 값을사용하여 128 의공유자원에액세스하기위해서인증요청을했으나 128 은 Testvm1 의 administrator 에대한계정과패스워드정보가없기때문에로그인실패메시지로응답하였는데이는바이킹바이러스가네트워크를통해자신복제를실패했다는의미가된다. [ 그림 8] 도마찬가지로 Testvm1 의 administraotor 에대한계정과패스워드정보가없기때문에로그인실패메시지로 1 번에응답하였으나두번째 AVERT Anti-Virus_Expert78 로인증시도시에는성공하였음을알수가있는데이는 Anti-Virus_Expert78 에대한계정과패스워드정보가 128 번에저장되어있기때문이다. 공유자원에대한권한이모든권한 (Full Control) 일경우 Windwos 2000 이상의 OS 에서는공유폴더의권한보다로컬시스템의권한이우선한다. 이는로컬시스템의공유된자원에모든권한 (Full Control) 이설정되어있다하더라도해당폴더에대한로컬의권한이읽기권한이라면최종으로적용되는권한은읽기가된다. 따라서바이킹바이러스가공유폴더에존재하는 exe 파일을감염시키기위해서접속시사용하는계정의권한이최소한쓰기 (Write) 를가지고있었다는결론이된다. 공유폴더의권한 로컬의권한 모든권한 (Full Control) < 읽기 (Read) [ 그림 9. Temp 폴더의권한이읽기 (Read) 일경우 ]

[ 그림 9] 처럼공유자원에읽기권한만설정되어있을경우 _desktop.ini 가존재하는지에대한쿼리를한후연결을종료시킴을확인할수가있다. [ 그림 10. 쓰기 (Write) 이상의권한이부여된경우 ] 1 공유폴더에 _desktop.ini 파일및해당폴더내에존재하는 *.exe 파일을감염시키기위해서쿼리발송 2 6 번째 : 공유폴더의하위폴더목록 3 나머지 : 1 과동일한과정 관리목적의공유폴더 (IPC$, Admin$) 를통해바이킹바이러스는 IPC$ 와 Admin$ 를통해서자기복제를할수있다. 이는관리목적의공유폴더에접근시사용되는계정정보가목적지시스템의관리자 ( 또는그에준한권한을가진계정 ) 에유사한권한을갖고있음을의미한다..Upack:0040896B push offset _str 2.Text.Upack:00408970 push [ebp+var_4].upack:00408973 push offset _str ipc$.text.upack:00408978 lea eax, [ebp+var_14] ----중간생략----.Upack:00408987 mov [ebp+netresource.dwtype], eax.upack:0040898a xor eax, eax.upack:0040898c mov [ebp+netresource.lplocalname], eax.upack:0040898f mov eax, [ebp+var_14].upack:00408997 mov esi, eax.upack:00408999 mov [ebp+netresource.lpremotename], esi.upack:0040899c xor eax, eax.upack:0040899e mov [ebp+netresource.lpprovider], eax.upack:004089a1 mov edx, offset dword_408d48 <--- administrator.upack:004089a6 mov eax, (offset Context.ExtendedRegisters+68h).Upack:004089AB call sub_404610.upack:004089b0 mov byte_412c14, 0.Upack:004089B7 push 0 ; dwflags.upack:004089b9 push (offset Context.ExtendedRegisters+68h) ; lpusername.upack:004089be push offset byte_412c14 ; lppassword.upack:004089c3 lea eax, [ebp+netresource].upack:004089c6 push eax ; lpnetresource.upack:004089c7 call WNetAddConnection2A.Upack:004089DE lea eax, [ebp+netresource].upack:004089e1 push eax ; lpnetresource.upack:004089e2 call WNetAddConnection2A ----------------------------------------------------------------------------------------.Upack:00408A80 loc_408a80: ; CODE XREF: sub_408914+165 j.upack:00408a80 push offset _str 2.Text.Upack:00408A85 push [ebp+var_4]

.Upack:00408A88 push offset _str admin$.text --- 중간생략----.Upack:00408A9C mov [ebp+netresource.dwtype], eax.upack:00408a9f xor eax, eax.upack:00408aa1 mov [ebp+netresource.lplocalname], eax.upack:00408aa4 mov eax, [ebp+var_18].upack:00408aac mov [ebp+netresource.lpremotename], eax.upack:00408aaf xor eax, eax.upack:00408ab1 mov [ebp+netresource.lpprovider], eax.upack:00408ab4 push 0 ; dwflags.upack:00408ab6 push edi ; lpusername.upack:00408ab7 push esi ; lppassword.upack:00408ab8 lea eax, [ebp+netresource].upack:00408abb push eax ; lpnetresource.upack:00408abc call WNetAddConnection2A [ 그림 11. 관리목적공유폴더를통해자기복제시트래픽 ] 6. 바이킹바이러스, 왜위험한가? 지금까지분석된내용을통해바이킹바이러스가왜위험한지를알수가있었다. 하지만바이킹바이러스는자기복제뿐만아니라감염시특정 URL 로부터특정온라인게임사용자의개인정보를유출할수있는 PSW 형의트로이목마를다수다운로드한후실행한다는것에추가적으로위험성이존재한다고할수있다. [ 그림 12. PSW 트로이목마다운로드 ]