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


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

    1.实验后回答问题

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

    • 需要监控什么?

      • 系统中各种程序、文件的行为。
      • 还需要注意是否会出现权限更改的行为。
      • 注册表。
      • 是否有可疑进程。
      • 如果有网络连接的情况,需要注意这个过程中的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.实验总结与体会

    • 这段时间真的是学到不少东西,从最开始做一个基本的后门程序,到逐步实现免杀,再到现在的恶意代码分析。真的感觉很爽!很有成就感!老师最开始主要讲的是如何攻击靶机,男孩子当然比较感兴趣,哈哈哈,现在又教我们如何进行恶意代码的分析,我最开始觉得没意思,觉得很无聊,但是仔细一想,还是很有必要掌握这块知识的。你们想想,我们不能保证不受到来自外界的攻击吧,而且在日常生活中,我们都是以“防”为主,不会说是主动去“攻击”别人吧,几乎不会,概率太小了。所以要学会基本的恶意代码分析,保护自己主机的安全。而且,我们换个角度看,你都知道一般的防范措施了,那某一天你如果要攻击别人,是不是更得心应手,成功率更高啊。哈哈哈!!恶意代码的免杀和恶意代码的分析可以说是相辅相成的。

    • 在大多数情况下进行恶意代码分析的时候,我们只有恶意代码的可执行文件本身,而这些文件本身不具有可读性。为了理解这些文件背后的含义,我们需要使用各种工具和分析的技巧。

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

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

    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文件,并使用sysmon -c查看配置;

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

    设置任务计划

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

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

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

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

  • 相关阅读:
    约数
    质数
    回炉重造之重读Windows核心编程-018-堆栈
    回炉重造之重读Windows核心编程-017- 内存映射文件
    换电脑遇到git的一些记录
    python3之迭代器和生成器
    python3之类和对象
    python3之错误和异常
    python3之函数
    python3之流程控制
  • 原文地址:https://www.cnblogs.com/cxy1616/p/6641873.html
Copyright © 2020-2023  润新知