43 - Pentesting WHOIS

Tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

기본 정보

WHOIS 프로토콜은 특정 데이터베이스를 통해 다양한 인터넷 자원의 등록자 또는 보유자에 대해 조회하는 표준 방법으로 사용됩니다. 이러한 자원에는 도메인 이름, IP 주소 블록, 자율 시스템 등이 포함됩니다. 이 밖에도 이 프로토콜은 더 광범위한 정보에 접근하는 데 사용됩니다.

기본 포트: 43

PORT   STATE  SERVICE
43/tcp open   whois?

공격 관점에서 보면, WHOIS는 단순한 평문 기반 TCP 서비스일 뿐이다: 클라이언트가 쿼리를 보내면 서버가 사람이 읽을 수 있는 텍스트를 반환하고, 연결 종료가 응답의 끝을 표시한다. 프로토콜에는 내장된 인증, 무결성, 또는 기밀성이 없다.

최신 현실: WHOIS vs RDAP

인터넷 도메인 등록 데이터의 경우, WHOIS는 많은 공용 gTLD 워크플로에서 더 이상 권위 있는 옵션이 아니다. ICANN은 gTLD 등록 데이터에 대한 WHOIS를 2025-01-28에 종료시켰으며, 기계 판독 가능한 도메인 등록 조회에는 RDAP를 선호하는 프로토콜로 만들었다.

그러나 TCP/43은 다음과 같은 곳에서 계속 등장하기 때문에 여전히 테스트할 가치가 있다:

  • 레거시 또는 사설 WHOIS 서비스
  • RIR / IP 할당 워크플로
  • 내부 레지스트리 및 맞춤형 자산 데이터베이스
  • 서드파티 웹 도구 및 오래된 자동화(여전히 WHOIS 응답을 신뢰함)

목표가 reverse whois, 더 광범위한 자산 확장, 또는 recursive external recon이라면, 중복 작업을 피하기 위해 the External Recon Methodology page를 확인하라.

열거

whois 서비스가 도메인에 대해 가진 모든 정보를 가져온다:

whois -h <HOST> -p <PORT> "domain.tld"
printf 'domain.tld\r\n' | nc -vn <HOST> <PORT>

공개적으로 노출된 WHOIS 서비스를 발견하면, 객체 타입에 따라 많은 구현이 서로 다른 백엔드나 파서를 사용하므로 domainIP/ASN 스타일 쿼리 둘 다 테스트하세요:

# Domain
printf 'example.com\r\n' | nc -vn <HOST> 43

# IP / CIDR / ASN examples
printf '8.8.8.8\r\n' | nc -vn <HOST> 43
printf 'AS15169\r\n' | nc -vn <HOST> 43

가끔 WHOIS 서비스에 정보를 요청할 때 사용 중인 데이터베이스가 응답에 표시되는 경우가 있습니다:

Referral Chasing and Better Enumeration

많은 유용한 WHOIS enumeration이 referrals 뒤에 숨겨져 있습니다. 예를 들어, 한 서버는 특정 TLD나 RIR에 대한 다음 권한 있는 WHOIS 서버를 가리키기만 할 수 있습니다. 일부 커스텀 서비스는 후속 쿼리를 잘못 처리하거나, 필드를 일관되게 마스킹하지 않거나, 추가적인 backend metadata를 leak할 수 있으므로 수동으로 테스트해 볼 가치가 있습니다.

유용한 옵션 및 도구:

# Ask IANA first and then follow the authoritative referral (common Linux whois clients)
whois -I example.com
whois -I 8.8.8.8

# Let Nmap follow domain/IP WHOIS referrals automatically
nmap --script whois-domain <target>
nmap --script whois-ip <target>

# For IP ranges, disable the WHOIS cache if you care about smaller delegated blocks
nmap --script whois-ip --script-args whois.whodb=nocache <target>

서비스가 완전히 비공개 처리되지 않았을 때 피벗하기에 흥미로운 필드:

  • Registrar / Org / abuse contact — phishing 신고 또는 org-mapping(조직 매핑)용
  • Creation / update / expiration times — 새로 등록된 인프라를 식별하기 위해
  • Nameservers — 동일 운영자가 관리하는 도메인을 클러스터링하기 위해
  • Referral server names — 오래된(legacy) 또는 잊혀진 WHOIS 인프라를 찾기 위해

RDAP: 구조화된 후속 규격

노출된 서비스가 classic WHOIS이고 포트 43에서 동작하더라도, 동일한 제공자가 RDAP를 제공하는지 확인하세요 — RDAP는 종종 파싱이 더 쉽고 자동화에 더 적합합니다:

curl -s https://www.rdap.net/domain/example.com | jq
curl -s https://rdap.arin.net/registry/ip/8.8.8.8 | jq

A practical offensive nuance: a 2024 measurement study comparing WHOIS and RDAP at scale found that they are 항상 서로 대체 가능한 것은 아니다, with inconsistencies in fields such as registrar identifiers, creation dates, and nameservers. If your recon pipeline depends on those values, compare both sources before making decisions.

공격 노트

사용자 정의 WHOIS 게이트웨이의 백엔드 주입

또한 WHOIS 서비스는 정보를 저장하고 추출하기 위해 항상 데이터베이스를 사용합니다. 따라서 사용자로부터 제공된 정보로 데이터베이스를 쿼리할 때 SQLInjection이 존재할 수 있습니다. 예를 들어 whois -h 10.10.10.155 -p 43 "a') or 1=1#"를 실행하면 데이터베이스에 저장된 모든 정보추출할 수 있습니다.

테스트를 SQLi에만 국한하지 마십시오. 내부 또는 특정 WHOIS 배포에서는 쿼리가 프록시되어 다음으로 전달될 수 있습니다:

  • SQL / NoSQL backends
  • LDAP directories
  • 쉘 래퍼(다른 조회 도구 주위)
  • registrar나 asset-management 포털에서 사용하는 HTTP APIs

따라서 SQLi, LDAP injection, delimiter abuse, 매우 긴 문자열, 손상된 UTF-8 / 제어 문자에 대한 페이로드로 퍼징하세요. 프로토콜 자체는 단순하지만, 위험한 부분은 보통 parser or backend glue code입니다.

악의적/구식 WHOIS 서버

2024–2025년 관련 공격 경로 중 하나는 outdated WHOIS trust를 악용하는 것입니다. 레지스트리나 도구가 WHOIS 호스트명을 변경하고 이전 도메인이 만료되면, 공격자가 이전 호스트명을 등록하여 rogue WHOIS server를 운영할 수 있습니다.

이렇게 하면 공격자는 다음에서 보이는 응답 본문을 제어할 수 있습니다:

  • 하드코딩된 서버 매핑을 가진 오래된 WHOIS 클라이언트
  • WHOIS 출력을 가져와 사용자에게 렌더링하는 웹 애플리케이션
  • 도메인 검증 또는 소유권 워크플로우에 여전히 WHOIS를 사용하는 자동화

이것이 중요한 이유는 rogue WHOIS 응답이 다음과 같은 진입점이 될 수 있기 때문입니다:

  • 웹 WHOIS 프론트엔드에서의 stored/reflected XSS
  • 텍스트 응답을 소비하는 라이브러리의 parser bugs / command injection / eval bugs
  • 시스템이 공격자가 제어하는 WHOIS 연락처 데이터를 신뢰할 때 발생하는 잘못된 자동화 결정

개인 또는 레거시 WHOIS 서비스를 찾으면, 반환된 refer: / Whois Server: 값, 배너, 또는 TLD 매핑이 만료되었거나 공격자가 등록할 수 있는 도메인을 가리키는지 항상 확인하세요.

Shodan

  • port:43 whois

HackTricks Automatic Commands

Protocol_Name: WHOIS    #Protocol Abbreviation if there is one.
Port_Number:  43     #Comma separated if there is more than one.
Protocol_Description: WHOIS         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for WHOIS
Note: |
The WHOIS protocol serves as a standard method for inquiring about the registrants or holders of various Internet resources through specific databases. These resources encompass domain names, blocks of IP addresses, and autonomous systems, among others. Beyond these, the protocol finds application in accessing a broader spectrum of information.


https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html

Entry_2:
Name: Banner Grab
Description: Grab WHOIS Banner
Command: whois -h {IP} -p 43 {Domain_Name} && printf '{Domain_Name}\r\n' | nc -vn {IP} 43

Entry_3:
Name: Nmap WHOIS Referrals
Description: Follow WHOIS referrals for domain and IP lookups
Command: nmap --script whois-domain,whois-ip --script-args whois.whodb=nocache {IP}

참고자료

Tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기