«

»

Nov 01 2018

服务器遭分布式主动探测攻击

说真的,接触网络这么多年,捏着过期的网络工程师证,网络硬件相关公司工作过,负责过多个公司的网络环境设计,真的是有种想吹“啥样的网络攻击我没见识过”这种牛逼的感觉。

这次攻击还是有点小小震惊到我了。

I’m shocked

情况简述

我的服务器上主要是放着博客服务,BIKE404,以及一些其他的 PHP 服务,像日常开发的对公 DEMO 都是在这台服务器上。我还有租香港的虚拟主机,本来那个主机才是专门用来做博客的,但是虚拟主机各种不方便,还有糊弄傻子的重大嫌疑,所以现在重要服务都是在这台服务器上。毕竟是方便啊。

我是用 iptables DROP 掉所有端口的,只保留 80 和 443 以及管理用的高位端口。 除非你从 1024-65535 全扫一遍,否则没什么好手段找到管理端口。

 

问题就出在这了:

真的有什么人,或者是什么东西,能每次 100% 正确知道我的端口号,并且进行分布式主动探测

而且比较耻辱的是: 攻击都持续了一个星期了,我才察觉到!

snap1626

细节

详情

首先,修改管理端口,之后

  1. 抓这个端口的数据包,并过滤掉客户端的数据
  2. 抓网口的数据包,过滤掉管理端口

大概一分钟之内,方法一就会有大量且不同的 IP 向这个端口发起探测请求,而方法二则几乎抓不到明显的数据包。也就是说:攻击者没有进行端口扫描,不仅明显知道我的端口号,而且整个过程都是全自动的。

出卖者?

我的第一反应是,身边的某个设备上的某个/些软件背叛了我。

于是首先一边抓包,一边用不同设备尝试反复触发攻击者的主动探测。电脑比较容易触发自动攻击,而手机和平板则不会,路由器是 Openwrt 且 3 年没动过,开发机和NAS都没加电,这几个可以排除嫌疑。

初步怀疑是电脑上的什么软件泄露了我的网络流量。于是把手机和平板关机,开始写 curl 脚本尝试自动触发,结果完全没有触发的效果,而使用 Firefox 能够触发但效果不明显,Chrome 则很容易触发。这边的非常难办,因为 Wireshark 没办法针对某个进程做抓包,同样也没法做排除。一开浏览器,这俩货检查更新的包还都是 https 的,如果叛徒也是用 https 的话,除了一个一个看请求头中的 domain 之外,别无他法。我就这么一点一点抠了很久,最后发现这俩浏览器除了启动时给各自的官网发一些同步请求之外,完全没任何可疑行为。而且从网卡上发出去的数据包就没其他的了。

难道有什么高级手段,能略过 Wireshark 的抓包,或者根本就不走 TCP/UDP ?即使是能跳过 NAT 直接帧中继也是能被 Wireshark 抓到的啊。

不过反思回来,用 curl 的脚本则完全不能触发攻击,而 Firefox 和 Chrome 又没有嫌疑,这货还高端到认浏览器?开始考虑脚本与浏览器的区别。

因为是跑在 Windows 上的,而我有好多年没写过批处理文件了,所以请求是单发的没有并发,而浏览器则可以一次发出大量请求。也就是说并发量可能是个触发条件。于是把电脑网线拔掉,打开手机和平板,试着产生大并发。虽然很困难,但是成功检测到了攻击。

结论:并发数可能是触发条件之一,但具体触发机制不明。泄露数据的并不在我的设备上。

snap1623

这个阶段大概用了 2 小时(2 小时白折腾了)

劫持?

立刻把路由的网线拔下来(联通),插到邻居的路由上(宽带通)(我也是交了服务费的所以 OK)。

宽带通的出口走的是电信,可以当做电信网络分析。

尝试复现 → 复现成功

初步认定非当地运营商的行为。

凶手

当从源头分析而一无所获,走进了死胡同的时候,就应该 逆转 一下。

既然无法获知自己的数据是泄露给了 ,那么:

“考虑 拿到了你的数据后对你发起攻击。”

snap1616

这是我在尝试应对方法时,把攻击探测 DROP 后,用 tcpdump 抓到的探测包

snap1625

第一个 SYN 请求 1 秒后重传第一次,再 2 秒后重传第二次,事不过三后放弃探测。探测请求不是 HTTP 请求也不是能肉眼读懂的明文请求,也就是说不是什么低劣作坊的产品,而是针对什么特定协议的探测。

所有攻击来源都来自中国大陆,但几乎每个攻击源都没有关联,IP 分散在全国各地的住宅区中,而且多数都有 GPS 定位记录,也就是说这些 IP 多数都是真实用户在使用的家用宽带,而非机房网络。同时这些 IP 还存在机器人撞库的嫌疑。

也就是说?

也就是说?
是什么人?从比当地运营商还要高级的层面获取用户流量数据?并可以控制分散在全国各地的 IP ?向对应的端口进行主动探测攻击?
snap1633

结论

还记得我开头说的有点小小震惊吗?

我现在开始害怕了!

snap1617

Watashi wa mo shin de iru

6 comments

Skip to comment form

  1. 大致
    Firefox 63.0 Firefox 63.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0

    其实是扫地大妈干的。

    1. 石樱灯笼
      Google Chrome 71.0.3578.98 Google Chrome 71.0.3578.98 Windows 7 x64 Edition Windows 7 x64 Edition
      Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

      有时候就觉得啊,是不是年龄大了,生活平坦了,遇到啥困难之后,放弃的就特别快,而且放弃的还特别痛快。
      我前老板有次回老家,到了火车站发现没带身份证,直接就把火车票给退了坐地铁回公司沙发玩手机。我说车站可以办临时身份证明啊,老板说麻烦,算了,买了明天的车票明天再走。

  2. 青山
    Google Chrome 55.0.2883.87 Google Chrome 55.0.2883.87 Windows 7 Windows 7
    Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

    毫无意义的攻击,攻击者也是闲得无聊

  3. 萃香西瓜
    Google Chrome 69.0.3497.100 Google Chrome 69.0.3497.100 Mac OS X  10.12.6 Mac OS X 10.12.6
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

    感觉有可能是你的服务器上有进程在主动上报

  4. 野生的喵喵
    UC Browser 11.5.4.970 UC Browser 11.5.4.970 iPhone iOS 11.3.1 iPhone iOS 11.3.1
    Mozilla/5.0 (iPhone; CPU iPhone OS 11_3_1 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/15E302 UCBrowser/11.5.4.970 Mobile AliApp(TUnionSDK/0.1.15)

    我想可能不是针对你一个站点,大抵是无差别扫描,各种可能的url随便扫,我java的站点,一天多的时候也有好几百次php的链接请求呢……

    1. 石樱灯笼
      Google Chrome 71.0.3578.98 Google Chrome 71.0.3578.98 GNU/Linux x64 GNU/Linux x64
      Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

      好好读完全文再评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据