信息搜集:网络空间搜索引擎(Shodan)语法及API应用案例

article/2025/9/25 4:04:56

信息搜集:网络空间搜索引擎(Shodan)语法及API应用案例


使用Python去调用Shodan的API接口可以实现自动化信息搜集,首先需要注册用户,在My Account中可以看到API Key。本例如下图:

初始化API:

import shodan
SHODAN_AIP_KEY = 'SXEuzFfIj612RyNE5NcOhTeAtNHznp4s'
shodan_api = shodan.Shodan(SHODAN_AIP_KEY)

初始化API之后就可以使用Shodan的库函数,下面整理一些常用函数,具体详细资料可以参考Shodan官方给出的API文档的API文档。

​ § shodan_api.count(query, facets=None): 查询结果的数量

§ shodan_api.host(ip, history=False): 获取一个IP的详细信息

§ shodan_api.ports(): 获取Shodan可查询的端口号

§ shodan_api.protocols(): 获取Shodan可查询的协议

§ shodan_api.services(): 获取Shodan可查询的服务

§ shodan_api.scan(ips, force=False): 使用Shodan进行扫描,ips 可以为字符或字典类型

运 行 环 境:

OS: macOS Monterey Version 12.3.1

IDE: PyCharm 2020.1

Python: Version 3.9.9

案例1

使用host方法获取指定IP的相关信息,代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :4/19/22 9:53 AM
# 文件      :Shadon_api.py
# IDE      :PyCharmimport shodan
import jsonSHODAN_API_KEY = 'SXEuzFfIj612RyNE5NcOhTeAtNHznp4s'
shodan_api = shodan.Shodan(SHODAN_API_KEY)
ip = shodan_api.host('8.8.8.8')
print(json.dumps(ip))

运行结果如下:

{"city": "Mountain View", "region_code": "CA", "os": null, "tags": [], "ip": 134744072, "isp": "Google LLC", "area_code": null, "longitude": -122.0775, "last_update": "2022-04-19T02:38:32.837618", "ports": [443, 53], "latitude": 37.4056, "hostnames": ["dns.google"], "country_code": "US", "country_name": "United States", "domains": ["dns.google"], "org": "Google LLC", "data": [{"hash": -553166942, "timestamp": "2022-04-18T07:23:42.652073", "isp": "Google LLC", "transport": "tcp", "data": "\nRecursion: enabled", "asn": "AS15169", "port": 53, "hostnames": ["dns.google"], "location": {"city": "Mountain View", "region_code": "CA", "area_code": null, "longitude": -122.0775, "latitude": 37.4056, "country_code": "US", "country_name": "United States"}, "dns": {"resolver_hostname": null, "recursive": true, "resolver_id": null, "software": null}, "ip": 134744072, "domains": ["dns.google"], "org": "Google LLC", "os": null, "_shodan": {"crawler": "2f5130275f52c94d38258ee96eca67b55cafa776", "options": {"scan": "KN95r4vTe8wly4MW"}, "id": "38b68de6-ce5c-4314-b7f7-58396ce221b8", "module": "dns-tcp", "ptr": true}, "opts": {}, "ip_str": "8.8.8.8"}, {"hash": -553166942, "timestamp": "2022-04-19T02:38:32.837618", "isp": "Google LLC", "transport": "udp", "data": "\nRecursion: enabled", "asn": "AS15169", "port": 53, "hostnames": ["dns.google"], "location": {"city": "Mountain View", "region_code": "CA", "area_code": null, "longitude": -122.0775, "latitude": 37.4056, "country_code": "US", "country_name": "United States"}, "dns": {"resolver_hostname": null, "recursive": true, "resolver_id": null, "software": null}, "ip": 134744072, "domains": ["dns.google"], "org": "Google LLC", "os": null, "_shodan": {"crawler": "d905ab419aeb10e9c57a336c7e1aa9629ae4a733", "options": {}, "id": "f7281fa0-1141-4376-a460-cd590a0ecec9", "module": "dns-udp", "ptr": true}, "opts": {"raw": "34ef818200010000000000000776657273696f6e0462696e640000100003"}, "ip_str": "8.8.8.8"}, {"hash": 1696509865, "http": {"status": 200, "robots_hash": null, "redirects": [{"host": "8.8.8.8", "data": "HTTP/1.1 302 Found\r\nX-Content-Type-Options: nosniff\r\nAccess-Control-Allow-Origin: *\r\nLocation: https://dns.google/\r\nDate: Tue, 19 Apr 2022 00:52:38 GMT\r\nContent-Type: text/html; charset=UTF-8\r\nServer: HTTP server (unknown)\r\nContent-Length: 216\r\nX-XSS-Protection: 0\r\nX-Frame-Options: SAMEORIGIN\r\nAlt-Svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000,h3-Q050=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\"\r\n\r\n", "location": "/"}], "securitytxt": null, "title": "Google Public DNS", "sitemap_hash": null, "html_hash": -2021997909, "robots": null, "favicon": {"hash": 56641965, "data": "https://dns.google:443/static/93dd5954/favicon.png"}, "headers_hash": 818523308, "host": "ebd41040e4bb3ec742c9e381d31ef2a41a48b6685c96e7cef3c1df6cd4331c99"], "jarm": YYWjm0QvEQzYc24\n-----END "dabffa9af7941654c1dba20b34d77fe371c156d0f67f6c7a17478c711d01d97d", "sha1": "635ae6c71205980a921a20b65f2a15216998de01"}, "serial": 73727805016154393975703427613934250457, "subject": {"CN": "dns.google"}, "pubkey": {"type": "rsa", "bits": 2048}, "issuer": {"C": "US", "CN": "GTS CA 1C3", "O": "Google Trust Services LLC"}}, "cipher": {"version": "TLSv1/SSLv3", "bits": 128, "name": "ECDHE-RSA-AES128-GCM-SHA256"}, "trust": {"revoked": false, "browser": {"mozilla": true, "apple": true, "microsoft": true}}, "handshake_states": ["before/connect initialization", "SSLv2/v3 write client hello", "SSLv2/v3 read server hello", "SSLv3/TLS read server hello", "SSLv3/TLS read server certificate", "SSLv3/TLS read server key exchange", "SSLv3/TLS read server done", "SSLv3/TLS write client key exchange", "SSLv3/TLS write change cipher spec", "SSLv3/TLS write finished", "SSLv3/TLS flush data", "SSLv3/TLS read server session ticket", "SSLv3/TLS read finished", "SSL negotiation finished successfully"], "alpn": ["grpc-exp", "h2", "http/1.1"], "ocsp": {}}, "hostnames": ["dns.google"], "transport": "tcp", "ip": 134744072, "domains": ["dns.google"], "ip_str": "8.8.8.8", "os": null, "_shodan": {"crawler": "6d5195c331613d103027c23dc52e6d32fd2a74af", "options": {}, "id": "4979ad21-a189-4b14-ae5c-171190ca8bbb", "module": "https", "ptr": true}, "opts": {"vulns": [], "heartbleed": "2022/04/19 00:53:42 8.8.8.8:443 - SAFE\n"}, "location": {"city": "Mountain View", "region_code": "CA", "area_code": null, "longitude": -122.0775, "latitude": 37.4056, "country_code": "US", "country_name": "United States"}}], "asn": "AS15169", "ip_str": "8.8.8.8"}

案例2

搜索JAWS摄像头,将IP和端口打印出来,代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :4/19/22 10:23 AM
# 文件      :shadon_api_webcam.py
# IDE      :PyCharmimport shodan
import jsonSHODAN_AIP_KEY = 'z0AN9iiu3CmzLeFuStYHPGB7gNJw3Kt3'
shodan_api = shodan.Shodan(SHODAN_AIP_KEY)results = shodan_api.search('JAWS/1.0')
print(f'Results found:{results["total"]}')for result in results['matches']:print(result['ip_str'] + ":" + str(result['port']))

运行结果如下:

(venv) (base) liuxiaowei@MacBookAir 网络空间搜索 % python shadon_api_webcam.py 
Results found:75470
14.*.*.140:8081
149.*.*.142:4808
212.*.*.4:8081
149.*.*.245:9221
185.*.*.181:9000
125.*.*.98:80
159.*.*.176:7443
178.*.*.210:60001
88.*.*.57:49152

http://chatgpt.dhexx.cn/article/Env6Jtpc.shtml

相关文章

shodan常用命令

简介 虽然目前人们都认为谷歌是最强劲的搜索引擎,但Shodan才是互联网上最可怕的搜索引擎。与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“黑暗”谷歌,一刻不停的在寻找着所有和互联…

Shodan搜索信息的方法

Shodan 是一种搜索引擎,但它与百度等搜索网址的搜索引擎不同,Shodan 可以用来搜索网络空间中在线设备的,包括一些物联网,工控设备等。你可以通过 Shodan 搜索指定的设备,或者搜索特定类型的设备,其中 Shoda…

信息搜集:SHODAN API 参考

信息搜集:SHODAN API 参考 Shodan是全球开放最早的网络空间搜索引擎,也是目前全球最为之名的搜索引擎。Shodan每月中会在全球5亿左右的设备上进行信息搜集,主要针对服务器、网络设备、摄像设备、工控设备等基础设备进行扫描。Shodan为用户提供…

shodan 简单使用教程

shodan使用指南 查询 基础查询: 语法 type:xxx注意:冒号左右没有空格 例 搜索指定的主机或域名: hostname:"google"搜索指定的端口或服务(数字可以不用双引号包裹): port:21搜索指定的国家: cou…

shodan基础用法

基本用法 Shodan有一些基础用法,首先来了解第一个用于寻找位于指定城市的设备 iis city:Beijing 用Shodan搜索我们会发现内容是来自全球的,如果我们想要指定国家的话则可以用这个 iis country: China 也可以指定端口进行搜索 https port: 80 寻找特定…

Shodan在渗透测试及漏洞挖掘中的一些用法

渗透测试中,第一阶段就是信息搜集,这一阶段完成的如何决定了你之后的进行是否顺利,是否更容易。而关于信息收集的文章网上也是有太多。今天我们来通过一些例子来讲解如何正确使用Shodan这一利器。 想要利用好这一利器,首先得知道他…

shodan的几个功能点

目录 介绍网络监控器Firefoxshodan命令行 介绍 Shodan是用于搜索连接到互联网设备的工具。与搜索引擎可以帮助你找到网站不同,Shodan可以帮助你找到有关台式机、服务器、loT设备等的信息。此信息包括元数据,例如在每个设备上运行的软件。 网络监控器 …

shodan(黑暗谷歌)信息收集

shodan介绍 与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“黑暗”谷歌,一刻不停的在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等。每个月Shodan都会在大约5亿个服务器上日夜…

Shodan新手使用指南

什么是 Shodan? 首先,Shodan 是一个搜索引擎,但它与 Google 这种搜索网址的搜索引擎不同,Shodan 是用来搜索网络空间中在线设备的,你可以通过 Shodan 搜索指定的设备,或者搜索特定类型的设备,其…

几种古典密码

1.单表代换密码 2.多表代换密码

古典密码之乘法密码

学习目标: 熟练掌握多表古典密码简单乘法加密算法原理及实现。掌握多表古典密码简单乘法加密算法的应用。 预备知识: 乘法密码是简单代替密码的一种。 它需要预先知道消息元素的个数,加密的过程其实是相当于对明文消息所组成的数组下标进行…

古典密码及现代密码分组密码与流密码总结

古典密码及现代密码分组密码与流密码总结 古典密码大部分加密方式是利用替换式密码或移项式密码,有时是二者的混合。一般情况下,一种古典密码体制包含一个字母表,以及一个操作规则或一种操作设备,到了现代基本不可信赖。 1.凯撒…

古典密码体制

文章目录 一、置换密码1、列置换密码2、周期置换密码 二、代换密码1、单表代换密码2、多表代换密码: 一、置换密码 置换密码门又称换位密码,是根据一定的规律重新排列明文,以打乱明文的结构特性。 常见的置换密码有两种,一种是列…

信息安全导论 实验一 古典密码学

一、实验目的与原理 1.实现古典密码学中的移位密码算法和维吉尼亚算法。 2.了解两种算法的原理,并且编写出来。 3.使用语言为C或者Python等。 二、实验内容与记录 位移密码算法: 移位密码算法 在加密的时候需要注意大小写的转换,这个可…

古典密码之维吉尼亚密码实验

学习目标: 维吉尼亚密码是古典密码中非常具有代表的例子。本实验要求用高级语言编写和调试一个简单的维吉尼亚密码实现及解密程序,通过本实验可以加深理解维吉尼亚密码原理。 预备知识: 人们在单一恺撒密码的基础上扩展出多表密码&#xff…

【密码学算法实现】古典密码

文章目录 2.1 代替技术2.1.1 仿射密码2.1.2 单表代替密码2.1.3 Hill密码Hill密码的已知明文攻击 2.1.4 Vigenere密码 2.2 置换技术2.2.1 栅栏密码2.2.2 矩阵密码 作为较为朴素的密码体系,古典密码通常都是对称的。如下图所示,对称密码通常是加密方与解密…

密码学-古典密码学习笔记

文章目录 参考资料替代技术单字母表替代密码凯撒密码移位密码仿射密码针对单字母表替代密码的攻击 多字母表替代密码Vigenere密码Hill密码(希尔密码) 置换技术置换密码的定义案例 本文作为一篇学习笔记,在图片和文字上大量参考了各种密码学书籍,并添加了…

古典密码算法实验c语言,古典密码实验报告.doc

古典密码实验报告.doc 哈尔滨工程大学实验报告实验名称古典密码算法班级学号姓名实验时间2014年4月成绩指导教师实验室名称哈尔滨工程大学实验室与资产管理处制一、实验名称古典密码算法2、实验目的通过编程实现经典的代替密码算法和置换密码,包括移位密码、维吉尼…

古典密码学学习笔记

1.历史 古典密码阶段:1949年以前 近代密码阶段:1949-1975年 现代密码阶段:1976年至今 2.加密方法 古典密码学的加密方法主要有两大类:替代和置换,或者是两者的结合 3.基本密码 1.键盘布局加密 这是一种比较简单也…

古典密码

古典密码将明文的每一个字母代换为字母表中的另一个字母,代换前现将明文字母用等价的十进制数字代替,使用十进制进行运算。 字母abcdefghijklm数字0123456789101112 字母nopqrstuvwxyz数字13141516171819202122232425 根据代换是对每个字母逐个进行还是…