作为恶名昭著的僵尸网络,Mirai攻陷了成千上万的物联网(IoT,Internet-Of-Things)设备,以这些设备作为节点发起大规模分布式拒绝服务攻击,破坏大量主流站点。

Mirai的攻击浪潮在2016年9月达到峰值,当时该僵尸网络发起大规模分布式拒绝服务(DDoS)攻击,导致OVH、Dyn以及Krebs on Security等主流站点出现暂时瘫痪现象,无法正常提供服务。据OVH以及Dyn的报告,这些攻击的流量峰值超过了1Tbps,这是已知攻击中规模最大的攻击流量。

此次创纪录的攻击流量事件中,最引人注目的在于这些流量由家用路由器、空气质量检测仪以及个人监控摄像头等小型物联网(Internet-of-Things,IoT)设备所发起。在巅峰时期,Mirai控制了超过60万个存在漏洞的IoT设备。

而就是这么有名的僵尸网络,Mirai和他的变种被ankitanubhav曝光其有一个小Bug,可以导致其在执行指定类型的操作后致C2服务器宕机。

效果图如下,当用户名输入1025+个“a”字符时,Mirai服务器便会宕机。

实际上,当有人连接到Mirai C2时,它会要求输入用户名和密码进行身份验证。如果有人在用户名中添加了1025+个字符流,则C2会崩溃,如上所示。

具体分析如下:

首先对缓冲区溢出有个概念理解,这是GO代码中的一个程序,它以名字作为输入并打印出来。

程序首先将名称作为字符串,将其复制到字节缓冲区然后打印缓冲区。虽然事情看起来很正常,但程序有一个缺陷。请注意,缓冲区是静态声明的大小为10。

设置大小为10的缓冲区长度是溢出的征兆

当我们运行它并提供一个小的输入时,事情进展顺利,例如“Ankit”。但是,当我们提供大于10的输入时,如“Ankitxxxxxxxxxxxxxxxxxxxx”,那么程序显然会抛出错误。

我们现在回到最初的Mirai源码。

这是Github上提供Mirai源代码的一部分

我们看到用户名被传递给Readline函数。

虽然由于它的名称它似乎是一个库函数,但它实际上是在源中声明的自定义函数,它声明了1024的固定缓冲区大小长度。

这就是当用户名是1025或更多字符流时模块崩溃的原因。

由于大多数物联网类的僵尸网络恶意软件都基于Mirai,因此这个漏洞已经在许多变种中被传播,并且已经在Blackhats中得到了充分利用。

目前,这个漏洞经常用来对那些投放Mirai或者基于Mirai进行二次开发的僵尸网络的脚本小子,由于他们的服务器IP都保持不变,因此直到僵尸网络所有者意识到C2已关闭并再次打开它后,会有一段很长的间隔,这可以有效的破坏僵尸网络的扩散。

黑鸟点评:

所以,我们可以写一个脚本,把大量Mirai及其变种的服务器IP地址都收集齐全,然后通过指定长度用户名的方式,就可以批量致使服务器宕机。

或者可以反向思考,通过全网ip扫描输入指定长度的用户名,然后通过服务器输入前后的状态,来判断IP是否为Mirai及其变种的服务器。

参考链接:

https://www.ankitanubhav.info/post/crash

近期看点:

欢迎下方长按识别二维码关注本公众号

更多情报和数据,请关注公众号

点击菜单栏,扫码加入知识星球

(原价299,现价折扣269)

感谢您的关注和转发

右下角

朕编不下去了了

恶人自有天收:如何能使僵尸网络Mirai的服务器宕机相关推荐

  1. 僵尸网络Mirai变种疑似开始针对华为进行武器制作

    近日,发现有几个国外IP(77.40.109.35俄罗斯,188.17.77.196俄罗斯,5.140.140.23俄罗斯)对某客户内网多个ip进行了漏洞攻击尝试.通过流量分析确认攻击是是利用CNVD ...

  2. linux 邮件服务器pop3,linux下用pop3收web电子邮箱_邮件服务器

    FreePOPs是一个集成了POP3后台程序.LUA解译器和其他一些额外的HTTP及HTML分解库的实用工具,目前的最新版本是0.0.10版.现在FreePOPs有Windows.Linux和Mac ...

  3. 极简-windows电脑端接收手机验证码(python简易服务器处理get请求)

    背景:需要电脑端接收短信来实现一部分自动登录功能 实现步骤:1.手机app获取短信 2.内网穿透转发电脑 3.python处理get请求 1手机app获取短信 1. Gitee下载免费轻量开源APP, ...

  4. 美团面试,360面试 ,滴滴面试,阿里面试,百度面试,京东面试,搜狗面试:

    一.基础知识:   1.CurrentHashMap的数据结构,Java1.8 与 java 1.7的区别,增加了那些特性 这个其实是考了一下编程思路,hashMap(链表+数组)==>1.8之 ...

  5. ❤️DDOS攻击详解❤️——万物互联时代的巨大威胁!安全领域最棘手的问题之一

    DDOS全称Distributed Denial of Service,翻译成中文是'分布式拒绝服务',DDOS攻击是安全领域最难解决的问题之一,由于其攻击方式的特殊性,始终没有一个完美的解决方案,随 ...

  6. Java面试题-2021

    Java面试题 1.MyCat 1.什么是数据库分片 2.MyCat的作用? 3.MyCat和MySQL的区别? 4.什么是分库分表? 5.如何设计分库分表 (mycat) 2.MongoDB 1.M ...

  7. 一份自己整理的不太详细的常见面试题

    1.java基础 1.解释下什么是面向对象?面向对象和面向过程的区别? ​ 面向对象是一种基于面向过程的编程思想,是面向现实世界模型的自然延申,这是一种"万物皆对象"的编程思想.由 ...

  8. 人不行别怪路不平!万丈高楼平地起,要想辉煌靠自己。

    1.final 在 java 中有什么作用? final 修饰的类叫最终类,该类不能被继承. final 修饰的方法不能被重写. final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改 ...

  9. 游戏服务器开发技术小结

    转载请自觉标明原创出处 原文链接:http://gameislife.info/archives/category/游戏开发    游戏服务器开发技术小结 1 概述 本文从开发者的视角,浅析游戏服务器 ...

最新文章

  1. IntelliJ IDEA 常用设置注释提示
  2. iOS设备中垂直同步开启后的帧率计数
  3. 有负权重边的图可以有拉普拉斯矩阵吗?
  4. python方法重写_python 怎样实现重写
  5. 实时修改和读取webconfig
  6. 【英语学习】【English L06】U05 Appointments L5 I'd like to make an appointment with Mr. Grant
  7. Foreach In(C#)
  8. NXP MC9S12中断寄存器配置说明
  9. 从0基础文科生到全国亚军,我的人工智能学习路径
  10. 计算机网络技术与应用张基温答案,计算机网络技术与应用教程张基温杜勇刘诗瑾廖伟国董兆军第3章接入技术课件教学.ppt...
  11. 在滴滴,我是如何指数级提升开发技术的?---转自星光社的戴铭
  12. 以电影之眼看CSS3动画(一)
  13. 职业规划 思维导图
  14. 手机便签内容修改后可以恢复吗?
  15. 操作系统(一):什么是操作系统
  16. 计算机二级小蒋是一位中学老师,解析:小蒋是一位中学教师,在教务处负责初一年级学生的成绩管理。由于学校地处偏远地区,缺乏必要的教学 - 计算机二级 - 看书网站...
  17. Semantic UI 之 菜单 menu
  18. ORA-01460: 转换请求无法实施或不合理
  19. mahout基于hadoop的CF代码分析
  20. 【学习笔记】newman下载

热门文章

  1. C# action 返回值_C#编程基础第五章:数组 - 张果
  2. 自由软件基金会三十载(一)
  3. 《生物信息学:导论与方法》--生物信息数据库及软件资源--听课笔记(二十二)
  4. 连接nacos服务器报错,显示/nacos/v1/ns/instance after all servers([localhost:8848])
  5. 刚体验完RabbitMQ?一文带你SpringBoot+RabbitMQ方式收发消息
  6. ICLR 2018 有什么值得关注的亮点?
  7. opm openresty的包管理器-中文文档
  8. c语言字母从小到大,C语言编程:输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。...
  9. 扬州python培训班哪家_扬是什么意思 带扬字的男孩名字 用扬字起名的寓意
  10. 天地在我心 2010-11-12