Trong quá trình kiểm thử xâm nhập trong lĩnh vực an toàn thông tin, việc khám phá các subdomain là một bước quan trọng để xác định phạm vi tấn công và tìm ra các điểm yếu tiềm ẩn. Trong bài viết này, chúng ta sẽ tìm hiểu về kỹ thuật subdomain enumeration và giới thiệu ba công cụ mã nguồn mở phổ biến: amass
, subfinder
, và httpx
.
1. Kỹ thuật Subdomain Enumeration
Bước đầu tiên trong quá trình kiểm thử xâm nhập là reconnaissance (thăm dò thông tin). Trong bước này, những người kiểm thử xâm nhập, hay còn gọi là pentester sẽ tìm kiếm thông tin nhiều nhất có thể về mục tiêu. Open-source intelligence (OSINT) là một phần của quá trình reconnaissance, sử dụng các công cụ nguồn mở để thu thập thông tin từ các nguồn công khai có sẵn và sau đó phân tích chúng.
Trong quá trình kiểm thử an toàn ứng dụng web (pentest), việc khám phá các subdomain là một bước quan trọng để xác định phạm vi tấn công và tìm ra các điểm yếu tiềm ẩn. Dưới đây là một số phương pháp và công cụ thường được sử dụng để thực hiện subdomain enumeration:
Google Dorks:
- Google và Bing hỗ trợ các toán tử (operators) để tạo các truy vấn tìm kiếm, được gọi là “Google Dorks”.
- Ví dụ:
site:google.com
sẽ trả về danh sách các subdomain được Google index, thông qua việc lấy dữ liệu từ Googlebot crawl. Điều này hữu ích để tìm các subdomain không được bảo vệ bởi tệp robots.txt. - Bing cũng hỗ trợ các toán tử tương tự.
Brute Forcing:
- Một số công cụ subdomain enumeration sử dụng kỹ thuật brute-force và recursive brute-force với một danh sách từ (wordlist) để kiểm tra xem các subdomain nào đang hoạt động.
- Mặc dù không nhanh chóng, nhưng phương pháp này thường đem lại kết quả chính xác.
- Các công cụ sử dụng phương pháp này bao gồm: Amass, SubBrute, Puredns và Fierce.
Các Dịch Vụ Bên Thứ Ba:
- Có nhiều dịch vụ bên thứ ba thu thập dữ liệu DNS lớn.
- Các công cụ subdomain enumeration có thể sử dụng API của các dịch vụ này để tìm kiếm subdomain.
- Ví dụ về dịch vụ bên thứ ba: VirusTotal, CloudFlare, WaybackMachine.
Chứng Chỉ SSL/TLS:
- Chứng chỉ SSL/TLS chứa thông tin về tên miền, tên subdomain và địa chỉ email.
- Các công cụ có thể tra cứu chứng chỉ của một tên miền thông qua các URL: crt.sh, Censys
DNS Zone Transfer:
- DNS Zone Transfer là quá trình mà một máy chủ DNS sao chép một phần của cơ sở dữ liệu DNS của nó cho một máy chủ khác.
- Phương pháp này chỉ hoạt động khi khu vực DNS không được bảo vệ khỏi các yêu cầu AXFR.
- Một số máy chủ vẫn cho phép yêu cầu này, và các công cụ subdomain enumeration vẫn sử dụng phương pháp này
2. Các Công Cụ Mã Nguồn Mở
2.1. Amass
amass
là một công cụ mã nguồn mở được viết bằng Go, được sử dụng để thu thập thông tin về các subdomain của một tên miền cụ thể.
Cài đặt và sử dụng:
- Bước 1: Cài đặt Amass bằng lệnh sau:
go install -v github.com/owasp-amass/amass/v4/...@master
Hoặc sử dụng Homebrew: brew install amass
Hoặc Docker: docker pull caffix/amass
- Bước 2: Chạy lệnh sau để tìm kiếm subdomain của tên miền
example.com
:
amass enum -d example.com
Kết quả sẽ được lưu trong thư mục ~/.config/amass/
2.2. Subfinder
subfinder
là một công cụ mã nguồn mở khác, được viết bằng Go, giúp tìm kiếm các subdomain.
Cài đặt và sử dụng
- Bước 1: Cài đặt subfinder bằng lệnh sau
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
Hoặc sử dụng Homebrew: brew install subfinder
Hoặc Docker: docker pull projectdiscovery/subfinder
- Bước 2: Chạy lệnh sau để tìm kiếm subdomain của tên miền
example.com
và lưu kết quả vào tệpsubdomains.txt
:
subfinder -d example.com -o subdomains.txt
2.3. Httpx
httpx
là công cụ mã nguồn mở để kiểm tra tích hợp nhanh chóng của các subdomain với các dịch vụ web.
Cài đặt và sử dụng
- Bước 1: Cài đặt httpx bằng lệnh sau
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
Hoặc sử dụng Docker: docker pull projectdiscovery/httpx
- Bước 2: Chạy lệnh sau để kiểm tra tích hợp của các subdomain với dịch vụ web:
httpx -l subdomains.txt
3. Kết Luận
Việc sử dụng các công cụ mã nguồn mở như amass, subfinder và httpx giúp những nhà kiểm thử xâm nhập tìm ra các subdomain và thông tin liên quan, từ đó cải thiện quá trình kiểm thử xâm nhập được hiệu quả hơn.