目录
相信大家都听说过360水滴直播时间,我们有没有想过网络空间除了摄像头之外还包括了什么,hacker是什么获取到这些资源的,找到某些网络设备的......
Cyber space,我们先介绍搜索引擎,在1996年斯坦福大学有做数字图书馆,即把所有的图书数字化,然后你可以在网络的世界里面检索到,直到1998年谷歌诞生,他们通过爬虫技术把所有的网页放置在自己的数据库里面,通过自己独立的算法把内容进行评级,它是主要针对于网页内容。
随着时代的发展,单单依靠网页内容进行搜索已经无法满足人民的需求,比如说图片、
音乐、声音 、电视剧...... 进一步我们想得到网络系统CDN、CMS、IDS、NFS;网络设备 手机、平板电脑 、交换机 、路由器 、网络摄像头 、私人网盘;工业系统 交通信号灯、 企业大屏幕、 公园控制系统、 加油站、 电网......想要得到这些网络空间资源,我们提出来网络空间搜索引擎。简单来说shodan爬的是互联网,谷歌爬的是因特网
Open source intelligence 开源网络情报
我们接下来需要解决的问题就是如何进行扫描,回想起之前信息收集的ip、CDN、port、CMS......我们用到的工具有zmap、nmap, 通过ip数据库和枚举获得相应的ip地址,再利用域名 、开放端口 、操作系统 、物理地址 、MAC地址 、设备的类型来具体标识一个设备。
先打开shodan.io进入官网,注册用户(可以到淘宝上买一个会员)
在我们深入研究实际的搜索查询语法之前,让我们看一下您将在 Shodan 中搜索的内容:
设备运行服务,这些服务是 Shodan 收集的信息。例如,网站托管在运行 Web 服务的设备上,Shodan 将通过与该 Web 服务对话来收集信息。每个服务的信息都存储在一个称为横幅的对象中。它是 Shodan 收集的基本数据单位,也是您将要搜索的数据。简化的横幅如下所示:
- {
- "data": "Moxa Nport Device
- Status: Authentication disabled
- Name: NP5232I_4728
- MAC: 00:90:e8:47:10:2d",
- "ip_str": "46.252.132.235",
- "port": 4800,
- "org": "SingTel Mobile",
- "location": {
- "country_code": "SG"
- }
- }
上面的横幅有 5 个属性。请注意,真正的横幅将包含更多属性和有关服务的详细信息。每个属性存储有关服务的不同类型的信息:
默认情况下,Shodan 仅搜索数据属性。数据属性的内容可能因服务类型而有很大差异。例如,这是一个典型的 HTTP 横幅:
- HTTP/1.1 200 OK
- Server: nginx/1.1.19
- Date: Sat, 03 Oct 2015 06:09:24 GMT
- Content-Type: text/html; charset=utf-8
- Content-Length: 6466
- Connection: keep-alive
上面的横幅显示设备正在运行版本为1.1.19的nginx Web 服务器软件。为了展示横幅的不同之处,这里是西门子 S7 工业控制系统协议的横幅:
- Copyright: Original Siemens Equipment
- PLC name: S7_Turbine
- Module type: CPU 313C
- Unknown (129): Boot Loader A
- Module: 6ES7 313-5BG04-0AB0 v.0.3
- Basic Firmware: v.3.3.8
- Module name: CPU 313C
- Serial number of module: S Q-D9U083642013
- Plant identification:
- Basic Hardware: 6ES7 313-5BG04-0AB0 v.0.3
西门子 S7 协议返回一个完全不同的标语,这一次提供了有关固件、其序列号的信息以及描述设备的大量详细数据。
在 Shodan 中搜索时,您必须确定您感兴趣的服务类型,因为横幅差异很大。
让我们再看一下 Moxa 设备的简化横幅:
- {
- "data": "Moxa Nport Device
- Status: Authentication disabled
- Name: NP5232I_4728
- MAC: 00:90:e8:47:10:2d",
- "ip_str": "46.252.132.235",
- "port": 4800,
- "org": "SingTel Mobile",
- "location": {
- "country_code": "SG"
- }
- }
如果您想查找更多这些Moxa Nport设备,那么一个简单的搜索查询将是:
Moxa Nport
但是,如果您想在SingTel Mobile网络上搜索设备,那么简单搜索SingTel Mobile将不会返回预期的结果。这是因为默认情况下,Shodan 只搜索数据属性!
那么如何搜索横幅上的其他属性呢?您如何要求 Shodan 仅显示位于新加坡的 Moxa Nport 设备?
搜索过滤器
搜索过滤器是告诉 Shodan 您希望搜索特定属性的特殊关键字。它们采用以下格式:
filtername:value
请注意,过滤器名称与其值之间没有空格。使用上面的示例,如果您想查找位于新加坡的设备,那么您将使用接受 2 个字母的国家/地区代码作为参数的国家/地区搜索过滤器:
country:SG
如果您尝试搜索的值包含空格,则需要将该值括在引号中。以下搜索查询显示了位于SingTel Mobile网络上的设备:
org:"SingTel Mobile"
还可以组合过滤器以进一步缩小结果范围。例如,这是一个搜索查询,用于查找位于SingTel Mobile 和位于新加坡市的设备:
org:"SingTel Mobile" city:Singapore
Filter Name | Description | Example |
---|---|---|
city | Name of the city | Devices in San Diego |
country | 2-letter Country code | Open ports in the United States |
http.title | Title of the website | "Hacked" Websites |
net | Network range or IP in CIDR notation | Services in the range of 8.8.0.0 to 8.8.255.255 |
org | Name of the organization that owns the IP space | Devices at Google |
port | Port number for the service that is running | SSH servers |
product | Name of the software that is powering the service | Samsung Smart TVs |
screenshot.label | Label that describes the content of the image | Screenshots of Industrial Control Systems |
state | U.S. State | Devices in Texas |
语法:
https://github.com/jakejarvis/awesome-shodan-queries
python脚本:
https://github.com/random-robbie/My-Shodan-Scripts
censys.io
工具:
- https://github.com/knownsec/Kunyu
- https://github.com/coco413/DiscoverTarget
- https://github.com/saucer-man/saucerframe