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

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

1.实验后回答问题

(1)若是在工做中怀疑一台主机上有恶意代码,但只是猜测,因此想监控下系统一每天的到底在干些什么。请设计下你想监控的操做有哪些,用什么方法来监控。。windows

  • 须要监控什么?安全

    • 系统中各类程序、文件的行为。
    • 还须要注意是否会出现权限更改的行为。
    • 注册表。
    • 是否有可疑进程。
    • 若是有网络链接的状况,须要注意这个过程当中的IP地址与端口。
  • 用什么来监控?网络

    • 最早想到的确定是使用wireshark抓包了,再进行进一步分析。
    • Sysinternals是一个工具集,其中有许多实用的工具,功能很是丰富强大,好比咱们能够用TCPview来查看系统中的TCP链接的进程,还能用sysmon来监视和记录系统活动,并记录到windows的事件日志里。
    • 能够用PE explorer查看PE文件编译的一些基本信息,导入导出表等,还能够看到该文件的编译时间、连接器等基本信息。
    • Dependency Walker是一款专门分析函数依赖的工具软件,咱们能够借助它来分析是否有关于注册表的异常行为等。

(2)若是已经肯定是某个程序或进程有问题,你有什么工具能够进一步获得它的哪些信息。函数

  • 先用像“VirScan”这样的扫描工具来扫描一个大概状况,而后再借助相关工具分析可疑的程序。
  • 使用TCPview查看系统中的使用TCP链接的进程,看是否有异常,结合wireshark抓包分析。
  • 使用Dependency Walker来分析是否有关于注册表的异常行为等。
  • 使用systracer进行快照对比。
  • 使用PEiD查看可疑软件是否加壳。
  • 使用PE explorer或PE Browser professional来反汇编可疑的软件,进行分析。也可使用WinHex来进行字段分析,看是否有可疑行为。

2.实验总结与体会

  • 这段时间真的是学到很多东西,从最开始作一个基本的后门程序,到逐步实现免杀,再到如今的恶意代码分析。真的感受很爽!颇有成就感!老师最开始主要讲的是如何攻击靶机,男孩子固然比较感兴趣,哈哈哈,如今又教咱们如何进行恶意代码的分析,我最开始以为没意思,以为很无聊,可是仔细一想,仍是颇有必要掌握这块知识的。大家想一想,咱们不能保证不受到来自外界的攻击吧,并且在平常生活中,咱们都是以“防”为主,不会说是主动去“攻击”别人吧,几乎不会,几率过小了。因此要学会基本的恶意代码分析,保护本身主机的安全。并且,咱们换个角度看,你都知道通常的防范措施了,那某一天你若是要攻击别人,是否是更驾轻就熟,成功率更高啊。哈哈哈!!恶意代码的免杀和恶意代码的分析能够说是相辅相成的。工具

  • 在大多数状况下进行恶意代码分析的时候,咱们只有恶意代码的可执行文件自己,而这些文件自己不具备可读性。为了理解这些文件背后的含义,咱们须要使用各类工具和分析的技巧。设计

  • 恶意代码分析有两类基本方法:3d

    • 静态分析:是一种在没有运行恶意代码时对其进行分析的技术,能够结合相关工具直接的观察。
    • 动态分析:相比较静态分析而言,须要运行恶意代码,经过其产生的动态行为与数据进行分析,从而肯定其具体行为,也须要结合相关工具。

3.实践过程记录

恶意代码的静态分析

VirScan

  • 我先用VirScan扫描一下我上次实验用到的后门程序。

  • 点一下“文件行为分析”,咱们能够详细地察看这个程序是否有敏感行为,根据扫描结果得知,该文件有网络链接的行为,自行删除注册表键值的行为。

  • 利用相关软件,协助分析。《计算机病毒》课程的庞岩梅老师以前给咱们讲过相关知识,也介绍过一些软件,这里能够活学活用。毕竟学科之间是有联系的啊~

PE explorer

  • 首先是PE explorer这款软件。咱们能够用它查看PE文件编译的一些基本信息,导入导出表等,还能够看到该文件的编译时间、连接器等基本信息。在“导入表”中,能够查看该文件调用的dll文件库。

  • WSOCK32.dll和WS2_32.dll,这两个dll文件,是用来建立套接字的,若是这个程序没有网络链接的功能,那么在其动态连接库中就不可能有这两个dll文件。ADVAPI32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与注册表的操控以及事件日志都有关。另外2个dll文件不作过多介绍,属于通常程序在win下都会调用的dll库。

PEiD

  • PEiD是一款著名的查壳工具,其功能强大,几乎能够侦测出全部的壳。 通常正常的软件是不会加壳的吧,而恶意代码为了假装本身,其中一种经常使用方式就是加壳,经过加壳来达到不被杀软察觉的目的。

  • 显示的是“什么都没找到 [调试] ”,我晕,什么状况。点“Set Info”看看。后来发现其实不是这样的,正常的编译确定会显示编译器的,既然没找到,说明不能识别该编译器,一点进去发现,这个恶意代码加了UPX压缩壳!

Dependency Walker

  • Dependency Walker是一款专门分析函数依赖的工具软件,能够查看PE模块的导入模块,还能够查看PE模块的导入和导出函数。咱们从中能够发现,该可执行文件能够对注册表的确进行了删除操做!! 而且确实有网络链接的功能!!!

PE Browser Professional

  • PE Browser Professional能够对恶意代码进行反汇编。使咱们更直观的观察恶意代码,咱们能够结合Debug日志、各个寄存器的值、进程信息来深刻研究。

恶意代码的动态分析

  • 相比较静态分析而言,须要运行恶意代码,经过其产生的动态行为与数据进行分析,从而肯定其具体行为,也须要结合相关工具。

SysTracer

  • Sysinternals是一个工具集,其中有许多实用的工具,功能很是丰富强大。
  • 操做步骤:调试

    • 准备一台kali攻击机,一台Win7靶机,SysTracer2.10分析软件;
    • 打开攻击机进入msfconsle,开始监听;win7下对注册表、文件、应用状况进行快照,保存为Snapshot #1;
    • win7下打开木马程序,回连kali,win7下再次快照,保存为Snapshot #2;
    • kali经过msf发送文件给win7靶机,win7下再次快照,保存为Snapshot #3;
    • kali中对win7靶机进行屏幕截图(也能够是其余操做),win7下再次快照,保存为Snapshot #4。
    • 咱们能够经过“compare”操做来比较每次快照文件的区别。

  • 咱们先对比一下Snapshot #1和Snapshot #2.能够看到注册表里面出现了新的表项,开放了新的端口。

  • 再对比一下Snapshot #2和Snapshot #3.能够发现注册表有了增减,开放端口也有了变更,恶意代码的踪影愈来愈明显了。

  • 最后对比一下Snapshot #3和Snapshot #4.能够发现启动回连时注册表发生变化了,截屏时注册表也发生了一些变化。

使用WireShark抓包分析

  • 我对回连过程进行了WireShark抓包,能够看到靶机与攻击机三次握手创建链接,含有大量的TCP链接数据包。

  • 抓包结果中绝大部分数据包是主机与靶机之间的TCP通讯包,还有一些是DNS包和ARP包。

  • 还能够看到传输截屏数据的数据包,就是这些长度较大的PUSH ACK包。厉害吧~~~!

TCPview

  • 使用TCPview能够查看系统中的TCP链接的进程。

安装并使用Sysmon

  • 首先有个问题,那就是安装sysmon工具的时候须要管理员权限,因此在安装前,咱们须要使用管理员权限来打开cmd.exe,打开方法就是右键cmd程序在菜单中选择管理员权限。安装的时候不能盲目参考老师给的教程,好比版本号应该改成3.10!而不是3.20!!!日志

  • 快速安装xml

  • 配置xml文件,并使用sysmon -c查看配置;

  • 而后咱们能够在“Applications and Services Logs/Microsoft/Windows/Sysmon/Operational”下找到事件日志,从而进行分析。

设置任务计划

  • 首先咱们进入计算机-管理-任务计划,建立一个任务计划,命名为netstat5326。触发器咱们选择天天每隔5分钟执行一次。

  • 我在F盘下建立了一个文件夹:5326cxy,在这个文件夹下写一个脚本。也就是说在5326cxy文件夹下建立一个netstat5326.txt。随后将后缀改成“.bat”。

 

  • 看任务计划中的操做选项栏,启动程序设为咱们的netstat5326.bat,参数为>>f:\5326cxy\netstat5326.txt,这样咱们的网络记录信息netstat5326.txt就会保存在C盘5326cxy文件夹下。

 

  • 这个时候就建立完成了,设置管理员权限并运行这个任务。