저의 첫 책이 세상에 나옵니다.


- 보안에 미쳐라 : 유쾌 상쾌 통쾌한 보안 이야기

http://www.yes24.com/24/goods/29333992?scode=032&OzSrank=1




보안에 관심 가진 사람들 대상(취업 준비생...)이라 기술적인 내용은 별로 없습니다.

그래서 재미있게 쓰려다보니 저자 소개에 덕밍아웃을 했는데...

살짝 부끄럽네요 ㅋ






많이 팔렸으면 좋겠네요 ㅋㅋ



저작자 표시
신고
Posted by mstoned7

댓글을 달아 주세요

  1. 2016.07.08 02:09  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. 애뽀 2016.07.25 16:22 신고  댓글주소  수정/삭제  댓글쓰기

    저 책은 꼭사봐야겠네요!

  3. 컴도사 2016.08.10 13:15 신고  댓글주소  수정/삭제  댓글쓰기

    우와
    존경합니다!~^^

  4. 애뽀 2017.11.11 21:07 신고  댓글주소  수정/삭제  댓글쓰기

    나오자마자 사서 읽었습니다 어느덧 1년이 지났네요... 책이 너무 재밌습니다! 1년이 지나서야 댓글을 달아보네요.. ㅠㅠ

매일 반복되는 샘플 분석 중에는 어디서 본 듯한 샘플을 분석하기 보다 새로운 샘플 분석이 아무래도 더 재미있죠.


뭔가 이상한 샘플이 눈에 띄었습니다.

 

Pdb 정보에는 TroyaN, DayZHack와 같은 문자열이 존재해 의심하기 충분했습니다.





변형을 검색해보니 6개나 있더군요.


그리고, 군과 관련된 문자열, Bot, Zombie 등의 문자열이 나와서 더욱 확실해 졌습니다.




요걸로 페이퍼나 하나 쓸까하는 행복한(?) 상상도 끝...


IDA로 실제 코드를 봤을 때 키로깅에서 많이 사용되는 API가 보였지만 웬지 평범한(?) 백도어와는 달랐습니다.


이 샘플이 이상하다고 느낀 결정적인 사항은 d3d9.dll을 이용하는 코드였습니다.

문득 다이렉트X 3D 버전9 파일이 아닐까 하는 생각이 들더군요.



악성코드에서 웬 다이렉트 X를... ?!


몇가지 정황에서 이건 게임과 관련된게 아닐까하는 의심이 들었습니다.


인터넷 검색을 통해 DayZ라는 게임이 있네요. (....)




뭔가 새로운 악성코드라고 생각했는데 게임 봇이었다니…

약간의 허털감...



어릴 때부터 컴퓨터를 해왔고 게임을 즐겨 했지만 나이가 들면서 게임 할 시간이 없고 요즘 게임은 거의 하지 못해 게임을 잘몰라서 발생한 일입니다.

특히 악성코드와 게임 오토 프로그램 용어가 유사 (Hack, bot, zombie, Troyan ....)하고 입력 부분을 가로채는 기능 등이 존재해 발생하는 헤프닝이기도 합니다.



결론은 악성코드 분석가들이여 게임을 하자 !

(좀.. 이상하네요 ㅋ)




저작자 표시
신고
Posted by mstoned7

댓글을 달아 주세요

  1. Codetronik 2014.07.28 14:58 신고  댓글주소  수정/삭제  댓글쓰기

    그래서 제가 보안을 더 잘하기 위해 최신 게임의 트렌드를 파악하고 있죠~!(라고 자기 합리화 중)

페북 모님으로 부터 패킷을 받았습니다.

(다시 한번 감사합니다.)


fiddler에서 사용하는 saz 이군요.

(실제 파일은 zip 파일입니다.)


1. fiddler 설치


fiddler은 .Net 을 필요로 합니다.

윈도우 7에서는 닷넷 4.x가 포함되어 있으니(저는 별도 설치한 기억이 없으니) fiddler v4 버전을 설치합니다.


http://www.telerik.com/download/fiddler 에서 다운로드 합니다.


회사에서는 대체로 자동화된 시스템에서 샘플이 수집 되어서 패킷을 보는 경우는 많지 않은데 요즘은 fiddler 를 많이 사용하더군요.


몇 번 사용 안 해봐서 아직 익숙하지는 않습니다.



2. saz 열기


[File] -> [Load Archive]로 saz 파일을 엽니다.

그럼 주고 받은 패킷이 화면에 나옵니다.



3. 경유지 찾기


어떤 tistory.com 에 접속했을 때 패킷 기록임을 알 수 있습니다.


흐름을 보니 갑자기 이상한 사이트(www.happy*.co.kr/css/index.html)가 눈에 들어옵니다.




코드도 좀 이상합니다.




이 페이지를 어디서 로드하는지 역으로 하나하나 패킷 내용을 확인합니다.

광고 플러그인 페이지에서 iframe으로 www.happy*.co.kr/css/index.html을 로드하는걸 볼 수 있습니다.






오케이...

티스토리 접속 -> 광고 플러그인 로드 -> 광고 플러그인은 iframe으로 www.happy*.co.kr/css/index.html 로드 라는걸 알 수 있습니다.


4. 배포처 찾기


좀 더 내려가보면 www.car*.net/data/file/b.exe에서 파일을 다운로드 되는걸 확인 할 수 있습니다.


파일도 MZ와 PE 를 포함하고 있으니 PE 파일임을 알 수 있습니다.



배포 된 주소해 파일을 다운로드 하려니 '공격 사이트 보고!'가 가로 막아 버리네요.

(현재는 해당 파일이 삭제되어서 파일이 다운로드 되지 않습니다.)




5. b.exe 뽑아 내기


웹브라우저에서 접근 할 수 없으니 (다른 웹브라우저를 이용하거나 wget으로 다운로드 하면 됩니다만...)

Fiddler에서 파일 다운로드 해보겠습니다.


일단 www.car*.net/data/file/b.exe 요청 부분으로 옮겨갑니다.


파일 저장은 [File] -> [Save] -> [Response] -> [Response Body]로 할 수 있습니다.


http://www.car*.net/data/file/b.exe 를 요청해서 응답하는(Response Body)만 받으면 악성코드 본체만 다운로드 할 수 있습니다.





b.exe 다운로드 창이 뜹니다.




이제 저장하고 (안전을 위해 확장자를 exe_와 같이 바꿔주는 센스!)




*** 결론


패킷이나 이런 부분은 시큐리티 파트 분들이 잘하다보니 저의 툴 사용 방법을 보고 뭘 저렇게 해 ?! 하는 분들도 있을 듯 합니다.

오래된 파일 분석가의 한계... TT

요즘 어린(?) 분석가들은 이런 툴 잘 사용하겠죠 ?!





신고
Posted by mstoned7

댓글을 달아 주세요

  1. 벌새 2014.03.16 21:28 신고  댓글주소  수정/삭제  댓글쓰기

    Fiddler로 파일 추출하는 것은 저 방법이 정석일 것 같습니다.^^

  2. Auditor Lee 2014.03.17 00:55 신고  댓글주소  수정/삭제  댓글쓰기

    이미 패킷 캡처된 거라서 우측 창의 소스를 에디터에 복사&붙여넣기 하고 다른 이름으로 저장하면 됩니다.

    • mstoned7 2014.03.17 09:13 신고  댓글주소  수정/삭제

      패킷과 사용법 다시 한번 감사합니다. safari에서도 제 블로그 지금 차단 중이네요 TT 광고 플러그인도 뺐는데.. 구글에서 아직 제외 안했나 보네요 ㅎㅎ

  3. 애뽀 2016.05.29 00:14 신고  댓글주소  수정/삭제  댓글쓰기

    쿨캣님 fidder이 설치는 되지만 켜지지가 않을땐 어찌해야하나요...

해킹 사건이 있었습니다.




관련 악성코드가 알려졌습니다.


- md5 : fb0cafbd79778b50ae884af1164b9c2b

- filesize : 2,048


달랑 2 KB !


그래서 처음에는 다운로더가 아닐까 생각했습니다. 

(하지만 이런 예상은 빗나가곤 합니다.)


난이도가 낮고 일반적으로 쉽게 접하기는 어려운 형태의 샘플입니다.

그래서, 앞으로 신입 사원 교육 때 이 샘플을 사용할까 합니다. 


분석 결과가 인터넷에 있네라고 할 수 있지만 분석가에게는 단순 분석 능력 뿐 아니라 어디에 필요한 정보가 있는지 찾을 수 있는 능력도 필요합니다.



1. 외형 확인


2014년 2월 6일 12시 23분 43초에 빌드 되었습니다.

(참고로 시간은 충분히 조작 가능합니다.)


최근에 만들었나봅니다.



딱봐도 0x401160 부분에 IP 주소도 보이고 크기도 0x16F (367) 바이트 정도 밖에 안됩니다.


어셈블리로 제작했다는걸 알 수 있습니다.



쉽게 다운로더라고 예상하고 분석 들어갑니다.

(하지만... 결과적으로 예상은 틀렸습니다.)



2. IDA 그리고 Ollydbg


모니터가 2대인데 왼쪽 화면에는 IDA 그리고 오른쪽에는 Ollydbg를 띄웁니다.


Ollydbg로 따라가는 걸 IDA에 설명을 달기 시작합니다.


3. 디버깅 시작


Ollydbg로 디버깅을 시작합니다.

시작점은 0x00401000 입니다.


CLD 다음에 바로 CALL 명령입니다. [F7]로 차근차근 따라갑니다.

(F8로 따라가면 call 명령이 그냥 수행됩니다.)




0x0040108F으로 진입했는데 PUSH 로 이것저것 넣더니 CALL EBP 로 어딘가로 들어갑니다.

값만 봐서는 뭔지 모르겠습니다 @.@...


사실 이런 코드는 단순히 눈으로 따라가서는 주소를 알 수 없어 분석이 무척 어렵습니다.

그래서 Ollydbg로 따라가면서 얻은 내용을 IDA에 주석을 달아줘야 합니다.



디버거로 따라가보면 CALL EBP에서 EBP 값이 0x00401006 인걸 알 수 있습니다.

일단 0x004010A2에 BP 걸어 둡니다.




4. API 호출에 BP 걸기


0x00401006은 악성코드 앞부분에 존재합니다.

뭐하는 코드일까요 ?



이쯤 오면 경험 좀 있는 분석가라면 API 호출 코드라는걸 예상할 수 있습니다.


많은 어셈블리로 만들어진 바이러스나 Shellcode는 Win32 API 기능을 사용하기 위해 직접 주소를 호출하는 방식을 이용합니다.

(이부분은 그냥 생략합니다. 인터넷에 검색하면 다양한 자료 있습니다.)


이 백도어에서 API를 호출하는 코드는 0x00401086에서 JMP EAX로 진입합니다.

(EAX 값에 호출하려는 API 주소가 들어갑니다.)

따라서 여기에 [F2]로 BP 걸어두면 앞으로 사용되는 API 를 하나씩 볼 수 있습니다.



이렇게 [F9]로 달릴 때 마다 어떤 API를 호출하는지 알 수 있습니다.

첫번째 API는 kernel32.LoadLibraryA 이군요. 



한번 더 [F9]로 달리면 아까 BP 걸었던 곳에 도착합니다.


이렇게 코드를 하나하나 따라가다 보면 외부와 통신 하는 걸 알 수 있습니다.


5. 통신 


기본적으로 악성코드는 인터넷이 단절된 곳에서 이뤄집니다.

(인터넷 연결해두고 하는 사람들도 있지만요.)


그러다보니 통신 실패가 뜨면서 이런 백도어류는 더이상 디버거로 따라가기가 힘든 경우가 많습니다.

그 이후에는 코드상으로만 분석해야하는데 쉽지 않습니다.

(많은 경우 GG 칩니다.)


이제 외부와 통신하는 부분입니다.



그런데... 여기서 그냥 계속 따라가면 악성코드가 종료됩니다.

통신 다음에 TEST EAX, EAX 뭘까요 ?

바로 오류인지 검사하는 부분입니다.


코드를 유심히 보면 DEC EBX해서 0 이 되면 점프하는 부분도 있습니다. 이건 에러 횟수 검사인데 0x10 이니 대략 16번 정도 통신 시도하고 포기하겠죠. 예상할 수 있습니다.



Registers를 보면 EAX 값이 현재 0 입니다. 즉, 에러이죠.




EAX 값을 더블클릭해 다른 값으로 변경합니다. (여기서는 1)



(그냥 강제로 EIP를 바꿔도 됩니다.)


통신이 이뤄줬다는 가정하에 다음 코드 계속 진행됩니다.

(이 악성코드는 어셈블리로 만들어져서 간단히 우회 할 수 있지만 다른 악성코드는 실패하는 경우가 대부분입니다.)


6. 실제 백도어는 인터넷으로 전송


이제 코드가 얼마 안 남았습니다.

또... 뭔가 API를 호출합니다.



하지만, 우리는 이미 BP 걸어놨으니 ~

kernel32.VirtualAlloc 이군요.



0x00AE0000 에 priv 타입으로 읽기/쓰기/실행 가능한 RWE 로 메모리가 할당 되었습니다.



더 따라가 봅니다.

이번에는 wininet.InternetReadFile 입니다.

즉, 인터넷에서 어떤 데이터를 읽어 옵니다.



그리고, RETN 으로 0x0AE0000 으로 점프합니다.



물론 인터넷에 연결되지 않았고 받아온 데이터가 없으니 NULL 로 채워져 있습니다.

만약 접속해 받아오는 서버가 살아있었다면 여기에는 새로운 코드가 존재했을 겁니다.



따라서...

더 이상 분석은 불가능 합니다...


끝 !



7. 본체는 인터넷에...


결과적으로 이 악성코드의 본체는 인터넷에 숨겨져있습니다.

(아마 백도어 기능이겠지요.)


파일은 단순히 로더 혹은 다운로더라고도 할 수 있겠죠.

본체는 인터넷에 숨겨두는 악성코드라 ...

어셈블리로 작성된 녀석도 오랫만인데 이런 형태는 흔하지 않습니다.


사실 이 악성코드가 처음 사용한 기법은 아닙니다.

악명 높은 PoisonIvy도 실제 악성코드 본체는 인터넷 상에 있고 패킷으로 받아와 메모리 상에만 존재합니다





신고
Posted by mstoned7

댓글을 달아 주세요

  1. 2014.02.25 02:14  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. jyj850714 2014.02.25 12:11 신고  댓글주소  수정/삭제  댓글쓰기

    재밌게 잘 봤습니다. ㅎㅎㅎ

  3. binish 2014.02.25 14:50 신고  댓글주소  수정/삭제  댓글쓰기

    글 재미나게 잘 쓰시네요 ^.^)b

  4. 니파 2014.02.25 21:30 신고  댓글주소  수정/삭제  댓글쓰기

    페북에서 재밌다는 글이 있기에 링크따라 왔더니 쿨캣님이셨군요 ㅇㅅㅇ! 어셈블은 접해본적도 없는 초보 개발자(라지만 아직 학생 ㅜㅜ) 는 설명 없으면 뭐가 뭔지는 모르겠습니다..;;

  5. Sone 2014.02.26 10:15 신고  댓글주소  수정/삭제  댓글쓰기

    ROR D 를 보니 해쉬를 이용한 API주소 직접 호출이군요
    ROR D 를 두번 수행하는 녀석도 있더라구요

  6. 2014.05.18 21:06  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

2014년 1월 30일 네이버로 메일 한통 왔습니다


'Your Invoice xxxx@naver.com' 그리고 report.450205.zip 파일이 첨부되어 있습니다.

바로 악성코드라는 느낌이 왔습니다.



메일 헤더는 다음과 같습니다.





1월 31일(금) 설날 오후 60일 지난 아기 때문에 고향에 못 내려가고 집에서 뒹구르르하다가 어제 받은 악성코드나 한번 봐야지 생각했죠.

zip 파일을 풀면 report.exe 가 있습니다.


md5는 3b292522fd8e51eda5bca943db90a4c6


https://www.virustotal.com/ko/file/c6bd553a6b3714de53dd7f889b6468bb3d371945506ec247489dfad13326a1b7/analysis/


아차... 어제 출근 했을 때 집어 넣었어야 했는데...TT

회사 출근하는 분들에게 맡기고 집에서 한번 분석해 보기로 했습니다.


집에는 분석자동 시스템이 없으니 불편하지만...

디스어셈블러와 디버거로 할 수 있는 간단한 악성코드 분석 방법을 진행해 보겠습니다.


* 표본(육안) 검사


PE 파일이로 헥사 에디터로 보면 딱히 패킹 되었다는 느낌은 안 듭니다.


코드 영역인 0x00401000이 데이터 처럼 보입니다.




뭔가 압축되었거나 암호화 된 것으로 보이는 부분이 0x00413000에 보입니다.






* 실행 테스트


네트워크를 끊고 실행하면 방화벽 해제 요청이 뜹니다.

(제작자는 윈도우 방화벽도 신경 쓰지 않았다니.. 다소 놀랍네요.)


눈에 띄는 별다른 증상은 없네요.


이 부분은 추후 업데이트...


* 디스어셈블


IDA로 디스어셈블 해봅니다.


비교적 간단한 몇 개 함수만 보입니다.

(IDA에서 흰색은 제작자가 만든 함수이고 다른 색깔은 컴파일러가 만들거나 라이브러리 부분이라 색깔 있는 부분은 자세히 볼 필요 없습니다.)




WinMain으로 가봅니다.

(Hex-Rays가 설치되어 있으면 F5로 C로 변환 가능합니다.)


패킹이 되어 있지 않아 금방 악의적인 기능을 파악 할 수 있을거라 생각했지만....


흠.. 일반적 형태가 아니네요.





호출되는 함수를 이래저래 따라가 봅니다.


앗.. 메모리 할당(VirtualAlloc)이 보입니다.




여기까지 보면 뭔가 느낌이 옵니다.

이거.. 얘는 껍데기이고 실제는 메모리 할당 받은 곳에서 실행되겠구나

(실제 ollydbg로 따라가 보면 0x009A0000과 0x009C0000에서 필요한 코드 풀어 실행됩니다.)


좀 더 내려가면 (__stdcall *)가 보입니다.



메모리 할당을 받고 그쪽으로 점프 한다고 예상 할 수 있습니다.


사실 이제 더 이상 WinMain을 볼 필요가 없습니다.


실제 기능은 메모리 상에서 시작되기 때문에 결국 디버깅 해야 합니다.




* 디버깅


Ollydbg로 디버깅을 해봅니다.


패킹이나 난독화 되어 있지 않아 쉽게 따라 갈 수 있습니다.


문제는 제가 디버깅 하다가 분석 과정을 글로 남겨봐야지 해서....

초반부 화면 캡쳐를 못했네요.


실제 디버깅 과정은 다시 하면서 작성 해야 겠습니다. (이건 2부에서...)


2부 예고를 간단히 하자면...

패킹 된 영역을 0x009A0000에 풀고 0x00408205까지 오면 0x009A0000를 호출 합니다.



Ollydbg에서 Ctrl+M(Alt+M인가 ?)으로 Memory map을 보면 0x009A0000의 Type은 Priv이고 Access가 RWE 입니다.

RWE는 읽기/쓰기/실행으로 코드가 실행 될 수 있습니다.




0x009A0000은 로더 역할을 하는 4 KB 정도입니다.

실행되면 0x009C0000에 실제 악성코드가 로드 됩니다.





이런 유형의 악성코드는 분석가가 껍데기를 열심히 봐도 메모리 상에서 수행되는 코드를 보지 못하면 분석 할 수 없습니다.


2부에 계속....




신고
Posted by mstoned7

댓글을 달아 주세요

  1. 이규형 2014.01.31 22:05 신고  댓글주소  수정/삭제  댓글쓰기

    와.. 2부가 기대되네요. !
    분석보고서 잘보았습니다 스승님.!

    즐거운 명절되세요 .^^

  2. RCE_Mania 2014.02.07 17:08 신고  댓글주소  수정/삭제  댓글쓰기

    악성코드의 최초동작이 작년 말부터 메일첨부파일로 배포되고있는 'GameOver Zeus'와 행동이 비슷한것 같군요!
    '.enc' 파일을 다운로드 받고 32bit XOR와 rtldecompress 함수를 사용한다면 'GameOver Zeus'일 확률이 높을것 같네요!


2014년 1월 30일 설날 전날 회사 출근해서 정신 없이 100개 가까운 샘플을 처리했죠.

다 처리하고 엔진 빌드 시켜놓고  V3 엔진 소스코드 잠깐 보다가 눈에 띄는 옛날 악성코드가 보였습니다.


'그때는 시간도 없고 실력도 부족해 제대로 분석 못했는데...' 라는 생각이 들었죠.

그러다가 문득 생각이 떠올랐습니다.


바로 ...

재미있었던(?) 1990년대-2000년대 초의 추억의 악성코드를 다시 분석해서 정리해보자 !!!!


다음과 같은 기준을 정해봤습니다.



1. 대상은 1990년 대 - 2000년 대 초 고전 악성코드


  고전 악성코드 기준을 어떻게 정할까...

  생각해 봤는데 바이러스 제작자들이 DOS에서 윈도우로 넘어가는 과도기 시절의 악성코드인

 

 1990년대 말에서 2000년 대 초가 아닐까 생각됩니다.

 당시 다양한 아이디어가 나왔고 그 아이디어가 현재 악성코드에서 어떻게 활용되는지도 알아보겠습니다.


 다만 고전하면 도스를 빼먹을 수 없는데....

 도스는 어떻게 할지 고민 중입니다.


2. 집에서만 분석


    과거 샘플이라는 점과 회사 업무를 외부로 공개하는 건 문제가 있으니 집에서만 작업하기로 했습니다.

    그래서 아기 보는 시간 등이 있어 얼마나 진행될지는 모르겠네요.


3. 재해석(?)과 뒷 이야기


10년이 훌쩍 지난 악성코드들이니...

당시 어떤 피해가 있었는지 ... 제작자는 검거 되었는지....

에피소드 등도 정리해 보겠습니다.





첫 번째 분석 대상은 1999년 1월 발견된 Happy99 입니다.



이 악성코드의 의의는 다음과 같습니다.


1. 최초의 현대적(Windows 기반) 메일 전파 웜

2. 최초의 PE Patch 형태 (웜과 바이러스의 경계)




신고
Posted by mstoned7

댓글을 달아 주세요


악성코드를 분석할 때 증상위주로 파악하기 위해서 자동분석을 많이 사용합니다.

이때 문제가 발생하는건 크게 다음과 같습니다.

1. 자동분석 탐지 (가상환경, 모니터링 도구 등의 유무)
2. 인자 값 필요
3. 특정 환경 필요 (설치된 다른 프로그램 등)
4. 기타 (더 있을텐데 생각이 안나서..)

2,3번의 경우도 많은데 자동분석 시스템에서는 지극히 평범하고 정상적인 프로그램처럼 나옵니다.



하지만, 코드를 분석하면 원인을 알 수 있습니다.

Ollydbg로 열어보면 실제 코드가 0x00401000 에서 시작하는 전형적인 비주얼 C 로 작성된 코드임을 알 수 있습니다.


0x00401000에 브레이크포인트(F9)를 걸고 달립니다.

0x00401045 에서 레지스트리를 읽어서 특정 값인지 비교합니다.
악성코드가 필요로하는 특징적인 프로그램이 없어 0x00401086에서 0x00401094 로 빠져버립니다.

이러면 제대로(?) 악성코드가 실행되지 않고 종료됩니다.


강제로 IP 를 0x0040108A로 변경합니다. (Alt + *)


F8 로 CALL 문 3개를 실행하고 프로그램을 종료되고 난 후 시스템 비교 프로그램으로 검사하면 19개의 신규 파일이 생성되었음을 알 수 있습니다.


떨어진 파일들을 차곡차곡 모아 추가 분석하면 됩니다.

별다른 조건없이 악의적인 일을 수행하는 착한(?) 악성코드는 자동분석으로 처리되고 이렇게 특정 조건을 필요로하는 악성코드는 자동분석 시스템에서 원하는 환경을 만들어주거나 사람이 봐야 할 겁니다.

자동분석 시스템의 기능도 계속 향상시켜야겠지만 결국 분석은 사람이 합니다.
- 자동분석 시스템에 위협을 느끼는 1인 ㅋ 그래도 자동분석 시스템이 참 편합니다.


신고
Posted by mstoned7

댓글을 달아 주세요

  1. Sun2Day 2009.09.22 07:24 신고  댓글주소  수정/삭제  댓글쓰기

    항상 많은걸 배우고 갑니다 (+__)ㅋ

    좋은 하루 보내세요


Msiexec1.exe (Win-Trojan/Downloader.374651) 실행
: 윈도우 시스템 폴더에 패킷 관련 WinPcap 파일(Packet.dll, WanPacket.dll, wpcap.dll)
   및 악성코드 생성(wmcfg.exe 와 wmiconf.dll)
  
안철수연구소 분석 정보 : http://kr.ahnlab.com/admSIVirusViewForHtml.ahn?seq_no=28838

WinPcap 파일은 패킷 캡쳐에 사용되는 파일이지만 패킷 생성에도 악용되는 파일로 정상 파일임

한가지 재미있는건(?) Mutex 이름이 '_MUTEX_AHN_V3PRO_' 이다.
요즘 안랩 제품을 사칭하는 악성코드가 많이 등장하고 있다. (대부분 중국산이다. 이런 나쁜...)

_MUTEX_AHN_V3PRO_




wmiconf.dll (Win-Trojan/Agent.67072.DL)
: uregvs.nls에서 공격 주소를 얻어와 공격 트래픽 발생

wmiconf.dll 이외에 perfvwr.dll 등의 이름으로도 존재한다.
즉, 다수 변형이 존재하는 것으로 추정된다.
 
안철수연구소 분석 정보 : http://kr.ahnlab.com/admSIVirusViewForHtml.ahn?seq_no=28882

msiexec2.exe (Win-Trojan/Agent.33841)
: 공격 주소 리스트를 담고 있는 uregvs.nls 파일을 생성

다른 이름의 EXE 파일이 다수 존재하며 실행되는 변형에 따라 다른 공격 주소를 담은 uregvs.nls 파일이 생성될 수 있다.

실행되면 uregvs.nls 파일을 생성하고 vme.bat로 자신을 삭제한다.
악성코드 제작자는 공격 주소를 담고 있는 이들 EXE와 실제 공격하는 DLL 파일을 별도로 배포한게 아닐까하는 추정을 해본다.

 
uregvs.nls (BinImage/Host)
: 공격 주소 리스트를 담고 있는 파일

  msiexec2.exe, msiexec3.exe 등에 의해 생성되며 변형에 따라 조금씩 다른 주소를 담고 있을 수 있다.
  만약 이 주소를 다른 웹사이트로 바꾸면 해당 웹사이트가 공격 당한다.

공격할 웹사이트 주소를 담고 있는 uregvs.nls



* 국내에는 왜 7월 7일 보고되었는가 ?

미국 사이트로 공격은 7월 4일에 발생했다고 한다.
- 7월 4일 ? 미국 독립기념일인데...

이 악성코드가 국내에 첫 보고된건 2009년 7월 5일 일요일이었다.
그때부터 우리나라에서 미국 사이트로의 공격은 시작되었다.

그런데, 국내에는 7월 7일에 국내 사이트가 공격 받으면서 크게 알려졌다.
왜 그럴까 ?!

악성코드 초기 버전이 만든 uregvs.nls 파일을 보면 한국 관련 사이트는 없고 미국 정부 사이트만 공격했음을 알 수 있다.

초기 버전 uregvs.nls 파일


초기 버전과 이후 버전

초기 버전과 이후 한국 관련 사이트가 추가된 이후 버전


이후 한국 사이트는 새롭게 추가된 것이다.

따라서, 공격 리스트는 다음과 같다.


* 공격 사이트 변화

(다음 내용은 팀내 모 님께서 변환해 주신 자료입니다.)

- 한국 시간 기준입니다. 해외는 달라집니다.

---------------------------------------------------
#1 uregvs.nls
---------------------------------------------------

2009/07/05 02:00 ~ 2009/07/05 14:00

최초 공격. 미국 몇개 사이트만 공격했습니다.

www.whitehouse.gov
whitehouse.gov
www.faa.gov
faa.gov
evisaforms.state.gov
 
---------------------------------------------------
#2 uregvs.nls
----------------------------------------------------

2009/07/05 22:00 ~ 2009/07/06 07:00

사이트가 더 추가됩니다.

www.whitehouse.gov
www.faa.gov
www.ustreas.gov
www.dhs.gov
www.state.gov
www.dot.gov
www.ftc.gov
www.nsa.gov
www.usps.gov
www.voa.gov
www.yahoo.com
www.defenselink.mil
travel.state.gov
www.nyse.com
www.nasdaq.com
www.site-by-site.com
www.marketwatch.com
finance.yahoo.com
www.usauctionslive.com
www.usbank.com
www.amazon.com
 

---------------------------------------------------------------
#3 uregvs.nls 
---------------------------------------------------------------

2009/07/05 22:00 ~ 2009/07/06 18:00

www.voa.gov 대신 www.voanews.com 로 바뀝니다.


www.whitehouse.gov
www.faa.gov
www.ustreas.gov
www.dhs.gov
www.state.gov
www.dot.gov
www.ftc.gov
www.nsa.gov
www.usps.gov
www.voanews.com
www.yahoo.com
www.defenselink.mil
travel.state.gov
www.nyse.com
www.nasdaq.com
www.site-by-site.com
www.marketwatch.com
finance.yahoo.com
www.usauctionslive.com
www.usbank.com
www.amazon.com
 

---------------------------------------------------------------
#4. uregvs.nls 
---------------------------------------------------------------


2009/07/07 18:00 ~ 2009/07/08 18:00

- 7월 7일 발생한 국내 공격. 한국 정부 사이트와 미국 사이트를 공격합니다.

www.president.go.kr     
www.mnd.go.kr                    
www.mofat.go.kr
www.assembly.go.kr
www.usfk.mil
blog.naver.com
mail.naver.com
banking.nonghyup.com
ezbank.shinhan.com
ebank.keb.co.kr
www.hannara.or.kr
www.chosun.com
www.auction.co.kr
 

2009/07/07 21:00 ~ 2009/07/08 07:00

www.whitehouse.gov
www.faa.gov
www.dhs.gov
www.state.gov
www.voanews.com
www.defenselink.mil
www.nyse.com
www.nasdaq.com
finance.yahoo.com
www.usauctionslive.com
www.usbank.com
www.washingtonpost.com
www.ustreas.gov
 

---------------------------------------------------------------
#5. uregvs.nls 
---------------------------------------------------------------

- 7월 8일 보안 업체 등을 추가한 2 차 공격

2009/07/08 18:00 ~ 2009/07/09 18:00

www.mnd.go.kr
www.president.go.kr
www.ncsc.go.kr
mail.naver.com
mail.daum.net
mail.paran.com
www.auction.co.kr
www.ibk.co.kr
www.hanabank.com
www.wooribank.com
www.altools.co.kr
www.ahnlab.com
www.usfk.mil
www.egov.go.kr
 
- 3 차 공격

2009/07/09 18:00 ~ 2009/07/10 18:00

mail.naver.com
mail.daum.net
mail.paran.com
www.egov.go.kr
www.kbstar.com
www.chosun.com
www.auction.co.kr



악성코드 작성 일시를 보면 최초 버전은 2009년 7월 5일임을 알 수 있다.
즉, 미국 사이트를 공격하는 초기 버전을 작성하고 (미국 현지 시간은 7월 4일 독립기념일) 이후 국내 사이트를 추가했음을 알 수 있다.


그럼.. 작성 날짜와 시간별로 변형들과 증상을 정리해보면 다음과 같다.

- 2009/07/05 08:51:56 UTC : 미국 정부 사이트만 공격
- 2009/07/05 11:17:28 UTC : 미국 정부 사이트만 공격
- 2009/07/06 04:21:24 UTC : 미국 정부 사이트만 공격
- 2009/07/06 06:23:02 UTC : 미국 정부 사이트만 공격
- 2009/07/07 04:22:54 UTC : 한국 사이트 + 미국 사이트

즉, 악성코드 제작자는 2009년 7월 5일 (혹은 그 이전)에 처음 악성코드를 배포했을 때는 미국 정부 사이트만 공격했고 7월 7일 새벽에 만든 버전부터 국내 사이트를 추가했음을 알 수 있다.

악성코드 제작자는 처음부터 한국 정부 사이트를 노린게 아니라....
미국 정부 사이트를 노렸다. 그것도 미국 독립 기념일인 7월 4일에 맞춰서...
그후에 한국을 그냥 추가했을 뿐이다.
(무슨 음모론 같은...)

혹은 반대로 미국을 테스트하고 마지막으로 한국을 넣었을지도...

진실은 저 너머에....


 


 

신고
Posted by mstoned7

댓글을 달아 주세요

  1. 벌새 2009.07.08 17:01 신고  댓글주소  수정/삭제  댓글쓰기

    역시 중국에서 만들어진 것 같군요.

    한국을 유포지로 하기 위해 한국 좀비 PC를 만들어서 미국으로 공격한 후, 감사의 뜻으로 한국도 포함해 준 것 같아요. ㅎ

  2. iwillhackyou 2009.07.08 17:21 신고  댓글주소  수정/삭제  댓글쓰기

    중복 실행을 v3이름을 빌려서 체크하는 군요 -_-;
    해킹툴이 버전 올라갈 때마다 문자열로 대화를 시도하던게 생각나네요..

    • mstoned7 2009.07.08 17:27 신고  댓글주소  수정/삭제

      요즘에 mutex나 파일 이름은 안랩이나 V3로 가장한 중국산 샘플들이 많습니다. 제작자 만나면 한번 물어보고 싶네요. 차라리 중국 만세라고 넣지 @.@.... 왜 자신들의 적(?)을 사칭하는지... .쩝

  3. 둘리 2009.07.08 17:38 신고  댓글주소  수정/삭제  댓글쓰기

    7월 4일에 미국 사이트를 초토화 시킨 후 7월 5일에 국내에 첫 보고 되었다..
    이 말을 다시 풀이 하면 무서운넘들을 5일날 발견 했는 데 설마 우리나라까지 그러겠어?하는 안일함으로 지켜보다가 7일부터 지금까지 해당 악성코드의 무서움을 몸소 느끼고 있다.는 말로도 들리는 군요.. 이그..
    5일이나 6일에 좀 대비를 했으면 이렇게 크게는 안당했을텐데..;; 완전 뒷북 행정이군요..

    • mstoned7 2009.07.08 17:46 신고  댓글주소  수정/삭제

      아.. 시간차가 있으니까요. 미국 7월 4일일 때 우리나라는 7월 5일이었는데.. 문제는 공격이 미국으로 이뤄져서 국내에서는 몰랐거나 알아도 무시(?)했거나 그랬을 겁니다. 그리고 7월 7일에 문제가 발생했을 때 밤 11시쯤 문제 샘플이 발견되었는데 이미 V3에서 진단되고 있었습니다. 이슈는 1만 8천대의 컴퓨터에 백신이 안 깔려있거나 최신 버전이 아니었겠죠. (V3가 아니었거나....)

  4. 아리새의펜촉 2009.07.08 22:09 신고  댓글주소  수정/삭제  댓글쓰기

    우와! 분석 잘 하셨네요. 참 혹시 샘플 구할 수 없을까요?

  5. 숲속얘기 2009.07.09 11:17 신고  댓글주소  수정/삭제  댓글쓰기

    수고하십니다. 란 말 밖에는.. ^^; 이번 기회에 보안에 대한 시선개선이나 법령이라도 좀 생겼으면 좋겠네요.

  6. avideditor 2009.07.09 13:57 신고  댓글주소  수정/삭제  댓글쓰기

    동아일보기사...김정운DDOS사이버공격조 기사보고 웃겨죽는줄알았습니다..^^;

    참 한심하다는 생각이..

    좋은글 잘 봤습니다.감사합니다..

악성코드 분석 방법에는 크게 정적분석과 동적분석이 있다.

* 정적분석(Static Analysis)

샘플 실행하지 않고 분석.

타백신 실행하기, 내부 스트링보기, 단순 디스어셈블(?)

* 동적분석(Dynamic Analysis)

샘플 실행하면서 분석

모니터링 프로그램(윈도우 악성코드의 경우 파일, 프로세스, 레지스트리, 네트워크)

* 코드분석

디스어셈블, 디버거, 리버스 컴파일러

초급, 중급, 고급은 바로 정적분석, 동적분석과 코드분석 실력의 차이

신고
Posted by mstoned7

댓글을 달아 주세요

  1. 허건일 2011.08.30 16:23 신고  댓글주소  수정/삭제  댓글쓰기

    정적분석에서 타백신실행하기는 무엇을 의미하시는건가요?

    • mstoned7 2011.08.30 23:51 신고  댓글주소  수정/삭제

      백신 프로그램으로 검사해서 진단명을 확인해 보는 겁니다. 아무래도 백신 업체 분석가 입장에서 작성해서 헷갈릴 수도 있겠네요