场景1:想搜索美国全部的elasticsearch服务器
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。设计用于云计算中,可以达到实时搜索,稳定,可靠,快速,安装使用方便。为何要搜索他,由于他有多个漏洞,未受权访问、目录遍历、任意命令执行等,搜索wooyun镜像也能够看到有很多结果。html
咱们能够了解到elasticsearch的默认端口是9200,这时咱们能够先在Shodan进行相应搜索,看会返回什么。在Shodan中输入“port:9200”来进行搜索,
shodan 命令
1 . port:9200
nginx
- 咱们想要的是美国的elasticsearch服务器,能够看到左边的统计中已经对一些经常使用字段进行了分类统计,有国家、组织、操做系统及产品,这里已经看到了咱们所须要的字段,只须要点击相应的标签,便可进行进一步的细化搜索。
点击便可细化搜索git
注意观察每一次点击标签后搜索语句的变化,到这里咱们能够看到已经实现了咱们的目的,找到了美国的elasticsearch服务器。当搜索结果细化到必定程度时,左边的统计也会有相应的变化,如今能够看到已经变成了对城市、组织、操做系统、和elasticsearch版本的一个统计。至此咱们已经学会一些基本语法:“port:” 按照指定端口进行搜索 “product:” 对某一产品进行搜索 “country:” 指定国家,
当咱们须要多个词同时搜索时,只须要在每一个关键词间加空格隔开就行,当不须要某个词时,能够用”-”加上关键词来进行去除,好比不想要Amazon的elasticsearch服务器,就能够”-org:amazon”,如何知道org这个关键词的?一样是左边的统计,当咱们鼠标移动到Amazon时,能够看到他相应的连接,已经给出了关键词。github
场景2:搜索全部的搭建了Supervisor的服务器
Supervisor是一个用Python写的进程管理工具,能够很方便的用来启动、重启、关闭进程。咱们为何要搜索这个东西呢,固然是由于他有问题。今年9月份的时候Supervisor爆出了一个远程代码执行漏洞CVE-2017-11610,咱们想要复现一下漏洞(滑稽)。按照上一个场景的经验,当咱们想要经过端口来搜索Supervisor时,咱们发现他并无默认端口,因此就须要用的另外一种更经常使用的方法。
打开后发现这个就是咱们须要的Supervisor服务器,那么咱们用什么来定位这类服务器呢,这里就要用到一些新的语法:“http.title:”
根据网站title搜索web
场景3:搜索一个公司相关的服务器
首先咱们都知道,通常的网站有本身icon,好比百度、阿里、腾讯等,而通常公司会对其全部网站的title中都加上这个icon,来增长统一性,也方便用户识别,以下如所示:apache
首先要知道在Shodan结果中在哪里寻找这个标记,以下如所示,安全
Shodan搜索icon时会出如今箭头所示的位置。
由于这个icon只能算是对公司资产的一种标识,因此有些网站可能并无带有icon,可是有些经常使用手段收集的服务器可能会漏掉这些,因此这个方法仍是有必定的用途,这里拿支付宝举例。
咱们尝试性的输入一些与支付宝相关的内容来进行搜索,如Alipay,支付宝,www.alipay.com等,当咱们搜索到www.alipay.com时,能够看到结果内已经有携带支付宝icon的网站了服务器
”http.favicon.hash:”
elasticsearch
最后在列举一些比较经常使用的搜索语句来供你们参考,何时用什么样的语句,彻底取决于你怎么去想。分布式
asn
区域自治编号port
端口org
ip所属组织机构os
操做系统类型http.html
网页内容html.title
网页标题http.server
http请求返回中server的类型http.status
http请求返回响应码的状态city
城市country
国家product
所使用的软件或产品
其实Shodan的关键词还有不少,经纬度、ssl信息、smb版本号、区号、返回码状态等等,只要发挥你的想象力,从结果中寻找结果,就总能获得你想要的。
以上就是我使用Shodan过程当中的一点心得,分享给你们。安全的路还很长,学习的路还很远,不忘初心,方得始终。
使用搜索过滤
若是像前面单纯只使用关键字直接进行搜索,搜索结果可能不尽人意,那么此时咱们就须要使用一些特定的命令对搜索结果进行过滤,常见用的过滤命令以下所示:
hostname:
搜索指定的主机或域名,例如 hostname:"google"
port:
搜索指定的端口或服务,例如 port:"21"
country:
搜索指定的国家,例如 country:"CN"
city:
搜索指定的城市,例如 city:"Hefei"
org:
搜索指定的组织或公司,例如 org:"google"
isp:
搜索指定的ISP供应商,例如isp:"China Telecom"
product:
搜索指定的操做系统/软件/平台,例如product:"Apache httpd"
version:
搜索指定的软件版本,例如 version:"1.6.2"
geo:
搜索指定的地理位置,参数为经纬度,例如 geo:"31.8639, 117.2808"
before/after:
搜索指定收录时间先后的数据,格式为dd-mm-yy,例如 before:"11-11-15"
net:
搜索指定的IP地址或子网,例如net:"210.45.240.0/24"
```
搜索实例
查找位于合肥的 Apache 服务器:
apache city:"Hefei"
查找位于国内的 Nginx 服务器:
nginx country:"CN"
查找 GWS(Google Web Server) 服务器:
“Server: gws”hostname:"google"
查找指定网段的华为设备:
huawei net:"61.191.146.0/24"
net: 使用IP/CIDR标记法(eg:127.0.0.1/24)来设定IP地址范围,从而查询全部设备是否匹配正确,是否有存在漏洞的主机或者服务器,是否能够从外部访问等