渗透测试中,第一阶段就是信息搜集,这一阶段完成的如何决定了你之后的进行是否顺利,是否更容易。而关于信息收集的文章网上也是有太多。今天我们来通过一些例子来讲解如何正确使用Shodan这一利器。
想要利用好这一利器,首先得知道他是什么,Shodan是一款网络空间搜索引擎,和我们常见的百度谷歌不同,他主要搜索的是存在于互联网中的设备,服务器、摄像头、工控设备、智能家居等,都是他的目标。Shodan不仅可以发现这些设备,并且可以识别出其版本,位置,端口,服务等一些信息,并且进行了一些相应分类。
Shodan分免费账户和会员账户,免费账户对一些标签的搜索和多标签关联搜索有限制,而会员的话就可以任意进行一些搜索,所以想要搜到自己想要的结果最好还是有一个会员比较方便,Shodan在每个黑色星期五的时候会进行打折(每年11月第四个周五),平时需要49美元的会员活动时只需要5美元,需要的小伙伴可以关注下。
一个系统的受攻击面越多,被入侵的风险也就越大,Shodan可以很好的帮你找到其他攻击面。下面开始正式来讲一下如何在平时的渗透测试中利用好Shodan,注意学习思考问题的方法,而不只是简单的搜索语句。
场景1:想搜索美国所有的ElasticSearch服务器
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。为什么要搜索他,因为他有多个漏洞,未授权访问、目录遍历、任意命令执行等,搜索wooyun镜像也可以看到有不少结果。
要实现这个场景,首先要了解一些关于ElasticSearch服务器的基本知识,这里可以直接百度。
通过百度我们可以了解到ElasticSearch的默认端口是9200,这里会用到一个基础语句"port",这时我们可以先在Shodan进行相应搜索,看会返回什么。在Shodan中输入”port:9200”来进行搜索,
可以看到返回,共搜索到215669个结果,重点学习的地方在左边这个分类统计,
我们想要的是美国的ElasticSearch服务器,可以看到左边的统计中已经对一些常用字段进行了分类统计,有国家、组织、操作系统及产品,这里已经看到了我们所需要的字段,只需要点击相应的标签,即可进行进一步的细化搜索。因为并不是所有的9200端口都是ElasticSearch服务,也有将默认9200端口修改了的。所以这里依次点击TOP PRODUCTS中的"Elastic"和TOP COUNTRIES中United States,并且删掉port:"9200",注意观察搜索框中的关键字变化:
到这里我们可以看到已经实现了我们的目的,找到了美国的ElasticSearch服务器,包括默认端口和非默认端口。当搜索结果细化到一定程度时,左边的统计也会有相应的变化,现在可以看到已经变成了对城市、组织、操作系统、和ElasticSearch版本的一个统计。至此我们已经学到了两个新的关键字:
“product” 对某一产品进行搜索
“country” 搜索某个国家的资产,
当我们需要多个词同时搜索时,只需要在每个关键字间加空格分割就行,当不需要某个词时,可以用”-”加上关键词来进行去除,比如不想要Amazon的ElasticSearch服务器,就可以”-org:amazon”,如何知道org这个关键词的?同样是左边的统计,当我们鼠标移动到Amazon时,可以看到他相应的链接,已经给出了关键词