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

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

我们可以了解到elasticsearch的默认端口是9200,这时我们可以先在Shodan进行相应搜索,看会返回什么。在Shodan中输入“port:9200”来进行搜索,
shodan 命令
1 . port:9200

  1. 我们想要的是美国的elasticsearch服务器,可以看到左边的统计中已经对一些常用字段进行了分类统计,有国家、组织、操作系统及产品,这里已经看到了我们所需要的字段,只需要点击相应的标签,即可进行进一步的细化搜索。

点击即可细化搜索

注意观察每一次点击标签后搜索语句的变化,到这里我们可以看到已经实现了我们的目的,找到了美国的elasticsearch服务器。当搜索结果细化到一定程度时,左边的统计也会有相应的变化,现在可以看到已经变成了对城市、组织、操作系统、和elasticsearch版本的一个统计。至此我们已经学会一些基本语法:
“port:” 按照指定端口进行搜索 “product:” 对某一产品进行搜索 “country:” 指定国家,
当我们需要多个词同时搜索时,只需要在每个关键词间加空格隔开就行,当不需要某个词时,可以用”-”加上关键词来进行去除,比如不想要Amazon的elasticsearch服务器,就可以”-org:amazon”,如何知道org这个关键词的?同样是左边的统计,当我们鼠标移动到Amazon时,可以看到他相应的链接,已经给出了关键词。

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

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

打开后发现这个就是我们需要的Supervisor服务器,那么我们用什么来定位这类服务器呢,这里就要用到一些新的语法:
“http.title:” 根据网站title搜索

场景3:搜索一个公司相关的服务器

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

首先要知道在Shodan结果中在哪里寻找这个标记,如下如所示,

Shodan搜索icon时会出现在箭头所示的位置。
因为这个icon只能算是对公司资产的一种标识,所以有些网站可能并没有带有icon,但是有些常用手段收集的服务器可能会漏掉这些,所以这个方法还是有一定的用途,这里拿支付宝举例。
我们尝试性的输入一些与支付宝相关的内容来进行搜索,如Alipay,支付宝,www.alipay.com等,当我们搜索到www.alipay.com时,可以看到结果内已经有携带支付宝icon的网站了

”http.favicon.hash:”

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

asn 区域自治编号
port 端口
org ip所属组织机构
os 操作系统类型
http.html 网页内容
html.title 网页标题
http.server http请求返回中server的类型
http.status http请求返回响应码的状态
city 城市
country 国家
product 所使用的软件或产品

其实Shodan的关键词还有很多,经纬度、ssl信息、smb版本号、区号、返回码状态等等,只要发挥你的想象力,从结果中寻找结果,就总能得到你想要的。
以上就是我使用Shodan过程中的一点心得,分享给大家。安全的路还很长,学习的路还很远,不忘初心,方得始终。

使用搜索过滤

如果像前面单纯只使用关键字直接进行搜索,搜索结果可能不尽人意,那么此时我们就需要使用一些特定的命令对搜索结果进行过滤,常见用的过滤命令如下所示:

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"
```
搜索实例

查找位于合肥的 Apache 服务器:

apache city:"Hefei"
查找位于国内的 Nginx 服务器:

nginx country:"CN"
查找 GWS(Google Web Server) 服务器:

“Server: gws”
hostname:"google"
查找指定网段的华为设备:

huawei net:"61.191.146.0/24"
net: 使用IP/CIDR标记法(eg:127.0.0.1/24)来设定IP地址范围,从而查询所有设备是否匹配正确,是否有存在漏洞的主机或者服务器,是否可以从外部访问等

shodan在渗透测试中的应用的更多相关文章

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

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

  2. 反向代理在Web渗透测试中的运用

    在一次Web渗透测试中,目标是M国的一个Win+Apache+PHP+MYSQL的网站,独立服务器,对外仅开80端口,网站前端的业务系统比较简单,经过几天的测试也没有找到漏洞,甚至连XSS都没有发现, ...

  3. python多线程在渗透测试中的应用

    难易程度:★★★ 阅读点:python;web安全; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天, ...

  4. Windows-NTFS-ADS在渗透测试中的利用

    0.什么是ADS Windows:微软公司的一款视窗操作系统,其内核为WindowsNT. NTFS:WindowsNT环境的限制级专用文件系统. ADS:NTFS的系统特性,交换数据流(Altern ...

  5. 详述MySQL服务在渗透测试中的利用

    本文作者:i春秋签约作家——Binghe 致力于书写ichunqiu社区历史上最长篇最细致最真实的技术复现文章. 文章目录: MySQL之UDF提权 MySQL之MOF提权 MySQL之常规写启动项提 ...

  6. 渗透测试中的bypass技巧

    0x00 前言 许多朋友在渗透测试中因为遇到WAF而束手无策,本人应邀,与godkiller一同写下此文,希望能够对许多朋友的问题有所帮助. 此系列一共分为五篇文章,分别如下: 一.架构层绕过WAF ...

  7. Windows渗透测试中wmi的利用

    0x01 关于WMI WMI可以描述为一组管理Windows系统的方法和功能.我们可以把它当作API来与Windows系统进行相互交流.WMI在渗透测试中的价值在于它不需要下载和安装, 因为WMI是W ...

  8. WMI在渗透测试中的重要性

    0x01 什么是wmi WMI可以描述为一组管理Windows系统的方法和功能.我们可以把它当作API来与Windows系统进行相互交流.WMI在渗透测试中的价值在于它不需要下载和安装, 因为WMI是 ...

  9. 详述MSSQL服务在渗透测试中的利用(上篇)

    前言: 致力于复现最实用的漏洞利用过程. 本文将带领大家学习以下内容: 学习使用`xp_cmdshell`扩展存储过程 学习调用`wscript.shell` 学习MSSQL写文件 学习沙盘模式提权 ...

随机推荐

  1. [AIR] 与本地进程(应用程序)进行通讯

    毫不夸张的说,此功能可以将Windows命令行程序(cmd.exe)通过AIR应用封装起来,并指挥它做任何你想做的事情 AIR2.0及以上与本地进程的交互主要体现在以下几方面: 启动进程并提供初始参数 ...

  2. P3952 时间复杂度

    P3952 时间复杂度 题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机 ...

  3. Java传参都是传引用变量的副本

    最近做练习时碰到一个问题,Java到底是怎样传参的,经过查资料与实验,我发现Java传参都是传引用变量的副本值. 1 Java中的引用变量 1.1 字面值引用变量:即基本数据类型的引用变量 ,如 in ...

  4. Python多继承解析顺序的C3线性算法流程解析

    Python多继承MRO 在Python2.1中,采用了经典类,使用深度优先算法解析. Python2.2中,引入了新式类,使用深度优先算法和广度优先算法. 在Python2.3以后的版本中,经典类和 ...

  5. mocha测试框架

    中文翻译文档:https://www.jianshu.com/p/9c78548caffa 阮一峰:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tut ...

  6. 123th LeetCode Weekly Contest Add to Array-Form of Integer

    For a non-negative integer X, the array-form of X is an array of its digits in left to right order.  ...

  7. PM2的安装和使用简介

    一.简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控.自动重启.负载均衡等,而且使用非常简单. 二.前期必备 node 环境 npm 三.安装 全局安装 ...

  8. Linux下配置nginx,负载IIS的页面

    最近研究了下Linux下的nginx结果贴一下: 反向代理概念: 一般访问流程:a=>b,a访问b服务器, 加n来做反向代理流程:a=>n=>b 负载均衡概率:a访问B站点,B站点有 ...

  9. 在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 <!-- 把需要生成截图的元素放在一个元素容器里,设置一个ref --> <di ...

  10. extjs--combo动态获取数据

    <!DOCTYPE html> <html> <head> <link href="https://cdnjs.cloudflare.com/aja ...