前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何让你的服务屏蔽Shodan扫描

如何让你的服务屏蔽Shodan扫描

作者头像
C4rpeDime
发布2018-08-29 10:48:00
1.3K0
发布2018-08-29 10:48:00
举报
文章被收录于专栏:黑白安全黑白安全

1. 前言

在互联网中,充斥着各种各样的网络设备,shodan等搜索引擎提供给了我们一个接口,让我们可以在输入一些过滤条件就可以检索出网络中相关的设备。

如何让你的服务屏蔽Shodan扫描 系统安全 第1张
如何让你的服务屏蔽Shodan扫描 系统安全 第1张

对于我们的一些可能有脆弱性或者比较隐私的服务,为了抵御hacker通过shodan对其进行快速渗透,我们必然有这样的想法:能否让类似shodan这些搜索引擎没法扫描到我,让我这个设备在shodan的搜索结果中不出现,但同时不影响正常用户的访问?

2. 需求分析

出于这样的需求,我们最容易想到的方案就是黑名单,即把shodan的扫描服务器ip添加到我们的防火墙黑名单,这样这些ip在和我们进行连接的时候,防火墙就能直接拦截。但是,如何能获取到shodan扫描器的ip呢?很显然,shodan不可能傻到在网络上公布他们扫描服务器的ip地址,这样大家就可以轻而易举地对它进行屏蔽,那我们是否能利用一些别的手段获取到shodan的扫描服务器呢?

3. 谈Shodan的Banner抓取

使用过shodan进行搜索的朋友都知道,shodan搜索出来的数据中,一个很重要的数据就是banner信息,banner是shodan使用扫描器和目标服务器端口进行协议交互,目标服务器返回的标语信息。像下面这样的一条http服务的banner信息,通过banner信息我们能获取到相关协议使用的组件、版本等。

如何让你的服务屏蔽Shodan扫描 系统安全 第2张
如何让你的服务屏蔽Shodan扫描 系统安全 第2张

4. 巧妙利用Shodan的Banner信息获取扫描服务器IP

shodan可以抓取目标服务器特定服务返回给我们的banner信息,这些banner信息可以分为两类,一类是静态banner,即无论何时何地谁和目标进行交互,目标都返回相同的banner,像下面这样的打印机设备,总是返回打印机的型号及状态:

如何让你的服务屏蔽Shodan扫描 系统安全 第3张
如何让你的服务屏蔽Shodan扫描 系统安全 第3张

另一类是动态banner,这也是我们需要深入研究的。如果朋友们有一些CTF的经验,肯定很熟悉错误回显这个词,错误回显即我们输入错误后,目标返回和输入相关的错误回显信息,比如:

我们在一个网页的输入框输入:1′ or 1# 服务器给我们返回:String “1 ‘ or 1#” is illegal

那么,shodan是否在抓取banner信息时候,是否也会抓到和扫描服务器ip相关的回显信息呢?比如,暴露在网络中的mysql服务,虽然shodan可以在网络中扫描到,但是却无法访问数据库【可能原因是ip不合法,用户名账户不匹配等】,mysql就会给扫描服务器返回一条

代码语言:javascript
复制
<code class="hljs css"><span class="hljs-selector-tag">xxx</span><span class="hljs-selector-class">.xxx</span><span class="hljs-selector-class">.xxx</span><span class="hljs-selector-class">.xxx</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">not</span> <span class="hljs-selector-tag">allowed</span></code>

这样的拒绝访问回显,xxx.xxx.xxx.xxx就是尝试和mysql建立连接但是无权访问的ip。我们在shodan中验证我们的想法,输入关键词【mysql】看到下面的搜索结果:

如何让你的服务屏蔽Shodan扫描 系统安全 第4张
如何让你的服务屏蔽Shodan扫描 系统安全 第4张

搜索结果验证了我们的猜想,我们利用api直接在命令行中进行查询:

如何让你的服务屏蔽Shodan扫描 系统安全 第5张
如何让你的服务屏蔽Shodan扫描 系统安全 第5张

下载搜索结果并经过处理后可以得到这样一批IP地址【部分】:

如何让你的服务屏蔽Shodan扫描 系统安全 第6张
如何让你的服务屏蔽Shodan扫描 系统安全 第6张

以上就是shodan扫描器的ip地址。

5. 深入研究Shodan的扫描器

通过对上述ip的地理信息研究,我们发现这些ip来源于全球各地

其实,类似shodan这种扫描行为现在在国家政策层面已经开始被限制了,通过流量监控一旦发现有类似扫描行为,就会报警断网,但是shodan为什么可以规避这些限制,保证官网结果准确且更新快速呢?总结起来主要有两点:

1. 分布式扫描

如上文我们分析其ip地址来源,我们发现了其扫描服务器位于全球各地,就算某些国家禁止另外某个国家的ip访问,shodan也可以用其他国家的ip对其进行扫描,这样可以保证结果的真实完整性。

2. 随机化

如果大家有研究过防火墙或者IDS的检测策略,就会知道防火墙或IDS对于同一源地址向不同目标的地址的同一端口、同一源地址对同一目标的不同端口的连接访问统计是很容易的,一旦这些连接数超过了某一阈值,那么你的isp或者云服务提供商就会对你警告,如果你忽略这种警告,你面对的将是断网。

shodan面对这些策略时候,采用随机化目标ip和端口的方法进行随机探测,扫描流程如下:

step 1: 随机生成一个ipv4地址 step 2: 随机生成一个shodan要扫描的端口 step 3: 根据step1的ip和step2的端口,进行一次端口banner的抓取 step 4: 回到step1

通过上述的策略,shodan的扫描器看起来就像一个“正常”的主机。

6. 结束语

通过本文讲述的方法,可以获取到shodan的扫描服务器ip地址,把这些ip地址添加到防火墙的黑名单中,我们就可以防止shodan的扫描。当然,攻守永远是一个博弈的过程,shodan也可能经常变化他们的ip地址,但是只要我们通过这种方式不断更新我们的黑名单库,也可以一定程度上防止shodan的扫描。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-122,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. 需求分析
  • 3. 谈Shodan的Banner抓取
  • 4. 巧妙利用Shodan的Banner信息获取扫描服务器IP
  • 5. 深入研究Shodan的扫描器
    • 1. 分布式扫描
      • 2. 随机化
      • 6. 结束语
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档