PDF 파일로 인한 해킹 위험을 탐지하기 위한 글
Adobe PDF 파일 내 JavaScript, launch action, embedded files 존재 여부를 빠르게 탐지
경량 분석용
python pdfid.py sample.pdf
출력 예시:
/JS 1
/OpenAction 1
/JavaScript 1
/Launch 0
/EmbeddedFiles 0
/JS 나 /OpenAction 등이 있다면, 의심스러운 동작이 있다는 뜻
PDF 내부 오브젝트 구조를 파싱해서 자세히 들여다봄
스크립트, URL, 실행 명령어 등을 디코딩해 확인할 수 있음
python pdf-parser.py -a sample.pdf
또는 특정 오브젝트만 보기:
python pdf-parser.py -o 12 -f sample.pdf
강력한 분석 도구 + 쉘 인터페이스 제공
PDF 내부 스크립트 해석, 디코딩까지 가능 (암호화까지 어느 정도 대응)
peepdf sample.pdf
( + 참고, Adobe Acrobat Reader에서 열어야 실행됨 ( 크롬, Edge, 브라우저 PDF 뷰어는 JS 실행 안 함 ) )
Bash로 reportlab 설치
pip install reportlab
Python으로 pdf 파일 생성
c = canvas.Canvas("blank.pdf")
c.drawString(100, 750, "PDF 알람 테스트 파일입니다.")
c.save()
Bash로 PDF에 자바스크립트 삽입
pdfcpu inject -js "app.alert('알람입니다!');" blank.pdf alert.pdf
alert 라는 이름의 PDF 파일에 JS코드가 injection 되어 생성 ( 알람 기능만 )
pdfcpu inject -js "app.alert('메시지1'); app.launchURL('https://naver.com');" blank.pdf demo.pdf
demo 라는 이름의 PDF 파일에 JS코드가 injection 되어 생성 ( 알람 실행, naver 브라우저 실행 )