Shodan 学习笔记

    在开始之前先简单介绍一下Shodan。在百度百科中用了一句话来介绍Shodan,“Shodan是互联网上最可怕的搜索引擎。”为什么会这样说呢?Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“黑暗”谷歌,一刻不停的在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等。每个月Shodan都会在大约5亿个服务器上日夜不停地搜集信息。前面也提到“百度、谷歌等搜索引擎提供的是包含指定关键字(词)的网站(URL),如果要在因特网上搜索主机、服务器、摄像头、打印机和路由器等设备,则需要使用专用的搜索引擎”,其中后者的典型代表之一为:Shodam.

    下面就开始正式介绍Shodan。Shodan网址:https://www.shodan.io

    Shodan的搜索对象

    Shodan的搜索对象:联网设备,特别是很多与工业生产和民众日程生活密切相关的联网设备。可以分为:网络设备、网络服务、网络系统 和 banner信息关键字 4类。

  • 网络设备:包含网络连接设备和网络应用设备。其中,网络连接设备指的是将网络各个部分连接成一个整体的设备;网络应用设备是指借助因特网提供的服务。
  • 网络服务:指网络提供的各种服务,如FTP、HTTP和Apache等。
  • 网络系统:包含操作系统和工业生产领域广泛使用的各类控制系统。
  • banner关键字类搜索对象是指用户分析Shodan搜索返回的banner后,将其中的关键字作为搜索对象,如弱口令、匿名登录、管理员和HTTP报头等。

    Shodan搜索的基本输入格式

    Shodan搜索的基本输入格式:A B C filter:value filter:value filter:value

       A、B、C为搜索对象,如网络设备netcam、网络服务器IIS。 Filter为Shodan搜索过滤词,常见的有地理位置、时间、网络服务三类。 Value为filter对应的值,若filter是端口,则value的值对应为Shodan支持搜索的端口值。 需要注意的是filter与value之间的冒号后面没有空格。
       搜索对象和过滤词均可缺省。在缺省搜索对象情况下,Shodan搜索满足过滤条件的各类网络设备、主机和服务器。在缺省过滤词情况下,Shodan直接在其数据库内搜索指定对象。

    Shodan的使用

        在使用Shodan之前,首先要注册一个账号,注册后进行登录。Shodan界面如下:

 

        这里首先进行简单的搜索,比如输入“Windows”对操作系统为Windows进行搜索,搜索结果如下图所示。

 

        可以看到左边一列由上到下依次为:TOTAL RESULTS、TOP COUNTRIES、TOP SERVICES、TOP ORGANIZATIONS、TOP OPERATING SYSTEMS和TOP PRODUCTS。

        通过上图可以知道总共搜索到的结果有2679148条,下面的世界地图颜色越红表示数量越多,其中美国有682845条,香港有165533条(这里将香港归为国家是十分不正确的,我们要坚持“香港是中国的香港”!),我国有155491条,日本有153144条。使用最多的服务/端口依次为SMB、RDP、HTTPS、HTTP和Kerberos。使用最多的组织/ISP为亚马逊。由于这里的搜索的操作系统就是Windows,所以使用最多的操作系统自然就是Windows。使用最多的产品/软件名称为Samba,这也很容易理解,因为Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,而前面又知道使用最多的服务为SMB。

        在中间的主页面可以看到每条搜索结果都包含:IP地址、主机名、ISP、该条目的收录时间、该主机位于的国家以及banner信息。下面以其中一条搜索结果为例进行分析。该条搜索结果如下图所示。

        可以看到该条搜索结果ip地址为195.138.86.70,位于乌克兰的敖德萨。该条目收录的时间为格林威治时间的2021年4月15日00:23:28。

    Shodan信息搜集 — 过滤词

        (1)地理位置类过滤词:city、country、geo

    地理位置类过滤词主要包括city、country 和 geo,分别用于搜索输入城市、国家和经纬度区域内的主机和设备。过滤词city对应的是城市名,通常情况下首字母大写。过滤词country对应的是国家和地区的域名扩展名(域名扩展名详见其官网说明)。过滤词geo对应的有两个必选的参数和一个可选的参数,必选的参数为:经度和纬度,经度以东经为正,西经为负;纬度以北纬为正,南纬为负,可选的参数是区域班级(单位为千米)。例如,搜索位于南京的主机,输入“city:Nanjing”,结果如下图:

 

    可以看到此时搜索结果的地址均为南京。

(2)时间类过滤词:before、after

    时间类过滤词有before和after,用于搜索Shodan服务器在输入时间前(后)收集的网络设备(主机)信息,格式为“日-月-年”或者“日/月/年”。例如,搜索在2021年4月10日到2021年4月15日期间,Shodan服务器收集的南京新增的网络摄像头,输入“netcam city:Nanjing after:10/4/2021 before:15/4/2021”。但是,在真正进行搜索时会出现“The "before" and "after" filters are only available via the API”。

(3)网络服务类过滤词:hostname、net、os、port

    hostname:用于搜索指定主机名的主机,如搜索hostname为baidu的主机,输入“hostname:.baidu”(注意baidu前面有一个dot),搜索结果如下:

 

    net:用于搜索输入网段内的所有主机,通常使用CIDR标示法表示待搜索网段,甚至可以搜索指定IP的主机。搜索某一IP网段(202.200.0.0~202.200.255.255),输入:“net:202.200.0.0/16”。

 

    os:用于搜索指定操作系统的主机,如Windows、Linux和Cisco。

    port:用于搜索指定端口的主机,Shodan只吃一次搜索多个端口。

 

    接下来搜索Webcam。在搜索框输入webcam进行搜索,随机点开一个搜索结果,如下所示:

可以看到这是一个位于新加坡的摄像头。该ip地址开放的端口如图所示,可以看到一共开放了43个端口。

 

参考资料:

[1] 网络攻防原理与技术 第2版

相关资料:

[1] shodan学习笔记 https://blog.csdn.net/TimoTolkki1966/article/details/81233710 

[2] shodan新手入坑指南 https://www.cnblogs.com/student-programmer/p/6732873.html

[3] shodan在渗透测试及漏洞挖掘中的一些用法 https://www.cnblogs.com/miaodaren/p/7904484.html

[4] 网络安全自学篇(二十五)| Shodan搜索引擎详解及Python命令行调用 https://cloud.tencent.com/developer/article/1621975

 

 

 

 

posted @ 2021-04-16 18:07  不爱学习的Shirley  阅读(1210)  评论(0编辑  收藏  举报