前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Gafgyt重用Mirai代码分析

Gafgyt重用Mirai代码分析

作者头像
FB客服
发布于 2021-07-27 07:21:24
发布于 2021-07-27 07:21:24
1.1K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

Gafgyt(又名Bashlite)是著名的恶意软件家族,主要针对物联网设备发起攻击,例如华为路由器、Realtek 路由器和华硕网络设备等。Gafgyt 还使用很多漏洞(CVE-2017-17215、CVE-2018-10561)用于载荷投递。

重用Mirai代码

近期,几个Gafgyt的变种重用了Mirai的一些代码模块:

HTTP 洪水 UDP 洪水 TCP 洪水 STD 模块 Telnet 爆破

分析的样本是 4b94d1855b55fb26fc88c150217dc16a与 cd3b462b35d86fcc26e4c1f50e421add。

HTTP 洪水

攻击者通过向攻击目标发送大量 HTTP 请求进行 DDoS 攻击。Gafgyt 使用了 Mirai 泄露的代码,下图显示了这种区别:

左侧是 Gafgyt 反编译的代码,右侧是 Mirai 的源码。

UDP 洪水

攻击者通过向攻击目标发送大量 UDP 数据包进行 DDoS 攻击。Gafgyt 重用 Mirai 泄露的代码实现了 UDP 洪水的功能:

TCP 洪水

Gafgyt 执行所有类型的 TCP 洪水攻击,如 SYN、PSH、FIN 等。在 TCP 洪水中,攻击者利用正常的 TCP 三次握手向受害者发送大量请求,导致服务器无响应。

左侧为 Gafgyt 的 TCP 洪水模块,右侧是 Mirai 的类似代码。

STD 模块

Gafgyt 包含将随机字符串(硬编码的字符串数组)发送到特定的 IP 地址,Mirai 也有类似的功能。

Telnet 爆破

Gafgyt 除了洪水模块,还包含一些其他修改过的模块,例如 Telnet 爆棚模块。

使用 CVE

Gafgyt 利用 IoT 设备的漏洞组建大规模僵尸网络,然后对特定的 IP 地址发起 DDoS 攻击。最近出现了很多 Gafgyt 的变种,例如 986633b0f67994a14e4ead3ee4ccbd73和 725097e3213efb6612176adefda3d64f。都包含了多个漏洞利用模块,像针对华为路由器(CVE-2017-17215)、Realtek 设备(CVE-2014-8361)和 GPON 路由器(CVE-2018-10561)的攻击。

Gafgyt 通常会使用 wget 获取载荷,再使用 chmod 赋予执行权限,最后执行该载荷。

恶意脚本执行逻辑:

使用 wget 获取载荷 使用 chmod 赋予执行权限 执行载荷 删除载荷

总结

恶意软件开发者不能总是开发全新的代码,研究人员发现恶意软件开发者会经常重用恶意软件泄露的源代码。

IOC

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
37.228.188.12
178.253.17.49
156.226.57.56
156.244.91.129
212.139.167.234
193.190.104.125
37.251.254.238
212.139.167.234
da20bf020c083eb080bf75879c84f8885b11b6d3d67aa35e345ce1a3ee762444
1b3bb39a3d1eea8923ceb86528c8c38ecf9398da1bdf8b154e6b4d0d8798be49
7fe8e2efba37466b5c8cd28ae6af2504484e1925187edffbcc63a60d2e4e1bd8 
25461130a268f3728a0465722135e78fd00369f4bccdede4dd61e0c374d88eb8
4883de90f71dcdac6936d10b1d2c0b38108863d9bf0f686a41d906fdfc3d81aa
25461130a268f3728a0465722135e78fd00369f4bccdede4dd61e0c374d88eb8
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.NET Core 3.0之深入源码理解ObjectPool(二)
前文主要介绍了ObjectPool的一些理论基础,本文主要从源码角度理解Microsoft.Extensions.ObjectPool是如何实现的。下图为其三大核心组件图:
AI.NET 极客圈
2020/05/18
9010
ObjectPool 对象池设计模式
ObjectPool的默认实现是DefaultPool,对象池的创建由ObjectPoolProvider抽象类的默认实现DefaultObjectPoolProvider类实现。
Ryan_OVO
2023/10/19
2190
对象池在 .NET (Core)中的应用[2]: 设计篇
《编程篇》已经涉及到了对象池模型的大部分核心接口和类型。对象池模型其实是很简单的,不过其中有一些为了提升性能而刻意为之的实现细节倒是值得我们关注。总的来说,对象池模型由三个核心对象构成,它们分别是表示对象池的ObjectPool<T>对象、对象值提供者的ObjectPoolProvider对象,已及控制池化对象创建与释放行为的IPooledObjectPolicy<T>对象,我们先来介绍最后一个对象。
蒋金楠
2021/08/31
1.6K0
对象池在 .NET (Core)中的应用[2]: 设计篇
.NET Core 中对象池(Object Pool)的使用
对象池简单来说就是一种为对象提供可复用能力的软件设计思路。我们常说有借有还,再借不难,而对象池就是通过借和还这样两个动作来保证对象可以被重复使用,从而节省频繁创建对象的性能开销。对象池最常用的场景是游戏设计,因为在游戏中大量存在着可复用的对象,源源不断的子弹出现并不是循环再生的。在数据库中存在着被称为连接池的东西,每当出现数据库无法连接的情况时,经验丰富的开发人员往往会先检查连接池是否满了,这其实就是对象池模式在特定领域的具体实现。因此对象池本质上就是负责一组对象创建和销毁的容器。 对象池最大的优势是可以自主地管理池子内的每个对象,决定它们是需要被回收还是可以重复使用。我们都知道创建一个新对象需要消耗一定的系统资源,一旦这些对象可以重复地使用就可以节省系统资源开销,这对提高系统性能会非常有帮助。下面的代码实微软官方文档实现的一个简单的对象池:
喵叔
2021/11/19
1.1K0
从ObjectPool到CAS指令
相信最近看过我的文章的朋友对于Microsoft.Extensions.ObjectPool不陌生;复用、池化是在很多高性能场景的优化技巧,它能减少内存占用率、降低 GC 频率、提升系统 TPS 和降低请求时延。
InCerry
2022/11/14
3230
Provider模式应用demo
取操作:Interlocked.CompareExchange(ref items[i].Element, null,item)。取完后将元素置为null
Ryan_OVO
2023/10/19
1810
对象池在 .NET (Core)中的应用[1]: 编程篇
借助于有效的自动化垃圾回收机制,.NET让开发人员不在关心对象的生命周期,但实际上很多性能问题都来源于GC。并不说.NET的GC有什么问题,而是对象生命周期的跟踪和管理本身是需要成本的,不论交给应用还是框架来做,都会对性能造成影响。在一些对性能比较敏感的应用中,我们可以通过对象复用的方式避免垃圾对象的产生,进而避免GC因对象回收导致的性能损失。对象池是对象复用的一种常用的方式。.NET提供了一个简单高效的对象池框架,并使用在ASP.NET自身框架中。这个对象池狂框架由“Microsoft.Extensions.ObjectPool”这个NuGet包提供,我们可以通过添加这个NuGet包它引入我们的应用中。接下来我们就通过一些简单的示例来演示一下对象池的基本编程模式。
蒋金楠
2021/08/31
1.3K0
对象池在 .NET (Core)中的应用[1]: 编程篇
.NET对象池的使用
昨天在『.NET 大牛之路』技术群和大家聊到了对象池的话题,今天展开详细讲讲这个知识点。
JusterZhu
2022/12/07
6060
.NET对象池的使用
对象池在 .NET (Core)中的应用[3]: 扩展篇
原则上所有的引用类型对象都可以通过对象池来提供,但是在具体的应用中需要权衡是否值得用。虽然对象池能够通过对象复用的方式避免GC,但是它存储的对象会耗用内存,如果对象复用的频率很小,使用对象池是不值的。如果某个小对象的使用周期很短,能够确保GC在第0代就能将其回收,这样的对象其实也不太适合放在对象池中,因为第0代GC的性能其实是很高的。除此之外,对象释放到对象池之后就有可能被其他线程提取出来,如果释放的时机不对,有可能造成多个线程同时操作同一个对象。总之,我们在使用之前得考虑当前场景是否适用对象池,在使用的时候严格按照“有借有还”、“不用才还”的原则。
蒋金楠
2021/08/30
1.7K0
ASP.NET Core 中的 ObjectPool 对象重用(一)
对象池是一种设计模式,一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的对象可以从池中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁他,他是一种特殊的工厂对象。
HueiFeng
2020/01/22
1.3K0
ASP.NET Core 中的 ObjectPool 对象重用(一)
基于阻塞队列的生产者消费者C#并发设计
这是从上文的<<图文并茂的生产者消费者应用实例demo>>整理总结出来的,具体就不说了,直接给出代码,注释我已经加了,原来的code请看<<.Net中的并行编程-7.基于BlockingCollection实现高性能异步队列>>,我改成适合我的版本了,直接给code:
Ryan_OVO
2023/10/18
3170
.NET性能优化-复用StringBuilder
在之前的文章中,我们介绍了 dotnet 在字符串拼接时可以使用的一些性能优化技巧。比如:
InCerry
2022/11/14
3080
.NET性能优化-ArrayPool同时复用数组和对象
前两天在微信后台收到了读者的私信,问了一个这样的问题,由于私信回复有字数和篇幅限制,我在这里统一回复一下。读者的问题是这样的:
InCerry
2023/03/08
4500
.NET性能优化-ArrayPool同时复用数组和对象
[一起读源码]走进C#并发队列ConcurrentQueue的内部世界
决定从这篇文章开始,开一个读源码系列,不限制平台语言或工具,任何自己感兴趣的都会写。前几天碰到一个小问题又读了一遍ConcurrentQueue的源码,那就拿C#中比较常用的并发队列ConcurrentQueue作为开篇来聊一聊它的实现原理。
李明成
2020/04/15
2.3K0
[一起读源码]走进C#并发队列ConcurrentQueue的内部世界
.net 5.0 Options组件源码解析
本文主要介绍Options组件的原理和源码解析,但是主要介绍常用的一些用法,有一些不常用的模式,本文可能会跳过,因为内容太多.
郑小超.
2022/05/07
9320
.net 5.0 Options组件源码解析
Disruptor-NET和内存栅栏
Disruptor-NET算法(是一种无锁算法)需要我们自己实现某一种特定的内存操作的语义以保证算法的正确性。这时我们就需要显式的使用一些指令来控制内存操作指令的顺序以及其可见性定义。这种指令称为内存栅栏。 内存一致性模型需要在各种的程序与系统的各个层次上定义内存访问的行为。在机器码与的层次上,其定义将影响硬件的设计者以及机器码开发人员;而在高级语言层次上,其定义将影响高级语言开发人员以及编译器开发人员和硬件设计人员。即,内存操作的乱序在各个层次都是存在的。这里,所谓的程序的执行顺序有三种: (1)程序顺序
张善友
2018/01/29
8220
java 对象池技术
1、为什么用对象池 在 java 中,对象的生命周期包括对象创建、对象使用,对象消失三个时间段,其中对象的使用是对象真正需要存活的时间,不好修改,该用的时候还得使用啊。对象的创建和消失就得好好控制下了。对象的创建是比较费时间的,也许感觉不到,好比一个赋值操作int i=1,也是需要耗时的,在比如构造一个对象,一个数组就更加消耗时间。再说对象的消除,在 java 里面使用 GC 来进行对象回收,其实也是需要对对象监控每一个运行状态,包括引用,赋值等。在 Full GC 的时候,会暂停其他操作,独占 CPU。所以,我们需要控制对象的创建数量,也不要轻易的让对象消失,让他的复用更加充分。
breezedancer
2018/09/12
2.2K0
java 对象池技术
[一起读源码]走进C#并发队列ConcurrentQueue的内部世界 — .NET Core篇
在上一篇《走进C#并发队列ConcurrentQueue的内部世界》中解析了Framework下的ConcurrentQueue实现原理,经过抛砖引玉,得到了一众大佬的指点,找到了.NET Core版本下的ConcurrentQueue源码,位于以下地址:
HOHO
2020/04/27
1.4K0
[一起读源码]走进C#并发队列ConcurrentQueue的内部世界 — .NET Core篇
asp.net core选项Options模块的笔记
这篇博客是写给自己看的。已经不止一次看到AddOptions的出现,不管是在.net core源码还是别人的框架里面,都充斥着AddOptions。于是自己大概研究了下,没有深入,因为,我的功力还是不够,等能力到了再回头研究下。在这里还是要说一遍,因为DI的重要性不言而喻,不必谈的太深,说下自己的理解: 
Ryan_OVO
2023/10/19
1800
Asp.Net Core EndPoint 终结点路由工作原理解读
在本打算写一篇关于Identityserver4 的文章时候,却发现自己对EndPoint -终结点路由还不是很了解,故暂时先放弃了IdentityServer4 的研究和编写;所以才产生了今天这篇关于EndPoint (终结点路由) 的文章。
Jlion
2022/04/07
1K0
Asp.Net Core EndPoint 终结点路由工作原理解读
推荐阅读
相关推荐
.NET Core 3.0之深入源码理解ObjectPool(二)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验