Nếu bạn có gói API thì bạn sẽ nhận được một số tín dụng truy vấn nhất định mà bạn có thể chi tiêu mỗi tháng. Đối với những người có Tư cách thành viên Shodan, điều đó có nghĩa là bạn nhận được 100 tín dụng truy vấn mỗi tháng trong khi đối với các gói API, nó có thể dao động từ 10.000 đến không giới hạn
1 truy vấn tín dụng = 100 kết quả
Mỗi tín dụng truy vấn giúp bạn nhận được tối đa 100 kết quả, nghĩa là bạn có thể tải xuống ít nhất 10.000 kết quả mỗi tháng - bất kể loại tìm kiếm bạn đang thực hiện
Nếu bạn có đăng ký Dữ liệu doanh nghiệp thì bạn có thể tải xuống toàn bộ cơ sở dữ liệu Shodan. Để biết thêm thông tin về các dịch vụ doanh nghiệp của chúng tôi, vui lòng liên hệ sales@shodan. io
Yêu cầu
Để làm theo hướng dẫn này, bạn phải cài đặt thư viện Shodan Python. Hầu hết các hệ điều hành dựa trên Unix đã được cài đặt sẵn Python, vì vậy tất cả những gì bạn cần nhập để cài đặt thư viện Shodan là
$ sudo easy_install shodan
Nếu bạn đang dùng Ubuntu và chưa có easy_install, vui lòng chạy lệnh sau trước
$ sudo apt-get install python-setuptools
Sau khi bạn đã cài đặt thư viện, bạn có thể kiểm tra xem nó có hoạt động hay không bằng cách gõ shodan vào dấu nhắc lệnh/thiết bị đầu cuối
$ shodan
Usage: shodan [OPTIONS] COMMAND [ARGS]...
Options:
-h, --help Show this message and exit.
Commands:
alert Manage the network alerts for your account
convert Convert the given input data file into a...
count Returns the number of results for a search
download Download search results and save them in a...
honeyscore Check whether the IP is a honeypot or not.
host View all available information for an IP...
info Shows general information about your account
init Initialize the Shodan command-line
myip Print your external IP address
parse Extract information out of compressed JSON...
scan Scan an IP/ netblock using Shodan.
search Search the Shodan database
stats Provide summary information about a search...
stream Stream data in real-time.
Cuối cùng, hãy khởi tạo công cụ bằng khóa API mà bạn có thể lấy từ trang tài khoản của mình
$ shodan init YOUR_API_KEY
Sử dụng giao diện dòng lệnh
Shodan CLI cung cấp quyền truy cập vào hầu hết các chức năng của API trong giao diện thân thiện với người dùng. Nó cũng bao gồm một lệnh để dễ dàng tải xuống dữ liệu bằng tín dụng truy vấn từ API của bạn. Đây là một video nhanh cho thấy nó hoạt động như thế nào
Cơ bản của nó là
$ shodan download --limit
Ví dụ: đây là lệnh tải xuống 500 kết quả cho truy vấn tìm kiếm "product. mongodb" trả về các dịch vụ MongoDB đối mặt với Internet
$ shodan download --limit 500 mongodb-results product:mongodb
Kết quả của lệnh trên sẽ được lưu trong tệp có tên là mongodb-results. json. gz. Tại thời điểm này, bạn có thể dễ dàng chuyển đổi tệp thành CSV, KML hoặc đơn giản là xuất danh sách IP. cặp cổng bằng cách sử dụng lệnh phân tích cú pháp shodan
$ shodan parse --fields ip_str,port --separator , mongodb.json.gz
Lập trình với Shodan API
CLI sẽ hoạt động cho hầu hết các mục đích nhưng đôi khi bạn muốn thực hiện các chuyển đổi tùy chỉnh trên các biểu ngữ khi bạn đang tải chúng xuống. Hoặc bạn không muốn lưu trữ thông tin trong tệp cục bộ. Trong những trường hợp đó, bạn có thể sử dụng một phương thức trợ giúp thuận tiện do thư viện Python cung cấp cho Shodan được gọi là search_cursor[] để lặp lại các kết quả
from shodan import Shodan
from shodan.cli.helpers import get_api_key
api = Shodan[get_api_key[]]
limit = 500
counter = 0
for banner in api.search_cursor['product:mongodb']:
# Perform some custom manipulations or stream the results to a database
# For this example, I'll just print out the "data" property
print[banner['data']]
# Keep track of how many results have been downloaded so we don't use up all our query credits
counter += 1
if counter >= limit:
break
Phần kết luận
Chúng ta đã thảo luận về cách tải xuống dữ liệu bằng CLI, cách trích xuất các thuộc tính khỏi dữ liệu đó, cách chuyển đổi dữ liệu sang các định dạng tệp khác và cách xử lý trực tiếp kết quả tìm kiếm trong Python. Để biết ví dụ hoàn chỉnh sử dụng các kỹ năng này, hãy xem cách theo dõi các trang web bị tấn công