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

    Exp4 恶意代码分析

    基础问题回答

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

    需要监控的有

    • 修改了哪些注册表
    • 创建了哪些进程
    • 占用了哪些端口
    • 修改、查看了哪些文件
    • 连接了哪些网络

    监控方法:

    • 定时让主机执行netstat然后分析,发现异常
    • 利用Sysmon,编写配置文件,记录与自己关心的事件有关的系统日志
    (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • 可以利用Systracer拍摄快照,比对前后区别,分析改变的注册表及文件等信息
    • 可以利用Wireshark查看是否存在可疑连接

    实验过程

    一、系统运行监控

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

    第一步:在windows命令行下输入命令:schtasks /create /TN 20165307netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"

    • TN是TaskName的缩写,我们创建的计划任务名是20165307netstat
    • sc表示计时方式,我们以分钟计时填MINUTE
    • TR=Task Run,要运行的指令是 netstat
    • bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
    • c: etstatlog.txt类似于Linux中的重定向,输出将存放在C盘下的netstatlog.txt文件中

    创建成功结果如下:

    第二步:在C盘目录下建一个文件c:20165307netstatlog.bat

    编辑文件内容如下:

    第三步:编辑任务操作:

    1.进入任务计划程序 找到任务20165307netstat,双击点开

    3.点击操作并编辑,将“程序或脚本”改为我们创建的20165307netstat.bat批处理文件,确定即可。

    4.接下来用schtasks /create /TN 20165307netstat /sc MINUTE /MO 1 /TR "c:20165307netstatlog.bat"指令创建一个任务,记录每隔两分钟计算机的联网情况。这里和之前不同的是将记录的情况输入到了.bat后缀的文件中

    第四步:等待

    第五步:用excel分析数据。

    1.导入文本数据:新建excel文件->选择上方“数据”->选择“获取外部数据”->选择“自文本”

    2.选择记录连接情况的文本20165307netstatlog.txt,点击“导入”

    3.进入文件导入向导第一步,选中“分隔符号”,点击“下一步”

    4.进入文件导入向导第二步,选中全部分隔符号,点击“下一步”

    5.进入文件导入向导第三步,列数据格式选择常规,点击“完成”。

    6.鼠标选中左上角第一个单元格,然后点击“确定”

    待分析数据如下:

    第六步:对数据进行统计学分析:

    1.首先查看所有联网程序的联网次数,具体excel操作如下:

    ①首先选中我们要分析的列(第二列):

    ②其次点击上方“插入”->“数据透视表”->“数据透视图”

    ③默认选择在一个新工作表中生成

    ④在右侧“选择要添加到报表的字段”中点击对应字段右侧的小箭头->取消选择那些没有意义的字段,然后点击“确定”

    ②将该字段拖动到下方的“轴字段”和“数值”两个区域中

    ⑥然后就可以看到我们的统计图进行分析了:

    2.由上图所示,联网最多的是浏览器对应的程序“chrome.exe”,排名第二的是“360tray.exe”,它是360安全卫士的进程。这里我们还可以找到阿里巴巴、优酷、迅雷、后门程序wangzhe_backdoor.exe这些进程。

    没发现什么其他可疑的程序,既然这样我们就分析一下YoukuMediaCenter.exe
    连了哪里,大约干了什么吧。

    通过查看表格,我们发现它连接了外部网络106.11.94.30:80
    ,猜测他就是不断的连接优酷服务器,然后往下载数据吧。

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

    第一步:确定监控目标。我感兴趣的是进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。

    第二步:写配置文件。

    我的创建配置文件20165307ysmoncfig.txt内容如下:

    解释:

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

    3.把配置文件放在C盘下。

    第三步: 启动sysmon。

    进入sysmon.exe的目录,执行命令sysmon.exe -i C:20165307Sysmoncfig.txt,这里弹出的窗口点击agree:

    成功安装的结果如下:

    第四步:在事件查看器里查看日志

    点击“事件查看器”右侧小箭头,选择日志的位置:应用程序和服务日志/Microsoft/Windows/Sysmon/Operational。

    利用Sysmon具体分析日志的例子我选择了自己实验二中生成的后门wangzhe_backdoor.exe进行分析。

    第一步:启动回连、安装到目标主机。

    可找到运行后门文件wangzhe_backdoor.exe相对应的日志如下:

    第二步:Linux执行了截获音频、截获照片、记录击键记录、获取当前用户等操作。

    相对应的观察日志文件发现有这样几条记录:

    有一个启动了SearchFilterHost.exe的事件:

    SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录。

    没分析出什么。

    第三步:运行shell

    观察到一个和我们后门所在文件夹有关的程序如下图所示。

    这是kali回连获取的windows的cmd程序!

    其他几个命令分析方法类似,一般Kali中执行指令,Windows日志中就会记录这个C:WindowsSysWOW64cmd.exe。

    二、恶意软件分析

    分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

    (1)读取、添加、删除了哪些注册表项

    (2)读取、添加、删除了哪些文件

    (3)连接了哪些外部IP,传输了什么数据(抓包分析)

    第一步:下载安装Systracer。

    1.首先下载完成后进行安装

    ->设置监听端口号(我设成了后门生成时利用的端口)

    ->安装完成

    2.在打开后门前先快照一下,点击“take snapshot”,如图,按照以下步骤进行:

    完成后显示Snapshop #1

    3.Kali打开msfconsole,完成相关设置后开始监听,Windows运行后门后,拍摄快照:

    完成后显示Snapshop #2

    4.进行分析:

    ①点击上方“Applications”->左侧“Running Processes”->找到后门进程“wangzhe_backdoor.exe”->点击“Opened Ports”查看回连地址、远程地址和端口号:

    ②在快照界面“Snapshots”右下角点击“Compare”,比对一下回连前后计算机发生的变化:

    所有蓝色标注的地方,就是前后发生变化的地方。

    发现对注册表中System子键进行了修改,修改内容如下:

    虽然不知道具体什么意思,但我们还是可以了解攻击机获取主机权限后修改了什么。

    6.此外我们可以通过查看后门软件的“opened handles”(打开的句柄)来对比他们都做了什么:

    回连成功时:

    进行相关操作后,跟只是回连相比,多了很多内容:

    第二步:用wireshark抓包分析连接了哪些外部IP,传输了什么数据

    实验总结与体会

    通过本次实验,我学会了如何让计算机周期性执行一个任务、如何利用excel分析数据、如何利用Sysmon监控自己感兴趣的事件、如何写配置文件、如何对恶意代码进行进一步分析。实现了从攻击者到检测、分析者身份的转变,更全面的理解了前两次实验中生成的后门程序到底在做什么,对恶意代码有了更深入的理解。

  • 相关阅读:
    【Azure 应用服务】由 Azure Functions runtime is unreachable 的错误消息推导出 ASYNC(异步)和 SYNC(同步)混用而引起ThreadPool耗尽问题
    【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中
    【Azure 应用服务】Azure Function 不能被触发
    【Azure 环境】Azure Key Vault (密钥保管库)中所保管的Keys, Secrets,Certificates是否可以实现数据粒度的权限控制呢?
    【Azure 事件中心】为应用程序网关(Application Gateway with WAF) 配置诊断日志,发送到事件中心
    【Azure 事件中心】azure-spring-cloud-stream-binder-eventhubs客户端组件问题, 实践消息非顺序可达
    【Azure API 管理】Azure API Management通过请求中的Path来限定其被访问的频率(如1秒一次)
    【Azure 环境】前端Web通过Azure AD获取Token时发生跨域问题(CORS Error)
    【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
    【Azure 应用服务】App Service中抓取 Web Job 的 DUMP 办法
  • 原文地址:https://www.cnblogs.com/wangzhe1998/p/10648364.html
Copyright © 2011-2022 走看看