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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
apache_audit_cve-2026-23918 — Apache HTTP Server를 CVE-2026-23918(HTTP/2 double-free RCE) 및 관련 CVE 4건에 대해 점검하는 Python 툴킷. ALPN 검증 기능을 갖춘 패시브 스캐너 + 읽기 전용 로컬 감사 도구. 익스플로잇 미포함. | Kitploit
도구/GitHubGitHub/sibersan/apache_audit_cve-2026-23918
Defensive ToolsVulnerability ScannersConfiguration AuditingWeb SecurityNetwork SecurityIncident Response
GitHubsibersan/apache_audit_cve-2026-23918

apache_audit_cve-2026-23918

Apache HTTP Server를 CVE-2026-23918(HTTP/2 double-free RCE) 및 관련 CVE 4건에 대해 점검하는 Python 툴킷. ALPN 검증 기능을 갖춘 패시브 스캐너 + 읽기 전용 로컬 감사 도구. 익스플로잇 미포함.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
113개월 전아직 검토되지 않음

cve-2026-23918

CVE-2026-23918(Apache HTTPD HTTP/2 이중 해제 RCE) 및 2026년 5월 4일 Apache Software Foundation 보안 권고에서 공개된 4개의 관련 CVE에 대한 방어적 감사 도구입니다.

CVE심각도구성 요소영향영향 버전
CVE-2026-23918높음 (CVSS 8.8)HTTP/2이중 해제 / RCE2.4.66만 해당
CVE-2026-24072중간mod_rewrite (ap_expr)권한 상승≤ 2.4.66
CVE-2026-28780낮음mod_proxy_ajp힙 버퍼 오버플로≤ 2.4.66
CVE-2026-29168낮음mod_md (OCSP)리소스 고갈2.4.30 – 2.4.66
CVE-2026-29169낮음mod_dav_lockNULL 포인터 역참조 / DoS≤ 2.4.66

모든 문제는 Apache HTTP Server 2.4.67에서 패치되었습니다.


⚠️ 승인 및 범위

이 도구는 소유하고 있거나 테스트에 대한 명시적인 서면 승인을 받은 시스템에만 사용하도록 제작되었습니다. 승인되지 않은 스캔은 해당 지역에서 불법일 수 있습니다.

이 툴킷은 설계상 방어적입니다:

  • 취약점 페이로드 없음, 익스플로잇 시도 없음, 침습적 프로빙 없음.
  • 수동 스캐너는 표준 Server: HTTP 헤더만 읽고 표준 TLS ALPN을 사용합니다. 이는 모든 최신 브라우저가 HTTP/2를 협상하는 데 사용하는 것과 동일한 메커니즘입니다.
  • 로컬 감사기는 읽기 전용입니다. 어떤 파일이나 구성도 수정되지 않습니다.

목차

root@kitploit:~
.
├── apache_passive_audit.py    # External asset audit (banner-grab + ALPN)
├── apache_local_audit.py      # On-host / SSH local audit
├── LICENSE                    # MIT
├── .gitignore
└── README.md

요구 사항

  • Python 3.6+ — Ubuntu 18.04의 기본 python3 및 이후 모든 릴리스에서 작동합니다.
  • 표준 라이브러리만 사용 — 외부 종속성 없음.

설치

root@kitploit:~
git clone https://github.com/sibersan/cve-2026-23918.git
cd cve-2026-23918
chmod +x apache_passive_audit.py apache_local_audit.py

1. 수동 감사 — apache_passive_audit.py

HTTP Server: 헤더를 읽어 Apache 버전을 감지하고 CVE 테이블과 대조합니다. 또한 HTTPS 대상에 대해 표준 TLS ALPN 협상을 수행하여 HTTP/2가 노출되었는지 확인합니다. 이는 CVE-2026-23918이 악용 가능하기 위한 핵심 전제 조건입니다. 익스플로잇 페이로드는 전송되지 않습니다.

HTTP/2 검증 (ALPN)

이 스크립트는 TLS 핸드셰이크의 ALPN 확장(RFC 7301)에서 h2와 http/1.1을 제공합니다. 서버의 선택은 "HTTP/2가 활성화되어 있습니까?"에 대한 표준적이고 명확한 답변입니다 — 모든 최신 브라우저와 curl이 사용하는 방식입니다. 취약점이나 비정상적인 동작을 유발하지 않습니다.

위험 판정은 이를 반영합니다:

  • 버전 2.4.66 + ALPN을 통한 HTTP/2 확인 → VULNERABLE (RCE 경로 열림)
  • 버전 2.4.66 + HTTP/2 협상 안 됨 → AT_RISK (여전히 패치되지 않음, 다른 낮음/중간 심각도 CVE는 적용되지만 높은 심각도의 RCE 경로는 차단됨)
  • ALPN 테스트를 수행할 수 없음 → 보수적으로 접근, 노출된 것으로 간주
  • 버전 ≥ 2.4.67 → SAFE

사용법

root@kitploit:~
# Single target
python3 apache_passive_audit.py -t https://web.example.com

# Multiple targets
python3 apache_passive_audit.py -t https://a.example.com -t https://b.example.com

# Targets file, parallel, CSV + JSON output
python3 apache_passive_audit.py -f targets.txt -w 20 -o report.csv --json report.json

# CI / log-friendly (no colors)
python3 apache_passive_audit.py -f targets.txt --no-color

targets.txt 형식 (한 줄에 대상 하나, 주석은 #):

root@kitploit:~
https://www.example.com
intranet.example.local:8443
# old staging box
http://10.0.5.12

옵션

종료 코드 (CI/CD 친화적)

코드의미
0모든 대상 안전
1하나 이상의 대상이 UNKNOWN 또는 ERROR
2하나 이상의 대상이 VULNERABLE 또는 AT_RISK

위험 수준

제한 사항

  • ServerTokens Prod 또는 Minimal로 설정된 서버는 버전을 숨깁니다 — 스크립트는 정직하게 UNKNOWN을 반환합니다. 로컬 감사로 확인하세요.
  • 리버스 프록시(Cloudflare, F5, nginx 등) 뒤에 있는 Apache 인스턴스는 엣지에서 버전을 노출하지 않을 수 있습니다.
  • ALPN HTTP/2 감지는 HTTPS 대상에만 유의미합니다. HTTP/2 클리어텍스트(h2c)는 실제로 드물며 테스트되지 않습니다.

2. 로컬 감사 — apache_local_audit.py

대상 호스트에서(또는 SSH를 통해) 실행되어 Apache 바이너리, 버전, 로드된 모듈 및 HTTP/2 구성을 검사합니다. 또한 악용 가능성 전제 조건을 평가합니다: 예를 들어 버전이 2.4.66이지만 HTTP/2가 비활성화된 경우 CVE-2026-23918의 위험이 그에 따라 낮아집니다.

사용법

root@kitploit:~
sudo python3 apache_local_audit.py

# JSON report (for centralized inventory)
sudo python3 apache_local_audit.py --json /var/log/apache_audit_$(hostname).json

# Custom binary path
sudo python3 apache_local_audit.py --binary /opt/apache/bin/httpd

감지 기능

  • httpd -v / apache2 -v — 버전
  • httpd -V — 빌드 정보, HTTPD_ROOT, SERVER_CONFIG_FILE
  • apache2ctl -M 또는 httpd -M — 로드된 모듈
  • dpkg-query / rpm -q — 패키지 버전
  • 메인 구성 및 Include/IncludeOptional을 통해 포함된 모든 파일(Debian의 sites-enabled/, mods-enabled/ 포함) → Protocols 지시문 (h2 / h2c / http/1.1)

옵션

플래그설명
--binaryApache 바이너리 경로 (자동 감지 재정의)
--jsonJSON 보고서 출력
--no-color색상 출력 비활성화

종료 코드

코드의미
0SAFE
1PATCH_NEEDED 또는 UNKNOWN
2VULNERABLE 또는 AT_RISK

위험 수준

권한

전체 구성 읽기를 위해서는 sudo/root가 권장됩니다. 권한이 없으면 sites-enabled/, mods-enabled/ 또는 /etc/httpd/conf.d/의 일부 파일을 읽지 못할 수 있습니다.


인벤토리 전체에서 실행

여러 호스트에서 로컬 감사를 실행하고 보고서를 중앙에서 수집하려면 Ansible ad-hoc 예시:

root@kitploit:~
ansible all -i inventory.ini -b -m script \
  -a "apache_local_audit.py --json /tmp/apache_audit.json --no-color"

ansible all -i inventory.ini -b -m fetch \
  -a "src=/tmp/apache_audit.json dest=./reports/ flat=no"

수집된 JSON 파일은 jq 또는 간단한 Python 스크립트로 병합할 수 있습니다.


권장 완화 조치

CVE-2026-23918의 경우 (패치 적용 전까지):

  1. Apache HTTP Server를 2.4.67 이상으로 업그레이드 — 유일한 영구적인 해결책입니다.
  2. 임시 조치로 HTTP/2를 비활성화: 구성의 Protocols 지시문에서 h2와 h2c를 제거하거나 Debian/Ubuntu에서 sudo a2dismod http2를 실행한 후 서비스를 리로드하세요.
  3. 사용하지 않는다면 mod_dav_lock을 언로드하세요 (CVE-2026-29169).
  4. .htaccess 쓰기 권한이 있는 사용자/가상 호스트를 감사하세요 (CVE-2026-24072).

공식 권고: https://httpd.apache.org/security/vulnerabilities_24.html


기여

풀 리퀘스트를 환영합니다. 새 CVE를 추가할 때는 다음을 수행해 주세요:

  • 영향을 받는 버전 범위와 match 람다를 사용하여 CVE_TABLE에 항목을 추가하세요.
  • 로컬 스크립트의 경우 전제 조건 검사(로드된 모듈, 활성화된 프로토콜 등)를 위한 적절한 needs 필드를 정의하세요.
  • README 테이블을 업데이트하세요.
  • Python 3.6 호환성을 유지하세요: f-문자열, from __future__ import annotations, PEP 585 제네릭(list[int]), subprocess.run(capture_output=True) 및 @dataclass를 피하세요.

관리자

SiberSAN

라이선스

MIT © 2026 SiberSAN

면책 조항

이 소프트웨어는 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. 프로덕션 사용 전에 테스트 환경에서 검증하세요. 승인되지 않은 시스템에 대한 사용에 따른 모든 법적 책임은 사용자에게 있습니다.

도구 다운로드
플래그설명
-t, --target단일 대상 (반복 가능)
-f, --file대상 목록 파일
-o, --csvCSV 보고서 출력
--jsonJSON 보고서 출력
--timeout요청 제한 시간(초) (기본값 10)
-w, --workers병렬 작업자 스레드 (기본값 10)
--no-color색상 출력 비활성화
수준의미
VULNERABLE버전이 권고된 CVE 범위와 일치 AND 전제 조건 충족 (예: HTTP/2 활성화)
AT_RISK패치되지 않은 버전이지만 높은 심각도 전제 조건은 충족되지 않음, 다른 CVE는 여전히 적용됨
SAFE버전 ≥ 2.4.67
UNKNOWN배너가 숨겨져 있거나(ServerTokens Prod) 리버스 프록시/WAF에 의해 가려짐 — 로컬 감사 스크립트로 확인
NOT_APACHEApache가 아님 (nginx, IIS 등)
ERROR연결 오류
수준의미
VULNERABLE패치되지 않은 버전 + 높은 심각도 CVE 전제 조건 충족 (예: HTTP/2 활성화)
AT_RISK패치되지 않은 버전 + 하나 이상의 CVE 전제 조건 충족
PATCH_NEEDED패치되지 않은 버전이지만 관련 모듈/프로토콜이 활성화되지 않음 — 그래도 패치 필요
SAFE버전 ≥ 2.4.67
UNKNOWN버전을 감지할 수 없음