欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

恶意软件也有漏洞,Mirai C2崩溃分析

来源:本站整理 作者:佚名 时间:2019-05-12 TAG: 我要投稿

与其他代码一样,恶意软件也会存在漏洞。事实上,大多数恶意软件并不会进行质量控制,所以存在漏洞的概率更大。本文介绍Mirai代码中的一个小bug,该漏洞存在于多个变种中。其他攻击者可以利用该漏洞来破坏C2服务器。
漏洞利用

当用户名是1025+ "a"字符序列时Mirai服务器会崩溃
当有用户连接到Mirai C2服务器时,会要求输入用户名和密码来进行认证。如果用户在用户名处输入1025+字符串时,C2服务器可能会崩溃,如上图所示。
下面分析崩溃的原因,首先解释一个简单程序,然后分析Mirai。
编程风格很差的程序
下图是用GO语言编写的程序,功能是输入name并打印出来。该程序首先将name保存为字符串,然后复制到字节缓存中,然后将缓存打印出来。虽然看似没有什么问题,但是该程序有一个漏洞。因为缓存的大小声明为10。

缓存大小为10,可能会导致溢出
如果输入比较小的话,程序运行是正常的,比如Ankit这样的输入。但是如果输入值大于10,如Ankitxxxxxxxxxxxxxxxxxxxx,程序的运行就会出现错误。

Mirai代码分析
下面看一下Mirai的源码:

Github上的部分Mirai代码
可以看出username传递给了Readline函数。从函数名可以看出该函数应该是个库函数,实际上这是一个定制的函数,声明其固定缓存大小为1024。这也是为什么当username的长度大于1025时该模块会崩溃的原因。

总结
今年以来发现的大多数IoT僵尸网络都是基于Mirai的,该漏洞也存在于多个变种中。
 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载