Shodan là một công cụ tìm kiếm cho các thiết bị kết nối Internet. Google cho phép bạn tìm kiếm trang web, Shodan cho phép bạn tìm kiếm thiết bị. Thư viện này cung cấp cho các nhà phát triển quyền truy cập dễ dàng vào tất cả dữ liệu được lưu trữ trong Shodan để tự động hóa các tác vụ và tích hợp vào các công cụ hiện có
Đặc trưng
- Tìm Shodan
- Tra cứu IP nhanh/số lượng lớn
- Hỗ trợ API phát trực tuyến để sử dụng vòi cứu hỏa Shodan theo thời gian thực
- Cảnh báo mạng [còn gọi là vòi cứu hỏa riêng]
- Quản lý thông báo email
- Khai thác API tìm kiếm được triển khai đầy đủ
- Tải dữ liệu hàng loạt
- Truy cập Shodan DNS DB để xem thông tin tên miền
- Giao diện dòng lệnh
Bắt đầu nhanh
from shodan import Shodan api = Shodan['MY API KEY'] # Lookup an IP ipinfo = api.host['8.8.8.8'] print[ipinfo] # Search for websites that have been "hacked" for banner in api.search_cursor['http.title:"hacked by"']: print[banner] # Get the total number of industrial control systems services on the Internet ics_services = api.count['tag:ics'] print['Industrial Control Systems: {}'.format[ics_services['total']]]
Lấy khóa API của bạn từ https. // tài khoản. shodan. io
Cài đặt
Để cài đặt thư viện Shodan, chỉ cần
$ pip install shodan
Hoặc nếu bạn chưa cài đặt pip [bạn nên cài đặt nghiêm túc]
$ easy_install shodan
tài liệu
Tài liệu có sẵn tại https. // shodan. đọcthedocs. org/ và https. //Cứu giúp. shodan. io
API Shodan là cách dễ nhất để cung cấp cho người dùng công cụ của bạn quyền truy cập vào dữ liệu Shodan. API cung cấp quyền truy cập vào tất cả dữ liệu được lưu trữ trong Shodan, cho phép bạn lấy chính xác thông tin bạn muốn
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
________số 8Kế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ả
$ pip install shodan0
Sự 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