5 công cụ tìm kiếm subdomain để trợ giúp trong quá trình kiểm thử xâm nhập

VSEC - BLOG Dành cho Chuyên gia kiểm thử

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)

  1. 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

 

  1. 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

 

  1. 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ả