zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175216 《网络对抗技术》Exp4 恶意代码分析

    2019-2020-2 20175216 《网络对抗技术》Exp4 恶意代码分析

    实验步骤

    系统运行监控

    • 任务要求:使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包

    使用schtasks指令监控系统

    • 输入指令schtasks /create /TN netstat5216 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"每五分钟记录下有哪些程序在连接网络,每3分钟就会监测哪些程序使用网络,结果记录在netstatlog.txt中。

    TN是TaskName的缩写,这里计划任务名是netstat5216;
    sc表示计时方式,以分钟计时填MINUTE;
    TR=Task Run,要运行的指令是netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。
    1.PNG

    • 新建netstat5216.txt输入
    date /t >> c:
    etstat5216txt 
    time /t >> c:
    etstat5216.txt 
    netstat -bn >> c:
    etstat5216.txt
    

    保存并退出,修改文件类型netstat5216.bat

    • 打开计算机管理 ,找到刚创建的程序netstat5216
      1.2.PNG

    • .双击此任务,点击操作编辑
      1.3.PNG

    • 将程序或脚本改为我们创建的netstat5216.bat文件,点击确定。
      1.4.PNG

    • 常规中更改安全选项选择不管用户是否登陆都要运行``使用最高权限运行,确定。
      1.5.PNG

    • 开始等待,一直保持开机联网状态,过一段时间,发现netstat5216.txt已经记录好多数据
      2.1.PNG

    • netstat5216.txt已经记录的数据导入wps表格中去

    • 在WPS表格中找到数据栏,找到导入数据,选择合适的文件类型分隔符号
      2.13.PNG

    • 分隔符号中的选项全部选中,点击完成即可。
      2.2.PNG

    • 导入WPS数据如下图所示
      2.3.PNG

    • 统计图如下:
      2.10.PNG

    • 由统计数据可知,联网最多的程序是WPSWPS.exe,排名第二的是腾讯课堂TXEDU.exe,排名第三的是谷歌浏览器chrome.exe,我们还能够找到微信、NVIDIA、还有虚拟机这些连网的进程。不清楚为啥WPS竟然是联网最多的程序,这让我很是意外,我以为最多的应该是谷歌浏览器,还发现了一个backgroundTaskhost.exe后门程序,是上次做实验留下的。查了一下SearchUI.exe,这个原来是win10所带的Cortana小娜的进程,查了它的两个连接的外部IP,一个显示是上海市腾讯云,一个是在美国。有一部分程序我也不知道是怎么打开的,所以我们还是要注意这些,时不时的关注一下这些自启动程序,会很大程度避免入侵。

    安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。

    • 下载老师给的安装包并解压sysinternals

    • 右键Sysmon64.exe,在属性详细信息查看产品版本
      3.1.PNG

    • 确定要监控的目标:在这里我选择进程创建进程创建时间网络连接远程线程创建

    • 写配置文件

    • 相关事件过滤器选项在使用轻量级工具Sysmon监视你的系统可看到,进程创建ProcessCreate进程创建时间FileCreateTime网络连接NetworkConnect远程线程创建CreateRemoteThread

    • 开始写与自己想要监控的事件相对应的配置文件,命名为sysmon20175216.xml,内容如下:

    <Sysmon schemaversion="10.42">
      <!-- Capture all hashes -->
      <HashAlgorithms>*</HashAlgorithms>
      <EventFiltering>
        <!-- Log all drivers except if the signature -->
        <!-- contains Microsoft or Windows -->
        <ProcessCreate onmatch="exclude">
          <Image condition="end with">chrome.exe</Image>
        </ProcessCreate>
    
        <ProcessCreate onmatch="include">
          <ParentImage condition="end with">cmd.exe</ParentImage>
        </ProcessCreate>
    
        <FileCreateTime onmatch="exclude" >
          <Image condition="end with">chrome.exe</Image>
        </FileCreateTime>
    
        <NetworkConnect onmatch="exclude">
          <Image condition="end with">chrome.exe</Image>
          <SourcePort condition="is">137</SourcePort>
          <SourceIp condition="is">127.0.0.1</SourceIp>
        </NetworkConnect>
    
        <NetworkConnect onmatch="include">
          <DestinationPort condition="is">80</DestinationPort>
          <DestinationPort condition="is">443</DestinationPort>
        </NetworkConnect>
    
        <CreateRemoteThread onmatch="include">
          <TargetImage condition="end with">explorer.exe</TargetImage>
          <TargetImage condition="end with">svchost.exe</TargetImage>
          <TargetImage condition="end with">firefox.exe</TargetImage>
          <TargetImage condition="end with">winlogon.exe</TargetImage>
          <SourceImage condition="end with">powershell.exe</SourceImage>
        </CreateRemoteThread>
      </EventFiltering>
    </Sysmon>
    
    • exclude相当于白名单,不用记录。include相当于黑名单
    • Image condition根据自己使用的浏览器更改,如谷歌浏览器是chrome.exe,IE浏览器是iexplore.exe
    • 网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)443(https)的网络连接。(137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。127.0.0.1表示本机IP。)
    • 远程线程创建记录了目标为explorer.exesvchost.exewinlogon.exepowershell.exe 的远程线程。
    • explorer.exe是Windows程序管理器或者文件资源管理器
    • svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
    • winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。
    • powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。
    • 以管理员身份运行CMD在Sysmon64.exe目录下执行Sysmon64.exe -i sysmon20175216.xml

    4.1.PNG

    4.2.PNG

    • 右键Windows标志,找到事件查看器,在应用程序和服务日志-Microsoft-Windows-Sysmon-Operational可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等等
      4.3.PNG
      6.2.PNG

    恶意软件分析

    动态分析

    使用systracer分析恶意软件
    • 下载systracer,安装并进行捕包分析systracer
      8.3.PNG
    • 捕获五个快照如下:

    快照一:未移植后门程序,保存为Snapshot #1
    快照二:移植后门程序,保存为Snapshot #2
    快照三:运行后门程序并在kali中实现回连,保存为Snapshot #3
    快照四:在kali中执行dir 指令,保存为Snapshot #4
    快照五:在kali中执行exit 指令,保存为Snapshot #5

    8.4.PNG
    8-23对比-4.PNG

    8.5.PNG

    • 对比Snapshot #1Snapshot #2:增加了后门程序20175216_upx.exe
      8-对比12.PNG

    • 增加了一些文件,也删除了一些文件
      8-对比12-2.PNG

    • 对比Snapshot #2Snapshot #3,可以看到新增的后门进程,而且可以详细看到其的目的IP和端口号、源IP和端口号以及连接的协议
      8-23对比.PNG

    • 增加了一些ddl后缀文件,也删除了一些ddl后缀文件
      8-23对比-2.PNG

    • 更改了一些日志文件
      8-23对比-4.PNG

    • 对比Snapshot #3Snapshot #4
      8-对比34.PNG

    • 对比之后注册表竟然没有变化,有一丝丝疑惑,难道后门程序移进来注册表更改了之后再没进行更改吗????
      8-34对比注册表.PNG

    • 对比Snapshot #4Snapshot #5,后门程序的的删除以及相关联的注册表项和启动项都被删除
      8-45对比.PNG

    使用wireshark对流量进行抓包分析
    • kali中打开监控,win7执行后门程序20175216_upx.exe进行回连
      8.2.PNG

    • wireshark对流量进行抓包,输入过滤条件ip.addr == 192.168.170.142,可以看到Wireshark上捕获到大量的TCP传输,输入其他命令,Kali会不断给Windows传一大堆ACK包,有时还伴有PSH+ACK包。(PSH就表示有 DATA数据传输)
      8.1.PNG

    PE Explorer
    • PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。
    • 在ProcessExplorer查找后门程序
      pe1.PNG
    • 可以详细查看该进程使用的CPU,虚拟内存空间、物理内存空间、I/O等
      pe2.PNG

    静态分析

    PEiD检查恶意代码
    • 使用PEiD检查恶意代码20175216_upx.exe是否加壳
      9.1.PNG
    • 使用PEiD检查恶意代码20175216_backdoor.exe是否加壳
      9.2.PNG
    使用VirusTotal检查恶意代码
    • 使用VirusTotal检查恶意代码,可以查看MD5、SHA-1、文件类型、文件大小、加壳方式等相关信息
      9.4.PNG
    • 算法库支持
      9.5.PNG

    实验总结

    实验后回答问题

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

    • 可以用任务管理器查看自启动项,在自启动项进行过滤查看
    • 利用Windows计划任务netstat,定期查看并分析网络连接情况
    • 可利用sysmon工具,配置好想要监控的端口、注册表信息、网络连接等信息,通过其生成的日志文件进行查看

    (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

    • 利用Wireshark抓包,进行分析有没有异常的或可疑的连接(分析起来难度较大,这个只能有针对的去分析,比如知道IP地址 等等 )。
    • 还可以利用Systracer来拍摄快照,进行对比分析改变的注册表及文件信息。
    实验中遇到的问题

    1、问题1.png

    • 解决方案:起初以为密码不对,后来更改了密码还是这样,我只能选择最有用的解决方案——重启,真的可以解决。

    2、e4d67ac515f109209fbc669fe31a6da.png

    • 解决方案:把netstat5216.txt换成netstatlog.txt就可以了
    实验体会

    这次实验在看老师录的视频的时候感觉不是很难,但自己操作起来,真的错误百出,问题花样,整的我眼花缭乱,尤其是下载的软件不能运行,环境要改,然后做其他课的实验,环境要再改,可太难受了。这次实验,我们要对恶意软件进行分析,之前接触了很多攻击方法,对这些在进行分析还是有一定帮助的,分析不够深入,很多没见过的就要百度,有一种似懂非懂得感觉,实验中用到的软件都很陌生,但并不是所有的恶意程序都可以被检测出来,所以还是要尽量从官方平台下载软件,这些不能说绝对的安全,但相比那些其他网站下载的要相对安全一些。

  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/besti20175216/p/12711763.html
Copyright © 2011-2022 走看看