from:http://www.freebuf.com/sectool/121339.htmlphp
首先,Shodan 是一个搜索引擎,但它与 Google 这种搜索网址的搜索引擎不一样,Shodan 是用来搜索网络空间中在线设备的,你能够经过 Shodan 搜索指定的设备,或者搜索特定类型的设备,其中 Shodan 上最受欢迎的搜索内容是:webcam,linksys,cisco,netgear,SCADA等等。css
那么 Shodan 是怎么工做的呢?Shodan 经过扫描全网设备并抓取解析各个设备返回的 banner 信息,经过了解这些信息 Shodan 就能得知网络中哪种 Web 服务器是最受欢迎的,或是网络中到底存在多少可匿名登陆的 FTP 服务器。(如今也能够看到shodan也加入了新工具)html
这里就像是用 Google 同样,在主页的搜索框中输入想要搜索的内容便可,例以下面我搜索 “SSH”:前端
上图的搜索结果包含两个部分,左侧是大量的汇总数据包括:python
随后,在中间的主页面咱们能够看到包含以下的搜索结果:nginx
想要了解每一个条目的具体信息,只须要点击每一个条目下方的 details 按钮便可。此时,URL 会变成这种格式 https://www.shodan.io/host/[IP]
,因此咱们也能够经过直接访问指定的 IP 来查看详细信息。git
上图中咱们能够从顶部在地图中看到主机的物理地址,从左侧了解到主机的相关信息,右侧则包含目标主机的端口列表及其详细信息。github
若是像前面单纯只使用关键字直接进行搜索,搜索结果可能不尽人意,那么此时咱们就须要使用一些特定的命令对搜索结果进行过滤,常见用的过滤命令以下所示:web
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"
如上经过在基本关键字后增长指定的过滤关键字,能快速的帮助发现咱们感兴趣的内容。固然,还有更快速更有意思的方法,那就是点击 Shodan 搜索栏右侧的 “Explore” 按钮,就会获得不少别人分享的搜索语法,你问我别人分享的语法有什么好玩的?那我们就随便来看看吧:
我们随便选取一个名为“NetSureveillance Web”的用户分享语法,从下面的描述信息咱们基本就能得知这就是一个弱密码的漏洞,为了方便测试让咱们把语法在增长一个国家的过滤信息,最终语法以下:
Server: uc-httpd 1.0.0 200 OK Country:"CN"
如今让咱们随便选取一个页面进去输入,使用admin帐号和空密码就能顺利进入了:)
Shodan 不只能够查找网络设备,它还具备其余至关不错的功能。
Exploits:每次查询完后,点击页面上的 “Exploits” 按钮,Shodan 就会帮咱们查找针对不一样平台、不一样类型可利用的 exploits。固然也能够经过直接访问网址来自行搜索:https://exploits.shodan.io/welcome;
地图:每次查询完后,点击页面上的 “Maps” 按钮,Shodan 会将查询结果可视化的展现在地图当中;
报表:每次查询完后,点击页面上的 “Create Report” 按钮,Shodan 就会帮咱们生成一份精美的报表,这是每天要写文档兄弟的一大好帮手啊;
Shodan
是由官方提供的 Python 库的,项目位于:https://github.com/achillean/shodan-python
安装
pip install shodan
或者
git clone https://github.com/achillean/shodan-python.git && cd shodan-python python setup.py install
安装完后咱们先看下帮助信息:
➜ ~ shodan -h
Usage: shodan [OPTIONS] COMMAND [ARGS]...
Options:
-h, --help Show this message and exit. Commands: alert Manage the network alerts for your account # 管理帐户的网络提示 convert Convert the given input data file into a... # 转换输入文件 count Returns the number of results for a search # 返回查询结果数量 download Download search results and save them in a... # 下载查询结果到文件 honeyscore Check whether the IP is a honeypot or not. # 检查 IP 是否为蜜罐 host View all available information for an IP... # 显示一个 IP 全部可用的详细信息 info Shows general information about your account # 显示帐户的通常信息 init Initialize the Shodan command-line # 初始化命令行 myip Print your external IP address # 输出用户当前公网IP parse Extract information out of compressed JSON... # 解析提取压缩的JSON信息,即便用download下载的数据 scan Scan an IP/ netblock using Shodan. # 使用 Shodan 扫描一个IP或者网段 search Search the Shodan database # 查询 Shodan 数据库 stats Provide summary information about a search... # 提供搜索结果的概要信息 stream Stream data in real-time. # 实时显示流数据
init
初始化命令行工具。
➜ ~ shodan init [API_Key] Successfully initialized
count
返回查询的结果数量。
➜ ~ shodan count microsoft iis 6.0 575862
download
将搜索结果下载到一个文件中,文件中的每一行都是 JSON 格式存储的目标 banner 信息。默认状况下,该命令只会下载1000条结果,若是想下载更多结果须要增长 --limit
参数。
parse
咱们可使用 parse 来解析以前下载数据,它能够帮助咱们过滤出本身感兴趣的内容,也能够用来将下载的数据格式从 JSON 转换成 CSV 等等其余格式,固然更能够用做传递给其余处理脚本的管道。例如,咱们想将上面下载的数据以CSV格式输出IP地址、端口号和组织名称:
➜ ~ shodan parse --fields ip_str,port,org --separator , microsoft-data.json.gz
host
查看指定主机的相关信息,如地理位置信息,开放端口,甚至是否存在某些漏洞等信息。
search
直接将查询结果展现在命令行中,默认状况下只显示IP、端口号、主机名和HTTP数据。固然咱们也能够经过使用 –fields 来自定义显示内容,例如,咱们只显示IP、端口号、组织名称和主机名:
➜ ~ shodan search --fields ip_str,port,org,hostnames microsoft iis 6.0
仍是使用上一节讲到的 shodan
库,安装方式这里不在阐述了。一样的,在使用 shodan
库以前须要初始化链接 API,代码以下:
import shodan SHODAN_API_KEY = "API_Key" api = shodan.Shodan(SHODAN_API_KEY)
随后,咱们就能够搜索数据了,示例代码片以下:
try: # 搜索 Shodan results = api.search('apache') # 显示结果 print 'Results found: %s' % results['total'] for result in results['matches']: print result['ip_str'] except shodan.APIError, e: print 'Error: %s' % e
这里 Shodan.search()
会返回相似以下格式的 JSON 数据:
{
'total': 8669969, 'matches': [ { 'data': 'HTTP/1.0 200 OK\r\nDate: Mon, 08 Nov 2010 05:09:59 GMT\r\nSer...', 'hostnames': ['pl4t1n.de'], 'ip': 3579573318, 'ip_str': '89.110.147.239', 'os': 'FreeBSD 4.4', 'port': 80, 'timestamp': '2014-01-15T05:49:56.283713' }, ... ] }
shodan.Shodan(key)
:初始化链接APIShodan.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数据至此,本文基本告于段落,买了 Shodan Membership 的各位朋友们能够好好的去 Happy 啦。
Zoomeye:知道创宇的一个搜索引擎
ZoomEye 支持公网设备指纹检索和 Web 指纹检索
网站指纹包括应用名、版本、前端框架、后端框架、服务端语言、服务器操做系统、网站容器、内容管理系统和数据库等。设备指纹包括应用名、版本、开放端口、操做系统、服务名、地理位置等
咱们能够利用某一个指纹特色挖掘网络空间中具备同种类型的网站或者是设备
如咱们要寻找关于php的网站咱们能够直接输入php
咱们能够看到在右边还会有webapp,这里会列出php脚本写的一些web应用,咱们搜索php,同时能够经过点击左边的webapp里面的项来进行搜索,好比搜索phpmyadmin的程序点击,就能够看到
点开一个能够看到:
咱们也能够在左边搜索设备:好比批量摄像头好比海康威视的http-baner为DVRDVS-Webs, 直接搜索就能够找出海康威视的摄像头web管理界面
若是结合弱口令的话极可能进去。恐怖,隐私泄露同时zoomeye也支持一些语法,可让咱们更精确的探索网络空间常见的有:App组件名 ver版本port端口os操做系统还能够有相似googl的语法形式,如搜索某网站的子域名能够:site:xx.com更多语法能够去看zoomeye用户手册Zoomeye也有本身的api,咱们能够调用api来达到自动化的挖漏洞。下边在来几个实例:php appedeCMS ver:5.7.48 好比某天某个版本的cms出现了漏洞,你须要去刷一波,这时候你用这个命令就能够找出来这个版本的cms的网站如图
同理其余的cms也是同样的方法其余的搜索的话,本身构造好搜索的语法便可,总之一句话灰常强大,刷洞的时候非常须要啊!
去年年末,南方很多地区出现了 H7N9(禽流感)的疫情,搞得许多地方人心惶惶,连吃个鸡顾虑半天。
若是这时有人问我:“有没有什么办法,能快速定位全球全部 H7N9 病毒感染者和易感人群?” 我必定以为他疯了 —— 若是真有这样的办法,病情可能早就控制住了。
可若是换个问题:“在网络世界,一个高危危漏洞爆发,就像现实生活中的疾病那样迅速蔓延,影响成千上万的设备和网站,有没有办法找到这些脆弱的网站和设备,以快速控制危害?”
我会回答:有,并且方法很简单。
三分钟找到全球全部“弱鸡”设备
2017年1月,一场网络瘟疫席卷全球互联网,普遍使用的 Elastic Search 被曝出安全隐患,攻击者利用该隐患能够直接远程删除受害者的数据。短短一个月,全球至少上万台设备遭遇勒索—— 不给钱?先删库,后跑路。
然而,在勒索风波刚开始不久,小编()编辑就收到了白帽汇发来的一份《威胁情报预警:Elasticsearch 勒索事件报告》,上面竟清晰展现了受勒索事件影响的设备在全球的分布状况:
甚至,连每一波勒索者留下的勒索信息以及被勒索设备的一些详细状况都一一说明,报告的末尾还附带了相应的防护策略。
但更使人惊讶的是,小编得知,这样一份全球范围调查、内容详实的安全报告,三分钟就能作出来。
一场网络世界的瘟疫爆发,几分钟以内找到全球范围了可能“感染”的设备,生成一份安全报告进行预警。这到底是如何作到的?白帽汇COO刘宇告诉小编,这全都得益于他们的“佛法”—— FOFA系统。
FOFA 是什么?
FOFA,按照官方说明,它是个搜索引擎,但并非一个普通搜索引擎,起码不是普通人能用的搜索引擎。
当咱们使用谷歌、百度这类常规搜索引擎时,只须要说人话 —— 输入文字就行,但在 FOFA 搜索引擎里你却“不能说人话”,而必须用程序化的语言,不然 FOFA 可能拒绝和你沟通。
【不说“人话”的FOFA搜索引擎】
固然,为了初次见面更愉快, FOFA 搜索引擎配备了长长的语法说明:
【FOFA系统的查询语法】
固然,FOFA 搜索引擎检索到的内容并非日常的文字、照片等内容,而是:
正因如此,FOFA 这类搜索引擎又有另外一个名字:网络空间测绘系统。—— 它们就像是现实生活中的卫星地图那样,一点点勾勒出公共网络空间的样子,每个网站、每一台公共环境下的服务器……当一个高危漏洞爆发,FOFA系统便能向卫星定位地址同样,经过特征迅速找到全网的脆弱设备。
【图片来自谷歌地球卫星图】
“支离破碎”的网络空间
在完美主义者罗永浩的眼中,这是个支离破碎的世界;在FOFA的眼中,网络空间也是支离破碎的世界。当安全人员须要用FOFA系统寻找某些设备时,他须要用“支离破碎”的语言来检索。
好比要找“北京全部教育网站可远程链接的数据库”,你须要在FOFA引擎中输入:
对于普通人来讲,FOFA搜索引擎的查询语法或许难以上手,但刘宇却告诉小编,这正是FOFA系统的一大特色。
刘宇说,全部搜索引擎都会利用非恶意爬虫来采集服务器和网站的公开数据,FOFA也是如此。当它爬取到的设备和网站信息后,会将数据打散成一个个很是细小的特征,让使用者能够像拼积木同样自由组合这些特征,从而有了更大的发挥余地。
【基于特征检索-乱入的表情包】
刘宇打了个比方,当人们去买电脑,不了解电脑配置的人通常倾向于买整机,而极客、发烧友则倾向于单独买来处理器、主板、显卡……而后本身攒机。FOFA就是这样,它将采集到的全部信息用很是细粒度的形式呈现给使用者,让他们本身来自定义检索规则。——极客们都喜欢本身动手、爱折腾,而FOFA就是给极客们用的。
“撒旦”和“佛法”
其实这类“黑客专用”的搜索引擎并不是 FOFA 独创,早在 2009 年的世界黑客大会 DEFCON 上,一个名为“Shodan”的网络空间搜索引擎一经公布就掀起了轩然大波。当时人们惊奇地发现,透过一块小小的电脑屏幕,竟能瞬间找到世界另外一端的脆弱设备、摄像头、打印机……
因而,一种全新的黑客攻击手法诞生了:
本来攻击者须要利用漏洞扫描器对一个个服务器、网站进行扫描,现在只须要利用 Shodan 搜索引擎,瞬间就能找到成千上万存在一样漏洞的设备,而后在极短的时间内拿下他们。
步枪变成了机关枪,单体攻击变成了AOE(群体伤害),世界范围的地图炮。
很快,Shodan 在舆论导向之下成了邪恶的代名词,媒体惊呼它为“世界上最可怕的搜索引擎”、“黑暗搜索引擎”,甚至连中文名都被译做“撒旦”。
FOFA系统的创造者,白帽汇CEO赵武告诉小编:
Shodan出现以后,许多攻击者再也不挨个扫网站漏洞,那样效率过低,他们更喜欢“打时间差”—— 当国外曝出一个高危漏洞后,他们迅速利用 Shodan 找到大量存在漏洞的服务,而后在企业反应过来以前就完成渗透。
在赵武看来,既然攻击者利用网络空间搜索引擎来发现脆弱设备,那么防护者一样能利用它来发现脆弱设备并及时修补,这便促成了FOFA系统的诞生。就像古代行军打仗,地图就在那里,哪一方能运用得当,哪一方就在更容易取得优点。在网络世界里,白帽汇的赵武但愿FOFA能成为帮助人们避开网络攻击的那张“地图”。
“ 目前现实状况有些糟糕。”赵武说,“对于许多稍大一些的企业,他们可能有数以千计的设备、服务。具体哪里有台什么样的服务器,装了哪些服务,开了什么端口,这些网络空间资产一般很难梳理清楚。有时一个大企业修补一个漏洞就花好几天,就是由于对本身的网络空间资产梳理不清楚致使的。”
世界老是趋于混乱,就像咱们电脑里的文件系统同样,当文件夹层级愈来愈多,即便文件结构再清晰,也会常常找不到想要的文件。这时就该换个思路,须要经过作标签,搜索的方式来查找。而 FOFA 就能够充当这么一个资产检索和梳理的角色。
当一个漏洞爆发时,在一个企业中,若是防护者能最短的时间内检索到本身的脆弱设备并保护起来,就能最大限度地让本身免遭攻击;在全网范围内,若是能尽快找到这些脆弱设备并联合国家相关安全机构做出预警,就能最快地控制住“网络疫情”,这即是赵武但愿完成的事情。
现在每次出现大的漏洞状况,白帽汇总会第一时间出具相关的漏洞状况报道,提醒企业进行安全防范。而他们也告诉小编编辑,FOFA企业版已经积累了数千条规则,帮助很多公司提升了安全防范能力。
在赵武看来,Shodan 之因此被称之为“最可怕的搜索引擎”,一部分缘由在于太多人缺少网络安全意识,让许多私有的服务器、数据库、摄像头被绝不设防地暴露在四通八达的互联网中。
一个搜索引擎本不具备任何破坏力,它的意义在于为网络世界创建了新的链接方式,让本来混沌的网络世界更透明、阳光,这种阳光、透明最初坑让没准备好的人感到不适,但最终它将推进整个行业的正向发展。