Shodan在渗透测试及漏洞挖掘中的一些用法

article/2025/9/25 6:44:38

    渗透测试中,第一阶段就是信息搜集,这一阶段完成的如何决定了你之后的进行是否顺利,是否更容易。而关于信息收集的文章网上也是有太多。今天我们来通过一些例子来讲解如何正确使用Shodan这一利器。

         想要利用好这一利器,首先得知道他是什么,Shodan是一款网络空间搜索引擎,和我们常见的百度谷歌不同,他主要搜索的是存在于互联网中的设备,服务器、摄像头、工控设备、智能家居等,都是他的目标。Shodan不仅可以发现这些设备,并且可以识别出其版本,位置,端口,服务等一些信息,并且进行了一些相应分类。

         Shodan分免费账户和会员账户,免费账户对一些标签的搜索和多标签关联搜索有限制,而会员的话就可以任意进行一些搜索,所以想要搜到自己想要的结果最好还是有一个会员比较方便,Shodan在每个黑色星期五的时候会进行打折(每年11月第四个周五),平时需要49美元的会员活动时只需要5美元,需要的小伙伴可以关注下。

         一个系统的受攻击面越多,被入侵的风险也就越大,Shodan可以很好的帮你找到其他攻击面。下面开始正式来讲一下如何在平时的渗透测试中利用好Shodan,注意学习思考问题的方法,而不只是简单的搜索语句。

        

         场景1:想搜索美国所有的ElasticSearch服务器

         ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。为什么要搜索他,因为他有多个漏洞,未授权访问、目录遍历、任意命令执行等,搜索wooyun镜像也可以看到有不少结果。

 

  要实现这个场景,首先要了解一些关于ElasticSearch服务器的基本知识,这里可以直接百度。

 

  通过百度我们可以了解到ElasticSearch的默认端口是9200,这里会用到一个基础语句"port",这时我们可以先在Shodan进行相应搜索,看会返回什么。在Shodan中输入”port:9200”来进行搜索,

 

  

  可以看到返回,共搜索到215669个结果,重点学习的地方在左边这个分类统计,

 

  我们想要的是美国的ElasticSearch服务器,可以看到左边的统计中已经对一些常用字段进行了分类统计,有国家、组织、操作系统及产品,这里已经看到了我们所需要的字段,只需要点击相应的标签,即可进行进一步的细化搜索。因为并不是所有的9200端口都是ElasticSearch服务,也有将默认9200端口修改了的。所以这里依次点击TOP PRODUCTS中的"Elastic"和TOP COUNTRIES中United States,并且删掉port:"9200",注意观察搜索框中的关键字变化:

 

  到这里我们可以看到已经实现了我们的目的,找到了美国的ElasticSearch服务器,包括默认端口和非默认端口。当搜索结果细化到一定程度时,左边的统计也会有相应的变化,现在可以看到已经变成了对城市、组织、操作系统、和ElasticSearch版本的一个统计。至此我们已经学到了两个新的关键字:

  “product”  对某一产品进行搜索

  “country”  搜索某个国家的资产,

  当我们需要多个词同时搜索时,只需要在每个关键字间加空格分割就行,当不需要某个词时,可以用”-”加上关键词来进行去除,比如不想要Amazon的ElasticSearch服务器,就可以”-org:amazon”,如何知道org这个关键词的?同样是左边的统计,当我们鼠标移动到Amazon时,可以看到他相应的链接,已经给出了关键词

   

         上面是根据已有关键字可以搜到的内容(port)来进行搜索的一个例子,下面我们来看另一个场景。

         场景2:搜索所有的搭建了Supervisor的服务器

         Supervisor是一个用Python写的进程管理工具,可以很方便的用来启动、重启、关闭进程。我们为什么要搜索这个东西呢,当然是因为他有问题。今年9月份的时候Supervisor爆出了一个远程代码执行漏洞CVE-2017-11610,我们想要复现一下漏洞(滑稽)。按照上一个场景的经验,当我们想要通过端口来搜索Supervisor时,我们百度发现他并没有默认端口,所以就需要用的另一种更常用的方法。来看我是怎么找的:

         首先在Shodan中搜索supervisor,看返回什么。

 

  

  可以看到返回了1363条结果,但是根据右边的返回信息来看,好像有些并不是我们需要的东西,这时候就需要进一步细化搜索结果,来找一个能够精确定位的关键词。这里我们多打开一些服务器,来寻找我们需要的supervisor服务器,这里有一个是我们需要的:

 

  

  打开后发现这个就是我们需要的Supervisor服务器,那么我们用什么来定位这类服务器呢,这里就要用到一些新的语法:

  “http.title”  根据网站banner搜索

  很明显我们可以看到supervisor服务器有个很明显的特征,就是他的title位置是”Supervisor Status”,那我们是不是可以用http.title:"Supervisor Status"来精确定位所有的supervisor服务器?来看返回结果:

  可以看到返回了44个结果,而且右边的预览相应的也都只剩下下了title为Supervisor Status的服务器,至此我们已经大致找到了我们需要的结果,当然Shodan作为一款搜索引擎,也不一定就能够收录所有的设备,所以有一些遗漏也是正常的。

         接下来讲一下细节的东西,搜索带有同一个icon图标的的服务器。

         首先我们都知道,一般的网站有自己icon,比如百度、阿里、腾讯等,而一般公司会对其所有网站的title中都加上这个icon,来增加统一性,也方便用户识别,如下如所示:

 

  Shodan针对网站的icon也有自己的搜索关键词,可以搜索到所有带有统一icon的服务器,一般都会是公司自己的资产了,然后大家就可以对这些服务器进行端口扫描等进一步的漏洞挖掘。这里用到的关键字为:”http.favicon.hash”,hash后面为一串独有的数字,因为并不知道Shodan是如何给每个icon分配hash的,所以这里我来说一下我自己的方法。

         首先要知道在Shodan结果中在哪里寻找这个标记,如下如所示,箭头位置就是这个网页的icon:

 

  因为这个icon只能算是对公司资产的一种标识,所以有些网站可能并没有带有icon,但是有些常用手段收集的服务器可能会漏掉这些,所以这个方法还是有一定的用途,这里拿支付宝举例。

       我们尝试性的输入一些与支付宝相关的内容来进行搜索,如Alipay,支付宝,www.alipay.com等,当我们搜索到www.alipay.com时,可以看到结果内已经有携带支付宝icon的网站了:

  

  这个时候需要做的就是,点击这个icon图标,就像我们之前细化场景一中的搜索结果一样,然后将输入的www.alipay.com删掉,就可以得到所有携带该icon的网站了。

 

  

  当然对于公司资产的收集,除了上面的方法,还有其他方法,这里再说一种。一般大型的公司都会购买一个或几个网段来使用,并且会进行等级,那么这里就可以用到我们刚才提到过的”org”语法来进行搜索,这里拿阿里巴巴进行举例。

  直接在Shodan中搜索阿里巴巴,看返回的结果:

 

  主意我框起来的地方,这个位置显示的就是他的所属组织,那么根据我们上面讲的,这里我们点击Alibaba,然后将我们刚才输入的alibaba删掉,然后只看中国的服务器,再次搜索,看会得到什么。

 

       

  这样就得到了所有阿里巴巴集团网段的服务器,但由于阿里业务巨大,再加上有阿里云业务,所以结果中并不都是阿里自家的东西,这里只是讲一个大致思路,具体怎么进一步利用,还需要自己思考。

  当我们得到了我们需要的结果时,如果结果数量巨大,下一步需要考虑可能就是怎么导出结果了,这里说一下,Shodan是自带了数据导出功能的,但是需要付费,当注册成为会员时,会默认送20次,导出成功时会给你邮箱发一封邮件。但是我认为他比较坑,因为有时候导出一个数据可能需要好几天的时间。想到爬虫的同学可以尝试一下。。因为我试过,但是因为有反爬虫并没有成功,当发现为爬虫时,会限制你的搜索到最多20页,不管你是不是会员。我想到的解决办法是将每一页网页都保存在本地,然后在本地进行提取,还怕什么反爬虫。当然如果大家有好的爬虫,也可以分享一下。

 

最后在列举一些比较常用的搜索语句来供大家参考,什么时候用什么样的语句,完全取决于你怎么去想。

  asn            区域自治编号      

  port                 端口                           

  org                 ip所属组织机构

  os                  操作系统类型

  http.html         网页内容

  html.title        网页标题

  http.server     http请求返回中server的类型

  http.status        http请求返回响应码的状态

  city                城市

  country          国家

  product               所使用的软件或产品

  vuln              CVE漏洞编号,例如:vuln:CVE-2014-0723

  net                搜索一个网段,例如:123.23.1.0/24

  其实Shodan的关键词还有很多,经纬度、ssl信息、smb版本号、区号、返回码状态等等,只要发挥你的想象力,从结果中寻找结果,学会举一反三,就总能得到你想要的。:)

  想了解关于Shodan更多的用法可以参考这篇Shodan手册。


http://chatgpt.dhexx.cn/article/tZVNqi4x.shtml

相关文章

shodan的几个功能点

目录 介绍网络监控器Firefoxshodan命令行 介绍 Shodan是用于搜索连接到互联网设备的工具。与搜索引擎可以帮助你找到网站不同,Shodan可以帮助你找到有关台式机、服务器、loT设备等的信息。此信息包括元数据,例如在每个设备上运行的软件。 网络监控器 …

shodan(黑暗谷歌)信息收集

shodan介绍 与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“黑暗”谷歌,一刻不停的在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等。每个月Shodan都会在大约5亿个服务器上日夜…

Shodan新手使用指南

什么是 Shodan? 首先,Shodan 是一个搜索引擎,但它与 Google 这种搜索网址的搜索引擎不同,Shodan 是用来搜索网络空间中在线设备的,你可以通过 Shodan 搜索指定的设备,或者搜索特定类型的设备,其…

几种古典密码

1.单表代换密码 2.多表代换密码

古典密码之乘法密码

学习目标: 熟练掌握多表古典密码简单乘法加密算法原理及实现。掌握多表古典密码简单乘法加密算法的应用。 预备知识: 乘法密码是简单代替密码的一种。 它需要预先知道消息元素的个数,加密的过程其实是相当于对明文消息所组成的数组下标进行…

古典密码及现代密码分组密码与流密码总结

古典密码及现代密码分组密码与流密码总结 古典密码大部分加密方式是利用替换式密码或移项式密码,有时是二者的混合。一般情况下,一种古典密码体制包含一个字母表,以及一个操作规则或一种操作设备,到了现代基本不可信赖。 1.凯撒…

古典密码体制

文章目录 一、置换密码1、列置换密码2、周期置换密码 二、代换密码1、单表代换密码2、多表代换密码: 一、置换密码 置换密码门又称换位密码,是根据一定的规律重新排列明文,以打乱明文的结构特性。 常见的置换密码有两种,一种是列…

信息安全导论 实验一 古典密码学

一、实验目的与原理 1.实现古典密码学中的移位密码算法和维吉尼亚算法。 2.了解两种算法的原理,并且编写出来。 3.使用语言为C或者Python等。 二、实验内容与记录 位移密码算法: 移位密码算法 在加密的时候需要注意大小写的转换,这个可…

古典密码之维吉尼亚密码实验

学习目标: 维吉尼亚密码是古典密码中非常具有代表的例子。本实验要求用高级语言编写和调试一个简单的维吉尼亚密码实现及解密程序,通过本实验可以加深理解维吉尼亚密码原理。 预备知识: 人们在单一恺撒密码的基础上扩展出多表密码&#xff…

【密码学算法实现】古典密码

文章目录 2.1 代替技术2.1.1 仿射密码2.1.2 单表代替密码2.1.3 Hill密码Hill密码的已知明文攻击 2.1.4 Vigenere密码 2.2 置换技术2.2.1 栅栏密码2.2.2 矩阵密码 作为较为朴素的密码体系,古典密码通常都是对称的。如下图所示,对称密码通常是加密方与解密…

密码学-古典密码学习笔记

文章目录 参考资料替代技术单字母表替代密码凯撒密码移位密码仿射密码针对单字母表替代密码的攻击 多字母表替代密码Vigenere密码Hill密码(希尔密码) 置换技术置换密码的定义案例 本文作为一篇学习笔记,在图片和文字上大量参考了各种密码学书籍,并添加了…

古典密码算法实验c语言,古典密码实验报告.doc

古典密码实验报告.doc 哈尔滨工程大学实验报告实验名称古典密码算法班级学号姓名实验时间2014年4月成绩指导教师实验室名称哈尔滨工程大学实验室与资产管理处制一、实验名称古典密码算法2、实验目的通过编程实现经典的代替密码算法和置换密码,包括移位密码、维吉尼…

古典密码学学习笔记

1.历史 古典密码阶段:1949年以前 近代密码阶段:1949-1975年 现代密码阶段:1976年至今 2.加密方法 古典密码学的加密方法主要有两大类:替代和置换,或者是两者的结合 3.基本密码 1.键盘布局加密 这是一种比较简单也…

古典密码

古典密码将明文的每一个字母代换为字母表中的另一个字母,代换前现将明文字母用等价的十进制数字代替,使用十进制进行运算。 字母abcdefghijklm数字0123456789101112 字母nopqrstuvwxyz数字13141516171819202122232425 根据代换是对每个字母逐个进行还是…

初学古典密码

古典密码 目录 古典密码 Wiki篇 二,凯撒密码Caesar: 三,移位密码 四,Atbash Cipher(埃特巴什码): 五,简单替换密码 六,仿射密码(affine cipher) 多表…

简单古典密码

1. 简单移位密码 m "{easy_easy_crypto}" k 3124 明文所在位置1234密文所在位置3124 flag{easy_easy_crypto}lafgea{s_eyay_scyprt}o 攻击方法:肉眼识别/爆破秘钥/根据flag字符串逆推 2. 曲路密码 明文填入一个表中,并按照一定的曲路遍历攻击方法…

古典密码技术

古典密码技术 古典密码是密码学中的其中一个类型,其大部分加密方式都是利用替换式密码或移项式密码,有时则是两者的混合。其于历史中经常使用,但在现代由于计算机的出现,使得古典密码解密已经不再困难,已经很少使用&a…

古典密码简记

目录 概述 传统隐写 替换密码技术 换位密码技术: 安全性分析 概述 古典密码只是对字母进行变换,而现代密码算法是对比特流进行变换。 古典密码技术比较简单,通常 采用手工或机械操作来对明文进行加密和解密的。(例&#xf…

常见古典密码

古典密码 文章目录 古典密码前言1.Affine(仿射加密)2.Bacon(培根加密)3.Brainfuck4.Caesar(凯撒加密)5.Fence(栅栏加密)6.Fenham(费纳姆加密)7.Morse(摩斯密码)8.Pigen(猪圈加密)9.Vigenere(维吉尼亚加密) 前言 系统的学习了一下古典密码,这里大概整理一下主要的加…

古典密码学

主要划分方式及其分类 按密钥方式划分:对称,非对称 按明文处理方式分:块密码,流密码 按编制原理划分:代换,置乱 对称加密算法 对称加密算法 对称加密算法(synmetric algorithm)&…