能发起DDoS攻击的恶意程序

image

 

image

 

image

 

首先进行静态分析,可以看到:导入表中存在createservice等等函数,说明可能会创建一个服务来保证自己在系统启动后也能够继续运行,internetopen说明会联网

服务:

image

 

image

 

image

 观察这段反汇编

image

 

image

 

这是他的msdn语法,初始是1000,这就是我们的堆栈。(注意:类似这种表的数组第0个元素永远都放在最低位,如该表table[0].name就在最低位,由于该表需要一个为全0的结构来表示表结束,所以这里的table[1].name/proc都是0)

0x0FEC      0x0FF0     ←刚刚push进去的,新esp指向这里

0x0FF0      Table.Name

0x0FF4      Table.Proc

0x0FF8      0

0x0FFC      0

image

 

image

 

image

 

image

 

image

 

image

 

由上面可以分析得到:mal.exe 这个程序,整体职责分三块,全部跑在同一个进程实例里面:

1. 单实例保护(mutex):进程跑起来,进入 sub_401040 第一件事,检查系统是否已经存在另一个 mal.exe 进程(另一个实例)。

   有 → 直接退出,不再执行后续所有逻辑;

   没有 → 创建互斥体,继续往下。

2.持久化自修复(CreateServiceA):只要成功进入这一步,就校验注册表里面 MalService 服务项。

   服务项丢了(被安全软件删掉)→ 重建;

   服务项还在 → CreateServiceA 调用失败,直接忽略。

3. 执行核心恶意逻辑:

修复完持久化之后,后面还有 CreateWaitableTimer,一般是用来定时触发任务,比如:联网、读取信息、执行命令、和 C2 通信等。

image

 

1.如何实现持久化:

Createservice:被StartServiceCtrlDispatcher拉起握手成功,回调401040这个函数,检验+createservice如果失败了说明还在注册表,如果成功了说明注册表这里被删除,重新创建服务在注册表中下次仍然可以自启动。(虽然注册表该位置被删除但StartServiceCtrlDispatcher拉起了这个木马实例仍然在运行,可以重新写入,但我认为仍然存在竞争关系,可以while(true){sleep(3000)}类似这样的改进?)

2.为什么程序会使用一个互斥量:

防止同时存在两个实例

3.用来检测的主机特征:

Hgl345和malservice

4.网络特征是什么:

Internet explorer 8.0和http://........

5.程序的目的:

持久化运行并在2100年创建20个进程发起ddos攻击,并且因为它在最后会jump回自己的函数头,是个死循环永远不会停止。

posted @ 2026-10-09 14:34  面面mianmian  阅读(12)  评论(0)    收藏  举报
Live2D