Origin IPs Behind WAF
Identifying the Presence of a WAF
Để tìm IP sau WAF, trước tiên ta cần xác định xem website có đằng sau WAF hay không bằng cách dùng dig
để lấy IP và dùng ipinfo
để lấy thông tin về IP.
# Get the IP address
dig +short example.com
# Check the organization
curl -s https://ipinfo.io/IP | jq -r '.org'
Một số dấu hiệu trong kết quả trả về từ ipinfo
cho thấy website đứng đằng sau WAF:
- AWS WAF: có cookie
AWSLB
vàAWSLBCORS
. - Cloudflare: thông tin về tổ chức sẽ có “Cloudflare, Inc.”.
- Các WAF khác sẽ có những đặc điểm nhận diện đặc thù.
Cũng có thể dùng host
kết hợp với whois
để tìm IP cũng như là tổ chức của IP:
@deadsec ➜ ~ host enji.ai
enji.ai has address 172.66.XX.XX
enji.ai has address 162.159.XX.XX
@deadsec ➜ ~ whois 172.66.XX.XX
...
NetRange: 172.64.0.0 - 172.71.255.255
NetName: CLOUDFLARENET
OrgName: Cloudflare, Inc.
...
Wappalyzer cũng có thể dùng để phát hiện WAF:
Techniques
-
Historical DNS Records: sử dụng DNS history để tìm IP của domain tại thời điểm trước khi nó được triển khai WAF. Có thể sử dụng:
- SecurityTrails DNS History: export các A records rồi trích xuất IP:
grep -E -o "([0-9]{1,3}[\\.]){3}[0-9]{1,3}" dns_history.txt | sort -u > potential_ips.txt
. - DNS Dumpster: tạo network map rồi tìm các IP không có WAF.
- SecurityTrails DNS History: export các A records rồi trích xuất IP:
-
SSL Certificate Information: Lý do mà SSL cert có thể được dùng để tìm origin IP:
When a server hosts an SSL certificate, various details about the certificate, including its public key, can be used to trace back to the original server, even when the server is behind a CDN.
-
- Tìm các cert sử dụng target domain.
- Xem từng cert rồi xem IP của chúng.
- Thu thập tất cả các IP có liên quan.
- Ví dụ:
Bằng cách sử dụng IP tìm được, ta có thể sử dụng
curl
với hostname của target để kiểm tra xem IP đó có phải là IP thật của server hay không:curl -v http://52.19.60.183/ -H 'Host: enji.ai'
-
Shodan: sử dụng các dork sau:
# Search by Common Name (CN) ssl.cert.subject.CN:"example.com" # Search in all certificate fields (broader) ssl:"example.com"
-
-
Email Headers Analysis: email từ target domain thường chứa internal IP:
- Trigger email từ target (register, password reset, newsletters)
- Kiểm tra headers của email, cụ thể:
- Return-Path
- Received
- X-Originating-IP
-
Tìm kiếm thông qua SPF record: truy cập MX Lookup Tool - Check your DNS MX Records online - MxToolbox và nhập vào target domain để tìm các SPF record.
-
Direct IP Testing: nếu chúng ta có dãy IP của org thì có thể kiểm tra bằng cách gửi request kèm theo hostname của target. Ví dụ, nếu dãy IP của org trong file
potential_ips.txt
và hostname làexample.com
thì ta có thể kiểm tra như sau:# Test single IP curl -s -k -H "Host: example.com" https://POTENTIAL_IP/ # Test multiple IPs for ip in $(cat potential_ips.txt); do org=$(curl -s https://ipinfo.io/$ip | jq -r '.org') title=$(timeout 2 curl -s -k -H "Host: example.com" https://$ip/ | pup 'title text{}') echo "IP: $ip | Title: $title | Org: $org" done
-
Subdomain: một vài subdomain chẳng hạn như môi trường dev hoặc staging thường không được triển khai WAF.
-
CDN IP ranges: nếu chúng ta biết target được host ở trên AWS thì có thể sử dụng dãy IP của AWS rồi dùng
curl
để kiểm tra từng IP như trên.$ cat amazon-ipv4-sni.txt | grep enji.ai ... 52.209.176.32:443 -- [enji.ai *.comedian.maddevs.co *.staging.enji.ai *.enji.ai *.dev.enji.ai comedian.maddevs.co] ...
-
Favicon Hashes:
- Truy cập The Favicon Finder và nhập target domain để tìm link đến favicon.
- Sử dụng Favicon hash generator để tính hash của favicon.
- Tìm trên Censys và Shodan sử dụng hash của favicon để tìm các IP thật của website.
Ngoài Censys và Shodan thì còn có một số search engine khác chẳng hạn như **Fofa**, **ZoomEye** hay **VirusTotal**.
Additional Methods
- Host header fuzzing: Việc fuzzing
Host
header sử dụng các sudmain khác nhau và các IP loopback cũng có thể giúp bypass WAF. - WordPress pingback:: Trong trường hợp của WordPress, có một kỹ thuật tên là pingback mà đôi khi cho phép kẻ tấn công lấy địa chỉ IP thực của server. Xem thêm.
Resources
Articles
- HowToHunt/FindOriginIP/FindOrigin.md at master · KathanP19/HowToHunt
- Beginners’ Guide: What Does Origin IP Mean and How to Find It
- Mysteriza/Find-Origin-IP-Behind-WAF: Guide to discovering the origin IP of websites behind WAF.
Tools
- Mysteriza/originip: The originip tool helps in finding the origin IP using various services such as dig, censys (optional), securitytrails, viewdns, hunter.how, fofa, and zoomeye.
- hakluke/hakoriginfinder: Tool for discovering the origin host behind a reverse proxy. Useful for bypassing cloud WAFs!: cần cung cấp IP range, thích hợp cho các kỹ thuật fuzzing IP range.
- m0rtem/CloudFail: Utilize misconfigured DNS and old database records to find hidden IP’s behind the CloudFlare network cloudflare
- christophetd/CloudFlair: 🔎 Find origin servers of websites behind CloudFlare by using Internet-wide scan data from Censys. cloudflare
- musana/CF-Hero: CF-Hero is a reconnaissance tool that uses multiple data sources to discover the origin IP addresses of Cloudflare-protected web applications cloudflare
Dorks
- 0xPugal/Awesome-Dorks: Dorks for Bug Bounty Hunting
- scrapts/shodan-favicon-hashes.csv at master · sansatart/scrapts
IPs of an Organization
Sử dụng whois
trên AS mà IP thuộc về để tìm thông tin liên quan đến tổ chức sở hữu AS đó:
whois AS12345
Tìm dãy IP của một AS sử dụng asnmap
:
asnmap -a AS394160
Cũng có thể sử dụng routing database:
whois -h whois.radb.net -- '-i origin AS394160' | grep "route:
Hostnames of IPs
Techniques
Dùng whois
cho IP:
whois 8.8.8.8
Có thể sử dụng Censys để tìm Forward DNS như trong phần Origin IPs Behind WAF.