Shodan自动化利用
字数 2033 2025-08-29 08:32:09
Shodan搜索引擎深度使用指南
一、Shodan概述
Shodan是一个针对网络设备的搜索引擎,被称为"暗黑系谷歌",能够快速在全球范围内搜索联网设备信息。它主要服务于安全研究人员和渗透测试人员,帮助他们寻找潜在的目标系统。
核心特点
- 覆盖全球约6亿台主机
- 扫描主机分布在8个国家和地区,减少地域性偏差
- 支持多种设备类型:服务器、工控设备、智能家电、摄像头等
- 提供API接口支持自动化操作
二、Shodan工作原理
Shodan通过定期端口扫描获取设备的Banner信息,处理后进行分类存储。Banner是设备在端口探测时返回的数据包中包含的标识信息。
Banner示例
HTTP服务Banner:
HTTP/1.1 200 OK
Server: nginx/1.2.19
Date: Sat, 13 Oct 2017 16:09:24 GMT
Content-Type: text/html; charset=utf-8
工控设备Banner:
Copyright: Original Siemens Equipment
PLC name: S7_Turbine
Module type: CPU 313C
Basic Firmware: v.3.3.8
三、Shodan基础搜索语法
基本查询参数
| 参数 | 示例 | 说明 |
|---|---|---|
hostname: |
hostname:"google" |
按主机名或域名搜索 |
port: |
port:"21" |
按端口或服务搜索 |
ip: |
ip:"168.205.71.64" |
按IP地址搜索 |
net: |
net:"210.45.240.0/24" |
按IP地址或子网搜索 |
vuln: |
vuln:CVE-2015-8869 |
按CVE漏洞搜索 |
os: |
os:"centOS" |
按操作系统搜索 |
isp: |
isp:"China Telecom" |
按ISP供应商搜索 |
product: |
product:"Apache httpd" |
按软件/平台搜索 |
version: |
version:"3.1.6" |
按软件版本搜索 |
geo: |
geo:"39.8779,116.4550" |
按经纬度搜索 |
country: |
country:"China" |
按国家搜索 |
city: |
city:"Hefei" |
按城市搜索 |
org: |
org:"google" |
按组织或公司搜索 |
before/after: |
before:"13/10/2017" |
按时间范围搜索 |
asn: |
asn:"AS2233" |
按自治系统号码搜索 |
组合查询示例
- 搜索成都开放8080端口的Apache主机:
Apache city:"Chengdu" port:"8080" - 搜索特定IP段的Linux主机:
os:"linux" net:"72.34.62.0/24" - 搜索美国的网络摄像头:
netcam country:"US"
四、Shodan命令行环境配置
安装步骤
- 确保已安装Python3环境
- 安装Shodan模块:
pip install Shodan - 下载Shodan项目:
git clone https://github.com/achillean/shodan-python.git - 执行安装:
cd shodan-python python setup.py install
初始化API
在Web个人主页获取API Key后初始化:
shodan init API_Key
五、Shodan命令行工具使用
常用命令
- host - 查看指定主机信息:
shodan host 220.181.111.188 - search - 直接展示查询结果:
自定义显示字段:shodan search apacheshodan search --fields ip_str,port,org,hostnames apache - download - 下载查询结果:
shodan download apache-data apache - parse - 解析结果为JSON:
shodan parse --fields ip_str,port,org --separator , apache-data.json.gz - stats - 汇总统计查询结果:
shodan stats weblogic
六、Python自动化利用
Shodan_So工具介绍
一个基于Shodan API的辅助查询工具,支持多种查询方式和结果处理。
功能参数
| 参数 | 说明 |
|---|---|
-search |
搜索内容,语法与网页查询相同 |
-f |
从文件读取IP列表进行批量查询 |
-ip |
查询特定IP的信息 |
-iprg |
查询CIDR地址块范围内的主机 |
--hostnameonly |
只返回有主机名的结果 |
--history |
返回所有历史Banner |
--page |
指定结果页码 |
--list_ip |
提取查询结果中的IP地址 |
--list_ip_port |
提取IP:端口格式的结果 |
使用示例
- 查询美国的Apache服务器:
./Shodan_So.py -search "apache country:'US'" - 导出存在心脏滴血漏洞的中国服务器IP:
./Shodan_So.py -search "vuln:CVE-2014-0160 country:CN" --list_ip >> ip.txt - 查询特定IP的详细信息:
./Shodan_So.py -ip 119.75.217.109
七、实战应用案例
心脏滴血漏洞(CVE-2014-0160)批量利用
- 使用Shodan_So导出存在漏洞的IP列表
- 将IP列表导入漏洞利用工具
- 自动扫描并保存泄露的内存数据
- 使用Python脚本分析内存数据,提取敏感信息(如cookie、凭证等)
- 利用获取的cookie实现权限绕过
网络摄像头搜索
./Shodan_So.py -search "netcam country:'US'" --list_ip_port
八、注意事项
- 不同账户权限的API调用次数限制不同
- 付费账号在黑色星期五有折扣
- 查询内容包含特殊字符时需用引号包裹
- 批量操作时注意遵守法律法规和道德准则
通过本指南,您应该能够全面掌握Shodan搜索引擎的基本使用方法和高级自动化技术,将其有效应用于安全研究和渗透测试工作中。