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

    目录:

     一、实践目标

    二、实践过程

    三、基础问题回答

    四、实验总结


    一、实验目标

     1、实践要求

    • 监控你自己系统的运行状态,看有没有可疑的程序在运行;
    • 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals systracer套件;
    • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

    2、实践内容

    1. 系统运行监控
      • 使用如计划任务每隔一分钟记录电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。目标:找出所有连网的程序的连接和操作,这个操作是否合适合理,并有针对性的抓包做进一步的分析;
      • 安装配置sysinternals中的sysmon工具,设置合理的配置文件,监控主机的重点事可疑行为;
      • 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行(难点在于从大量数据中理出规律、找出问题)。
    2. 恶意软件分析
      • 分析该软件在启动回连,安装到目标机及其他任意操作时(如进程迁移或抓屏),该后门软件: 读取、添加、删除了哪些注册表项;
      • 读取、添加、删除了哪些文件;
      • 连接了哪些外部IP,传输了什么数据(抓包分析)。

    二、实践过程

     1. 系统运行监控——计划任务

    创建计划任务,使系统每1分钟自动检测到有哪些程序在连接我们的网络。

    使用管理员模式运行cmd模式,输入如下命令

    schtasks /create /TN netstat4308/sc MINUTE /MO 1 /TR "cmd /c netstat -bn > d: etstat4308.txt"

    • TN:Task Name,本例中是netstat4308
    • SC: SChedule type,本例中是MINUTE,以分钟来计时
    • MO: MOdifier
    • TR: Task Run,要运行的指令是 netstat
    • -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口

     

    在d盘根目录下新建netstat4308.bat(更改文件名即可),用于计时

    date /t >>c: etstat4308.txt

    time /t >>c: etstat4308.txt

    netstat -bn >>c: etstat4308.txt

    【控制面板】->【系统与安全】->【管理工具】->【任务计划程序】,修改计划属性

    选择刚刚编辑好的脚本,添加到【设置】中。

    使用最高权限运行,否则可能会运行失败。

    运行任务之后,开始记录后台的数据,其中保持电脑的正常使用,大约一个小时之后,打开netstat4308.txt文件,查看里面的内容

    使用excel的数据处理功能,导入文档的数据,生成数据透视图。

    在这段时间里,我使用比较多的是火狐浏览器、qq浏览器、qq、微信等应用软件,符合实际情况,但是有些东西我不清楚是什么。

    比如第一个,backgroundTaskHost.exe我不清楚是什么,于是我返回去查找,其ip为202.89.233.100。通过百度IP地址,我发现。

     

    这个是微软的后台连接程序,应该是安全的。

    ChsIME.exe是微软输入法的程序。

    TsService.exe是QQ浏览器的一个配件,也是安全的。

    从ip的结果观察来看,我的电脑似乎没有什么自启动的软件,应该是比较安全的。

    2.系统运行监控——利用Sysmon

    进入官网下载SysinternalsSuite.zip并解压。

    根据自己的系统选择Sysmon版本,我的电脑是64位的系统,所以选择Sysmon64.exe,在程序的属性中查看版本信息。

    并且在SysinternalsSuite所在目录下创建sysmon20174308.xml,以文本文档方式打开输入代码保存并退。

     1 <Sysmon schemaversion="10.42">
     2   <!-- Capture all hashes -->
     3   <HashAlgorithms>*</HashAlgorithms>
     4   <EventFiltering>
     5     <!-- Log all drivers except if the signature -->
     6     <!-- contains Microsoft or Windows -->
     7     <DriverLoad onmatch="exclude">
     8       <Signature condition="contains">microsoft</Signature>
     9       <Signature condition="contains">windows</Signature>
    10     </DriverLoad>
    11 
    12     <NetworkConnect onmatch="exclude">
    13       <Image condition="end with">chrome.exe</Image>
    14       <Image condition="end with">iexplorer.exe</Image>
    15       <SourcePort condition="is">137</SourcePort>
    16       <SourceIp condition="is">127.0.0.1</SourceIp>
    17     </NetworkConnect>
    18 
    19     <CreateRemoteThread onmatch="include">
    20       <TargetImage condition="end with">explorer.exe</TargetImage>
    21       <TargetImage condition="end with">svchost.exe</TargetImage>
    22       <TargetImage condition="end with">winlogon.exe</TargetImage>
    23       <SourceImage condition="end with">powershell.exe</SourceImage>
    24     </CreateRemoteThread>
    25   </EventFiltering>
    26 </Sysmon>

    ProcessCreate 进程创建,这里的进程名包含了所有以该进程名结尾的进程
    NetworlConnect 网络连接,过滤掉浏览器的网络连接,即源IP为127.0.0.1(回送地址)的网络连接和目的端口为137(提供局域网中ID或IP查询服务)的连接服务,且查看目的端口为80(http)和443(https)的网络连接
    CreateRemote 远程线程创建

    以管理员身份运行cmd,在Sysmon64.exe目录下执行Sysmon64.exe -i sysmon20174308.xml

    之后通过【事件查看器(本地)】-【应用程序和服务日志】-【Microsoft】-【Windows】-【Sysmon】-【Operational】查看根据配置信息【sysmon20174308.xml】记录的进程信息进程号 路径等系统信息

    3.对于恶意软件的分析

    3.1使用wireshark进行分析。

    使用恶意软件(实验三中的加壳后门程序进行回连),以日志信息和Wireshark捕包信息分析系统进程规律
    在事件查看器中根据运行时间找到相应后门程序操作的相关信息,在Wireshark过滤器中输入筛选条件【ip.addr == 192.168.1.106】查看相关的协议包信息

    MSF反弹连接时的TCP包。

    它们进行了握手协议。

    连接成功时,在kali虚拟机上进行dir指令。wireshark抓包为

    双方传递了大量的tcp数据包,该数据包的内容为dir相关的信息。

    3.2使用SysTracer分析

    下载SysTracer并安装

    选择中间那个。

    输入端口号4308

    随后就可以开始使用了

    • 在打开后门前先快照一下,选择->take snapshot,完成后显示Snapshop #1。
    • Kali开始监听,Windows运行后门后,回连成功后拍摄快照,完成后显示Snapshop #2。
    • 在kali中使用MSF相关的操作sysinfo screenshot,完成后显示Snapshop #3。
    • 结束连接后,快照,显示Snapshop #4。

    进行简单的分析,首先选择【 pplications】->【Running Processes】->【4308ss1.upxed.exe】->【Opened Ports】,查看回连地址、远程地址和端口号。

    对比#1和#2。通过【compare】,可以看到后门运行前后注册表的变化。

    通过【compare】很容易就发现注册表的变化。

    这些颜色有变化证明该目录下的注册表发生了变化,直接点进去寻找即可。

    我选取了目录为【HKEY_CURRENT_USERSoftwareMicrosoftInputMethodSHARED】为例

    其中有颜色的是发生的变化,old为原始的状态,new为后门启动之后发生的变化。

    就该后门启动,有比较多的注册表发生了变化。比如

    • HKEY_CURRENT_USERSoftwareMicrosoftInputMethodSHARED
    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNotificationsData
    • HKEY_LOCAL_MACHINESYSTEM

    对比TCP的连接发现,新增了TCP的连接。

    对比#3和#4。注册表发生了比较多的变化,有增加与删除,同时,比较明显的是TCP断开了连接。

     3.3使用Process Explorer 进行分析 

    Kali回连成功后打开软件,查看详细信息。参考博客https://www.cnblogs.com/fang8206/p/5088354.html。

    这个是主页面,可以看到我们的进程的基本信息。

    通过选择 【View】->【Select Columns】 里面有几个选项可以显示在主页面,帮助帮助分析。

    Image Path:显示进程的文件路径
    Command Line:显示进程命令行参数
    Image Type:显示进程是64位进程还是32位的
    session ID:显示进程当前所在的Session ID
    User Name:显示进程当前的权限,是系统用户权限还是网络管理员权限还是普通管理员权限

    通过对于单个的进行分析,可以看到非常多的信息。

    可以看到程序cpu的使用情况,程序的基本信息,存储位置,还可以看到程序的连接情况,与哪个ip,用什么端口连接等。

    3.4使用Process Monitor分析

    kali回连成功后,打开Process Monitor。

    面对浩如大海的进程,我该怎么办???

    其实我可以通过进程树的形式,来将进程归类,子进程放入父进程之下,这样就会少很多,方便查找。

    很容易就找都我的后门进程,并查看其中的信息

    可以看到进程信息、事件信息以及到这个后门程序引用的各种其他的库。

    3.5使用PE Identifier分析

     

    这个是主界面

    首先先用一个未加壳的后门进行检测

    显示未被压缩。

    使用一个加壳的后门看看。

    可以检测出已经加壳了。

    最后使用一个加密壳检测。

    可见,该软件并没有添加hyperion的记录信息。

    该软件可以使用不同的扫描模式:
    ●正常扫描:可在PE文档的入口点扫描所有记录的签名;
    ●深度扫描:可深入扫描所有记录的签名,这种模式要比上一种的扫描范围更广、更深入;
    ●核心扫描:可完整地扫描整个PE文档,建议将此模式作为最后的选择。

     3.6使用virustotal分析

    网址为:https://www.virustotal.com/gui/home

    该网页可以看到后门的基本信息,包括MD5,SHA-1等方面的基本信息。

    三、基础问题回答

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

    • 利用sysmon工具,配置好监控的端口、注册表信息、网络连接等信息,通过其生成的日志文件进行查看
    • 利用wireshark查看数据包。
    • 利用systracer进行快照,比照注册表、文件等信息
    • 利用Process monitor、Process Explorer进行监控查看进程执行情况,文件系统、注册表活动。

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

    • 使用systracer工具分析恶意软件,查看其对注册表和文件的修改。
    • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
    • 使用PEiD或者Virstotal分析软件。

    四、实验总结

      此次实验难度不大,主要就是通过后门软件与物理机实现回连,然后再物理机上观察ip包,注册表,进程等情况的变化,从而发现自己后门软件对于物理机的变化。期间我参考了学长学姐们的博客,通过这次实验,我学到了一些关于恶意代码运行时对于主机的影响的内容,从而可以进行实践,经常性的查看自己的电脑是否安全,是否有不正常的软件等,提高自己的电脑安全。通过这次实验,我发现自己知识的匮乏,一些监控的东西,比如进程,注册表等信息根本看不懂,以后的学习道路还非常的遥远。

  • 相关阅读:
    将戴尔台式机的系统刷成Linux Centos7
    如何在Maven构建的Java项目中使用log4j
    mybatis-generator逆向工程自动生成mapper
    Win10改变系统主题颜色,降低对眼睛的刺激
    09、SpringBoot 整合 jdbcTemplate、Mybatis
    08、SpringBoot配置拦截器
    navicat快捷键
    DevOps:从理念到实施
    活到老学到老啊技术人
    Linux上安装java+tomcat+mysql运行环境
  • 原文地址:https://www.cnblogs.com/20174308ss/p/12677763.html
Copyright © 2011-2022 走看看