20145222黄亚奇《网络对抗》 免杀原理与实践
知识点:
一、在一个已经感染了恶意代码的机器上如何找到病毒文件?
-
找到恶意代码才能对其分析,找到恶意代码文件就是就是分析的第一步,一般来讲,恶意代码运行必然会创建一个进程,而这个进程就是我们找到他的突破口,一个打开的进程,可以通过任务管理器、Process Explorer等来找到其映像文件的地址,这样就能找到恶意代码文件了
-
但是,现在的恶意代码可能其自身的进程隐藏,一般来讲,隐藏进程的方式就是“脱链”,在PEB中有三条链表,其中一条链表的指向进程,该链表的每一个元素代表着每一个进程,如果想对某进程隐藏,那么进行“脱链”即可。
二、如何通过静态基础分析获取一些相关信息?
-
首先,我们用PEID查看一些基本信息,用PE explorer等软件查看导入表,一个程序想对你的电脑进行某些操作,那么它必然会调用系统API,而导入表可以告诉我们这个程序调用了哪些API,我们凭借这些导入函数,可以大致猜测一下这个程序作了什么。
-
可以对我们提供有效信息的不是只有导入表,查看字符串也经常会有一些意外收获,这个时候我们可以使用微软提供的控制台工具Strings查看程序的字符串信息,通过查看字符串,可以获取很多提示。
三、如何确定恶意代码究竟干了些什么?
-
这个时候那就需要用到动态基础分析了,别犹豫,上虚拟机,跑起来看看吧,跑之前我们先要打开一些行为监控软件,常用的是微软提供的Process Monitor、Process Explorer等这些软件可以监控到注册表、文件、进程、模块、网络、用户等等等等信息。还可以使用systracer拍摄快照并对比。
-
很多后门和木马程序还会采用反弹式连接的方式链接到别的主机,这是可以采用nestat、wireshark等抓包工具进行抓包,确定其网络行为,发现攻击的主机,后期杀毒再做针对处理。
实验过程记录
step1:virscan扫描结果分析
-
两大主要行为:网络行为和注册表行为,反弹连接一个IP并修改注册列表。
step2:peid扫描结果分析
- 结果显然是没有加壳。在这里我们又见到了编译器信息。pied能够显示反汇编代码以及一些地址信息,不过最重要的作用还是查壳脱壳,对文件信息的分析不如接下来的两款PE软件好用。
step3:Dependency Walker扫描结果分析
- 这个软件把程序的dll层级调用列出来了,他调用了什么dll,那些dll又调用了哪些文件。
- 通过分析可以得到该程序对注册列表有改动的动作。
step4:PE explorer扫描结果分析
- 文件头信息:可以看到文件编译时间,连接器等信息。
- 表信息:这里主要查看第二个导入表,即调用了什么dll。
- 分节信息:缺点是显示以ascll码表示,看不出所以然来。
step5:systracer分析恶意代码回连前后情况
- 运行程序:多了cad5217.exe这样一个进程。
- 载入的dll文件:cad5217调用了大量dll文件,很多在之前的引入表中也能看到。
- 开放端口:可以看到cad5217程序通过tcp连接一个192.168.150.132的443端口。
step6:wireshark分析恶意代码回连前后情况
- 我们知道443端口是https服务端口,通常采用ssl/tls安全通信协议。这里的大量ssl包和tcp包数据部分都是乱码,是经过加密处理的。
step7:TCPview分析恶意代码回连前后情况
- 易看出在回连后出现cad5217这个进程,PID为3617,并且具有网络行为是连接另一台主机的https端口。
- TCPview不仅可以查看还可以结束这个进程,还可以告诉你这个程序在你的机器上那个位置,为清除提供方便。
- 结束进程后,linux这边显示程序die了。
step8:Process monitor查看恶意代码回连前后情况
- 可以看到回连后程序信息,成功运行、日期时间
- 可以看到父进程PID,查了一下是windows资源管理器
step9:Process Explorer查看恶意代码回连前后情况
- 可以看到回连后程序信息
- Process Explorer更像一个详细版的任务管理器,把进程的各种信息都直观地展示出来。双击后可以查看各种属性。
- 具有网络连接行为:
- 改程序跟ntdll.dll直接相关。ntdll.dll描述了windows本地NTAPI的接口。是重要的Windows NT内核级文件。
step10:netstat查看恶意代码回连前后情况
- 可以看到正在联网到192.168.150.132:443,连接时建立的。这个小程序并不是太好用,虽然可以通过建立新任务的方式让它在后台不停地进行记录,但并不详细,当有其他程序时显然用其他程序更好。
- 还遇到权限不够的问题
- 权限解决:勾选以最高权限运行。
- 效果图
step11:sysmon查看恶意代码回连前后情况
- 安装失败了
实验总结与体会
通过这次实验后,使用sysmon监控电脑,仔细查看了部分信息,发现qq,360等软件经常在刷新,还有发现了一些以前不知道的程序,如mmc.exe,kupdata.exe等程序。以后电脑运行卡、慢,直接在这上面也能找到答案了。对恶意代码也有了新的认识,他们确实在我的主机上悄悄的运行着。这次实验将静态与动态相结合,可以看出来虽然恶意代码伪装的技术很高,但是同样监测的技术也不差,攻防始终是一场博弈战,二者相互提高,当然监测的技术比较繁琐,也需要耐心,这样才能够发现那些异于寻常的行为。