Trong những năm gần đây việc tìm kiếm các subdomain (tên miền phụ) đã trở thành công việc quan trọng trong quá trình kiểm thử an toàn. Thông thường công việc này sẽ tốn khá nhiều thời gian và công sức. Tuy nhiên, cùng với sự phát triển của nền tảng công nghệ số đã cung cấp cho chúng ta các công cụ hữu hiệu. Bài viết này sẽ khái quát 5 công cụ tìm kiếm subdomain để trợ giúp trong quá trình kiểm thử xâm nhập.
Những phương pháp nổi bật trong việc tìm kiếm subdomain
Việc tìm kiếm subdomain giúp ích trong việc phân tích cơ sở hạ tầng tên miền của bất kỳ công ty nào. Chúng ta hãy cùng tìm hiểu những cách sử dụng phổ biến nhất hiện nay của các công cụ này là gì.
Kiểm tra DNS
Các cuộc tấn công DNS xảy ra ngày càng nhiều hơn, tuy nhiên các công ty vẫn chưa ý thức được sự nguy hiểm này. Rất ít các công ty thực hiện công việc kiểm tra DNS một cách thường xuyên mặc dù nó đem lại nhiều lợi ích hơn là có hại. Việc thực hiện kiểm tra DNS có thể tìm ra các lỗ hổng về DNS, cập nhật và vá chúng. Ngoài ra còn có thể tìm các subdomain không sử dụng, hoặc các subdomain chứa các lỗ hổng tiềm tàng.
Thông tin về tên miền.
Red teams thường sử dụng các công cụ tìm kiếm subdomain phục vụ cho các công việc điều tra infosec, thường bao gồm cả những kỹ thuật về OSINT. Các công cụ này phát hiện các thông tin bị lộ ra ngoài public như thông tin về người dùng, ứng dụng hay về các công nghệ đang được sử dụng trong hệ thống.
Rà soát lỗ hổng bảo mật
Một danh sách chứa đầy đủ các tên miền cùng với các tên miền phụ có thể mang lại nhiều lợi ích cho công việc rà soát lỗ hổng.
Cách hoạt động của công cụ tìm kiếm subdomain
Sử dụng các công cụ tìm kiếm
Ta có thể sử dụng google để tìm kiếm các tên miền phụ của bất kỳ tên miền nào. Chỉ cần sử dụng dòng lệnh đơn giản như dưới đây:
site:vsec.com.vn -www
Câu lệnh trên có thể trả về toàn bộ các tên miền được Google đánh chỉ mục.
Phần lớn các công cụ hiện nay đều sử dụng các công cụ như Google, Bing như một built-in modules để trợ giúp trong việc tìm kiếm.
Sử dụng phương pháp bruteforce
Một vài công cụ sử dụng phương pháp này để gia tăng kết quả tìm kiếm được. Đây có thể không phải là cách nhanh nhất để tìm kiếm nhưng có thể nói rằng đây là cách chính xác nhất.
Thông tin về TLS/SSL
Chứng chỉ SSL / TLS không chỉ hữu ích để mã hóa dữ liệu được gửi và nhận giữa các trình duyệt và máy chủ mà còn hữu ích cho người kiểm thử
Subject Alternate Name (SAN) của chứng chỉ SSL / TLS có thể được sử dụng để lấy các thông tin về miền và tên miền phụ.
Top 5 công cụ tìm kiếm subdomain (terminal-based)
- AMASS
Được phát triển trên nền tảng Go lang, đây là một trong những công cụ hiệu quả nhất trong việc tìm kiếm số lượng lớn subdomain.
Amass sử dụng nhiều kỹ thuật tìm kiếm subdomain như scrapping, recursive bruteforce, reverse DNS sweeping và Machine Learning để có được kết quả tốt nhất.
Việc cài đặt Amass cũng khá đơn giản. Các hướng dẫn cài đặt và sử dụng đều có trên trang github: https://github.com/OWASP/Amass
Hoặc có thể cài đặt thông qua snap (có trên Kali Linux và các Linux Distros khác) thông qua lệnh: snap install amass
Sau khi cài đặt xong ta có thể sử dụng câu lệnh cơ bản dưới đây để tìm kiếm subdomain: amass enum -d example.com
Kết quả:
Hướng dẫn sử dụng: https://github.com/OWASP/Amass/blob/master/doc/user_guide.md
- SubBrute
Đây là một trong những công cụ có tốc độ nhanh nhất trong việc tìm kiếm subdomain. Một trong những tính năng nổi bật nhất chính là khả năng che giấu việc dò quét subdomain của công cụ này thông qua việc sử dụng các open resolvers làm proxy.
Công cụ này cũng có thể hoạt động như một DNS spider, liên tục liệt kê các bản ghi DNS.
SubBrute hỗ trợ lọc các bản ghi DNS. Ví dụ: nếu bạn chỉ cần lấy bản ghi TXT từ bất kỳ tên miền nhất định nào, bạn có thể sử dụng tùy chọn –type: ./subbrute.py -s google.names google.com –type TXT
Một điều tuyệt vời khác về SubBrute là nó có thể được tích hợp vào các file script bằng cách sử dụng hàm subbrute.run(). Ví dụ:
import subbrute
for d in subbrute.run (“yahoo.com”):
print(d)
Để sử dụng nâng cao, chỉ cần chạy: ./subbrute -h
- Sublist3r
Sublist3r là một công cụ dựa trên Python. Công cụ này được sử dụng rộng rãi bởi những người săn tiền thưởng lỗi, cũng như các đội màu xanh và đỏ trên toàn cầu để thu thập dữ liệu miền phụ.
Bằng cách truy vấn các công cụ tìm kiếm như Bing, Yahoo, Google, Baidu và các nguồn bên thứ 3 khác như cơ sở dữ liệu subdomain của Netcraft hoặc VirusTotal, nó có thể là một trong những công cụ hiệu quả nhất và nhanh nhất khi bạn muốn tìm tên miền phụ.
Yêu cầu tối thiểu của Sublist3r là phiên bản Python2 hoặc Python3.
Phiên bản Python 2: 2.7.x
Phiên bản Python 3: 3.4.x
Để bắt đầu, bạn cần sao chép repo Git, sau đó chạy cài đặt cho một số dependencies bằng pip: pip install -r request.txt
Hiện tại bạn đã có thể thực hiện các tác vụ tìm kiếm tên miền phụ: ./sublist3r.py -d example.com
Kết quả trả về:
Github: https://github.com/aboul3la/Sublist3r
4.DNSRecon
DNSRecon là một trong những script được viết bằng Python nổi tiếng trong các công cụ tìm kiếm subdomain
Nó hoạt động bằng cách kiểm tra tất cả các bản ghi NS để chuyển vùng AXFR và có thể rất hữu ích trong việc liệt kê DNS cho hầu hết mọi loại bản ghi, bao gồm MX, SOA, NS, TXT, SPF và SRV.
Nó cũng hỗ trợ kiểm tra Wildcard resolution và bruteforce các bản ghi loại A và AAAA sử dụng wordlist có sẵn. Nó cũng có thể truy vấn Google dorks để tìm miền phụ được lập chỉ mục bởi GoogleBot.
Sau khi tải xuống DNSRecon, bạn sẽ cần cài đặt một số package bắt buộc với pip:
pip install -r request.txt
Sau đó, bạn đã sẵn sàng chạy công cụ này: ./dnsrecon.py -d example.com
Kết quả:
Github: https://github.com/darkoperator/dnsrecon
5.AltDNS
AltDNS là một công cụ khám phá tên miền phụ dựa trên công việc với các thay đổi và hoán vị.
Bằng cách đặt wordlist của riêng bạn (hoặc sử dụng wordlist mặc định tại altdns/words.txt), cũng như sử dụng danh sách các miền phụ đã được xác nhận, bạn có thể chạy script để tạo ra các từ có thể có trong tên miền.
AltDNS bao gồm một tập dữ liệu gồm hơn 200 miền phụ có thể được sử dụng để tạo ra các miền phụ hợp lệ.
Sau khi clone git về, cài đặt các package yêu cầu thông qua pip:
pip install -r request.txt
Sau đó, bạn có thể chạy AltDNS:
./altdns.py -i subdomains.txt -o data_output -w words.txt -r -s results_output.txt
Lưu ý: subdomains.txt là danh sách miền phụ và words.txt là wordlist của AltDNS.
Kết quả