7.7 DDoS 분석

취약점 분석/2009년 이후 2009. 7. 14. 14:09 Posted by TEAMCR@K

7.7 DDoS 분석


By minams (minams@a3sc.co.kr)

 
I. 개요
7.7 DDOS 공격은 2009년 7월 4일 미국 주요사이트들을 대상으로 공격이 시작되었으며, 국내 최초공격은 7월 7일 PM 6~7시경 네이버 메일(mail.naver.com) 서비스에서 발견되었습니다. 이후, 정부, 대기업 등을 주요대상으로 하여 7월 10일 00시까지 공격이 계속되었으며, "인터넷 대란 시즌2", "7.7 DDOS 공격"으로 불리고 있습니다.


II. 공격 분석
7.7 DDOS 공격은 대상 및 공격을 최초 감염시킨 Msiexec.exe(Windows Installer)를 통해 다운받아 실행시키는 구조를 가지고 있었습니다. 다시 다운받은 악성코드들은 스스로 대상 및 공격코드를 생성하여 다양한 공격을 수행하고 있었습니다.


공격에 사용된 주요 파일과 역할 입니다.


[표 1] 분석 악성코드 및 역할

  

Msiexec.exe

최초 악성코드 전파 파일

msiexec1.exe

wmiconf.dll, uregvs.nls, vme.bat 생성 WmiConfig 서비스 등록

msiexec2.exe

uregvs.nls, vme.bat 생성

msiexec3.exe

uregvs.nls, vme.bat 생성

wmiconf.dll

ddos - GET Flooding 수행

mstimer.dll

mail 전송, 특정 조건에 의해 wversion.exe 실행

flash.gif

개의 실행파일(wversion.exe 포함) 가지고 있습니다.

uregvs.nls

ddos 공격대상 공격 시간 정보 포함

wmcfg.exe

wversion.exe 생성 Windows Timer Service(mstimer.dll) 서비스 등록

wversion.exe

특정 확장자를 가진 파일 하드디스크 파괴 수행

 

다음은 각 공격 모듈 별 구성도 입니다.


[그림 1] 7.7 DDOS 공격 흐름



[ 최초감염 ]

1. 최초Msiexec.exe(Windows Installer)를 감염시켜 해당 프로그램을 통해 msiexec1.exe, msiexec2.exe … 등의 악성파일을 다운로드 받아 실행시키게 됩니다.
 - Msiexec.exe(Windows Installer) bot agent와 유사한 기능을 하게 됩니다.



[ DDOS 공격 ]
1. Msiexec.exe를 통해 다운받아 실행되는 msiexec1.exe을 실행하면 공격대상이 들어있는 파일(uregv.nls), 다운받아 실행한 msiexec1.exe를 삭제하는 스크립트 파일(vme.bat), 그리고 마지막으로 wmiconf.dll을 생성하여 윈도우 서비스에 등록시켜 uregv.nls에서 공격대상을 읽어 DDOS 공격을 수행하게 됩니다.


2. 일부 msiexec2.exe등에는 wmiconf.dll 을 생성하는 코드가 포함되지 않고 미리 생성된 서비스를 이용하여 단순히 공격 대상 파일(uregv.nls)만 변경하는 역할만 하고 있었습니다.



[ 스팸메일 전송 ]
변종이라 발견된 msiexec*.exe 중에는 wmcfg.exe를 생성 실행하고 있었으며, wmcfg.exe를 실행하게 되면, mstimer.dll을 생성하여 Windows Timer Service로 등록하여 스팸메일 전송 등의 공격을 수행하게 됩니다. 이외에 wversion.exe파일을 생성하게 됩니다.


[ 하드 디스크 파괴 ]
wmcfg.exe 에 의해 생성된 wversion.exe 파일은 mstimer.dll에 의해 다운된 flash.gif의 일부와 합쳐져 하드디스크 파괴를 수행하게 됩니다. wversion.exe는 mstimer.dll에 의해 특정 조건(2009. 7. 10)이 만족할 경우 수행하게 되며, 로컬 하드디스크의 A~Z까지 읽어 MBR등을 파괴하게 됩니다. 파괴 전, doc, xml, ppt … 등 대부분의 중요한 확장자를 검사하여 파일을 암호화함으로 하드 디스크의 복구는 힘들게 됩니다.



 
II. 주요 악성코드 분석

1. DDOS 공격(msiexec*.exe )

msiexec1.exe에는 wmiconf.dll을 생성하고 서비스를 등록하는 코드가 포함 되어 있었지만, msiexec2.exe와 msiexec3.exe은 단지 대상과 자신을 삭제하는vme.bat 파일을 만들어 실행하는 코드만 포함되어 있었습니다.

                                                                      [그림 2] msiexec1.exe


                                                    [그림 3] WMI Performance Configuration Service



msiexec1, msiexec2에서 생성되는 대상은 각자 달랐으며, msiexec1에 의해 생성된 대상에 우리나라가 포함되어 있지 않았습니다.


아래 목록은 2차 공격에 사용된 것으로 파악되는 공격 리스트(msiexec2.exe에서 생성) 입니다.

                                                         [그림 4] msiexec2 – uregvs.nls 생성


                                                                [그림 5] uregvs.nls – 공격대상


마지막으로 msiexec*.exe에서 생성된 vme.bat 파일은 다운받은 파일이 삭제가 될때까지 계속 삭제되도록 만들어져 있으며, 삭제가 되면 자신도 삭제하게 됩니다.

 :L1
del "C:\Documents and Settings\...\msiexec\msiexec2.exe"
if exist "C:\Documents and Settings\...\msiexec\msiexec2.exe" goto L1
del "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\vme.bat"

                                                                [그림 6] vme.bat – 생성파일 삭제



2. DDOS 공격(wmiconf.dll)

wmiconf.dll은 msiexec1.exe를 통해 생성되었으며, WmiConfig라는 서비스로 등록되어 있으며, 해당 서비스에는 DDOS 공격에 사용한GET Flooding 루틴이 포함되어 있습니다. 공격대상 파일(uregvs.nls)를 읽어 해당 대상으로 공격을 시도하게 됩니다.

다음은 공격대상 파일(uregvs.nls)를 읽어 들여 공격에 사용할 HTTP GET packet을 만들어 내는 코드 입니다.
효과적인 공격효과를 위해 response를 캐시에 저장하지 못하도록 Cache-Control: no-store, must-revalidate를 해더에 추가하는 코드가 포함되어 있습니다.


                                                           [그림 7] wmiconf.dll – get flooding


3. 로컬 디스크 파괴(wmcfg.exe)
wmcfg.exe는 악성 메일을 전파하는 Windows Timer Service(mstimer.dll)를 생성하고, 악성코드에 의해 생성된 파일 등을 삭제하는 루틴이 포함되어 있습니다.
 

아래는 Service를 등록하는 코드와 윈도우 실제 실행되어 등록된 화면입니다.


                                                            [그림 8] wmiconf.dll – get flooding


                                                           [그림 9] Windows Timer Service



4. 로컬 디스크 파괴(mstimer.dll)

Wmcfg.exe에 의해 생성된 mstimer.dll은 20byte의 첨부파일이 담긴 메일을 전송하는 기능을 가지고 있으며, 인터넷을 통해 다운받은 flash.gif에는 실행파일이 두 개의 실행파일이 들어있으며, 그 중 하나가 wversion.exe이며 특정 조건을 만족하게 되면 wversion.exe을 실행시키게 됩니다.


                                                   [그림 10] flash.gif파일 안의 wversion.exe


flash.gif를 다운받으며, 이를 통해 wversion.exe을 실행시키게 됩니다.
또한, mstimer.dll이 보낸 메일은 다음과 같습니다. Memory.rar라는 이름을 갖은 파일은 20byte로 네트워크에 부하를 주기 위한 것으로 보여지고 있습니다.

                                                                   [그림 11] mstimer.dll – mail

 


5. 로컬 디스크 파괴(wversion.exe)

wversion.exe에는 실제 하드디스크의 MBR등을 “Memory of the Independence Day”로 Overwrite(로컬 하드디스크를 파괴하는 기능)하게 됩니다.


 

                                                            [그림 12] C 드라이브 MBR 파괴



III. 조치

- 안전모드로 부팅(F8)하여 시스템 시간을 2009. 7. 10 이전으로 설정하고 재 부팅하여 최신 업데이트 된 백신을 이용하여 치료할 수 있습니다.
- 일반 PC 사용자들의 백신 실시간 업데이트 및 운영체제 업데이트를 생활화 해야 합니다.

백신 다운로드 : http://v3asec.v3webhard.com/ddos/vaccine/v3filecleanex.exe


※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.