恶意代码分析 Lab07_01

一、分析Lab07-1

1.在ida中打开查看 main函数。

StartServiceCtrlDispatcherA函数被程序用来实现一个服务,并且它通常立即被调用。这个函数指定了服务控制管理器会调用的服务控制函数。这里也能看出sub_401040会在调用StartServiceCtr1DispatchA之后被调用。Malservice恶意代码创建进程的名字。

 

2.查看sub_401040函数。

 

OpenMutex函数是打开现有的命名互斥对象。所以这里是打开名为 "HGL345" 的互斥量。如果可以打开,说明该互斥量已经存在,说明已经有一个进程运行了这段代码,因此当前进程将退出以避免重复运行。如果该互斥体对象不存在,则创建名为"HGL345" 的互斥量。

3.这段代码设置了一个时间。

 

接下来,程序调用CreatewaitableTimer、SetwaitableTimer,以及waitForSingle0bject。对我们的目的来说最重要的参数是传给SetwaitableTimer的lpDueTime参数。这个参数是systemTimeToFileTime返回的FileTime,如前面的清单所示。这段代码随后使用waitForSingleObject进入等待,直到2100年1月1日。

4.绕过时间的设置

所以如果要立即执行代码,则需要绕过时间的设置,即需要直接跳转到 StartAddress 函数,然后运行代码20次,0x14=20

 

 

5.查看StartAddress

 

循环末尾的jmp指令是一个无条件跳转,这意味着这段代码永远不会终止;它会调用InternetOpenUrlA,并且一直下载www.malwareanalysisbook.com的主页。而且由于CreateThread被调用了20次,所以会有20个线程一直调用InternetopenUrlA。显然,这个恶意代码的目的是将自己在多个机器上安装成一个服务,进而启动一个DDoS攻击。如果所有被感染的机器在同一时间(2100年1月1日)连接到服务器,它们可能使服务器过载并无法访问该站点。

总之,这个恶意代码使用互斥量来保证同一时刻只有一份实例在运行,它创建一个服务确保系统重启后它再次运行,直到2100年1月1日,然后继续无限期地下载www.malwareanalysisbook.com。

二、绕过时间

1、修改Lab07_01.exe

这条把jnz这条语句跳转的地址改成startadrss的入口地址。Jnz这条语句的地址在ida看是0x00401118,startadrss的入口地址是0x00401150.

修改使得绕过时间触发机制运行StartAddress,在OD打开,跳转到00401118,双击语句修改成jnz short 00401150.如图。

 

 

2.修改StartAddress中的相关参数

 

 

打开winhex,把这里改成一个不存在的ip地址 ,win2003的浏览器版本是6.0,所以也需要改一下。

 

3.Win2003虚拟机,运行修改后的exe。

4.物理机捕获该exe发出的网络连接报文,与上一步修改的参数匹配。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值