분석해보까? 2010.11.06 23:00


지인분께서 악성스크립트에 들어간 쉘코드 분석방법에 대해서 문의하셔서~^^
간략하게 글을 적어봅니다.

이 글은 보통 악성 스크립트들을 Malzilla로 분석하는데 있어, 못하는 부분들이 있기 때문에 이런 방법을 많이 사용하고 있습니다.
물론 저는 그렇구요^^; 다른 분들은 어떻게 분석하는지 모르겠네요!! ㅎㅎ 

< 준비물>
- Malzilla : http://malzilla.sourceforge.net/downloads.html
- OllyDbg : http://www.ollydbg.de
- UltraEdit

1. 우선 파일을 UltraEdit로 오픈합니다.
그럼 다음과 같이 쉘코드로 보이는 문자열들이 보입니다.
이 문자열들을 복사합니다.
(주의) 중간에 "+" 이라는 문자들은 모두 공백으로 바꾸어줍니다^^


2. 복사 한 부분을 Malzilla의 Misc Decoders탭에 붙여넣기 합니다.
그 후 UCS2 to Hex 를 클릭합니다.


3. 그럼 쉘코드가 Hex값으로 변환되었습니다.
이 부분을 다시 복사합니다.


4. 복사한 부분을 Shellcode analyzer 탭이나 Hex View 탭으로 이동하여 Paste as hex로 붙어넣습니다.
그리고 우측마우스를 눌러서 Save를 합니다.

파일명을 저장 할 때, "Hex_view_file.mem" 으로 저장하시면 추후 편리합니다 ㅋㅋ

이제 저장 된 Hex를 OllyDbg에 연동하여 쉘코드를 분석해 보겠습니다.


5. 우선 Olly를 열고 아무파일이나 오픈합니다.
저는 개인적으로 notepad.exe를 좋아해서 ㅡㅡ;; 그 파일을 오픈하였습니다 ㅋㅋ

그리고 마우스 우측버튼을 이용하여 Backup -> Load Backup From File 을 클릭합니다.

아까 저장해 둔 mem 파일을 불러옵니다.

그럼 크기가 안맞는다니 어쩐다니 그런 개소리를 하게 되는데~ 사뿐히 즈려밟고 갑니다.


6. 지금부터가 중요합니다. 백업파일을 적용했으나 변한것이 없을겁니다~ 따라서 다음과 같이 해주세요.
1) Home키를 눌러 맨 위로 올라감
2) Shift + End 키를 이용해서 모든 코드를 블럭처리
3) 마무리로 Alt + BackSpace를 누루면 코드 맨 위에 Hex값을 복사
4) 다시 Home키를 눌러 맨 위로 올라가서 Ctrl+* 로 시작지점을 변경


7. 이제 부터는 일반적인 디버깅 시작~~
Loop 부분이 종료 되면 원하던 주소값을 얻을 수 있습니다.


쉽게 설명한다고 썻는데;;
보는사람입장에서는 어떻게 보일지 모르겠네요 ㅎㅎ

궁금한점이나 안되는 점이 있으시면 댓글로 써주세요^^




posted by 처리 

댓글을 달아 주세요

  1.  Addr  Edit/Del  Reply

    비밀댓글입니다

    2010.11.07 12:00
  2.  Addr  Edit/Del  Reply Favicon of http://hseui.tistory.com BlogIcon 세의

    잘 보고 가요. ^^ 얼핏 올리로 하고는 있었는데..
    정석을 보게 되네요.

    2010.11.07 19:35 신고
  3.  Addr  Edit/Del  Reply forc1

    오.. 역시 고수님 좀 짱인듯乃

    2010.11.08 14:15 신고
  4.  Addr  Edit/Del  Reply 보호무역

    감사합니다. 잘봤습니다.
    6번> 다시 Home키를 눌러 맨 위로 올라가서 Ctrl+* 로 시작지점을 변경 에서요
    Ctrl+* 는 Ctrl + 8 인가요? -_-;

    2010.11.09 17:47 신고
  5.  Addr  Edit/Del  Reply 물새

    정말 잘보고갑니다..
    이런 정보 정말 보기어려웠는데, 설명을 아주 잘해주시네요^^
    정말 유용한 정보입니다.^^ 정석!
    그런데 모든 건 다 저렇게하나요?

    2010.11.26 21:51 신고
    •  Addr  Edit/Del Favicon of http://kjcc2.tistory.com BlogIcon 처리 

      아니요^^ 모든 쉘코드를 저렇게 하진 않아요 ㅎㅎ
      개인적으로 구해야하는건 URL이기 때문에 고정적인 XOR값이
      지정되지 않았을때에는 이렇게 해야 ㅠ_ㅠ

      2010.11.27 00:24 신고
  6.  Addr  Edit/Del  Reply 님아 좀 꺼져줄래요?

    어디서 시덥지 않은 블로그에 남에꺼 갖다가 붙여서 인기좀 끌더니 아놔무인이군요.

    어림잡아 나이가 짐작이 됩니다. 너나 꺼지세요.

    2010.11.27 02:54 신고
    •  Addr  Edit/Del Favicon of http://kjcc2.tistory.com BlogIcon 처리 

      님아 좀 꺼져줄래요 ^-^ㅗ <- 이 말때문에 그런건지 모르겠지만
      forc1님은 제 후배입니다. 그래서 장난으로 댓글을 단것이고~
      그쪽에게 피해준게 없는데 왜 지랄이신가요^^?

      2010.11.27 19:10 신고
  7.  Addr  Edit/Del  Reply 궁금

    포스트 잘 보고 갑니다~
    근데 따라서 해보니 7번 부터 어떻게 하는지 모르겠어요....ㅠㅠ

    2011.05.16 15:54 신고
  8.  Addr  Edit/Del  Reply Favicon of http://comfun.tistory.com BlogIcon 드레이크

    잘 보고 갑니다~
    천천히 따라 해봐야겠네요 @@

    2012.02.17 21:04 신고
  9.  Addr  Edit/Del  Reply 재미

    재미있네요 처리님 궁금한 부분이 있는데요
    Malzilla 는 특정 문자열을 XOR bd인가로 해서 검색해주는데요
    쉘코드로 만들어서 올리디로 분석을 하면 XOR 키값을 몰르는데 어떤식으로 결과값이 출력되는건가요?

    2012.10.11 03:34 신고
    •  Addr  Edit/Del Favicon of http://kjcc2.tistory.com BlogIcon 처리 

      맞습니다. Malzilla에서 XOR 값을 찾아주긴 합니다^^
      하지만 이 포스트는 올리디버거를 통해 XOR값을 찾는 방법을 적어 둔 것입니다. ㅎㅎㅎㅎ 헷갈리셧나요^^?

      2012.10.11 10:09 신고