shodan学习笔记

参考:

Shodan新手入坑指南 http://www.freebuf.com/sectool/121339.html

shodan手册 http://b404.xyz/2018/02/08/Shodan-Manual/

 

web界面

banner

Shodan 通过扫描全网设备并抓取解析各个设备返回的 banner 信息。

banner其实就是这个:

HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Sat, 03 Oct 2015 06:09:24 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 6466
Connection: keep-alive

 

除了获取banner,Shodan还可以获取相关设备的元数据,例如地理位置、主机名、操作系统等信息

 

搜索

~从网站的探索界面为例,搜索摄像头:

 

 

一个标准的搜索结果:

点下面details可以看到细节数据

 

点开IP可以进入摄像头的认证界面

到了这一步可以用各种方式攻击了(漏洞发掘,穷举等)

 

搜索过滤器

过滤器的格式是 filtername : value

排除结果:在过滤器前加-,例如-hash:0

 

 

 

~搜索合肥的apache服务器:

apache city:"Hefei"

 

~搜索美国 的服务器在8080端口上运行8.0版本IIS服务的服务器:

port:8080 product:"Microsoft-IIS" country:"US" version:"8.0"

 

~搜索可能受到DOUBLEPULSAR攻击的机器:

port:445 "SMB Version: 1" os:Windows !product:Samba

 

 

利用favicon搜索

使用每个网页的收藏夹图标来搜索同样图标的网页。

具体看参考:

http://b404.xyz/2018/02/08/Shodan-Manual/#%E5%9B%BE%E6%A0%87%E6%90%9C%E7%B4%A2

 

下载数据

在结果界面点击downlaod data,可以选择下载csv, json, xml格式的结果。

Exploit

每次用完之后,Exploits:每次查询完后,点击页面上的 “Exploits” 按钮,就能看到可以利用的漏洞。

报表

每次查询完后,点击页面上的 “Create Report” 按钮,Shodan 就会帮我们生成一份报表。

这个报表不能立刻生成,而是通过电子邮件发送。不过用不了几分钟。

~之前webcam生成的报表:https://www.shodan.io/report/FTi5loCb

 

命令行shodan

shodan是使用python编写的,clone的地址https://github.com/achillean/shodan-python

或者使用pip安装pip install shodan

 

Count

返回搜索的结果数(只有一个数字)

 

Download

下载搜索结果。

默认下载1000条json结果,要换格式或者结果数目通过参数调整。

 

Host

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

parse命令

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

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

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

 

scan命令

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

shodan scan submit 198.20.99.0/24

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

 

例子

官方例子

官方例子

https://asciinema.org/~Shodan

 

网络分析例子

Shodan最常见的使用案例是使用它来更好地了解公共网络范围内的运行情况。

~查看78.13.0.0/16段在网上暴露了多少服务。

shodan count net:78.13/16

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

 

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

shodan stats --facets port net:78.13/16

 

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

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

 

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

 

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

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

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

 

分析SSL的例子

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

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

 

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

 

分析telnet情况

mkdir telnet-data

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

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

  • 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"

你可能感兴趣的:(计算机安全,计算机网络)