취약점에 관련 된 악성코드들은 대부분 다운로드, 드롭형식을 가지고 있다. 이번 PDF파일은 PDF파일에 악성코드를 삽입시킨 후 힙 스프레이 코드에 의해 악성파일을 생성하는 형식의 PDF이다. 우선 PDF에서 스크립트를 추출해야 하는데 일반적인 inflater.exe, pdftk.exe 프로그램으로는 스트림 추출에 모두 실패하였다. 그래서 이번에는 새로운 툴인 pdf-parset.py를 가지고 분석하는 방법에 대해서 설명하겠다. pdf-parset.py는 파이썬 2.5 이상이 설치되어 있어야 동작할 수 있으니, 미리 설치를 해두어야 한다. - pdf-parsey.py를 사용하여 스트림을 추출하는 방법 1) PDF의 내부상태 확인(pdf-parser.py --stats 20.pdf) 2) javacript가..
샘플 18.pdf는 16.pdf, 17.pdf와 동일하게 stream을 넣어서 동작시키는 방식이다. 우선 inflater.exe를 사용해서 스트림을 분리하자. 그럼 다음과 같이 2.tmp 파일이 생성된다. 많이 보았던 형식으로 바로 Malziila로 디코딩을 시작하자. 하던 듯이 Decoder에서 Runscript를 돌리면, 1차 디코딩이 완료된다. 여기서 부터가 조금 까다롭다. 모든 Ascii값에 +6이 붙었다. 이것만 아니면 바로 2차 디코딩이 완료 되겠지만, 아쉽게도 수동으로 좀 해야 할 듯 하다. 프로그램밍이 되는 사람은 프로그램을 짜서 모든 값에 +6을 한 결과값을 가지고 디코딩하면 된다. 하지만, 조금만 머리를 굴리면 기본값인 112에서 6번만 증가시키면 되는것이다. 112의 Ascii값은 “..
샘플 17.pdf는 16.pdf와 동일하게 stream을 넣어서 동작시키는 방식이다. inflater.exe를 이용하여 stream을 추출해보도록 하자. 스크림을 찾을 수 없다며 Error 로그를 보여준다. 그럼 pdftk.exe를 다운로드 하여 사용해보자. 사용방법은 “pdftk.exe 원본파일명 output 새로운 파일명 uncompress” 으로 하면된다. Pdftk.exe는 inflater.exe와는 다르게 추출 된 Stream을 새로운 파일의 pdf에 추가하여 준다. 다시 말해 17.pdf에서 추출 한 stream을 un_17.pdf 파일에 추가하여 생성시켜 주는것이다. 새롭게 생성 된 un_17.pdf 파일을 보면 기존 pdf파일에 Stream을 추출 한 내용이 추가 된 것을 볼 수 있다. 1..
샘플 16.pdf는 PDF안에 stream을 넣어서 동작시키는 방식이다. inflater.exe를 다운로드 하자. inflater.exe는 PDF 스트림을 빼내어 폴더에 저장하는 역할을 한다. 사용 방법은 “inflater.exe 원본파일 스트림을 추출할 폴더이름” 으로 실행하면 되며, 추출이 성공적으로 되면 다음 그림과 같이 Done가 표시된다. Un_16.pdf 폴더에 가면 1.tmp파일이 생성되었으며, Ultra로 확인결과 일반적인 Script임을 알 수 있다. 여태까지 모두 실습을 해왔다면, 큰 무리 없이 디코딩을 할 수 있을 것이다. AsciiCode를 1차 디코딩으로 하고, 2차 디코딩으로 ShellCode를 풀면 url을 얻을 수 있다. 뭐 아직까진 거의 툴에 의존하여 디코딩을 하기 떄문에 ..
PDF 취약점을 악용하여 동작하는 Scirpt이다. 어차피 PDF안에 들어가는 JavaScript이기 때문에 크게 어려울건 없다. 샘플 15.pdf파일은 암호화 되어 있지 않은 pdf이기 때문에 쉽게 풀 수 있다. Ultra로 열어보면 다음과 같은 스크립트를 볼 수 있다. 어디서 많이 본 것이다. 바로 “수정이 필요한 Script” 와 동일하다. 2019/11/20 - [악성 스크립트 디코딩 강좌] - 수정이 필요한 Script 위의 내용과 동일 한 내용이니 설명 없이 넘어가도록 한다. PDF 도 압축만 안되어 있으면 스크립트 찾기는 매우 쉽다^^