Shodan - gadsec/GADLEARNS-WIKI- GitHub Wiki
概述:Shodan
Shodan是一款物联网搜索引擎。
- 能力:
- 根据关键词、域名、IP地址(固定)扫描(公网上的)对象端口和漏洞数。
- 调用方式:
- 1、网页端
www.shodan.io - 2、CLI
安装Python并将PIP更新后
使用命令
pip install shodan
即可
- 1、网页端
Shodan CLI命令用法
e.g. shodan host 0.0.0.0
-
init
初始化命令行工具。
shodan init [API_Key]
-
count
返回查询的结果数量。shodan count [What_You_Search_For]
-
download 将搜索结果下载到一个文件中,文件中的每一行都是 JSON 格式存储的目标 banner 信息。默认情况下,该命令只会下载1000条结果,如果想下载更多结果需要增加--limit 参数。
shodan download [what_you_searched]
-
parse 我们可以使用 parse 来解析之前下载数据,它可以帮助我们过滤出自己感兴趣的内容,也可以用来将下载的数据格式从 JSON 转换成 CSV 等等其他格式,当然更可以用作传递给其他处理脚本的管道.
shodan parse --fields [ip_str/port/org] --separator , [Data_e.g.:*.json.gz]
-
host
查看指定主机的相关信息,如地理位置信息,开放端口,甚至是否存在某些漏洞等信息。
shodan host [IP/Domain]
-
search
直接将查询结果展示在命令行中,默认情况下只显示IP、端口号、主机名和HTTP数据。当然我们也可以通过使用 –fields 来自定义显示内容
shodan search --fields [ip_str/port/org/hostnames] [What_You_Want]
-
常用 Shodan 库函数
shodan.Shodan(key)
:初始化连接APIShodan.count(query, facets=None)
:返回查询结果数量Shodan.host(ip, history=False)
:返回一个IP的详细信息Shodan.ports()
:返回Shodan可查询的端口号Shodan.protocols()
:返回Shodan可查询的协议Shodan.services()
:返回Shodan可查询的服务Shodan.queries(page=1, sort='timestamp', order='desc')
:查询其他用户分享的查询规则Shodan.scan(ips, force=False)
:使用Shodan进行扫描,ips可以为字符或字典类型Shodan.search(query, page=1, limit=None, offset=None, facets=None, minify=True)
:查询Shodan数据
Shodan网页搜索引擎用法
- 使用搜索过滤
如果像前面单纯只使用关键字直接进行搜索,搜索结果可能不尽人意,那么此时我们就需要使用一些特定的命令对搜索结果进行过滤,常见用的过滤命令如下所示:- hostname:搜索指定的主机或域名,例如 hostname:"google"
- port:搜索指定的端口或服务,例如 port:"21"
- country:搜索指定的国家,例如 country:"CN"
- city:搜索指定的城市,例如 city:"Hefei"
- org:搜索指定的组织或公司,例如 org:"google"
- isp:搜索指定的ISP供应商,例如 isp:"China Telecom"
- product:搜索指定的操作系统/软件/平台,例如 product:"Apache httpd"
- version:搜索指定的软件版本,例如 version:"1.6.2"
- geo:搜索指定的地理位置,参数为经纬度,例如 geo:"31.8639, 117.2808"
- before/after:搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:"11-11-15"
- net:搜索指定的IP地址或子网,例如 net:"210.45.240.0/24"
- 搜索实例
- 查找位于合肥的 Apache 服务器:
apache city:"Hefei" - 查找位于国内的 Nginx 服务器:
nginx country:"CN" - 查找 GWS(Google Web Server) 服务器:
"Server: gws" hostname:"google" - 查找指定网段的华为设备:
huawei net:"61.191.146.0/24"
- 查找位于合肥的 Apache 服务器:
- 有趣的功能
如上通过在基本关键字后增加指定的过滤关键字,能快速的帮助发现我们感兴趣的内容。当然,还有更快速更有意思的方法,那就是点击 Shodan 搜索栏右侧的 “Explore” 按钮,就会得到很多别人分享的搜索语法。 - 其他用法
- Exploits:
每次查询完后,点击页面上的 “Exploits” 按钮,Shodan 就会帮我们查找针对不同平台、不同类型可利用的 exploits。当然也可以通过直接访问网址来自行搜索:https://exploits.shodan.io/welcome; - 地图:
每次查询完后,点击页面上的 “Maps” 按钮,Shodan 会将查询结果可视化的展示在地图当中; - 报表:
每次查询完后,点击页面上的 “Create Report” 按钮,Shodan 就会帮我们生成一份精美的报表
- Exploits:
About
究极安装大法
由于某些平台如Termux、LFW等等无法按照正常方法安装,故出此下策:
- Linux的场合
apt install
python #安装最新版的python
git clone https://github.com/achillean/shodan-python.git && cd shodan-python
#获取Git库
python setup.py install
#安装。如果显示错误请参照Termux的场合,第四行开始的代码。 - Termux的场合
pkg install git
#安装GIT PS:Linux一般内置了Git,而Termux没有,所以多了这一步
pkg install python
#安装最新版的python
git clone https://github.com/achillean/shodan-python.git && cd shodan-python
#获取Git库
cd
#为了防止上一步‘&&’后面的命令因不可抗力失效,重新执行这一步。但是又为了防止执行完成之后无法继续执行,所以先回到最开始的位置
cd shodan-python
#接下来重复这一动作
python setup.py install
#进行安装