반응형

2009. 7. 7 DDoS 공격

 

 

2009년 7월 7일 DDoS 대란이 일어났고, 7월 9일 국가정보원에서는 이 DDoS공격이 북한의 110호 연구소로 추정된다는 발표를 했고, 보안업체에서는 미국과 한국을 포함한 여러 국가의 IP에서 공격이 발생되었다고 추정했다.   

이 DDoS공격으로 조선일보, 청와대, 옥션, 국방부 등의 인터넷 사이트들이 마비되었다. 

이때 공격을 유발한 악성코드는 완전히 치료되지 않아서 1년 후인 2010년 7월 7일 저녁 6시에 국내 공공기관, 금융, 포털 등의 사이트들이 소규모 DDoS공격을 받았다.

 

1차공격: 한국과 미국을 타겟으로 7월 7일 오후 6시부터 24시간 동안 지속되었다. 이때 청와대, 백악관, 한국의 언론사와 정당, 포털의 홈페이지들이 공격받았다.

 

2차공격: 7월 8일 오후 6시부터 24시간동안 지속되었다. 이 공격은 1차 공격 리스트에 있었던 사이트 일부와 주요 포털 사이트의 메일 서비스를 대상으로 했다.

 

3차 공격: 7월 9일 오후 6시에 시작되었고, 국가정보원과 일부 금융사 홈페이지들이 장애를 빚었으나 3시간 후에 정상화 되었다(출처 필요).

 

공격에 사용된 웜 바이러스 중 일부에 하드디스크를 파괴하는 코드가 존재했고, 이로 인한 피해 사례가 있었다.

 

*DDoS(Distributed Denial-of-Service attack, 분산 서비스 거부 공격)은 여러 대의 공격자를 분산적으로 배치해 동시에 서비스 거부 공격(시스템을 악의적으로 공격해 해당 시스템의 자원을 고갈시켜 원래 의도된 용도로 사용하지 못하게 하는 공격)을 하는 방법이다. 

 

다음은 이 7.7 DDoS공격에 사용된 악성코드들이다.

 

1. msiexec1.exe(Win-Trojan/Downloader.374651)-주요 프로그램

2. msiexec2.exe(Win-Trojan/Agent.33841)

3. msiexec2.exe(Win-Trojan/Agent.24576.AVC)

4. msiexec3.exe(Win-Trojan/Agent.32768.AIK)

5. msiexec3.exe(Win-Trojan/Agent.24576.AVD)

[다수의 msiexec*.exe 파일들이 발견되었고, uregvs.nls 파일이 실행되면 삭제된다.]

6. uregvs.nls(BinImage/Host)-5개의 다른 uregvs.nls파일들이 발견됨

7. wmiconf.dll(Win-Trojan/Agent.67072.DL)-DDoS공격

8. perfvwr.dll(Win-Trojan/Agent.65536.VE)-DDoS공격

9. mstimer.dll(Win32/Mydoom.worm.45056.D)

10. wmcfg.exe(Win-Trojan/Mydoom.88064)

11. wversion.exe(1st)(Win32/Mydoom.worm.33764)-mstimer.dll 실행을 지원

12. wversion.exe(2nd)(Win-Trojan/Destroyer.37264)-하드웨어, 파일 손상

 

다음은 2009년 7월 7일 DDoS공격의 흐름을 나타낸 그림이다.

Win-Trojan/Downloader.374651

 

이 트로이목마는 7.7 DDoS 관련 악성코드로 파일 이름은 msiexec1.exe이고, DDoS공격을 수행하는 DLL파일을 생성한다. 정확한 감염 경로는 알려지지 않았다.

 

이 트로이목마가 실행되면 다음의 호스트로 접속을 시도한다. 

 

-213.***.41.53

-216.***.203.80

-213.***.210.443

 

현재 위 호스트로의 접속은 되지 않고, 접속이 성공하면 윈도우 시스템 폴더에 무작위 크기를 갖는 pxdrv.nls파일을 생성하고, 접속이 실패하면 0바이트 파일을 생성한다. pxdrv.nls파일은 버전 정보로 추정되는 데이터를 갖고 있다고 추정된다.

 

다음으로 아래의 tmp파일을 생성하는데 winpcap.lib파일들로 변환된 후 삭제된다.

 

C:\DOCUME~1\(사용자 계정명)\LOCALS~1\Temp\_S3.tmp(wmiconf.dll→Win-Trojan/Agent.67072.DL)
C:\DOCUME~1\(사용자 계정명)\LOCALS~1\Temp\_S4.tmp(wpcap.dll)
C:\DOCUME~1\(사용자 계정명)\LOCALS~1\Temp\_S5.tmp(packet.dll)
C:\DOCUME~1\(사용자 계정명)\LOCALS~1\Temp\_S6.tmp(wanpacket.dll)
C:\DOCUME~1\(사용자 계정명)\LOCALS~1\Temp\_S7.tmp(npf.sys)
C:\DOCUME~1\(사용자 계정명)\LOCALS~1\Temp\_S8.tmp(npptools.dll)
C:\DOCUME~1\(사용자 계정명)\LOCALS~1\Temp\_S9.tmp(wmcfg.exe→Win-Trojan/Mydoom.88064)

 

위 tmp 파일은 zlib로 압축된 형식의 임시파일이고 다음과 같이 DDoS공격에 필요한 WinPcap 라이브러리 파일로 변환되어 윈도우 시스템 폴더에 생성된다.

*아래 파일들은 정상적인 WinPcap 파일들이다.

wmiconf.dll, wpcap.dll, packet.dll, WanPacket.dll, npf.sys, npptools.dll, wmcfg.exe

그러나 wmiconf.dll과 wmcfg.exe는 DDoS공격에 이용되고, 각각 Win-Trojan/Agent.67072.DL, Win-Trojan/Mydoom.88064으로 진단된다.

 

Win-Trojan/Agent.67072.DL은 Win-Trojan/Downloader.374651에 의해 생성되고 "WMI Performance Configuration"이라는 서비스명으로 자신을 서비스로 등록해 동작한다. 다음으로 레지스트리에 다음 값을 추가해 윈도우 시작 시 서비스로 자동으로 실행되게 한다. 

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WmiConfig\

ImagePath="%systemroot%system32\svchost.exe -k wmiconf"

 

또한 msiexec*.exe 파일을 생성하고 이 생성된 파일들은 uregvs.nls파일을 생성하는데 여기에는 공격할

서비스 시작 3분 후 uregvs.nls파일의 내용을 참고해 DDoS공격을 한다. 

*악성코드가 동작하면 1대의 시스템에서 초당 1050패킷, 100k바이트 정도 발생한다. 1대의 시스템에서 공격 대상 호스트로 초당 100패킷, 7k바이트 정도 발생된다.(Win-Trojan/Agent.67072.DL 설명 끝)

 

wmcfg.exe는 보통 정상적으로 실행되지는 않으나 만약 정상적으로 실행된다면 다음의 파일 이름으로 생성된다

 

-wversion.exe(Win32/Mydoom.worm.33764)

-mstimer.dll(Win32/Mydoom.worm.45056.D)

 

위의 두 파일로부터 flash.gif가 생성되고, Memory of ......라는 제목의 스팸메일을 발송한다.

flash.gif파일은 JPG 파일이지만 내부에는 윈도우 실행 파일을 가지고 있다. 그 실행 파일 이름은 wversion.exe(Win-Trojan/Destroyer.37264)인데 앞에서의 wversion.exe(Win32/Mydoom.worm.33764)와는 다른 파일이다. 이 파일은 msvcr90.dll파일이 있을 경우, 파일 및 하드디스크 파괴 증상을 일으킨다.

 

Win-Trojan/Destroyer.37264

 

wmcfg.exe가 실행된 후 mstimer.dll에 의해 다운로드 되는데 msvcr90.dll 파일이 존재하는 경우에만 작동한다. 

msvcr90.dll파일이 동작되는 환경은 Windows Vista 또는 .NET Framework(닷넷 프레임워크)가 설치된 Windows 2000/XP/2003이다. 

 

따라서 msvcr90.dll파일이 없으면 wmcfg.exe파일은 실행되지 않고 mstimer.dll도 실행되지 않으므로 이 경우는 파일 및 디스크 파괴가 일어나지 않는다. 

 

2009년 7월 10일 00시(자정) 이후로 파괴증상이 시작된다. 먼저 사용자 시스템의 드라이브

("\\.\PHYSICALDRIVE25"~"\\.\PHYSICALDRIVE0")

의 시작부터 일정 크기만큼을 특정한 문자열(Memory of the Independence Day)로 채운다.

즉 A부터 Z드라이브의 물리적인 첫 시작위치부터 이 문자열 데이터를 삽입함으로써 정상적인 시스템의 MBR(마스터 부트 레코드)이 손상되는 증상이 발생한다(이동식 디스크(예: USB)가 연결되었으면 같이 손상된다).

 

삽입되는 데이터의 내용은 다음과 같다.  

 

008F1850 4D 65 6D 6F 72 79 20 6F 66 20 74 68 65 20 49 6E Memory of the In
008F1860 64 65 70 65 6E 64 65 6E 63 65 20 44 61 79 00 00 dependence Day..
008F1870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008F1880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008F1890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008F18A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008F18B0 00 00 00 00 55 55 55 55 55 55 55 55 55 55 55 55 ....UUUUUUUUUUUU
008F18C0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F18D0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F18E0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F18F0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1900 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1910 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1920 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1930 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1940 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1950 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1960 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1970 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1980 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1990 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F19A0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F19B0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F19C0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F19D0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F19E0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F19F0 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1A00 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1A10 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1A20 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1A30 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
008F1A40 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU

 

디스크가 파괴되어 "Operating System not found"라는 메세지가 뜨고 더 이상의 부팅이 되지 않는다.

 

다음으로 중요한 문서 및 파일들에 대한 손상을 일으키는데 먼저 고정 드라이브만을 대상으로 아래의 확장자 파일들을 찾는다(이동식 디스크와 CD-ROM은 제외).


".doc"
".docx"
".docm"
".wpd"
".wpx"
".wri"
".xls"
".xlsx"
".mdb"
".ppt"
".pptx"
".pdf"
".accdb"
".db"
".dbf"
".rtf"
".txt"
".hwp"
".hna"
".gul"
".kwp"
".eml"
".pst"
".xml"
".alz"
".gho"
".rar"
".php"
".asp"
".aspx"
".jsp"
".java"
".cpp"
".c"
".pas"
".cpp"
".zip"

 

찾은 파일들은 파일의 속성을 NORMAL로 변경한 다음 파일의 시작부터 0xA000만큼을 NULL값으로 채워 손상시킨다. 만약 파일의 크기가 0xA000보다 작으면, 그 파일 전체는 NULL로 채워진다. 

손상되기 전의 파일은 아래의 확장자로 압축 저장되어 있다. 

 

".zip"
".zoo"
".arc"
".lzh"
".arj"
".gz"
".tgz"

 

이 압축파일에는 8자리의 무작위 값으로 암호가 걸려있다. 

 

참고:

안철수연구소

ko.wikipedia.org/wiki/7%C2%B77_DDoS_%EA%B3%B5%EA%B2%A9

a3sc.co.kr/m/01/com07.php?ptype=view&idx=5238&page=1&code=info4

caislab.kaist.ac.kr/lecture/2010/spring/cs448/2010_AntiMalware_KAIST_201004_2-2p.pdf

반응형

'기타 지식 저장소 > 악성코드 관련정보' 카테고리의 다른 글

Windows 불법복제 경고 영상  (0) 2021.02.04
Win-Trojan/Gpcode.56832  (0) 2021.01.23
Win-Trojan/PWS-Cardnum.36864  (0) 2021.01.22
Win32/Mugly.worm.423814/327168  (0) 2021.01.21
Win32/Mimail.worm  (0) 2021.01.20
Posted by skywalker222