- Mục tiêu
- Cài đặt và thiết lập công cụ Spiderfoot
- Dùng công cụ Spiderfoot để dò tìm thông tin
- Đọc hiểu kết quả từ công cụ Spiderfoot
- Mục đích
- Sử dụng công cụ Spiderfoot để hỗ trợ thu thập thông tin trong quá trình kiểm thử.
- Công cụ
- Trình duyệt web
- Spiderfoot trong Kali linux
- Cài đặt Spiderfoot trong Kali linux
- Trong trường hợp hệ điều hành chưa cài đặt Spiderfoot
# git clone https://github.com/smicallef/spiderfoot.git
# cd spiderfoot
# python3 -m venv env
# python3 sf.py -l 127.0.0.1:7777
V. Thực hành
a.Thiết lập new scan
- Để cửa sổ terminal chạy Spiderfoot, sau đó mở trình duyệt web và đi tới địa chỉ http://127.0.0.1:7777
- Hãy chọn kiểu quét Footprint. Lưu ý quá trình quét có thể mất nhiều thời gian (hàng giờ!). Kết quả của quá trình quét Chúng ta có thể xem kết quả trực tiếp trong khi Spiderfoot vẫn đang quét, vì vậy hãy xem lại kết quả. Để xem bản quét hiện có, hãy nhấp vào Scans thanh menu bên trên. Khi quá trình quét được thực hiện, dữ liệu sẽ được lưu trữ trong tệp cơ sở dữ liệu cục bộ (Spiderfoot.db). Ở ví dụ bên dưới, kểt quả có được sau khi quét hiu.vn
b. Xem kết quả rà quét
– Vào mục Scans và Scan name để xem kết quả
b.1. Status View
– Hãy bắt đầu bằng cách nhìn vào Status view.
– Có thể di chuột qua các thanh để xem thêm thông tin. Trong ảnh chụp màn hình ở trên, chúng ta thấy Spiderfoot đã xác định được 2999 link từ mục tiêu. Một số kết quả này có thể không chính xác. Ta sẽ phải xử lý dữ liệu để xác định thông tin nào là chính xác và phù hợp.
b.2. Browse
– Nhấp vào Browse để xem toàn bộ kết quả thu thập được.
– Trên trang này, ta sẽ tìm thấy các nhóm dữ liệu được Spiderfoot tìm thấy. Chúng ta có thể nhấp vào từng mục này để đi sâu vào các mục khác nhau. Chúng ta có thể loại bỏ những dữ liệu không liên quan để dễ dàng tập trung vào dữ liệu quan trọng hơn.
– Khi nhấp vào một liên kết nào trong danh sách đã tìm được ở đây tôi chọn Open TCP Port sẽ nhìn thấy nhiều dữ liệu hơn và hay nhớ chọn lọc dữ liệu phù hợp.
– Các trường hiển thị bao gồm:
· Checkbox field: Sử dụng trường này để đặt/bỏ đặt các trường là dương tính giả. Sau khi đã chọn ít nhất một mục, hãy nhấp vào nút Dương tính giả màu cam ở trên để đặt/hủy đặt bản ghi.
· Data Element: Dữ liệu mà module có thể thu được về từ mục tiêu.
· Source Data Element: Dữ liệu mà mô-đun nhận được làm cơ sở cho việc thu thập dữ liệu của nó. Trong ví dụ trên, mô-đun sfp_sslcert đã nhận được một sự kiện về một cổng đang mở và sử dụng sự kiện đó để lấy biểu ngữ trên cổng đó.
· Source Module: Mô-đun xác định dữ liệu này.
· Identified: Thời gian dữ liệu được phát hiện.
– Như đã thấy ở hình trên, chúng ta thu thập được một số trang Web hoặc địa chỉ IP đang được mở (hãy kiểm tra lại để bảo đảm thông tin là chính xác).
b.3 Loại bỏ những kết quả sai
– Ví dụ khi chúng ta vào mục Open TCP Port của hiu.vn, hãy copy URL hoặc địa chỉ IP và tìm kiếm, nếu nhận được kết quả không chính xác như hình bên dưới
– Chúng ta muốn loại bỏ nó khỏi tìm kiếm. Để thực hiện việc này, hãy thực hiện các bước sau:
1. Chọn hộp kiểm ở bất kỳ kết quả nào không đúng
2. Nhấp vào nút dương tính giả màu vàng
3. Sau khi chọn dương tính giả xong chúng ta chọn ẩn dương tính giả như hình bên dưới:
– Từ đây chúng ta thấy được lợi ít của việc thực hiển ẩn đi, giúp thông tin gọn gàng và chính xác hơn. Hãy thực hiện tương tư với những trường khác ở mục Browse để khám phá nhiều thông tin hơn về mục tiêu.
b.4 Graph
– Nhấp vào Graph để xem chế độ xem biểu đồ.
– Chế độ xem này hiển thị cách kết nối giữa các thành phần dữ liệu được Spiderfoot tìm thấy. Ở bên ảnh trên, chúng ta thấy một dấu chấm màu đỏ. Chấm đỏ đó là thông tin ban đầu chúng ta cung cấp cho Spiderfoot, tên miền ispace.edu.vn. Chúng ta có thể phóng to bằng cách nhấp đúp hoặc dùng con lăng. Ngoài ra, ta có thể nhấp vào các node để di chuyển chúng xung quanh để có cái nhìn rõ hơn.
– Có quá nhiều kết nối khác khiến điều này thực sự hữu ích, ta sẽ có cái nhìn trực quan hoá hơn về dữ liệu mà spiderfoot đã thu thập được. Ngoài ra có thể thử các đường dẫn có trong liên kết này ví dụ như thuvienso.hiu.vn.
c. Module
– Việc SpiderFoot thu thập dữ liệu được module hóa. Khi một module phát hiện một dữ liệu nào đó, nó sẽ được chuyển đến tất cả các modules có liên quan “interested” để xử lý. Sau đó, các module dựa vào các hoạt động trên phần dữ liệu đó để xác định dữ liệu mới và lần lượt tạo ra các sự kiện khác để cho các module khác có liên quan, v.v..
– Điều này có thể được minh họa rõ nhất bằng cách xem code của một module.
– Ví dụ: module sfp_names tìm kiếm các sự kiện TARGET_WEB_CONTENT và EMAILADDR để xác định tên người:
# What events is this module interested in for input
# * = be notified about all events.
def watchedEvents(self):
return [“TARGET_WEB_CONTENT”, “EMAILADDR”]
# What events this module produces
# This is to support the end user in selecting modules based on events
# produced.
def producedEvents(self):
return [“HUMAN_NAME”]
– Trong khi đó, vì mỗi sự kiện được tạo thành một module nên nó cũng được ghi lại trong cơ sở dữ liệu SpiderFoot để báo cáo và xem trong giao diện người dùng.
d. Thêm các mục tiêu khác
– Thiên long group
– Tiktok
– Netflix
Thực Hành
– Targer1: thienlonggroup.vn
– Đã lọc các tên miền không hoạt động
– Graph của thienlonggroup
– Dạng biểu đồ tập trung
– Các địa chỉ ip của các tên miền của thienlonggroup
– Xem log của spiderfoot, xem spiderfoot đã làm những thao tác nào
– Target 2: Tiktok
– Đã lọc cái tên miền không hoạt động
– Graph của tiktok
– Graph tập trung
– Địa chỉ ip của tiktok
– Log của spiderfoot khi footprinting tiktok
– Target 3: Netflix
– Đã lọc những tên miền không hoạt động
– Địa chỉ IP của netflix
– Email đã bị hack của netflix
– Graph của netlifx
– Graph kiểu tập trung
– Log của Spiderfoot khi footprinting Netlifx
NCTK – Adminvietnam.org