首页 > 其他分享 >Exp4:恶意代码分析

Exp4:恶意代码分析

时间:2023-04-06 23:46:04浏览次数:58  
标签:分析 exe 恶意代码 Exp4 实验 Kali 主机 进程

目录

一.实验信息

  • 课程名称:网络对抗技术
  • 实验序号:4
  • 实验名称:恶意代码分析
  • 实验人:20201207徐艺铭

二.实验内容

2.1 实践内容(5分)

2.1.1 系统运行监控(2分)

  • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。(1分)
  • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。(1分)
  • 参考:schtask与sysmon应用指导
  • 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。

2.1.2 恶意软件分析(3分)

  • 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。
  • 该后门软件
    (1)读取、添加、删除了哪些注册表项(1分)
    (2)读取、添加、删除了哪些文件(1分)
    (3)连接了哪些外部IP,传输了什么数据(抓包分析)(1分)
  • 该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上。

2.2 报告内容(1分)

2.2.1实验后回答问题

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

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

2.2.2实验总结与体会

2.2.3实践过程记录

2.3报告评分( 2分)

  • 报告整体观感:有带链接的目录,各级标题层次分明,易于阅读(1分)
  • 文字表述:报告文字内容非常全面,表述清晰准确 加1分。
  • 报告逻辑混乱表述不清或文字有明显抄袭可能不加分

三.实验知识

  • TCP三次握手四次挥手
  • bat文件生成:新建一个txt文本文件,将需要的命令行输入进去,保存退出后,将文件扩展改为.xml即可。

四.实验过程

4.1 系统运行监控(任务计划)

  • 将如下命令写成bat脚本(bat文件制作方法已放入实验知识介绍)

date /t >> d:\netstatlog1207.txt
time /t >> d:\netstatlog1207.txt
netstat -bn >> d:\netstatlog1207.txt

  • 新建一个netstatlog1207.txt文件(按照如上命令,我将txt文件放入d盘目录下)
  • win+R打开cmd
  • 输入如下命令schtasks /create /TN netstat1207 /sc MINUTE /MO 2 /TR "d:\netstatlog1207.bat
  • 意为创建一个新任务,新任务的名字叫做netstat1207,该任务创建完成后每隔2分钟运行一次d盘目录下的netstatlog1207.bat

  • 任务创建成功后还需要在windows搜索栏找到任务计划程序,打开后找到我们刚创建好的计划任务,按下图修改属性。

  • 修改后打开刚刚创建好的netstatlog1207.txt文件,看到里面已经多了很多记录

  • 这些记录都是各种应用联网的时间和ip,如图有wps firefox wechat steam ToDesk等等
  • 将我收集了几个小时的txt文件导入excel分析(别忘记做完这部分实验后停止任务,不然一直弹终端很烦)
  • 新建excel,数据→导入数据→选择数据源→netstatlog1207.txt,按下图流程设置

  • 选中要分析的数据列,点插入——>数据透视图——>默认项确定

  • 将'周三'拖入下方窗口

  • 得到数据分析图

  • 可以看到tcp协议出现的次数最多,firefox、wps和SearchHost等等都是联网大户

4.2 Sysmon工具监控

4.2.1安装Sysmon

Sysmon安装包
Sysmon配置文件

  • 确定监控目标
  • 编写配置文件:创建一个txt文件,写好配置文件后将文件后缀改为.xml(需要按照个人需求修改第一行的版本号,比如我的版本为4.83,后面的浏览器根据自己电脑的实际情况修改,比如我使用的是firefox.exe,有些同学可能用chrome.exe等等)
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <ProcessCreate onmatch="exclude">     
      <Image condition="end with">firefox.exe</Image> 
      <Image condition="end with"MicrosoftEdge.exe</Image> 
    </ProcessCreate>
 
    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">firefox.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">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
  </EventFiltering>
</Sysmon>

关于配置文件的解释

  • onmatch选项只能设置为include或者exclude,exclude相当于白名单,不用记录;include相当于黑名单
  • 第一行的sysmon版本号要跟使用的sysmon一致(当前版本是4.81)
  • Image condition根据自己使用的浏览器更改,如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,火狐浏览器是“firefox.exe”,QQ浏览器是“QQBrowser.exe”,写在exclude中就是不记录由谷歌浏
  • 进程创建时间类似,也是不创建浏览器创建进程的时间
  • 网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1(localhost)的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。
  • 137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态
  • 127.0.0.1表示回环地址
  • 远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程
  • explorer.exe是Windows程序管理器或者文件资源管理器
  • svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称
  • winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出
  • powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用

4.2.2 启动Sysmon

  • cd 进入包含Sysmon.exe的文件夹
  • 使用如下命令

  • 这里我报错了,提示我使用超级用户权限

  • 按下图方式以管理员身份打开powershell(右键选择管理员身份)

  • 打开后重新输入指令运行成功

  • win+R输入下图内容

  • 打开 计算机管理->事件查看器->应用程序和服务日志->Microsoft->Windows->Sysmon->Operational 查看日志

  • 这时使用exp2中制作的后门程序,在kali机中连接,看看sysmon会记录些什么

  • 当kali机成功连接并下达shell指令获得windows主机终端权限时,刷新一下日志,根据时间查找到记录,这就是Sysmon记录下来的关于kali机的行为

4.3 恶意软件分析

4.3.1 使用wireshark分析TCP包

主机IP:192.168.73.1
Kali IP:192.168.73.128

  • 主机和Kali机均选好要抓包的网络后开始抓包
  • 使用ip.addr=[目标ip]进行过滤
    Kali利用后门与主机建立TCP连接(三次握手)[标志包为SYN和ACK]

Kali与主机断开连接[标志包为RST和FIN]


Kali单向企图连接主机[RST包 果然被拒绝了]

建立连接后Kali向主机传输后门程序

  • Kali主动传后门的过程中,是由Kali向主机发送SYN包,三次握手后开始频繁使用[PSH,ACK]和[ACK]包传输数据,一般出现PSH包意味着有数据的传输。
  • 这里分析一下抓到的包:第一行Frame8主要是要发送的数据块;使用以太网,标明了源Mac地址和目的Mac地址,由于我这里是一台机器上利用VMware来进行通信,所以图片中标明了VMware;第三行指本次传输中使用了IPV4协议,标明目的ip和源ip;第四行使用了TCP协议进行通信,源端口号和目的端口都有标明;最后一行为data包,不是所有抓到的包都有,有这一行意味着这个包携带了多大字节的数据量。

4.3.2 使用TCPView工具分析进程

  • 当前进程

  • 过滤了一下端口
  • 直接被逮到

4.3.3 使用Process Explorer分析恶意进程

  • 发现进程中命令来源是未知,而正常主机打开powershell的来源是C盘目录下

  • 后门进程的举动太可疑,直接打开了cmd.exe,所以也是在进程中被瞬间逮到

  • 查看线程

  • 把两个线程杀掉

  • Kali机中瞬间断开连接,显示died

五.基础问题回答

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

首先要监控的是网络,可以就用schtasks设置任务,然后筛选出可疑的网络行为。但凡攻击者想进行远程操作,建立了连接,就一定会被记录到。
然后检测进程和线程,一些像实验中出现的未知来源开启终端这样的高度危险行为,几乎可以肯定是遭受了攻击,同时如果攻击者想要利用我们电脑中某些后门程序进行操作,势必会在实验所使用的这几种软件中有所记录,更严重的会占用大量CPU。
还有要检测文件的创建和删除。一些后门程序很可能以一个系统文件的名字来企图蒙混过关,要关注一些所谓的“系统程序”文件是否在C盘应该出现的文件夹下,注意甄别。

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

六.实验总结体会

  • 本次实验依旧是一个相对开放的实验,我们更多的是对自己的电脑进行分析,利用Sysmon监控和wireshark抓包来分析包括网络连接端口占用有无异常,利用一些工具查看自己正在运行的进程的相关情况,找到可疑行为分析恶意软件。
  • 在此次实验中,由于conhost.exe和svchost.exe一直在我查看进程的过程中出现,我就去网上搜索了一下这两个进程,发现这两个进程作为系统进程,也常常是后门程序企图渗入的目标,如果发现不是在C盘SYstom文件夹下运行是,十之八九就是伪装的恶意程序,需要尽快将文件删除
  • 而由于我在Kali机中使用shell命令直接获取windows主机权限的行为太过明显,也是直接在procexp中脱颖而出很快被发现查杀
  • 但是我想,如果将后门程序包装一下,同时攻击意图不那么明显,悄无声息地运行很可能骗过我这样的小白,所以在之后的时间里,需要学习更多恶意软件恶意代码的特征,不断擦亮双眼,提高防范意识的同时,也提高辨别能力!

标签:分析,exe,恶意代码,Exp4,实验,Kali,主机,进程
From: https://www.cnblogs.com/yao-yuer/p/17294609.html

相关文章

  • 网络对抗Exp4-恶意代码分析
    一、实验目标1.监控自己系统的运行状态,看有没有可疑的程序在运行。2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑......
  • flask_day04:请求上下文分析 wtforms
    目录回顾请求上下文分析(源码:request原理)导出项目的依赖pipreqs函数和方法threading.local对象本质原理:偏函数flask整个生命执行流程(1.1.4版本为例)wtforms(了解)补充回顾1.蓝图 第一步:导入第二步:实例化的得到的对象,可以指定static和templates第三步:app中注册蓝图,注册......
  • BlackLotus 分析2--boot-内核阶段
    BlackLotus分析2--boot-内核阶段[BlackLotus分析1--安装器阶段](BlackLotus分析1--安装器阶段-DirWangK-博客园(cnblogs.com))LegacyBIOS→MBR→“活动的主分区”→\bootmgr→\Boot\BCD→\Windows\system32\winload.exeUEFIBIOS→EFI系统分区(FAT格式的分区)→\efi\Mi......
  • Exp4 恶意代码分析
    一、实验目的1.是监控你自己系统的运行状态,看有没有可疑的程序在运行。2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找......
  • flask请求上下文分析,源码request原理,wtforms,精确导出依赖,函数和方法,threading.locl对
    内容回顾蓝图第一步:导入第二步:实例化得到对象,可以指定static和templates第三步:app中注册蓝图,注册蓝图时,可以指定前缀第四步:使用蓝图,注册路由,注册请求扩展g对象当次请求的全局对象,在当次请求中可以放值和取值跟session的区别是session可以在多次请求中使用,g对象只在当次请......
  • Set Cover问题的贪心近似算法分析
    问题描述全集\(U=\{e_1,e_2,...,e_n\}\)被划分为一系列的子集\(S=\{S_1,S_2,...,S_k\}\)。且存在一个cost函数\(c:S\rightarrow\mathbb{R}^+\)。目标是挑选子集使其覆盖所有全集\(U\)的元素同时cost最小问题算法该问题是经典的NPC问题。给出其中一......
  • Exp4 恶意代码分析
    Exp4恶意代码分析目录Exp4恶意代码分析实验过程1.系统运行监控1.1使用schtasks指令监控系统(使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果)1.2使用sysmon工具监控系统(安装配置sysinternals里的sysmon工具,设......
  • 恶意代码分析
    恶意代码分析基础问题回答如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。监视系统的网络流量以识别任何可疑活动。这可以使用网络监控工具(如Wireshark或tcpdump)来完成。监视......
  • 回归分析-线性回归
    使用kaggle比赛中的公开数据IceCreamData数据来完成温度和销售利润的线性关系。本实例使用python来仿真实现。1.下载数据,IceCreamData需要注册和下载到本地。大体背景是你拥有一家冰淇淋公司,你想创建一个模型,可以根据外部空气温度(度)预测每天的收入。2.导入数据importpan......
  • 网络对抗实验四 恶意代码分析--20201313
    Exp4恶意代码分析目录Exp4恶意代码分析一、实践基础1、实践目的2、实践内容3、实践原理二、实践内容系统运行监控(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。(2)安装配置sysinternals里的sysmon工具,设......