实 验 报 告
- 监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 分析一个恶意软件,工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
- 系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 恶意软件分析
分析该软件在 启动回连,安装到目标机 及 其他任意操作时,该后门软件 (1)读取、添加、删除了哪些注册表项
(2)读取、添加、删除了哪些文件
(3)连接了哪些外部IP,传输了什么数据(抓包分析)
1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。
1.1 编写计划任务所需执行的脚本
1.2 添加任务计划(每分钟记录一下网络状态)
打开任务计划程序
win R + taskschd.msc
找到刚刚创建的任务,查看它的属性
在常规中选择使用最高权限运行,在条件中关闭电源限制
在操作中把要执行的 cmd 改成之前写好的 bat 脚本
之后 windows 就会每个一分钟,执行一次指定的脚本
我在 30 分钟后 手动结束了任务
1.3 日志数据分析
然后使用 Excel 分析刚刚脚本产生的数据
导入数据、设置分割符
建立数据透视图
同样可以建立外部地址的数据透视图
结果分析
在第一张图中,SLBrowser.exe 最发起的连接最多,svchost.exe 第二 ,setup.exe 第三
打开资源监视器,发现是 VC 建立的连接。当时正在更新 Visual Studio。
发现 QQ 浏览器在偷偷地向外建立连接,kill掉
再看看第二张图中的 IP 都是什么地方的
上站长工具 https://ip.tool.chinaz.com/
可惜没充钱,用不了付费功能
2. 安装配置 sysinternals 里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
下载地址: https://download.sysinternals.com/files/Sysmon.zip
官方文档:https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysmon
过滤选项,查看一个事件的详细信息里面就能看到它都记录了哪些选项。
这里列几个常用的
2.1 编写配置文件
2.2 初始化(安装) Sysmon,之后更新 xml 配置可以 -c 完成
捕捉到的事件太多,不利于发现恶意软件。
2.4 进一步改进 XML 配置文件,把捕捉到的合法的操作都放过去。
2.5 重启 sysmon ,更新配置文件
2.6 重新检查
找到了可疑的 进程创建 和 网络连接
企图连接到 192.168.144.151 的 1206 端口
假设已经通过前面的系统监控,发现了可疑的恶意软件 20191206backdoor.exe
下面进一步分析,20191206backdoor.exe 想要对我们的电脑干什么,有什么功能
主要考虑三个方面:
- 修改文件(改写注册表、启动项,删除重要数据...)
- 网络连接(反弹shell,开启端口监听,向外部IP发送了什么数据...)
- 进程(进程迁移、进程注入、进程提权...)
1. 静态分析
1.1 Virus Total 行为分析
没分析出太多有用的信息,可能是因为这个后门的检出率本来就小
1.2 PEiD 分析
说不是PE文件......
再拿到 kali 里面 file 一下
PE32+ executable (GUI) x86-64, for MS Windows
来都来了,加个壳再走吧
再用 PEiD 检测一下,依然没检测出来
再给次机会吧,给个经典的 windows meterpreter reverse tcp 的 upx 压缩壳
检测出来了
1.3 kali strings 命令
发现一串 base64
拿去解码一下,结果有奇效,发现恶意软件主要源代码 !!!
1.4 IDA pro 反汇编 和 反编译
1.4.1 F5 一键反编译
反汇编窗口有个小小的流程图
Functions 里没有 main 函数, 有 start 函数
暂时先到这个程度
2. 动态分析
动态分析就要运行恶意程序了,要先弄个沙盒给它隔离起来
在 沙盒 sandboxie-plus 中运行 20191206backdoor.exe
2.1 systracer 快照对比(主要是文件对比)
由于 20191206backdoor.exe 是在沙盒中运行的,systracer 也要在沙盒中运行
2.1.1 在运行 20191206backdoor.exe 之前先拍一个快照,作为对照
2.1.2 在 20191206backdoor.exe 连上 kali 之后,再拍一个快照
2.1.3 在 kali 执行攻击命令之后,再拍一个快照
2.1.4 比较前两个快照
可见,后门连接前后,注册表没有明显发生变化,但是在 C 盘根目录多了两个隐藏文件 pagefile.sys 虚拟内存页面文件。 同时检测到应用软件 20191206backdoor.exe 的状态变化,多次建立 TCP 连接,并打开的多个句柄。
2.1.4 比较前后两个快照
在 pdf 文件中可以看到注册表变化的细节
可以发现运行过 screenshot
有些文件也有细微的变化,但是我们不能确认是否是因为被攻击而导致
2.2 wireshark 网络流量分析
我是NAT, 所以选中 VMnet8 这张网卡,开始捕获
由于 payload 是 reverse_tcp_ssl 所以可以看到 TLS 协议(SSL)
可见,恶意软件 从 192.168.144.1:30725 连向 192.168.144.141:1206
再用 wireshark 分析一下流量
简单总结一下: 发起连接 从 192.168.144.1:30725 连向 192.168.144.141:1206 使用 TLS/SSL 协议 使用了密码套件,对数据进行了加密处理 有两次时间间隔不相等的尖峰,很可能是攻击者在手动进行操控
2.3 Process Explorer 进程分析
同样,在 sandboxie-plus 中运行
可以看到进程使用网络的情况
进程基本信息
进程的线程信息
使用资源的情况
最后把这个进程 kill 掉
通过本次实验,我对如何判断系统是否有恶意软件在搞事情,有了进一步的理解和领悟。以前如果我的计算机中了病毒,我都会先把网络断掉,然后关门打狗。现在可能多掌握了几种方法。
在系统监控的环节中,产生的日志消息是很多的。如何从减少无用的日志信息,并从大量的日志信息中提取中有用的信息,并最终发现异常,在本次实验中我发现这并不容易。尤其是在第一次 sysmon 监控系统的时候,小小的配置文件,导致了大量的无用数据,而要从大量的数据中找到恶意程序的数据,要人工手工,简直是不可能。所以说,运维也不容易啊。
更何况,一个合格的病毒,应该能伪装成正常的程序和功能,使其不容易被发现。
在恶意软件分析中,基本掌握了基础的静态分析方法和动态分析方法。没想到这次实验中,静态分析方法中的 strings 命令工具,居然大显神威,是本次实验中最有效的分析方法,直接看到了源代码的base64,解码之后就是恶意软件的源代码。
这也提醒我们,在恶意软件分析的时候要综合使用静态方法和动态方法,不可偏废。
以上就是本篇文章【java恶意代码的检测工具 恶意代码分析实战 实验】的全部内容了,欢迎阅览 ! 文章地址:http://www.cs-ej.cn/news/6778.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 成事e家移动站 http://shsunc.cs-ej.cn/ , 查看更多