[악성코드 분석] badpdf

BEEUM·2024년 7월 30일

파일정보

악성코드 상세 분석

1. pdf 내 의심스러운 키워드 찾기

pdfid.py badpdf.pdf


pdfid.py 를 이용하여 pdf 파일 내 의심스러운 키워드 확인
OpenAction (1), JS (2), JavaScript(3) 의 의심스러운 키워드를 확인했음

2. 키워드 기반 검색

OpenAction

pdf-parser --search openaction badpdf.pdf

OpenAction 이 문서를 염과 동시에 실행되므로 우선적으로 검색한다.

검색결과로 나온 obj 1 의 내용에서 JS 키워드를 사용해서 this.zfnvkWYOKv\\(\\) 함수가 실행됨을 알 수 있다.
해당 키워드를 추가적으로 검토할 필요가 있으며 정확한 내용을 확인하기 위해서는 obj 1이 참조하고 있는 obj 2, 3, 4, 5, 6, 7도 확인이 필요하다.
💡 /S 키워드?

  • /S 키워드는 "Subtype"을 나타내는 키로, 특정 객체나 동작의 하위 유형을 정의한다.
    여기서는 /S /JavaScript 형태로 사용하여 앞선 코드가 JavaScript임을 명시하여 이를 구체화하고 있다.

JS

pdf-parser --search JS badpdf.pdf


검색결과로 나온 obj 12 에서는 obj 13을 참조하고 있는 것을 확인 가능하다.
obj 13 을 기준으로 다시 검색 진행

obj 13

pdf-parser --object 13 badpdf.pdf


검색 결과에서 obj 13은 데이터 스트림이 포함되어 있음을 확인할 수 있다.
해당 데이터를 분석하면 어떤 동작을 수행하는지 확인이 가능해보인다.
🔥 obj 13 은 /Filter /FlateDecode 키워드를 사용하여 FlateDecode 방식으로 인코딩 되어 있음을 확인했기 때문에 검색 시 --filter 옵션을 사용해줘야한다.
🔥 --filter 옵션 사용 시 FlateDecode, ASCIIHexDecode, ASCII85Decode, LZWDecode, RunLengthDecode 등 5가지의 인코딩에 대해 디코딩이 가능하다.

obj 13 상세 분석

pdf-parser --object 13 --raw --filter badpdf.pdf
profile
정보보안 꿈나무

0개의 댓글