
HTTP, SMB, MSSQL, SMTP, IMAP, POP3, NNTP, LDAP, RDP 전반에서 Type-2 챌린지를 디코딩하여 AD 세부 정보와 내부 IP를 추출하는 인증되지 않은 NTLM 엔드포인트 정찰 도구입니다.
____ / // /__ ___ ______________ __ / / / __ / / / __ ` / / / __ / / / / __/ / / / / // / / / / / ( ) // // / // / /_ // //_/// // ///_/___/_,/__/
인터넷에 노출된 NTLM을 사냥하다 BoydHacks · github.com/BoydHacks
# ntlmscout
**인터넷에 노출된 NTLM 엔드포인트에서 정보를 한 방울까지 짜내는 단일 도구.**
인증되지 않은 NTLM 협상은 자격 증명을 단 한 번도 전송하기 전에 놀랄 만큼 많은 내부 Active Directory 세부 정보를 유출합니다. `ntlmscout`은 다양한 전송 계층에 걸쳐 NTLM Type-1(NEGOTIATE) 메시지를 보내고, 돌아오는 Type-2(CHALLENGE)를 완전히 디코딩하여 모든 것을 추출합니다: 내부 NetBIOS/DNS 호스트 및 도메인 이름, AD 포리스트, OS 빌드(친숙한 Windows 버전으로 매핑), 서버 시계(및 시계 오차), negotiate 플래그, 그리고 모든 AV_PAIR — 그런 다음 인접한 비인증 유출 정보와 선택적인, 계정 잠금에 안전한 패스워드 스프레이로 이를 보강합니다.
순수 표준 라이브러리. 단일 파일. Python 3.7+. 의존성 없음.
## 기능
- **모든 전송 계층을 하나의 도구로** — HTTP(S)(엔드포인트 탐색 포함), SMB2/3, MSSQL/TDS, SMTP, IMAP, POP3, NNTP, LDAP(S), 그리고 RDP/CredSSP(NLA).
- **심층 Type-2 디코딩** — NetBIOS + DNS 호스트/도메인, 포리스트/트리 이름, OS 빌드 → 친숙한 이름(클라이언트 vs. 서버 구분), 서버 타임스탬프 + 시계 오차, SPN, MachineID, 채널 바인딩, 그리고 전체 negotiate 플래그 분석.
- **단순 덤프가 아닌 해석** — 정직한 **멤버 vs. 도메인 컨트롤러** 분류(DC 서비스가 실제로 응답할 때만 DC라고 주장), 그리고 보안 태세 판독(SMB/LDAP 서명, EPA/채널 바인딩, NTLMv1/LM 취약 암호화).
- **내부 IP 복구** — NTLM 자체로는 줄 수 없는 단 하나의 정보 — IIS Host 헤더 유출(CVE-2000-0649), WebDAV PROPFIND, RPC `IOXIDResolver::ServerAlive2`(TCP 135), 그리고 TLS/RDP 인증서 IP SAN을 통해.
- **추가 유출 정보** — TLS/RDP 인증서 CN + SAN, Exchange `X-FEServer`/`X-CalculatedBETarget` 헤더 유출, 그리고 익명 **LDAP rootDSE** 보강(naming contexts, `dnsHostName`, AD 기능 수준).
- **빠름** — 포트 활성 여부 게이트가 닫힌 포트에 대한 모든 프로브를 건너뛰므로, 필터링된 호스트가 타임아웃의 벽을 초래하지 않습니다.
- **계정 잠금에 안전한 스프레이 모드** — 패스워드 스프레이 순서(라운드당 모든 사용자에 대해 하나의 패스워드), 가장 효과적인 엔드포인트에 대한 NTLM Type-3 또는 HTTP Basic, 명확한 유효/무효/판단 불가 판정 포함.
- **보고서용 출력** — 호스트별 그룹화된 요약과 JSON, NDJSON, CSV, 그리고 NetExec 스타일 호스트 파일. 출력 파일은 소유자 전용 권한으로 작성됩니다.
## 설치
```bash
git clone https://github.com/BoydHacks/ntlmscout
cd ntlmscout
python3 ntlmscout.py --help
pip install도, virtualenv도 필요 없습니다 — Python 표준 라이브러리만 사용합니다.
# 단일 IP 또는 호스트 정찰 (모든 NTLM 지원 포트 전체 스윕)
python3 ntlmscout.py 203.0.113.10
python3 ntlmscout.py mail.example.com
# 특정 엔드포인트, 또는 전체 범위, 또는 대상 목록
python3 ntlmscout.py https://mail.example.com/ews/
python3 ntlmscout.py 10.0.0.0/24
python3 ntlmscout.py -I targets.txt --json results.json
# 모든 트래픽을 Burp / CONNECT 프록시를 통해 라우팅
python3 ntlmscout.py -I targets.txt --proxy 127.0.0.1:8080
# 최적의 엔드포인트에 대한 계정 잠금에 안전한 패스워드 스프레이
python3 ntlmscout.py --spray -I hosts.txt -u users.txt -p 'Winter2026!' --delay 1800
정찰은 기본적으로 전체 스윕입니다. --no-discover(HTTP 경로 워드리스트 건너뛰기) 또는 --no-internal-ip(인증서/OXID/IIS 검사 건너뛰기)로 축소하세요. 전체 메뉴는 --help를 참조하세요.
========================================================================
HOST: 203.0.113.10 (EXCH01.corp.example.com)
------------------------------------------------------------------------
External address : 203.0.113.10
Internal address : 10.0.0.25
Realm : CORP
Realm type : domain
NetBIOS host : EXCH01
NetBIOS domain : CORP
DNS host : EXCH01.corp.example.com
DNS domain : corp.example.com
DNS forest : corp.example.com
OS : Windows Server 2019
OS build : 10.0.17763
Server time (UTC) : 2026-01-01 12:00:00
Time skew (s) : -0.1
Role : Domain member
NTLM endpoints identified: 4
- https://203.0.113.10/ews/
- https://203.0.113.10/rpc/
- https://203.0.113.10/autodiscover/
- smb://203.0.113.10:445
========================================================================
[+] 4 exposed NTLM endpoint(s) on 1 of 1 host(s).
발견된 엔드포인트는 자동으로 화면에 나열됩니다. 전체 필드별 로그를 원하면 -o log.txt를, 기계 판독 가능한 출력을 원하면 --json/--csv를 추가하세요.
스프레이 모드는 옵트인 방식이며 패스워드 스프레이 순서로 고정되어 있습니다 — 라운드당 모든 계정에 대해 하나의 패스워드를 시도하므로, 어떤 계정도 라운드당 한 번 이상의 시도를 받지 않습니다. --delay를 대상의 잠금 관찰 창으로 설정하고 실행 전에 잠금 정책을 확인하세요. 유효, 깔끔하게 거부됨, 판단 불가 결과를 별도로 보고하므로 부정적인 결과가 깨진 오라클의 산물이 아니라 신뢰할 수 있습니다.
ntlmscout은 NTLM 엔드포인트 정찰을 개척한 연구자와 도구들의 어깨 위에 서 있습니다. 그들의 아이디어, 기법, 엔드포인트 워드리스트가 이 프로젝트에 직접적인 영향을 주었습니다:
*-ntlm-info NSE 스크립트 — Justin Cacak(http/imap/pop3/smtp/nntp/telnet/ms-sql) 및 Tom Sellers(rdp): 각 서비스에서 Type-2를 끌어내기 위한 프로토콜별 레시피.IOXIDResolver::ServerAlive2 내부 주소 기법과 NTLM 릴레이/태세 개념에 대한 문서화.프로토콜 세부 사항은 Microsoft의 [MS-NLMP] Open Specification과 Eric Glass의 고전적인 davenport NTLM 노트를 따릅니다. IIS 내부 IP 유출은 CVE-2000-0649입니다.
당신의 작업이 여기에 속하는데 제가 빠뜨렸다면, 이슈를 열어주세요 — 크레딧은 마땅하며 추가하겠습니다.
BoydHacks — github.com/BoydHacks