搜索引擎
0x00 Shodon
Shodon可以进行全球的设备搜索,物联天下,shodan第一。
常用命令
搜索语法:
- hostname: 搜索指定的主机或域名,例如,hostname:”google”
- port: 搜索指定的端口或服务,例如,port:”21”
- country: 搜索指定的国家,例如,country:”CN”
- city: 搜索指定的城市,例如,city:”Zhengzhou”
- org: 搜索指定的组织或公司,例如,org:”baidu”
- isp: 搜索指定的ISP供应商,例如,isp:”China Telecom”
- product: 搜索指定的操作系统/软件/平台,例如,product:”Apache httpd”
- version: 搜索指定的软件版本,例如,version:”1.6.2”
- geo: 搜索指定的地理位置,参数为经纬度,例如,geo:”3.8639,117.2808”
- before/after: 搜索指定收录时间前后的数据,格式为dd-mm-yy,例如,before:”11-11-11”
- net: 搜索指定的IP地址或子网,例如,net:”210.45.36.0/24”
举个栗子:
查找位于郑州的Apache服务器:
1 | apache city:"Zhengzhou" |
查找位于国内的Nginx服务器:
1 | nginx country:"CN" |
查找指定网段的华为设备:
1 | huawei net:"61.191.146.0/24" |
Explore
点击 Shodan 搜索栏右侧的 “Explore” 按钮,就会得到很多别人分享的搜索语法
我们可以在别人搜索的基础上进行修改。
其他
Shodan 不仅可以查找网络设备,它还具有其他相当不错的功能。
Exploits: 每次查询完后,点击页面上的 “Exploits” 按钮,Shodan 就会帮我们查找针对不同平台、不同类型可利用的 exploits。当然也可以通过直接访问网址来自行搜索:https://exploits.shodan.io/welcome
地图: 每次查询完后,点击页面上的 “Maps” 按钮,Shodan 会将查询结果可视化的展示在地图当中
报表: 每次查询完后,点击页面上的 “Create Report” 按钮,Shodan 就会帮我们生成一份精美的报表。
命令行下使用Shodon
Shodan 是由官方提供的 Python 库的,项目位于:https://github.com/achillean/shodan-python
安装
1 | pip install shodan |
或者
1 | git clone https://github.com/achillean/shodan-python.git && cd shodan-python |
安装完成之后我们看一下帮助信息:
1 | $ shodan -h |
常用示例
init
初始化命令行工具
1 | $ shodan init [API_Key] btrs7DoaGz00wK5Me1fpKITKLGvuGtQM |
count
返回查询结果的数量
1 | $ shodan count ...(待补) |
download
将搜索结果下载到一个文件中,文件中的每一行都是 JSON 格式存储的目标 banner 信息。默认情况下,该命令只会下载1000条结果,如果想下载更多结果需要增加 –limit 参数。
1 | shodan download microsoft-data microsoft iis 6.0 |
parse
我们可以使用 parse 来解析之前下载数据,它可以帮助我们过滤出自己感兴趣的内容,也可以用来将下载的数据格式从 JSON 转换成 CSV 等等其他格式,当然更可以用作传递给其他处理脚本的管道。例如,我们想将上面下载的数据以CSV格式输出IP地址、端口号和组织名称:
1 | shodan parse --fields ip_str,port,org --separator , microsoft-data.json.gz |
host
查看指定主机的相关信息,如地理位置信息,开放端口,甚至是否存在某些漏洞等信息。
1 | shodan host [IP] |
1 | $ shodan host 189.201.128.250 |
search
直接将查询结果展示在命令行中,默认情况下只显示IP、端口号、主机名和HTTP数据。当然我们也可以通过使用 –fields 来自定义显示内容,例如,我们只显示IP、端口号、组织名称和主机名:
1 | shodan search --fields ip_str,port,org,hostnames microsoft iis 6.0 |
脚本调用shodan库
安装shodan库,在使用shodan库之前需要初始化链接API,代码如下:
1 | import shodan |
随后我们就可以搜索数据了,示例:
1 | try: |
这里 Shodan.search() 会返回类似如下格式的 JSON 数据:
1 | { |
常用shodan库函数
- shodan.Shodan(key) :初始化连接API
- Shodan.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数据
0x01 ZoomEye
Zoomeye众所周知国内比较比较好的网络空间搜索引擎,相比shodan更侧重于web层面,指纹识别、web容器一类的zoomeye当之无愧。
钟馗之眼
常用语法
搜索指定组件及版本
app: 组件版本
ver: 组件版本
例如,搜索Apache组件版本2.41
app:apache ver:2.4
搜索指定端口
port: 端口号
例如,搜索开发了ssh端口的主机
1
port:22
搜索指定操作系统
OS: 操作系统
例如,搜索Linux操作系统
1
OS:Linux
搜索指定服务
service: 服务名称
例如,搜索ssh服务
1
service:ssh
搜索指定地理位置
country: 国家
city: 城市例如,搜索中国,郑州
1
country: China city:Zhengzhou
搜索指定CIDR网段
CIDR: 网段
例如,搜索192.168.220.0/24
1
CTDR:192.168.220.0/24
搜索指定网站域名
site: 网站域名
例如,搜索百度
1
site:www.baidu.com
搜索指定主机名
hostname:jw.zut.edu.cn
例如,搜索jw.zut.edu.cn
1
hostname:jw.zut.edu.cn
搜索指定设备名
device:设备名
例如,搜索路由器
1
device:router
搜索具有特定首页关键词的主机
keyword:关键词
例如,搜索关键词security
1
keyword:security
举个栗子
搜索位于美国、主机系统为Linux、开启SSH服务的目标主机:
1 | country:US OS:Linux service:ssh |
0x02 FOFA
国内漏洞查询和资产收集比较好的一款搜索引擎,与其他搜索引擎都大同小异,功能差别不是太大。
常用语法
直接输入查询语句,将从标题、html内容、http头信息、url字段中搜索。
- title=”abc” 从标题中搜索abc
- header=”abc” 从http头中搜索abc
- body=”abc” 从html正文中搜索abc
- domain=”abc.com” 搜索根域名带有abc.com的网站
- host=”.edu.cn” 从url中搜索.edu.cn,注意搜索要用host作为名称
- port=”443” 查找对应端口443的资产
- ip=”1.1.1.1” 从ip中搜索包含1.1.1.1的网站,注意搜索要用ip作为名称
- country=”CN” 搜索指定国家(编码)的资产
注意: ==
符号是完全匹配,加快搜索时间 &&
之类的逻辑符都可以用,搜索语法类似Google!
更多详细内容查看: FOFA帮助文档
举个栗子
目录遍历
1 | title="index of" |
0x03 Google Hacking
常用语法
- intext: 把网页中的正文内容中的某个字符作为搜索的条件
- intitle: 把网页标题中的某个字符作为搜索的条件
- cache: 搜索搜索引擎里关于某些内容的缓存,可能会在过期内容中发现有价值的信息
- filetype: 指定一个格式类型的文件作为搜索对象
- inurl: 搜索包含指定字符的url
- site: 在指定的站点搜索相关内容
- 引号 “” : 把关键字打上引号后把引号部分作为整体来搜索
- or: 同时搜索两个或更多的关键字
- link: 搜索某个网站的链接
典型用法
找后台地址
1
2
3site:xxx.com intext:管理|后台|登录|用户名|密码|系统|账号
site:xxx.com inurl:login/admin/manage/manager/admin_login/system
site:xxx.com intitle:管理|后台|登录找上传类漏洞地址
1
2site:xxx.com inurl:file
site:xxx.com inurl:upload找注入页面
1
site:xxx.com inurl:php?id=
找编辑器页面
1
site:xxx.com inurl:ewebeditor