恶意代码分析实战 Lab15

lab15-01

在每一个跳转地址前面都有一个E8,把他标识为数据,程序就出来了

恶意代码分析实战 Lab15

第一个比较,要求命令行参数是两个,其中一个是程序名

恶意代码分析实战 Lab15

接着是取出第二个参数的第一个字节作比较,可以知道参数是pdq

恶意代码分析实战 Lab15恶意代码分析实战 Lab15恶意代码分析实战 Lab15

恶意代码分析实战 Lab15


lab15-02

修正过程中就两个地方注意一下,其他的都跟第一题一个手法

第一个是如下图,原来是个jmp语句跳到FF开始执行,也就是另一种翻译做inc和dec,所以这一段其实没有意义,选择翻译成第二个图就好,只要知道之前语句执行后,相当于直接执行dec之后的call语句

恶意代码分析实战 Lab15

恶意代码分析实战 Lab15

第二个地方像正常执行到jz,跳转到下一个图,你会发现,变样了,直接到loc_4012EF执行shellExecute函数,所以这一段代码,你可以认为他只是调用了shellExecute函数而已

恶意代码分析实战 Lab15


恶意代码分析实战 Lab15

你会看到程序gethostname得到主机名字

然后对这个名字操作得到user-agent

对于字符串里面的Z转化为A z变为a 9变为0,其他全部只加1来得到user-agent

url由函数sub_401386得到,进入程序就职到url是啥呢http://www.practicalmalwareanalysis.com/bamboo.html

恶意代码分析实战 Lab15

然后读取html,查找Bamboo::xxxxx::字符串之间的字符串被保留下来作为新的url

恶意代码分析实战 Lab15

sub_40130F得到AccountSummary.xls.exe字符串

然后新的url是原先读取的偏移8字节开始的字符串,重新InternetOpenUrl并且读取数据到ebp-102AC

然后打开AccountSummary.xls.exe文件,将读取的信息写入,接着shellexecute运行这个exe文件

多说一句,将所以多余的代码变为0x90,然后按c汇编为nop之后选中main函数全部代码按p就可以得到局部变量等东西了,换句话说,之前的mian并没有被标识为函数,这样操作之后main才是一个函数.


lab15-03

程序输出如下格式看似是再遍历每个进程的模块,然后输出相应的信息

恶意代码分析实战 Lab15

然而在开头,main函数的返回地址已经被修改为40148c

恶意代码分析实战 Lab15

到40148c查看,发现函数没作什么,只是注册一个seh函数,然后造成一个div 0错误,导致seh函数4014c0被调用

恶意代码分析实战 Lab15

程序到这里调用下一个指令

恶意代码分析实战 Lab15

函数sub_401534是将参数的每个字节的比特位取反

恶意代码分析实战 Lab15

这个函数调用其实啥也没做,因为403040h处的字节还是0,本来应该是要得到一个文件名的,如右图实际字符串再403041开始地方

恶意代码分析实战 Lab15恶意代码分析实战 Lab15

接着下载文件,用上面的url,下载到403040h处

恶意代码分析实战 Lab15

最后调用winexec运行这个403040处的文件名

恶意代码分析实战 Lab15

分析结束