Q:
Lab 6-1:在这个实验中,你将分析在文件Lab06-01.exe中发现的恶意代码
1.1 由main函数调用的唯一子过程中发现的主要代码结构是什么?
1.2 位于0x40105F的子过程是什么?
1.3 这个程序的目的是什么?
Lab 6-2:分析在文件Lab06-02.exe中发现的恶意代码。
2.1 main函数调用的第一个子过程执行了什么操作?
2.2 位于0x40117F的子过程是什么?
2.3 被main函数调用的第二个子过程做了什么?
2.4 在这个子过程中使用了什么类型的代码结构?
2.5 在这个程序中有任何基于网络的指示吗?
2.6 这个恶意代码的目的是什么?
Lab 6-3:在这个实验中,我们会分析在文件Lab06-03.exe中发现的恶意代码。
3.1 比较在main函数与实验6-2的main函数的调用。从main中调用的新的函数是什么?
3.2 这个新的函数使用的参数是什么?
3.3 这个函数包含的主要代码结构是什么?
3.4 这个函数能够做什么?
3.5 在这个恶意代码中有什么本地特征吗?
3.6 这个恶意代码的目的是什么?
Lab 6-4:在这个实验中,我们会分析在文件Lab06-04.exe中发现的恶意代码。
4.1 在实验6-3和6-4的main函数中的调用之间的区别是什么?
4.2 什么新的代码结构已经被添加到main中?
4.3 这个实验的解析HTML的函数和前面实验中的哪些有什么区别?
4.4 这个程序会运行多久?(假设它已经连接到互联网。)
4.5 在这个恶意代码中有什么新的基于网络的迹象吗?
4.6 这个恶意代码的目的是什么?
A:
1.1、if结构
1.2、sub_401282 直接看sub_401282函数,但是此函数太复杂看不懂。。
1.png
查看sub_40105F函数的交叉引用,发现是获取了联网状态,只有一个参数压栈(Success: Internet Connection\n或者Error 1.1: No Internet\n)就直接调用了sub_40105F函数,虚拟机中运行此文件,发现打印处了网络连接信息。推断位于0x40117F的子过程就是打印字符串。可以重命名此函数方便理解。
2.png
3.png
1.3、程序流程图如下,整个程序就是通过WININET库中的InternetGetConnectedState函数获取联网状态,打印处有关联网状态的字符串。
4.png
5.png
6.png
2.1、获取联网状态并打印。
2.2、打印函数
2.3、使用Internet Explorer 7.5/pma代理访问url:http://www.practicalmalwareanalysis.com/cc.htm。
aa
这里IDA识别有些混乱,按照书上介绍的逻辑,应该是比较buf的前四个字节是不是`<!-*-(这里简书会直接当成注释渲染。。。。。造成我后面文章显示异常)但是IDA好像都识别成了局部变量,我们需要修改这个函数的栈。
8.png
其实这里将这几个局部变量换成buf的偏移看起来就比较明确了,实际上就是比较前四个字符,全部匹配之后将第五个字符放在al,并返回;执行失败返回0.
9.png
下面是修改过的版本,看起来更舒服
10.png
修改方式是定义一个512大小的Array,每个元素1字节宽。
11.png
12.png
上一步调用完成后,检查返回的result是不是0,非零状态下格式化字符串打印Success: Parsed command is %c\n%c的位置上就是返回的result,然后调用休眠函数sleep6000毫秒。
2.4,2.5,2.6的具体分析过程上面已经体现
2.4 使用了if结构 多重比较
2.5 该恶意代码使用Internet Explorer 7.5/pma作为代理(作为HTTP的User-Agent字段)、对http://www.practicalmalwareanalysis.com/cc.htm进行了数据访问(下载了该页面)。
2.6、访问指定url的页面,访问注释中的内容(<!-*-)从注释中获取命令,属于一种C2的隐藏手段。然后调用休眠指令休眠60s。
3.10x401130
3.2、有两个参数,一个是html注释中的第五个字符,第二个是参数是argv,argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径。(从右到左压栈的,所以第一个参数是var_8,第二个参数是argv)
13.png
3.3、这里是一个switch语句,以跳转表的方式实现。可以在图模式很容易看出。
14.png
有创建文件夹,复制文件,删除文件,修改环境变量,配置C:\Temp\cc.exe为自启动,或者休眠100s。
还需要注意的是C:\Temp\cc.exe这个文件是从哪里来的。会先创建C:\\Temp这个文件夹,然后将Lab06-03.exe复制到C:\Temp\cc.exe。
15.png
3.5、 注册表键Software\Microsoft\Windows\CurrentVersion\Run和文件路径可以作为特征值C:\Temp\cc.exe。
3.6、该恶意代码先检查是否有网络连接,如果有则请求指定网址,下载一个htm文件,并获取文件开头<!*–后的一个字符,再根据该字符值来决定接下来是创建目录、复制自身到目标路径、删除文件、设置注册表键值还是休眠100秒。
第四章没有太多新东西,简单分析一下
16.png
新加了一个循环结构,循环1440次,每个循环里休眠1分钟,共运行1*1440min,sub_401040函数新加了一个参数,这个参数影响了web代理。
17.png














网友评论