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

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


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이 설치는 되지만 켜지지가 않을땐 어찌해야하나요...


* 2014년 3월 15일  tistory가 차단 당했는데요. 이에 대한 분석 내용입니다. 

  일반분은 이번 내용만 보면 되고 분석가 혹은 분석에 관심 있는 분들은 그 다음 글도 읽으시면 됩니다.

 

2014년 3월 15일 블로그에 글 올리려고 들어왔더니 파이어폭스(Firefox)가 차단해 버립니다.



'오진인가.. 아니면 티스토리나 포함된 플러그인으로 악성코드가 배포되나'하는 생각이 들더군요.




아무래도 이렇게 라이브한건(?) 처음보다 보니 신기해서 [차단 이유 상세 정보]를 클릭해 봅니다.

하지만, 이쪽 일을 하는 저도 헷갈리는 문구 뿐이네요. (...)






제 블로그가 악성코드를 배포한적은 없고 실제 악성코드는 다른 곳(happy*.co.kr, car*.net)에서 배포 -> 1개 도메인(allb*.net)이 그 악성코드 중계 역할


즉, 제 블로그에 연동된 광고(allb* 사이트)를 통해서 악성코드가 배포되었다는 얘기입니다.


tistory 와 그와 연동된 광고에서 악성코드가 배포되고 있으니 사용자 입장에서는 딱히 할 일이 없습니다. (블로그를 폐쇄 ?!)

광고를 내릴까하다가 확인 당시에는 이미 문제가 해결되었더군요.


페이스북에도 관련 내용이 올라 옵니다.

(아.. 페북을 보는게 아니었어)


벌새님께서 글 남기셨네요.



댓글 좀 남기다가 결국 패킷 구해서 분석에 들어갑니다.

(이래서 회사에서 그냥 확인하려했는데 그 놈의 분석 본능 때문에....)


지금은 악성코드 배포 주소가 삭제되었습니다만 이건 어디까지나 임시 방편이고

보안문제를 근본적으로 해결하지 않으면 공격자는 다시 웹사이트를 해킹해서 악성코드를 배포할 겁니다.


일단은 상황해제..



2부에서는 fiddler로 분석하는 내용입니다.

일반분은 여기까지만 보면 되고 이후 내용은 악성코드 분석에 관심 있는 분들만 보시면 됩니다.





Posted by mstoned7

댓글을 달아 주세요


2014년 3월에 공개된 칼럼은 '사진관에서 발견한 몇 가지 보안 문제' 입니다.


http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=1&menu_dist=2&seq=22263&dir_group_dist=0




어느 순간 부터 칼럼이 다음과 같이 흘러가는 듯 합니다.

어디감 -> 일상에서 보안 문제 발견 -> 걱정이다 -.-;;;


이번도 그런데...

50일 된 아기 사진을 찍으러(50일 밖에 안된 아기를 왜 !!!!) 사진관에 갔다가 경험한 일입니다


사실 개인 병원이나 사진관 같은 조그마한 (그래도 종업원 10명 가까이 되는) 사업장은 보안이 엉망입니다.

내부는 컴퓨터로 운영되도록 했지만 거의 외주 줬을 테고 그 외주 업체가 보안까지 신경 쓰지는 못해서 발생하는 악순환이 계속되고 있습니다. 보안 신경 쓰면 이용자는 불편하다고 분명 그러겠죠.


앞으로 이런 걱정 시리즈는 계속 된 소재가 될 듯 합니다. @.@...

좀 질리는 소재입니다만...


ps.


사진관 보안도 보안 문제지만...

100일 된 아기 키우는 제 입장에서는 이유 없이 울어대는 아기를 달래는게 더 급합니다.


Posted by mstoned7

댓글을 달아 주세요

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

    분명 이유가 있어서 울겁니다. 머라고 표현할 수 없다는게..^^

해킹 사건이 있었습니다.




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


- 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  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  7. 창고55 2019.02.15 17:25 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 반갑습니다.



2014년 2월 14일(금) 국회 헌정기념관에서 정보보호산업 육성과 인재양성을 목적으로 K·BoB 시큐리티 포럼 창립총회 및 기념세미나가 개최되었다고 합니다.


여기서 개인 컴퓨터로 주식거래를 하는 주식거래시스템(Home Trading System)에 대한 공격 시연이 있었습니다.


- 주식거래시스템 취약점 해킹시연 영상 (데일리시큐, 2014년 2월 14일)

http://www.dailysecu.com/news_view.php?article_id=6211







시연, 반응 그리고 언론 보도를 보면서 몇가지 생각이 들어서 정리해 봤습니다.



1. 악성코드 이용한 해킹 


* 악성코드를 이용한게 아니라고 합니다. 따라서 아래 내용은 이번 시연과 상관이 없습니다.


동영상을 보면  HTS 시스템에 악성코드를 감염시켜 해킹 한 걸로 보입니다.

그런데, 일반인 대상이라면 대전제를 설명해 주는게 어떨까하는 생각이 듭니다.


'악성코드에 감염된 시스템은 사용자가 할 수 있는 모든 일을 할 수 있다.  따라서 악성코드에 감염되지 않으면 이런 피해를 입지 않는다.'


데모에서 보여 준 내용도 사용자 시스템에 악성코드가 감염되지 않으면 발생하지 않습니다.

많은 악성코드를 이용한 해킹 데모에서는 이런 점을 얘기하지 않고 '봐 위험하지 ?'에만 초점을 맞추는게 아닌가하는 우려가 듭니다


관련 기술을 아는 사람들은 '저렇게 되는게 당연하지'라고 할 수 있지만 관련 기술을 모르는 일반인에게는 공포감을 줄 수 있습니다.



2. 높은 분들의 반응


또 한가지 이 시연을 본 높은 분들(!)의 반응입니다.


데일리시큐 길민권 대표님께서 잘 정리하셔서 캡쳐해 올립니다.





이론적으로 악성코드에 감염되면 인터넷 뱅킹, HTS 등 모두 위험합니다.

이건 관련 기술을 아는 사람이라면 다 예상할 수 있죠 

하지만, 그런 이론을 실제로 증명하는건 또 다른 문제입니다

그런 노력이 무료라고 생각하는건 반드시 고쳐져야 할 점이라고 생각합니다.


좀 더 안전한 세상을 위해서는 각자의 역할을 인정해야 하지 않을까 합니다.



공격자 역할을 하는 분들은 알려지지 않은 취약점아 공유하고 관련 업체, 기관은 거기에 따른 보상을 해야겠죠.




3. 언론 반응


언론에서 관련 기사가 나옵니다.


- 주식거래 시스템 HTS, 사이버테러에 악용된다면 ‘끔찍’(보안뉴스, 2014년 2월 14일)

http://www.boannews.com/media/view.asp?idx=39810


- 맘먹으면 돈도 인출 ... 증권사 HTS 해킹당한 사연은 ? (아주경제, 2014년 2월 14일)

http://www.ajunews.com/view/20140214162506899


- 주식거래용 HTS도 해킹에 무기력…"전 증권사 문제" (매일경제, 2014년 2월 15일)

http://news.mk.co.kr/newsRead.php?year=2014&no=242706



일부 기사 제목은 다소 자극적입니다.


악성코드 감염 후 주식거래 시스템에 대한 공격이기 때문에 사용자 컴퓨터에 악성코드 감염이 먼저 이뤄줘야 합니다.

어떻게보면 악성코드 감염과 감염 후 발생하는 일은 별개의 문제라고도 볼 수 있습니다.


다만 현재 상황은 사용자들이 너무나 쉽게 감염 될 수 있는 상황이긴 합니다. 

(제 컴퓨터 역시 100% 안전하다고 장담 할 수 없으니까요.)


냉소적(?) 시각을 가진 관련 업계 전상훈 이사님의 글로 마무리를 하겠습니다.




[추가]


발표자께서 자신의 심정(?)을 올렸습니다.


- 해킹을 시연하다

http://bananapayload.org/entry/%ED%95%B4%ED%82%B9%EC%9D%84-%EC%8B%9C%EC%97%B0%ED%95%98%EB%8B%A4






ps.


이런 시연이 있을 때마다 고생하신 관계자분들께 힘내세요라는 말을 하고 싶습니다.






Posted by mstoned7

댓글을 달아 주세요

  1. 2014.02.18 13:26  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. 홍춘이 2014.07.15 04:44  댓글주소  수정/삭제  댓글쓰기

    우리는 민족중흥의 역사적인 사명을 띠고
    이땅에 태어 났다.

  3. 홍춘이 2014.07.16 00:50  댓글주소  수정/삭제  댓글쓰기

    우리는 민족중흥의 역사적인 사명을 띠고
    이땅에 태어 났다.

신문 기사에서 걸프전이 최초의 사이버전이라는 내용을 보고 "또 !"라는 생각이 들었습니다.


제가 알기로 걸프전 때 미국에서 바이러스로 이라크 방공망을 무력화 했다는건 사실이 아니라고 알고 있었죠.



내용을 한번 정리해 봐야 겠다고 생각해 자료 조사를 해봤습니다.



- 걸프전은 최초의 사이버 전쟁일까?

http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=1&menu_dist=2&seq=22158&dir_group_dist=0




생각보다 시간이 오래 걸린건 사실 유무 확인이었습니다.


1. 인포월드의 1991년 4월 1일 만우절 장난 내용은 알고 있었고 구글신의 도움으로 당시 기사까지 확보 했습니다.


2. 1992년 1월 미국의 US 뉴스 월드 리포트(US News & World Report)의 ‘승리 없는 승리 : 페르시안 걸프 전의 미공개 역사(Triumph Without Victory: The Unreported History of the Persian Gulf War)’에 비슷한 내용이 실렸고 관련 내용이 다른 언론을 통해서 광범위하게 퍼졌죠. 문제는 인포월드와 내용이 비슷하지만 확실히 거짓인지 확인하지는 못했습니다. 게다가 일부에서는 관련 공격 시도가 있었는데 실패했다고 주장하는 사람도 있긴 하더군요.


3. 기술적으로 가능한가에 대해서는 당시 통신 방식에 대해 공부 하기 위해 책도 사고 했는데 솔직히 다 알지 못해 다른 사람의 자료를 참고 했습니다. 기술적으로 안될거라고 생각했는데 일부 시스템에서 전혀 불가능한건 아니더군요.


그래서 처음에는 없었고 사람들이 잘못 알고 있는거다라고 정리했다가 (어떻게 보면 선입견을 가지고 시작한거죠) 마무리는 아직까지 확인되지 않았다로 살짝 비켜났습니다. 


아직 확인되지 않았으니 걸프전이 최초의 사이버전쟁이었다라고 얘기할 필요는 없습니다


ps.


이번 글부터 편집자가 변경되면서 제 글이 별로 변화가 없습니다.

제목도 제가 처음 제안한 이름하고 같네요.






Posted by mstoned7

댓글을 달아 주세요

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

댓글을 달아 주세요


* 악성코드 분석가 입장이라 단편적으로 볼 수 있어 놓치는 부분이 분명이 있을 겁니다. 


2014년 1월 2일 새해 첫 출근 후 사람들과 대화하다가 미국의 보안회사인 Mandiant 얘기를 했습니다.

많은 보안회사가 그러하듯 Mandiant도 유명하지만 적자로 회사가 어렵다고 하더군요.

보안관제와 포렌식을 주로 하지만 미국쪽도 소프트웨어 만큼 남기는 어려운가 봅니다.


그리고, FireEye Announces Acquisition of Mandiant가 떴습니다.


http://www.fireeye.com/news-events/press-releases/read/fireeye-announces-acquisition-of-mandiant


FireEye가 Mandiant를 인수했습니다.





FireEye가 전통적인 백신 업체는 아니지만 1990년대 후반 백신 업체 간 M&A가 생각 났습니다.

당시 주로 미국 업체가 세계 여러나라의 소규모 업체를 인수했습니다.

업계의 우려가 커지니 VB 컨퍼런스에서 큰업체가 더이상 M&A는 없다고 약속 했다고 합니다. 하지만, 당시 많은 소규모 업체들이 사라졌습니다. 


시간은 흘러 최근 흐름은 백신 업체들이 다른 보안회사에 인수되고 있습니다.


2012년 8월 헝가리 VirusBuster는 재정문제로 회사 문을 닫고 기술은 러시아 보안업체인 agnitum이 가져갔습니다.

http://www.agnitum.com/news/2012-08-16-agnitum-antivirus-technology.php


2012년 10월 F-PROT로 더 잘알려진 아이슬랜드 Frisk는 Commtouch에 인수되었습니다.

http://www.commtouch.com/press-releases/commtouch-completes-acquisition-frisk-software-antivirus-business/


노르웨이 Norman은 2013년 1월 2개 업체로 나뉘어 진 후 Norman Shark는 2013년 12월 Blu eCoat에 인수되었습니다.

http://bluecoat.com/ko/node/8239


백신 프로그램의 무용론 얘기는 몇 년 전부터 나오고 있지만 그래도 보안을 위해 백신 프로그램이 기본이 되니 이들 기술을 이용하다가 아예 백신 회사를 인수하고 있습니다.



이런 흐름에서 FireEye의 Mandiant 인수는 여러가지를 생각하게 합니다


FireEye는 포렌식으로 유명한(실제로는 보안관제 매출이 더 높다고 합니다.) Mandiant를 인수했습니다.

Mandiant도 적자로 회사가 어려웠다고 하더군요.


FireEye는 현재 영국 Sophos 엔진 등을 이용하고 있는것으로 알고 있는데 antivirus 능력을 갖추고 싶어 할 겁니다

앞으로 백신 업체를 하나 인수하지 않을까 합니다.


잠깐 국내로 눈을 돌려 보겠습니다.


제가 파악하기로는 국내 대부분의 보안업체는 악성코드가 문제라는 인식은 있지만 아직 악성코드에 대해 능동적(?) 대응을 하지 못하고 있습니다.


악성코드가 문제인건 알지만 신경 쓸 여력이 없다가 아닐까 합니다.



FireEye는 악성코드에 대응하기 위해 다음과 같이 변하고 있습니다.


1. 가상화를 통한 알려지지 않은 악성코드 진단

2. 보안관제 (이번 인수에 포함되었겠죠 ?)

3. 침해 사고 대응 (포렌식) 

+ 백신 프로그램 기술 ?????????????



국내 보안업체는 어떤 준비가 되어 있을까요 ?



이런 고민은 국내 백신 업체도 마찬가지라고 생각합니다.




 

Posted by mstoned7

댓글을 달아 주세요


한컴오피스 시리얼넘버 노출…라이선스 관리 비상 (전자신문, 2013년 12월 23일자)

http://www.etnews.com/news/computing/security/2890271_1477.html


한번 확인해 봤습니다.


한컴 오피스 2014 홈 에디션을 구매하면 2014HancomDN_Home.exe를 다운로드 합니다.


2014HancomDN_Home.exe 실행하면 실제 설치 파일을 다운로드 할 수 있습니다.




제품 번호를 입력하면 다운로드 경로에 파일을 다운로드 합니다.



다운로드한 파일을 별도 보관하고 있다 생각나서 설치하려고 Install.exe를 실행해 봤습니다.





제품 번호 입력하려고 패키지 찾아 키를 가지고 있었는데 

어라 ?!

제품 번호가 자동으로 입력되어 있네요.





분명 어떤 파일이 보관되어 있을 듯해서 이래저래 찾아보니 설치 관련 파일에 제품 번호가 그대로 저장되어 있었습니다.



* 편리성과 위험성


제품번호는 제품 설치 할 때 꼭 필요하고 라이센스 문제 때문에 잃어버리거나 다른 사람에게 알려 줄 수 없습니다


이렇게 설치판에 제품 번호가 포함되어 있으면 설치할 때 별도의 제품번호를 입력하지 않아서 편리합니다.

하지만, 다음과 같은 문제가 발생 할 수 있습니다.


바로 상대적으로 쉬운 제품 번호 도용


악성코드나 누군가가 관련 파일만 열어보면 한글 2014 제품 번호를 알 수 있어 그 번호로 제품을 사용 할 수 있습니다.


제품번호를 꼭 파일에 보관해야 한다면 암호화 할 필요가 있어 보입니다.


기사도 났으니 한컴측에서도 수정 할 듯 합니다.





Posted by mstoned7

댓글을 달아 주세요

  1. 하늘빛 2014.08.28 22:07  댓글주소  수정/삭제  댓글쓰기

    아마 수정하지 않거나 수정에 긴 시일이 걸릴 겁니다.
    한컴은 개발자 위주의 기업이 아니라 마케팅 위주의 기업인 것 같습니다.
    한 5년 전 쯤 2007 버전의 PNG 삽입 처리 관련해서 버그리포팅을 한 적이 있었는데, 아무리 기다려도 안 고치더군요. 심지어 2010에도 그대로....

  2. 박요한 2015.01.02 20:44  댓글주소  수정/삭제  댓글쓰기

    저두 한글2014쓰는데 시디키좀주시면안될까요? ㅎ

  3. 땡이맘 2016.04.14 04:15  댓글주소  수정/삭제  댓글쓰기

    제 시리얼 넘버를 확인하고 싶은데 어떻게 해야 할까요?

  4. 돌멩 2017.10.17 10:43  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    회사 내에서 쓰고 있는 한컴 씨리얼들 정리를 해야하는데 자리에 이것저것 막 섞여서 설치되어 있는 바람에 누가 어떤 씨리얼을 쓰고 있는지 모르고 있습니다.
    이번에 조사하게 되었는데 어떤 파일에서 시리얼키를 확인 할 수 있는 건가요?
    installerconfig.exe 라는 파일을 도저히 찾을수가 없습니다 ㅠㅠ
    도와주세요 ㅠㅠ

  5. 돌멩 2017.10.17 10:43  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    회사 내에서 쓰고 있는 한컴 씨리얼들 정리를 해야하는데 자리에 이것저것 막 섞여서 설치되어 있는 바람에 누가 어떤 씨리얼을 쓰고 있는지 모르고 있습니다.
    이번에 조사하게 되었는데 어떤 파일에서 시리얼키를 확인 할 수 있는 건가요?
    installerconfig.exe 라는 파일을 도저히 찾을수가 없습니다 ㅠㅠ
    도와주세요 ㅠㅠ

    • mstoned7 2017.10.20 21:44 신고  댓글주소  수정/삭제

      한컴 오피스 2014의 경우 Install 폴더에 InstallerConfig.ini입니다. 가정용이라 기업용 버전에도 존재하는지는 모르겠네요.

  6. 돌멩 2017.10.17 10:43  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    회사 내에서 쓰고 있는 한컴 씨리얼들 정리를 해야하는데 자리에 이것저것 막 섞여서 설치되어 있는 바람에 누가 어떤 씨리얼을 쓰고 있는지 모르고 있습니다.
    이번에 조사하게 되었는데 어떤 파일에서 시리얼키를 확인 할 수 있는 건가요?
    installerconfig.exe 라는 파일을 도저히 찾을수가 없습니다.
    도와주세요 ㅠㅠ

  7. 빠니니 2018.03.17 18:19  댓글주소  수정/삭제  댓글쓰기

    시리얼 넘버가 제품번호인가요??

    • mstoned7 2018.03.25 14:14 신고  댓글주소  수정/삭제

      네. 제품 설치할 때 사용 번호로 시리얼 넘버 혹은 제품 번호 등으로 부르고 있습니다. 옛날사람(..)이다보니 제품 번호라 안쓰고 시리얼 넘버라고 했네요 ㅋ

  8. 행복 2019.07.26 08:11  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다 ㅠㅠ 덕분에 문제를 해결했습니다