악성코드 분석을 방해하는 패킹 (1)

소프트웨어를 패킹할 때 주목적은 protection과 compressor입니다. protection을 목적으로 하는 패킹의 경우 Armadillo, Thermida 등이 있으며 compressor를 목적으로 하는 패킹의 경우 UPX 등이 있습니다. 그러면 여기서 잠깐… 왜 분석가는 패커를 알아야 할까요?? 그 이유는, 악성코드가 패킹이 되어있으면 원본코드가 압축이 되어있어서 리버싱하는 데 방해가 됩니다. 따라서 분석을 하기 위해서는 언패킹 작업이 선행되어야합니다. 이번 글에서는 악성코드에서 자주 사용되는 UPX로 패킹된 파일을 언패킹하여 발가벗겨 보는 방법에 대해서 알아보겠습니다. 우선, OEP를 찾아야 합니다. 패킹된 파일이 메모리에 로드되면 언패킹루프를 거친 후 OEP로 분기하게 됩니다. 아래 그림은 설명과 함께 사용될 UPX로 패킹된 예제파일입니다. 아래 첫 번째 그림을 보시면 올리디버거에 예제 파일을 로드하게 되면 compress 코드라는 경고문이 팝업됩니다. 확인을 누르시고 언패킹루프를 거친 후 OEP로 분기를 하게 되면 두 번째 그림과 같습니다. OEP는 위에서 보신 것과 같이 01012475h입니다. 이제 메모리 덤프를 뜨겠습니다. 여기서 수정할…

내 PDF 파일은 안전할까?

1. 서론 최근 PDF 관련 취약점이 많이 나오며 PDF 파일에 악의적인 스크립트가 삽입되는 사례가 많이 발견되고 있습니다. PDF 파일에 악의적인 스크립트가 삽입되었는지 여부를 확인하기 위해 이 문서를 작성합니다. 2. 사용되는 툴 PDFTK : http://www.accesspdf.com/pdftk/ PDFiD  : http://blog.didierstevens.com/programs/pdf-tools 이번 문서에서는 위의 툴들을 사용할 것입니다. 위의 툴들 중 pdf-parser와 PDFiD는 Python으로 작성된 툴이므로 Python이 설치되어 있어야 합니다. 먼저 Python을 설치하도록 하겠습니다. Python 다운로드 : http://python.org/download/ 3. 분석을 시작해보자! 자신의 플랫폼에 맞는 Python을 다운로드 하여 설치를 하셨다면 이제 분석을 하도록 하겠습니다. 먼저 악성 PDF 파일을 한번 살펴보도록 하겠습니다. 먼저 PDF 파일 내용을 PDFiD 툴을 이용하여 확인해 보도록 하겠습니다. 명령어는 아래와 같습니다. pdfid.py 파일명 PDFiD를 통해 PDF 문서를 확인해본 결과 해당 문서내에 Javascript가 3개 포함되어 있다는 결과를 확인할 수 있었습니다. 이제 PDFTK를 이용하여 해당…

DarunGrim을 이용한 패치된 부분 알아내기

우리는 윈도우 파일에 보안상의 취약점이 발견되면 윈도우 업데이트를 통해 패치를 받습니다. 패치를 받고나면 해당 파일은 패치가 되고 취약점을 이용한 악의적인 공격을 사전에 방지할 수 있게 됩니다. 패치가 된 파일은 수정이 되어있겠죠? 이번에 소개할 툴은 DarunGrim이라는 툴입니다. 툴 이름에서 느낄 수 있듯이 한국사람이 만들었습니다. 이 툴을 사용하게 되면 패치 전과 후의 파일의 수정된 부분을 쉽게 찾을 수가 있습니다. 예를들기 위해 사용될 ani 파일은(윈도우의 애니메이션 커서를 위해 사용되는 그래픽 파일 포맷) RIFF 파일 포맷을 근간으로 하고 있습니다. (ani 파일 외에 wmf, emf 파일 등이 있습니다.) 이러한 파일들은 처음 시작부분이 RIFF로 시작되게 됩니다. 아래 그림은 헥사에디터로 ani파일을 열었을 때의 화면입니다. 보시면 처음에 RIFF로 시작을 하고 밑에 빨간 박스로 표시된 부분 “24h”는 데이터 블럭의 size를 의미합니다. 이 취약점은 데이터 블럭의 size 값을 변경시킨 후 24h 크기 이상의…

패킷을 훔치는 ARP Spoofing 공격 탐지 툴 (2)

이전 글에 이어서 ARP Spoofing 을 탐지하는 툴에 대해서 소개하겠습니다. 물론, 커맨드 창에서 arp -a 명령을 내려서 ARP Cache 상태를 확인하여 ARP Spoofing 공격 여부를 알 수도 있습니다만 이번 글에서는 툴을 사용해서 탐지하는 방법과 와이어샤크를 사용하여 탐지하는 방법을 설명드리겠습니다. ARP Spoofing 공격을 탐지할 수 있는 툴로는 WinARPWatch라는 툴이 있습니다. 아래 그림을 보시면 IP주소192.168.0.1 은 GateWay 주소인데 192.168.0.31의 맥어드레스로 바뀐 것을 확인할 수 있습니다. ARP Spoofing 공격을 탐지할 수 있는 또 다른 툴은 XArp라는 툴이 있습니다. 수동으로 ARP Spoofing 공격을 확인할 수 있는 방법은 패킷 분석 도구인 와이어샤크를 사용하여 ARP 패킷을 확인하는 것입니다. 아래 그림을 보시면 Host들의 맥어드레스를 변경하려고 시도하는 것을 볼 수 있습니다. 그럼 이제 ARP Spoofing 공격을 대처하는 방법을 알아보겠습니다.  1. ARP Spoofing 공격이 이루어지면 V3에서 아래와 같은 “차단한 침입 : Man-In-The-Middle…

패킷을 훔치는 ARP Spoofing 공격 탐지 툴 (1)

금주에 ARP Spoofing 공격을 하는 악성파일이 이슈가 있어서 (그냥 지나치기에는 너무나 아쉬운 ^^) 공격 방법과 탐지 방법 및 대처 방법에 대해서 살펴볼까 합니다. 우선, OSI 7 Layer의 2계층에서 두 호스트 간 통신하는 방법을 살펴보겠습니다. Host A가 자신의 로컬 도매인 내의 ARP Cache 를 검색하여 Host B의 IP와 MAC address가 맵핑이 되어 있는지 확인합니다. 만약에 확인이 되지 않으면 Host B IP의 MAC address에 대한 ARP Request를 broadcasting을 합니다. Host B는 IP와 MAC address 정보를 ARP Reply로 Host A에게 전달합니다. Host B의 IP와 MAC address를 전달받은 Host A는 자신의 ARP Cache를 업데이트 합니다. 보안적인 측면에서 바라보면, 이러한 2계층 간의 통신을 'Man In The Middle' 공격 기법으로 우회를 할 수가 있습니다.  쉽게 예를 들어보겠습니다. A라는 남자와 B라는 여자는 사랑하는 애인 관계입니다. 그런데 C라는…