20155326《网络对抗》免考项目——深入恶意代码之生成恶意代码的动静态结合分析

20155326《网络对抗》免考项目——深入恶意代码之生成恶意代码的动静态结合分析

在前两篇博客中,我分别学习了利用静态分析工具和动态分析功具对恶意代码进行分析,在这篇博客中,我将之前学到的知识结合起来,对恶意代码示例进行更深层次的动静态分析。

并且,我学习了使用IDA PRO和OllyDbg对恶意代码进行进一步细化的动态分析,查看恶意代码中主要函数之间的关系以及函数之间的参数,以此来搞清楚恶意代码在运行后对计算机进行了哪些操作。

IDA Pro介绍

IDA Pro交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA。是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。他具有更好的反汇编、深层分析、可以看到跳到指定的位置的jmp的命令位置和保存静态汇编等优点,适用于恶意代码分析、漏洞研究、COTS验证、隐私保护、其他学术研究,IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。

OllyDbg介绍

OLLYDBG是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。

恶意代码示例在这里哦~~~

基于09-03.exe的静态分析

使用PE ID

首先,我使用静态分析工具PE ID查看09-03.exe的导入DLL文件。

另外,我们可以使用动态分析工具IDA PRO查看导入函数。在IDA PRO中,导入的DLL与函数LoadLibraryA有关,我们在import里面查看这个函数

在地址处使用Ctrl+X查看该地址的交叉引用

前两个p代表函数调用,查看这两个函数调用

因此,我们可以分析出一共导入了6个DLL,分别是KERNEL32.dll、NETAPI32.dll、DLL1.dll、DLL2.dll、DLL3.dll、USER32.dll

接下来我们再来探究一下DLL1.dll、DLL2.dll、DLL3.dll这三个dll要求的基地址是多少。

继续用PE ID查看dll文件的基地址。

可以看出来,三个DLL文件要求的基地址都是10000000。

使用OllyDbg

知道了三个dll文件要求的基地址,那么实际分配的基地址分别是多少呢?

带着这个问题,我用OllyDbg打开09-03.exe文件,然后点M查看,观察到DLL1实际分配的基地址是10000000,DLL2实际分配的基地址是003C0000,DLL3实际分配的基地址是00430000

那么当该程序调用DLL1.dll中的一个导入函数时,这个导入函数做了什么?

当该程序调用writefile函数时,文件名是什么?

用OD打开DLL1文件,分析DLL1Print函数。

通过参数可以分析出来,DLL1导入函数是输出打印“DLL 1 mystery data xx”

再分析10008030,打开交叉引用列表,能看到又调用了一个打印进程ID的函数。

因此,这个导入函数输出打印了当前进程的ID。打印的神秘数据也就是当前进程的ID啦

在参数中看到了一个网址,malwareanalysisbook.com。观察到WriteFile和DLL2returnJ有关,就进一步分析DLL2returnJ。用OD打开DLL2,查看DLL2returnJ。这个函数是把1000B070赋值给eax。

分析1000B070,查看交叉引用列表。看到它调用了CreatFileA函数,然后打开temp.txt。所以,文件名就是temp.txt

使用IDA PRO

下一个问题是当该程序调用NetScheduleJobADD创建一个job时,从哪里得到第二个参数数值呢?

NetScheduleJobADD调用DLL3.dll,然后分别调用其中的DLL3Print和DLL3GetStructure函数。我们用IDA分析一下DLL3.dll中的这两个函数。

首先是dll3print。可以看到它打印了一个神秘数据,这个数据是Widecharstr中的数据,用交叉引用看一下Widecharstr。

可以看到一个MultiByteToWideChar函数,这个函数是把多字节的形式转换成宽字符的形式。要转换的字符是lpMultiByteStr,就是"ping www.malwareanalysisbook.com"。然后保存到WideCharStr中输出。所以打印出的神秘数据是这段字符在内存中的地址。

然后再看一下DLL3GetStructure。

通过交叉引用,分析其中的1000B0A0数据。

可以看到这些就是第二个参数的结构体中的数据。

为了更直观的显示,我们在Structures中按INSERT,然后添加AT_INFO。

然后再查看1000B0A0,在Edit—>Struct var中选择刚刚添加的AT_INFO结构体。此时,结构体中的数据就规范成AT_INFO结构体了

想要知道该程序所打印的三块数据中,三个dll的数据分别是什么?

从之前的实验中可以看出,DLL1打印的数据是当前进程的ID,DLL2打印的是temp.txt的句柄,DLL3打印的是字符串ping www.malwareanalysisbook在内存中的地址。

如果我们想要将dll2.dll加载到IDA中,使其与OD中加载的地址匹配的话则进行以下操作:

打开DLL2.dll时,勾选manual load。

要求输入的基地址中填我们之前用OD查看到的DLL2的基地址3C0000。

因为头文件大小是1000,.text从3C1000开始

这样dll2.dll加载到IDA中,与OD中加载的地址就匹配啦~~~

总结

到这里对恶意代码的分析部分就结束啦~~~

。通过在爱春秋网站的学习,自己尝试用各种各样的工具对恶意代码进行分析,从静态到动态,再到综合分析,加深了我对恶意代码的了解和认识,了解到了恶意代码中的函数调用、参数设置等等。学会了从另一个角度了解恶意代码对我们计算机的操作以及其潜在危险的方法,分析完这些恶意代码后最大的感触其实是很多时候我们是发现不了这些恶意代码的,可能我的电脑里就有很多,只是他们可能并没有被检测出来或者是他们并没有发作而攻击我,所以我觉得还是得从自身做起,远离恶意代码,就像机要战士需要保持的那样,不该看的别看,我们也应该不该点的别点~~~

这同时也是我免考项目的结束,回头看了看自己写的这么多篇博客,其实在实践的过程中学到了不少,且不说知识的掌握,防范意识已经上升了不止一个level了哈哈哈,其实我最喜欢的还是恶意代码的生成这一块,因为是我自己生成的,相比较于后面的分析,生成有趣多了好O(∩_∩)O哈哈~希望老师看在我辛勤劳动的份上给我一个高分嘻嘻

原文地址:https://www.cnblogs.com/lmc1998/p/9202916.html

时间: 2024-08-30 03:27:21

20155326《网络对抗》免考项目——深入恶意代码之生成恶意代码的动静态结合分析的相关文章

20155326《网络对抗》免考项目—— 深入恶意代码之恶意代码详解

20155326<网络对抗>免考项目--深入恶意代码之恶意代码详解 什么是恶意代码 恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到另一段程序中,从而达到破坏被感染电脑数据.运行具有入侵性或破坏性的程序.破坏被感染电脑数据的安全性和完整性的目的. 恶意代码生命周期 攻击目标: 个人计算机 服务器 移动智能终端 手机.平板等 智能设备 特斯拉汽车.智能家居.智能手表等 通信设备 路由器.交换机等 安全设备等 防火墙.IDS, IPS. VDS 攻击目标范围: 定点攻击 邮件.IP.域名.

20145326蔡馨熤《网络对抗》——恶意代码伪装技术实践

20145326蔡馨熤<网络对抗>--恶意代码伪装技术实践 一.木马化正常软件 基于之前的后门程序,做一些修改.再将修改后的程序的名字改成一个正常软件的名字,蒙蔽用户的眼睛.哈哈哈,瞬间觉得自己好阴险.因为之前安装过Systracer这个工具,这次就把后门程序的名字改为"Systracer安装程序". 然后双击运行"Systracer安装程序.exe".并且成功回连到Kali. 但是有个不足之处,就是程序运行后,会弹出一个类似命令行的"黑框&q

20145326蔡馨熠《网络对抗》——恶意代码分析

20145326蔡馨熠<网络对抗>--恶意代码分析 1.实验后回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控.. 需要监控什么? 系统中各种程序.文件的行为. 还需要注意是否会出现权限更改的行为. 注册表. 是否有可疑进程. 如果有网络连接的情况,需要注意这个过程中的IP地址与端口. 用什么来监控? 最先想到的肯定是使用wireshark抓包了,再进行进一步分析. Sysinternals

20145239杜文超《网络对抗技术》- 恶意代码分析

20145239杜文超<网络对抗技术>- 恶意代码分析 实验后回答问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. (1)使用计划任务schtasks指令动态监控系统运行 (2)使用sysmon工具动态监控系统运行 2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. (1)使用systracer工具进行快照分析注册表信息.文件行为等信息的变化 (2)把程序放在vir

20145225唐振远《网络对抗》Exp4 恶意代码分析

20145225唐振远<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 使用Windows自带的schtasks指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放.注册表信息等等: 通过sysmon工具,配置好想记录事件的文件,之后在事件查看器里找到相关日志文件便可以查看: 使用Process Explorer工具,监视进程执行情况,查

20145306张文锦《网络对抗》恶意代码分析

20145306张文锦<网络对抗>恶意代码分析 1.schtasks监控系统运行 用图形界面配置计划任务.首先为新建任务设置名字:设置触发器为两分钟执行一次:设置操作. 过程中遇到了问题,需要用跟高的权限来运行. 以最高权限运行计划任务.结果: 检测到的应用有微信,IE浏览器,UC浏览器,Apple服务等. 2.使用sysmon工具监控系统运行 sysmon使用的配置文件是老师给的配置文件. 安装sysmon. 在事件查看器中查看日志 查看详细信息: qq,微信,浏览器,等应用. 3.使用vi

20155305《网络对抗》恶意代码分析

20155305<网络对抗>恶意代码分析 实验过程 1.计划任务监控 在C盘根目录下建立一个netstatlog.bat文件(先把后缀设为txt,保存好内容后记得把后缀改为bat),内容如下: date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt 老师讲课后在课堂上就建立了这个windows批处理文件 netstatlog.bat文

20155317《网络对抗》Exp4 恶意代码分析

20155317<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 我首先会选择看任务管理器,查看系统下有什么进程,都在干些什么,不懂得就去网上搜索相关关键词. 我会开启360安全卫士,利用360监控是否有恶意程序. 2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息. 利用Process Explorer去分析进程在连接什么地址

20155331《网络对抗技术》Exp4:恶意代码分析

20155331<网络对抗技术>Exp4:恶意代码分析 实验过程 计划任务监控 在C盘根目录下建立一个netstatlog.bat文件(先把后缀设为txt,保存好内容后记得把后缀改为bat),内容如下: date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt 以管理员身份打开命令行,输入schtasks /create /TN net