这一节我们要讲一讲一些外部工具,之前我们都是使用的Web接口进行的信息收集,接下来就介绍一下其他方式吧!
Shodan Command-LineInterface
Shodan命令行接口
Shodan的命令行接口已经打包在官方Python库中了,我们可以使用下面这种方式进行安装
easy_install shodan
用这种方法似乎需要梯子,我尝试了几次都失败了,之后用梯子后安装两次就成功了
大家还可以使用pipinstall shodan这种方式进行安装
安装好之后就可以输入shodan –h查看帮助信息
可以看到有很多的命令参数,我们接下来一一说明
shodan命令行的格式是shodan [OPTIONS] COMMAND [ARGS]...
shodan有很多子命令,在子命令基础上还可以使用-h来进行查看子命令有什么参数
例如:shodan parse –h
安装成功后,需要初始化我们的API KEY
shodan init Rw7TeqcfnU2aFRNdweFj7p0EIRmemUNV
后面那一串就是我们的API key,如何获取呢?
箭头处的就是了!!
可以看到成功初始化
alert
这个命令是用来管理网络警报的,比如创建,罗列,清空,移除网络报警
convert
convert命令可以把Shodan生成的JSON报告转化成KML和CSV格式
count
这个命令用处比较大,是用来统计结果的数量的,比如我们统计一下nginx的设备数量
shodan count nginx
可以看到有7845217个设备,用来统计各种数量时候比较好用
download
下载结果,普通用户100条,多了需要花费query credits
下载下来的数据就是之前我们介绍过的JSON格式,Shodan会为我们保存查询记录,如果我们下次再查询相同的内容的时候就不需要再花费querycredits了
会员默认只下载1000个结果,如果想要下载更多,可以使用--limit
shodan nginx-data nginx
nginx-data是保存的文件名
nginx是搜索的词
更多可以查看官方制作的小视频
https://blog.shodan.io/how-to-download-data/
host
指定主机IP进行查询,类似Shodan搜索引擎的net
shodan host 189.201.128.250
可以看到该主机的hostname、Country、City、Org、端口、漏洞信息
可以看出存在心脏滴血漏洞
honeyscore
这个选项是检测一个IP地址是否是一个工业控制系统的蜜罐,这个在后面的章节会详细得讲!
shodan honeyscore 41.231.95.212
info
这个主要就是查看本月还剩下多少querycredits和scancredits
之前说过关于ExportCredits,这里就详细说一下这三种Credits吧
Export Credits用来下载,总数固定,每个月不刷新,下载一次少一个
Query credits用来搜索,每个月有100个,1query credit = 100 results不限类型
Scan credits用来扫描,这个以后再说
有一点是肯定的,上面这几种都是可以买的(毕竟Shodan要赚钱)
myip
返回自己的公网IP
parse
这个命令还是比较重要的,在上面我说的那个小视频中已经把这个命令展示过了
刚才我们下载下来的文件可以使用这个命令来进行查看,还可以筛选出自己想要的片段,支持将JSON转换为CSV
我们先来看一下它的参数吧
我们就用刚才那个文件来做一下示范吧!
这个结果比较崩溃吧,我们还是用一下--fields参数吧
这回清爽不少吧
默认是使用TAB进行分隔的,我们还可以通过使用- -separator指定字符进行分隔,比如
--separator ""
很丑,好像还不如TAB
还可以使用–f参数进行筛选,提交的参数是key:value的形式
scan
scan这个命令有四个的子命令,比较重要的是submit
submit用来指定一个IP地址,之后用shodan进行扫描
shodan scan submit 202.69.165.20
可以看到这个扫描操作是需要会员的。
那我就用官方手册给出的图片吧
可以看到这是Shodan扫描出的结果
其他的几个参数大家有会员的可以尝试一下,主要就是针对端口和协议等进行一个扫描
search
search命令允许你搜索shodan,并且在命令行下比较友好的查看这些结果。默认会显示出IP,端口,主机名和数据段信息,类似parse命令,可以使用--fields参数进行筛选
shodan search --fieldsip_str,port,org,hostname apache
有些时候会出现报错
过一段时间再进行访问就好了
stats
我们可以shodanstats –h查看一下
--limit指定返回结果数
--facets这个参数比较重要,可以将获取的数据按照指定的facet进行统计
-O输出文件名
例如我们查询一下ssh服务器在国家排名
shodan stats --facets country ssh
可以看到中国较美国差了很多,我们在查询一下3389端口设备
shodan stats --facets country port:3389
可以看出在Windows方面和美国还是相差不是特别多的(当然这只是一个粗略统计)
我们查询一下国内那个城市服务器最多吧
shodan stats --facets city port:80 country:cn
shodan的这个功能是不是十分的强大,Shodan有大量的facets,我会在本节的最后贴上!
stream
如果你想要查看Shodan实时的数据,那么就使用这个命令吧,它的参数也不少
大多数都是之前看见过的
--separator指定分隔符
--port从中挑选特定端口的数据,多个端口用逗号相隔
--quiet不打印到控制台
--timeout超时数
--streamer指定一个Shodan的stream服务器去使用选取的数据
--countries选择国家
--asn指定地区标号
--alert网络提醒
--compresslevel压缩程度,从0-9,表示不压缩
我着重说一下下面这两个
--limit指定下载多少个数据,-1表示下载全部数据
默认Shodan是一只运行着,直到我们关闭,如果我们只想要选取一个样本,那么我们可以使用这个参数指定条数
--datadir指定数据存储的文件夹,默认数据会以下面的格式进行存储
YYYY-MM-DD.json.gz
比如2018-01-03.json.gz
使用这个参数也是比较简单
shodan stream --datadir /root/home/Desktop/
下面我们就来进行一次查询
查询一下全球的网站的情况吧
shodan stream --datadir /Users/ita-cat-crack/Desktop/--limit 100 --fields ip_str,hostname --ports 80,443
可以看到显示错误了,不过在我的桌面还是产生了文件
还是有内容的,我们使用parse来查看一下吧
shodan parse
可以看到并没有数据,我用sublime打开试试
用会员账号试一下吧!
结果是一样的!都是失效的API KEY,难道这个功能是给企业用户设计的??不了解呀!
这个视频是他们官方设计的,大家可以看一下,演示了stream的用法
https://asciinema.org/a/33970
具体细节我会向Shodan官方发Email的,等待他们的回复
命令行接口就介绍到这里吧!!
Maltego Add-On
Meltego在信息收集方面甚至是这个网络安全方面的地位自然不用我说,所以我就不再这里多介绍它了,我主要说一下如何在Maltego中使用Shodan插件
Shodan官网提供了插件的下载地址
https://static.shodan.io/downloads/shodan-maltego-entities.mtz
Kali中自带的Maltego
登录以后可以看到首页就有Shodan,我们直接图形化安装就好了
之后就安装好了,至于使用,大家在研究Maltego的时候再去研究吧!
Browser Plug-ins
Shodan还有一个浏览器插件,支持火狐和谷歌。
安装也是很简单,以火狐为例
安装之后我们访问一下新浪试一试
可以看到从Shodan得到的信息
Metasploit Framework结合Shodan
可以看到需要的几个参数
API KEY
QUERY
(当然还有一些不是必须的,可以设置也可以不设置)
我把自己的APIKEY导入进去
可以看到普通用户API在msf中是不能使用过滤器的,那我们不使用过滤器呢?
不使用过滤器是可以的!
那我去换一个会员API
可以看到会员是可以的哈,还得是会员呀!
一定要注意的是:这个搜索是花费Querycredits的
我该怎么向借我账号的大佬解释呢???
msf支持将数据存储到数据库中,这样就方便做下一步的操作了!
MSF中还有一个与Shodan有关的脚本
这个脚本是用来检测蜜罐的,之前我们也介绍过,我们就随便找一个目标吧
可以看到目标并不是一个蜜罐!
以上便是关于Shodan在外部工具的一些用法,下面就附上facets表
-END-
意大利的猫
有态度
不苟同
写文章不易,有帮助记得打赏一些哦!
领取专属 10元无门槛券
私享最新 技术干货