
SonicWall 보안 감사 툴킷 (취약한 CTF 랩 포함) (CVE-2021-20038, CVE-2024-53704)
SonicWall 장비를 위한 자동화된 보안 평가 프레임워크. 승인된 침투 테스트 목적으로만 사용하세요.
# Install dependencies
pip install -r requirements.txt
# Run all modules against a target
python3 sonicwall_audit.py --target 192.168.1.1 --port 8443
# Run specific modules
python3 sonicwall_audit.py -t 192.168.1.1 -p 8443 -m ssl,cve
# Verbose output
python3 sonicwall_audit.py -t 192.168.1.1 -p 8443 -v
# JSON-only output
python3 sonicwall_audit.py -t 192.168.1.1 -p 8443 --format json
| 모듈 | 설명 | 위험 수준 |
|---|---|---|
ssl | SSL/TLS 설정: 인증서, 프로토콜, 암호화 스위트, HSTS | 수동 |
cve | 핑거프린팅을 통한 알려진 CVE 탐지 | 수동 |
auth | 기본 자격 증명, 세션 보안, 속도 제한 | 능동 (낮음) |
web | 헤더, 정보 공개, API 노출, HTTP 메서드 | 수동/능동 |
ssl)cve)auth)web)보고서는 reports/ ( --output-dir 로 설정 가능) 에 저장됩니다:
sonicwall_audit_YYYYMMDD_HHMMSS.json — 기계 판독 가능sonicwall_audit_YYYYMMDD_HHMMSS.txt — 사람이 읽을 수 있으며 심각도 등급 포함| 코드 | 의미 |
|---|---|
| 0 | 중요 또는 높은 발견 없음 |
| 1 | 높은 심각도 발견 |
| 2 | 중요 심각도 발견 |
두 가지 주요 SonicWall CVE를 시뮬레이션하는 실제 익스플로잇 가능한 취약점이 포함된 Docker 기반 실습 랩입니다. 두 컨테이너 모두 실제 SonicWall 응답 패턴을 복제하여 감사 툴킷을 테스트할 수 있습니다.
cd lab && docker-compose up --build -d
| 컨테이너 | 포트 | CVE | 문제 |
|---|---|---|---|
sonicwall-sma100 | 8443 | CVE-2021-20038 | CGI 바이너리의 스택 버퍼 오버플로우 → RCE |
sonicwall-sslvpn | 4433 | CVE-2024-53704 |
익스플로잇 스켈레톤은 lab/exploits/ 에, 작동 솔루션은 lab/solutions/ 에 있습니다.
전체 해설: lab/WALKTHROUGH.md
sonicwall/
├── sonicwall_audit.py # 메인 진입점 / 오케스트레이터
├── validate_cves.py # 독립형 CVE 검증기
├── requirements.txt
├── configs/
│ └── default.json # 기본 설정
├── modules/
│ ├── base.py # 공유 기본 클래스 + HTTP 유틸리티
│ ├── ssl_audit.py # SSL/TLS 감사자
│ ├── cve_scanner.py # 알려진 CVE 스캐너
│ ├── auth_tester.py # 인증 테스터
│ ├── web_interface.py # 웹 인터페이스 감사자
│ ├── report_generator.py # JSON + 텍스트 보고서 출력
│ ├── cve_2021_20038_validator.py # CVE-2021-20038 심층 검증기
│ └── cve_2024_53704_validator.py # CVE-2024-53704 심층 검증기
├── lab/ # 취약 실습 랩 (Docker)
│ ├── docker-compose.yml
│ ├── WALKTHROUGH.md
│ ├── cve-2021-20038/ # 버퍼 오버플로우 컨테이너
│ ├── cve-2024-53704/ # 인증 우회 컨테이너
│ ├── exploits/ # 스켈레톤 익스플로잇 (빈칸 채우기)
│ └── solutions/ # 작동 익스플로잇 (스포일러)
└── reports/ # 생성된 보고서
# Returns non-zero exit code on critical/high findings
python3 sonicwall_audit.py -t $TARGET -p 8443 --format json -m ssl,cve,web
echo $? # 0=pass, 1=high, 2=critical
modules/cve_scanner.py를 편집하고 SONICWALL_CVES에 항목을 추가하세요:
{
"cve": "CVE-YYYY-NNNNN",
"cvss": 9.8,
"severity": "CRITICAL",
"title": "Description",
"description": "Full description",
"check": "_check_cve_yyyy_nnnnn", # method name
"remediation": "Update to version X.",
"affected_products": ["SonicOS"],
}
그런 다음 해당하는 _check_cve_yyyy_nnnnn(self, cve_info) 메서드를 구현하세요.
| 쿠키 위조를 통한 SSLVPN 인증 우회 |