关于Shodan的外部工具

Shodan命令行界面

安装最新的Shodan可以通过

easy_install shodan

安装该工具之后,使用API对其进行初始化操作:

shodan init API_KEY

Alt text

alert命令

alert命令提供创建、列表、清除和删除网络提醒的能力。

shodan alert

Alt text

convert命令

convert命令是导出Shodan的搜索结果文件,比如JSON文件。

count命令

统计查询结果

shodan count microsoft iis 6.0

Alt text

download命令

搜索Shodan并将结果导出到JSON文件中(请参阅附录A)。

默认情况下,只下载1000个结果.如果想导出更多的结果,加上--limit标志。

download命令可以保存搜索结果到本地,随时使用parse命令处理结果,当再次导出相同搜索内容的时候,就不必再花费积分导出。

shodan download  microsoft iis 6.0

Alt text

host命令

查看有关主机的信息,例如它位于何处,哪些端口是开放的以及哪个组织拥有其IP。

shodan host 189.201.128.250

Alt text

honeyscore命令

检查IP地址是否是蜜罐。

shodan honeyscore 41.231.95.212

Alt text

info命令

查询自己的API账户信息,包括本月剩余的查询次数和扫描积分数量。

shodan info

Alt text

myip命令

返回本机的出口IP(类似于curl ip.cn

Alt text

Alt text

parse命令

使用parse来分析使用导出的搜索结果。它可以让过滤出感兴趣的字段,也可以将JSON转换为CSV。这样,对于导入到其他脚本比较友好。

以下命令输出之前下载的Microsoft-IIS数据,并且将JSON文件转换为的CSV格式的文件。其中包括IP地址,端口和归属组织:

shodan parse --fields ip_str,port,org --separator , microsoft-data.json.gz

Alt text

scan命令

scan命令提供了一些子命令。最重要的一个是submit命令,这个命令可以使用shodan执行网络扫描。

shodan scan submit 198.20.99.0/24

默认情况下,它将显示IP,端口,主机名和数据。您可以使用--fields来打印感兴趣的任何banner字段。

Alt text

search命令

search命令搜索时候,终端将以友好的方式显示结果。默认情况下,它将显示IP,端口,主机名和数据。不过可以使用--fields 参数来打印感兴趣的任何banner字段。

shodan search --fields ip_str,port,org,hostnames microsoft iis 6.0

Alt text

stats命令

提供关于搜索的摘要信息,当然可以用于统计信息。 命令显示了Apache Web服务器所在的最常用的国家:

shodan stats --facets country apache

Alt text

stream命令

stream命令提供对Shodan爬虫收集的实时数据流的访问。

Alt text

该命令支持许多不同的选项,但有2个是重要的提及:

  • --datadir:可以指定流数据存储的目录,生成的文件格式YYYY-MM-DD.json.gz。每天只要保持数据流运行,就会生成一个新的文件。
    • 例如:从实时数据流保存数据到指定路径,可以使用shodan stream --datadir /var/lib/shodan/
  • --limit:指定应下载多少结果。默认情况下,该stream命令将一直运行,直到退出该工具。但是,如果只想收集数据样本,那么--limit参数可确保收集少量记录。
    • 例如:shodan stream --limit 100可以连接到Shodan实时流,打印出前100条记录,然后退出
  • --ports:接受逗号分隔端口,收集指定端口记录的清单
    • 例如:shodan stream --ports 80,8080

例子

官方例子

官方例子见 28 public asciicasts by Shodanhttps://asciinema.org/~Shodan

Alt text

网络分析例子

Shodan最常见的使用案例是使用它来更好地了解公共网络范围内的运行情况。Shodan命令行工具可以快速帮助、处理你的目标。例如,查看78.13.0.0/16段在网上暴露了多少服务。

shodan count net:78.13/16

Alt text

count命令提供了关于78.13.0.0/16段暴露了4960个服务

统计出该网段暴露的最多端口数的top10:

shodan stats --facets port net:78.13/16

Alt text

有时候也需要详尽的端口暴露数分配报告,因此指定最大的端口,返回此端口范围的暴露数统计情况:

shodan stats --facets port:100000 net:78.13/16

Alt text

该网络上有955个端口被发现暴露,并统计出各自端口暴露数。最多的是7547端口,这个端口是调制解调器的端口,这个端口也有很多的安全问题可以关注。在统计中也有一些非常见的标准端口,这些端口大多是为了掩盖自己真实的Web服务。

统计该网段的80、443端口上的服务情况:

shodan stats --facets product "HTTP net:78.13/16 -port:80,443"

Alt text

这里应将端口号放在引号中,防止bash认为该port是shodan的命令参数。

分析SSL的例子

若要了解整个网络的SSL使用情况,可按照以下来查询

shodan stats --facets ssl.version HTTP net:78.13/16

Alt text

可以看出大多运行的是TLS1.0及其以上的版本,不过还有一些古老的设备在使用sslv2。

在web端的shodan搜索出来:

Alt text

分析telnet情况

mkdir telnet-data

shodan stream --ports 23,1023,2323 --datadir telnet-data / --limit 10000

创建一个名为telnet-data的目录来存储telnet数据,然后从实时数据流中导出10000条记录,存储在telnet-data文件夹中

Maltego扩展组件/assets

shodan扩展组件为Maltego提供了2/assets新的实体功能(service和exploit)和五个转换:

  • searchShodan
  • searchShodanByDomain
  • searchShodanByNetblock
  • toShodanHost
  • searchExploits

Alt text

浏览器插件

ChromeFirefox都有插件可以使用

Alt text

Metasploit

MSF主要有两个shodan模块:

1. Shodan的常用搜索:`auxiliary/gather/shodan_search `                           
use auxiliary/gather/shodan_search

set SHODAN_APIKEY ********************

set QUERY ****

run

Alt text

  1. Shodan的蜜罐验证:auxiliary/gather/shodan_honeyscore:
use auxiliary/gather/shodan_honeyscore 

set SHODAN_APIKEY ********************

set TARGET your_target

run

Alt text

Recon-ng

先添加shodan API的key:

keys add shodan_api VZbVJy***n8S****hS1YM1****enTuy

显示可用的模块:

show modules

使用shodan搜索主机名:

use recon/domains-hosts/shodan_hostname

设置参数,并运行:

show options
set SOURCE google
set LIMIT 1
run

Alt text

results matching ""

    No results matching ""