Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/hackinglz/svg_phishing_tools
ReconnaissanceStatic AnalysisDynamic Analysis (Sandboxing)Information GatheringPhishingWeb SecurityMalware AnalysisThreat Intelligence
GitHubhackinglz/svg_phishing_tools

svg_phishing_tools

흔히 볼 수 있는 SVG 첨부 파일 피싱을 위한 SVG 분석 및 생성 도구

저장소 보기
5774411개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SVG 보안 분석 툴킷 - 도구 문서

이 툴킷은 잠재적으로 악성인 SVG 파일을 분석하고 보안 메커니즘을 탐지하기 위한 특수 Python 도구들을 포함합니다.

개요

이 툴킷은 네 가지 주요 도구로 구성됩니다:

  1. extract.py - 난독화된 URL 추출을 위한 정적 분석
  2. extract_dynamic.py - box-js를 사용한 JavaScript 실행 동적 분석
  3. cf_probe.py - Cloudflare 보호 탐지 (Turnstile, CAPTCHA 등)
  4. encoder.py - 난독화된 SVG 샘플 생성을 위한 테스트 케이스 생성기

도구 #1: extract.py - 정적 SVG URL 추출기

목적

패턴 기반 정적 분석 도구로, 악성 SVG 파일에서 난독화된 URL을 코드를 실행하지 않고 디코딩합니다. 초기 분석에 더 안전한 옵션입니다.

주요 기능

  • XOR 디코딩: XOR로 암호화된 페이로드 자동 탐지 및 디코딩
  • 문자 연산: 숫자 계산을 통한 String.fromCharCode 패턴 디코딩
  • Base64 추출: Base64로 인코딩된 URL 탐지 및 디코딩
  • 이메일 탐지: URL 연결에 사용된 이메일 주소 식별
  • 다중 난독화 전략: 다양한 난독화 해제 기법 처리

사용법

root@kitploit:~
# Analyze a single SVG file
python3 extract.py -i malicious.svg

# Verbose output showing decoded JavaScript
python3 extract.py -i malicious.svg -v

# Debug mode with detailed analysis steps
python3 extract.py -i malicious.svg -d

# Read from stdin
python3 extract.py < malicious.svg

주요 탐지 패턴

  1. Secretkey XOR 패턴: String.fromCharCode(115,101,99,...) ("secretkey") 탐지
  2. XOR 루프 탐지: parseInt 및 XOR 연산이 포함된 for 루프 식별
  3. Data URI 스크립트: data: URI에서 Base64 콘텐츠 추출 및 디코딩
  4. 중첩 atob() + 변수: atob("base64") + variableName 패턴 처리

의존성

  • Python 3.6+ (표준 라이브러리만 사용)

출력 예시

root@kitploit:~
DYNAMIC SVG URL EXTRACTOR
=========================================================
SVG #1 Results:
----------------------------------------
Obfuscation: XOR decoding (key length: 9)
Extracted URLs:
  → https://malicious.example.com/[email protected]

도구 #2: extract_dynamic.py - 동적 SVG JavaScript 분석기

목적

box-js를 사용하여 SVG 파일에 포함된 JavaScript를 추출하고 분석하는 정교한 동적 분석 도구입니다. 이 도구는 샌드박스 환경에서 JavaScript를 실행하며, 복잡한 난독화를 통해 구성된 경우에도 최종 완전한 URL을 추출하도록 설계되었습니다.

주요 기능

  • JavaScript 실행: box-js를 사용하여 SVG 스크립트를 안전하게 실행
  • 고급 후크 시스템: 포괄적인 모니터링을 위한 300줄 이상의 JavaScript 페이로드
  • URL 구성 추적: 문자열 연결을 통해 동적으로 구성된 URL 캡처
  • 최종 URL 우선순위: 완전한 URL과 부분 구성 요소를 구분
  • ActiveX/WScript 모니터링: 특수 Windows 스크립트 객체 탐지
  • 다중 싱크 탐지: location, window.open, fetch, XHR, Image.src 등 모니터링

의존성

root@kitploit:~
# Required: box-js must be installed globally
npm install -g box-js

# Python requirements (optional)
pip install -r requirements.txt

사용법

root@kitploit:~
# Basic analysis of a single SVG
python3 extract_dynamic.py -i malicious.svg

# Analyze with custom output directory
python3 extract_dynamic.py -i malicious.svg -o analysis_results

# Analyze directory of SVGs with extended timeout
python3 extract_dynamic.py -i svg_samples/ -t 60

# Keep temporary files for debugging
python3 extract_dynamic.py -i malicious.svg --keep-temp

# Save URL blocklist to file
python3 extract_dynamic.py -i malicious.svg --blocklist-out urls.txt

# Mask email addresses for privacy
python3 extract_dynamic.py -i malicious.svg --mask-emails

고급 기능

후크 시스템 (PRELUDE_JS)

이 도구는 다음을 후킹하는 포괄적인 JavaScript 페이로드를 주입합니다:

  • Location 연산: location.href, location.assign(), location.replace()
  • Window 메서드: window.open(), 탐색 메서드
  • HTTP 요청: fetch(), XMLHttpRequest.open()
  • 문자열 연산: String.prototype.concat, 문자열 조작
  • 디코더: atob(), decodeURI(), unescape()
  • 동적 실행: eval(), Function(), setTimeout()

패턴 인식

다음을 자동으로 탐지하고 처리합니다:

  • 단순 16진수 디코딩 패턴
  • 16진수로 인코딩된 동적 실행
  • XOR + 동적 eval 구성
  • 문자 매핑 + find() 실행
  • 산술 문자 코드 패턴
  • 일반적인 난독화 기법

출력 예시

root@kitploit:~
=== Processing: malicious.svg ===
  Wrote temp JS -> /tmp/boxjs_svg_ABC/test.boxed.js
  Running box-js (timeout 30s) with sink hooks...
  [+] box-js finished. Results in: boxjs_out/malicious.svg.boxjs_results

  *** FINAL COMPLETE URLS FOUND ***:
    → https://evil.example.com/[email protected]
  
  Emails found:
    → [email protected]

=== FINAL ANALYSIS SUMMARY ===
🎯 COMPLETE URLS EXTRACTED (1 total):
======================================================
  → https://evil.example.com/[email protected]
======================================================

도구 #3: cf_probe.py - Cloudflare 보호 탐지

목적

리다이렉트 체인 전반에 걸쳐 Turnstile, CAPTCHA 시스템, 브라우저 확인 및 기타 보호 조치를 포함한 Cloudflare 보안 메커니즘을 탐지하기 위한 웹 정찰 도구입니다.

주요 기능

  • 리다이렉트 체인 추적: HTTP 리다이렉트 및 meta-refresh 리다이렉트 자동 추적
  • 다중 탐지 패턴: 다양한 방법으로 Turnstile 탐지
  • JavaScript 파일 스캔: 연결된 JS 파일에서 추가 sitekey 분석
  • 압축 지원: gzip, deflate, brotli 압축 처리
  • 포괄적인 보호 탐지: 여러 Cloudflare 보호 유형 식별

의존성

root@kitploit:~
pip install requests
pip install brotli  # Optional for brotli support

사용법

root@kitploit:~
# Check single URL for Cloudflare protections
python3 cf_probe.py https://example.com

# Scan with JavaScript file analysis
python3 cf_probe.py https://example.com --scan-js

# Process multiple URLs from file
python3 cf_probe.py -i urls.txt

# Custom User-Agent and timeout
python3 cf_probe.py https://example.com -A "Custom-Agent" -t 30

# Disable TLS verification (for testing)
python3 cf_probe.py https://example.com --insecure

# Dump HTML/JS for analysis
python3 cf_probe.py https://example.com --dump analysis_dump/

탐지 기능

Turnstile 탐지

  • data-sitekey 속성
  • turnstile.render() JavaScript 호출
  • turnstile.create() JavaScript 호출
  • Turnstile API 스크립트 참조
  • cf-turnstile CSS 클래스

기타 Cloudflare 보호

  • 사용자 정의 CAPTCHA 시스템
  • 브라우저 확인 페이지
  • CF 챌린지 컨테이너
  • CF 헤더 (CF-Ray, 서버 헤더)
  • DDoS 보호 메시지

출력 예시

root@kitploit:~
=== Redirect/Navigation Chain (3 steps) ===

[0] URL: https://example.com
    Status: 301
    Cloudflare Protection: YES (CF Headers)
    CF Header: cf-ray: 123abc456def789

[1] URL: https://protected.example.com
    Status: 200
    Cloudflare Protection: YES (Turnstile, Custom CAPTCHA)
    Turnstile Site key(s): 0x1AAA000000000000000
    CAPTCHA Evidence: Click the computer to verify

=== Summary ===
Cloudflare Protection Detected: Turnstile with key(s): 0x1AAA000000000000000 | Custom CAPTCHA

도구 #4: encoder.py - SVG 테스트 케이스 생성기

목적

분석 도구를 테스트하기 위해 다양한 인코딩 패턴으로 난독화된 SVG 파일을 생성합니다.

주요 기능

  • 다중 난독화 패턴: 6가지 서로 다른 인코딩 기법
  • 동적 가변성: 무작위 변수 이름, 구조 및 인코딩 매개변수
  • 현실적인 테스트 데이터: 무작위 도메인 및 이메일 주소 생성
  • 일괄 생성: 완전한 테스트 스위트 생성 가능

사용법

root@kitploit:~
# Generate single pattern
python3 encoder.py -u "https://evil.com/c2" -p 1 -o test.svg

# Generate all patterns in directory
python3 encoder.py --random-all -o test_patterns/

# Custom email address
python3 encoder.py -u "https://evil.com" -e "[email protected]" -p 3 -o custom.svg

난독화 패턴

  1. XOR + Proxy 패턴: 실행을 위해 ES6 Proxy를 사용하는 향상된 XOR 인코딩
  2. Hex 함수 패턴: Function 생성자를 통한 16진수 인코딩 동적 실행
  3. 객체 키 패턴: 객체 속성을 사용한 XOR + 동적 eval 구성
  4. 문자 매핑 패턴: Array.find() 실행을 사용한 문자 매핑
  5. 산술 패턴: 산술 문자 코드 평가
  6. Data URI 패턴: data URI에 Base64로 인코딩된 스크립트

출력 예시

root@kitploit:~
$ python3 encoder.py --random-all -o test_suite/
Generated xor_proxy_enhanced: test_suite/pattern_01_xor_proxy_enhanced.svg
  URL: https://r4nd0m.example.com/[email protected]

Generated hex_function: test_suite/pattern_02_hex_function.svg  
  URL: https://evil-site.org/[email protected]

[... 4 more patterns ...]

테스트 워크플로우

권장 분석 워크플로우:

root@kitploit:~
# Step 1: Generate test cases
python3 encoder.py --random-all -o test_cases/

# Step 2: Static analysis first (safer)
python3 extract.py -i test_cases/pattern_01_*.svg -v > static_results.txt

# Step 3: Dynamic analysis (in isolated environment)
python3 extract_dynamic.py -i test_cases/ -o dynamic_results/ --blocklist-out malicious_urls.txt

# Step 4: Verify Cloudflare protection on extracted URLs (if safe to do so)
python3 cf_probe.py -i malicious_urls.txt

설치

root@kitploit:~
# Clone or download the toolkit
cd svg_tools/

# Install Python dependencies
pip install -r requirements.txt

# Install box-js globally (for dynamic analysis)
npm install -g box-js

# Verify installation
python3 extract.py --help
python3 extract_dynamic.py --help
python3 cf_probe.py --help
python3 encoder.py --help
도구 다운로드