[ PROMPT_NODE_27674 ]
Shodan 侦察与渗透测试
[ SKILL_DOCUMENTATION ]
# Shodan 侦察与渗透测试
## 目的
提供在渗透测试过程中利用 Shodan 作为侦察工具的系统化方法。本技能涵盖 Shodan Web 界面、命令行界面 (CLI)、REST API、搜索过滤器、按需扫描以及用于发现暴露服务、易受攻击系统和物联网设备的网络监控功能。
## 输入 / 前置条件
- **Shodan 账户**:shodan.io 的免费或付费账户
- **API Key**:从 Shodan 账户仪表板获取
- **目标信息**:要调查的 IP 地址、域名或网络范围
- **Shodan CLI**:已安装基于 Python 的命令行工具
- **授权**:针对目标网络进行侦察的书面许可
## 输出 / 交付物
- **资产清单**:发现的主机、端口和服务列表
- **漏洞报告**:已识别的 CVE 和暴露的易受攻击服务
- **Banner 数据**:揭示软件版本的服务 Banner
- **网络映射**:资产的地理和组织分布
- **截图库**:暴露界面的视觉侦察
- **导出数据**:用于进一步分析的 JSON/CSV 文件
## 核心工作流
### 1. 设置与配置
#### 安装 Shodan CLI
bash
# 使用 pip
pip install shodan
# 或 easy_install
easy_install shodan
# 在 BlackArch/Arch Linux 上
sudo pacman -S python-shodan
#### 初始化 API Key
bash
# 设置你的 API key
shodan init YOUR_API_KEY
# 验证设置
shodan info
# 输出: Query credits available: 100
# Scan credits available: 100
#### 检查账户状态
bash
# 查看额度和计划信息
shodan info
# 检查你的外部 IP
shodan myip
# 检查 CLI 版本
shodan version
### 2. 基础主机侦察
#### 查询单个主机
bash
# 获取关于一个 IP 的所有信息
shodan host 1.1.1.1
# 示例输出:
# 1.1.1.1
# Hostnames: one.one.one.one
# Country: Australia
# Organization: Mountain View Communications
# Number of open ports: 3
# Ports:
# 53/udp
# 80/tcp
# 443/tcp
#### 检查主机是否为蜜罐
bash
# 获取蜜罐概率评分
shodan honeyscore 192.168.1.100
# 输出: Not a honeypot
# Score: 0.3
### 3. 搜索查询
#### 基础搜索 (免费)
bash
# 简单关键词搜索 (不消耗额度)
shodan search apache
# 指定输出字段
shodan search --fields ip_str,port,os smb
#### 过滤搜索 (1 额度)
bash
# 特定产品搜索
shodan search pro