http://dnslookup.me/ddns/dynamic-dns-hosts/
공부/New to Know
- DDNS List Gather 2015.08.19
- 윈도우 디렉토리 이름에 사용될 수 없는 것들 2015.08.04
- tmp 파일에 대하여.. 2014.07.26
- PDF 구조 및 분석 (동영상 포함) 2014.07.25
DDNS List Gather
윈도우 디렉토리 이름에 사용될 수 없는 것들
\ / : * ? " < > | 이외에 별도로 정리된 사용할 수 없는 특수 문자 리스트는 없는 것으로 확인
http://answers.microsoft.com/ko-kr/windows/forum/windows_7-files/%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C/579975f5-7602-441c-a889-4b2939b985be
tmp 파일에 대하여..
악성 행위를 하는 파일을 분석하다 보면, GetTempPath() API 등을 사용하여 PC의 Temp 폴더에 *.tmp 형태의 파일을 생성하여 이용하는 경우가 종종 있다.
이 이유는 일부 백신에서 EXE 파일과 DLL 파일을 대상으로 검사하는 알고리즘을 회피하기 위한 목적이라고 생각해볼 수 있다고 한다. (출처 : http://havu.tistory.com/30)
PDF 구조 및 분석 (동영상 포함)
오늘 새로 알게 된 지식은 PDF (Portable Document Format)의 구조와 그 구조 중에서 어떻게 악성 Stream을 찾는지에 대한 내용을 알게 되었다. 해당 내용은 항상 멀리서 따라가고자 하는 최원혁 대표님의 교육 영상을 통해 습득 했으며, 이번 주말에 PDF에 대해 조금 더 알아보고자 한다.
오늘은 Part1에 대한 동영상 완강을 목표로 하였고, 그 목표를 달성하였다.
강의 내용은 아래와 같다.
PDF 구조는 큰 그림으로 보았을 때 아래와 같이 생겼다고 한다.
Header에는 뭐 PDF 버전이 뭔지 이런게 담겨져 있고, Body는 각종 Object들이 담겨져 있다고 한다.
Cross Reference Table은 Body에 담겨져 있는 간접 Object들에 대한 위치 정보와 사용 유/무에 대한 내용이 담겨져 있다고 하며, Trailer는 Body에서 사용 중인 Root Object (문서의 시작은 Root Object 로부터) 의 정보와 Cross Reference Table의 시작 위치를 담고 있다고 한다.
따라서 우선 시 봐야할 것은 Trailer라고 한다. Trailer를 통해 Root Object가 무엇인지 확인하고, Cross Reference Table을 통해 사용되는 Object의 수와 시작 위치를 확보한 뒤에 Root Object 부터 차근히 Flow를 따라 따라 내려가면 된다.
Object들 중에 Stream을 포함하고 있는 것들이 존재하는데, 아마도 이 Stream에 악성 행위를 위한 자바 스크립트가 포함되어 있지 않나 싶다. 사용자 모르게 악성 자바 스크립트가 실행되는 것이다.
그래서 대표님은 PDF 자체에 대한 분석 자체보다 이 Stream 값이 담고 있는 자바 스크립트를 분석해내는 것이 더욱 중요하다고 말씀하신 것 같다. 자바 스크립트 또한 난독화되어 쉽게 복호화 하기는 어렵기 때문이다.
# PDF 파일의 Body : 문서의 실질적인 내용을 담고 있는 간접 오브젝트들로 구성
이러한 오브젝트들은 문서의 내용, 폰트나 페이지, 이미지 등과 같은 요소를 나타낸다.
두 번째 강의는 아래와 같다.
두 번째 강의에서는 Stream에 Java Script외 Flash 파일 .swf 파일을 추가적으로 감싸고 있는 상황에 대해서 설명하고 있다. Stream을 가지고 있는 Object에서 swf 파일의 내용을 가지고 있다. 하지만 실제로 해당 소스를 정확히 판별할 수 없어 디컴파일이 필요함을 느끼고, showmycode.com을 이용하여 디컴파일한 소스를 다운로드 받는다. 그 중에 HeapSpray, 즉 쉘코드를 확인하고 그 쉘코드를 분석해보면, 최초 PDF 파일의 Header 체크 등을 통해 결국엔 PDF 내 다른 Object의 지점을 실행해서 svchost.exe 악성 파일을 생성하도록 하는 것이 포인트였다.