声明:课程内容为泷羽Sec网络安全B站课程 —— shodan (1),知识产权为其所有。本文目的为学习与技术分享,所有内容仅供参考。任何使用或参考本文内容所造成的法律后果与本人无关,特此声明。
一、学习目标
认识常用信息收集工具——shodan, 并掌握其初步使用。
二、内容摘要
介绍了一款通用的漏洞扫描工具—— shodan。初步介绍了它的原理,功能,安装过程与使用。重点介绍了它的两个常用命令search 与host。
三、学习内容
(一)shodan介绍
Shodan 是一个独特的搜索引擎,专注于发现互联网上的连接设备和服务。与传统的搜索引擎不同,Shodan 搜索的是物联网设备、网络摄像头、工业控制系统、Web 服务器等。它能够提供设备的详细信息,包括操作系统、软件版本、地理位置等。安全研究人员和专业人员广泛使用 Shodan 来评估网络风险、识别潜在的安全漏洞和进行安全审计。Shodan 提供了丰富的 API 和命令行工具,使得数据检索和分析更加便捷高效。
1. shodan 原理
Shodan上部署了多种扫描器,可以二十四小时不停对网络里的设备IP进行批量扫描。不同的地方,比如亚太、北美、南美、非洲)IP分配是已知的,每一个地区的IP都有一个大致的范围。Shodan是闭源的工具,具体的策略无从公开得如。它能满足渗透测试很多需漏洞扫描、设备扫描需的需求。
- 优点:方便、快速
- 缺点:不够实时、收费
2. shodan 功能
主要用于渗透测试的第一步——信息收集。可以在线查询,也可以用离线客户端,还有监视器可以进行端口监视。还可以进行API调用 。Shodan可以监控一些IP地址,它可以扫描这些IP站点有什么漏洞,反馈出结果。
(二)kali安装shodan流程
1. 克隆shodan
git clone https://github.com/achillean/shodan-python.git
2. 切换到shodan-python文件夹
cd shodan-python
3. 命令安装
python setup.py install
4. 初始化shodan
shodan init API_KEY
注:先shodan官网注册,才能获取API_KEY。故而不同kali用户的API_KEY不同且唯一
(三)shodan使用初步
1. shodan帮助文档
shodan -h
2. shodan search
1)命令格式
shodan search [options] <query>
[options]
: 可选参数,用于定制搜索结果:
--fields <field1,field2,...>
: 指定返回的字段,如ip_str, port, os
。
--limit <number>
: 限制返回的结果数量。
--color/--no-color:搜索结果着色显示
--separator TEXT:返回结果的分隔符
<query>: 搜索关键词或过滤条件,例如 "webcam" 或 "port:22"。主要的筛选参数如下:
ip_str:以点分十进制显示IPv4地址
port:3389 | 端口为3389 |
country:cn | 国家代码为中国; 查看全球国家代码清单:Taodocs |
city:shenzhen | 城市代码为深圳 |
os:windows7 | 操作系统为Win7 |
has_vuln:True | 是否有漏洞:是 |
device:webcam | 设备:摄像头 |
device:router | 设备:路由器 |
tp-link:web | 端侧设备 |
2)示例
A. 查看日本的IP地址
shodan search --limit 10 --fields ip,port country:jp # 显示出IP号与端口
B. 查看日本IP地址(添加城市)
shodan search --color --limit 10 --fields ip_str port:3389 country:jp city:tokyo # 查看开启3389端口 (用于Windows主机远程连接)
筛选条件
--fields ip_str:显示结果为IP地址
port:3389 筛选3389端口
country:jp 筛选国家为日本
city: tokyo 筛选城市为东京
3. shodan host
用于获取特定 IP 地址或主机名的详细信息。通过这个命令,用户可以详细了解某个主机在网络上的各种属性和服务信息。
1)命令格式
shodan host [options] <IP address or hostname>
#
<IP address or hostname>
: 想要查询的 IP 地址或主机名
2)示例
四、总结与思考
(一)shodan
shodan是渗透测试中做信息收集的常用工具,它集成了很多成熟的扫描器,可以扫描指定网络中的漏洞。本文介绍了它的初步使用方法——两个命令。search用于搜索有漏洞的IP, host命令搜索这个IP具体的漏洞信息。