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就可以了
    实验体会

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

  • 相关阅读:
    漫谈二分查找Binary Search (转)
    怎样搭建Android开发平台(转)
    vim控,键盘控的福利,在chrome和firefox中用vim
    用dos命令行执行java程序的方法
    简明 Vim 练级攻略(转)
    vim中文手册,gcc中文手册,gdb中文手册打包赠送
    使用Eclipse平台开发Java程序(转)
    使用Eclipse创建一个Android程序方法
    hdu 1024 Max Sum Plus Plus (最大m子段和)(经典DP)(转)
    sql server2008 表分区
  • 原文地址:https://www.cnblogs.com/besti20175216/p/12711763.html
Copyright © 2011-2022 走看看