20194311姜晨昊Exp-4 恶意代码分析
目录
- 20194311姜晨昊Exp-4 恶意代码分析
- 一、实践目标
- 二、实践内容
- 2.1 系统运行监控——任务计划
- 2.1.1 写好脚本(命令行语句)netcontrol4311.bat,再新建一个txt文档netstatloq.txt用于接收数据
- 2.1.2 用命令行创建一个任务计划
- 2.1.3 打开任务计划程序
- 2.1.4 在常规中选择使用最高权限运行,在条件中关闭电源限制
- 2.1.5 在操作栏清空参数,选择批处理文件
- 2.1.6 等待一段时间即可得到数据
- 2.1.7 在EXCEL中分析所得数据
- 2.1.8 分析结果
- 2.2 系统运行监控——sysmon
- 2.2.1 编写配置文件
- 2.2.2 安装sysmon
- 2.2.3 打开日志
- 2.2.4 打开kali进行exploit,主机运行20194311backdoor5.exe后门程序,回连到kali,kali执行shell获取主机的cmd
- 2.2.5 再次查看日志
- 2.3 恶意软件分析
- 2.3.1 用wireshark分析tcp包
- 2.3.1.1 在主机抓包
- 2.3.1.2 kali中用wireshark分析
- 2.3.1.3 ncat传送后门程序
- 2.3.2 通过2.1中的任务计划分析
- 2.3.3 通过SysTracer分析
- 三、实验后回答问题
- 3.1 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 3.2 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息?
- 四、实验感想
20194311姜晨昊Exp-4 恶意代码分析
一、实践目标
- 1.系统运行监控
使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。 - 2.恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件读取、添加、删除了哪些注册表项,读取、添加、删除了哪些文件,连接了哪些外部IP,传输了什么数据。
二、实践内容
2.1 系统运行监控——任务计划
先来学习一下schtasks的命令,贴上参考链接schtasks
的命令
2.1.1 写好脚本(命令行语句)netcontrol4311.bat,再新建一个txt文档netstatloq.txt用于接收数据
date /t >> D:\desk\netstatlog.txt
time /t >> D:\desk\netstatlog.txt
netstat -bn >>D:\desk\netstatlog.txt
2.1.2 用命令行创建一个任务计划
在cmd中输入以下指令
schtasks /create /TN netcontrol4311 /sc MINUTE /MO 1 /TR “cmd /c netstat -bn > D:\desk\netstatlog.txt”
TN是创建的计划任务名是netcontrol1227,sc表示计时方式,TR表示执行的指令,>表示输出重定向
2.1.3 打开任务计划程序
“WIN+R”调出“运行”窗口,输入“taskschd.msc”按回车
2.1.4 在常规中选择使用最高权限运行,在条件中关闭电源限制
电源限制可以选择性使用,此处只是为了收集更多的信息,故关闭了电源限制
2.1.5 在操作栏清空参数,选择批处理文件
2.1.6 等待一段时间即可得到数据
2.1.7 在EXCEL中分析所得数据
新建excel,数据→自文本→选择数据源→netcontrol4311.txt,勾选分隔符号
选择要分析的列——>选择插入——>选择数据透视图——>直接默认值确认
右侧选择分析的日期,拖入下方的轴和值
同样的方法,可以得到连接的外部ip地址的统计图
2.1.8 分析结果
出现最多的是TCP,established,established意思是TCP连接成功,再下来就是[QQLive.exe],是QQ在线电视直播软件相关程序发起了26次TCP连接,下面列举出来连接最多的一些外部网站,端口基本上都是通过443端口(https)
2.2 系统运行监控——sysmon
2.2.1 编写配置文件
创建一个txt文档写入如下内容,再将后缀名改为.xml,放到sysmon文件夹
<Sysmon schemaversion="4.81"><!-- 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> <Image condition="end with">QQBrowser.exe</Image> </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">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 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用
2.2.2 安装sysmon
下载完成后以管理员权限运行cmd,进入安装目录,输入安装命令Sysmon64.exe -i,点击agree
输入.\Sysmon.exe -i peizhi4311.xml
2.2.3 打开日志
打开事件查看器(win+R运行eventvwr.msc)——>应用程序和服务日志->Microsoft->Windows->Sysmon->Operational
2.2.4 打开kali进行exploit,主机运行20194311backdoor5.exe后门程序,回连到kali,kali执行shell获取主机的cmd
生成20194311_backdoor.exe后门程序
exploit监听
2.2.5 再次查看日志
根据时间观察对应的事件
可以在Sysmon的日志中看到进程创建
2.3 恶意软件分析
2.3.1 用wireshark分析tcp包
2.3.1.1 在主机抓包
启动wireshark选择接口,先运行ipconfig找到kali所用接口,然后选择
输入以下进行筛选
ip.addr == 192.168.175.128
由下图,可以看到kali和主机之间一直在进行三次握手以及UDP包的传递
2.3.1.2 kali中用wireshark分析
主机ip:192.168.3.81
虚拟机ip:192.168.175.128
点击右上方的kali图标,搜索wireshark,进入wireshark
选择需要监听的网卡,双击即可开始监听
2.3.1.3 ncat传送后门程序
主机开启监听
kali传输
ncat 192.168.3.81 4311 < 20194311_backdoor.exe
抓包结果如下
496-498三行很明显是经典的三次握手连接
现在来看看下面的详细信息,因为用的tcp反弹式连接,所以基本上都是tcp包,详细信息一次类推
第一行,帧Frame499指的是要发送的数据块,其中捕获字节等于传送字节数:7354字节
第二行,以太网,有线局域网技术,是数据链路层。源Mac地址为00:0c:29:92:42:0f,目标Mac地址为00:50:56:e6:34:6e
第三行,IPV4协议,也称网络协议,是网络层;源IP地址为192.168.175.128,目的IP地址为:192.168.3.81
第四行,TCP协议,也称传输控制协议,是传输层;源端口(45956);目标端口(4307);序列号(1);ACK是TCP数据包首部中的确认标志,对已接收到的TCP报文进行确认,值为1表示确认号有效;长度为7300字节
第五行,数据共有7300字节
可以看出来ncat是将后门程序分段传输过去的,我生成的后门程序大小为73802字节,最终总计也应为73802字节
打开msfconsole,并设置打开kali监听,并在Windows中启动后门程序,抓包
可以看到这里其实是kali(192.168.175.128)与192.168.175.1之间的数据传输,因为这里我采用的是NAT网络模式,所以对虚拟机来说,在不指定IP的情况下,和主机的数据交换其实就是和192.168.175.1的交换
2.3.2 通过2.1中的任务计划分析
如下图所示,在20194311_backdoor.exe启动后,通过上文中的程序找到了192.168.175.1(本机)向192.168.175.128(Kali虚拟机)的TCP包,由此可见在程序启动后会隔一段时间就会发送TCP包。
2.3.3 通过SysTracer分析
安装时一直点击下一步即可
systracer可以记录下计算机某个时刻的状态。然后过一段时间后再次记录。通过比较两次记录中计算机的不同进行相应的分析
等待右上角检测完毕生成当前快照Snap shot #1
然后在kali上打开监听,并在Windows上运行后门程序后再次快照,生成Snap shot #2
在kali上对主机进行一些列操作,dir、mkdir20194311,再次快照,得到Snap shot #3
对比快照1和快照2
在右下角选择要对比的两个快照,再点击compare
为了更清晰地知道我们的计算机被执行了什么操作,所以选中only differences
通过查看Running Processes、Opened Handles、Opened Ports,可以更直观地看到后门程序的执行,以及它添加了哪些句柄和连接的是哪个端口。
这里可以看到后门程序是通过1028
端口对192.168.175.128:4311
进行连接,这里可以看出后门采用的是反弹端口连接方式。
对比快照Snapshot #2和快照Snapshot #3
新增了这个进程
新增20194311exp4文件夹
三、实验后回答问题
3.1 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
首先要监控的是网络,可以就用schtasks设置任务,然后筛选出可疑的网络行为。但凡攻击者想进行远程操作,建立了连接,就一定会被记录到
然后检测进程,比如攻击者要抓肉鸡DDOS或者挖矿,肯定会导致占用的CPU不正常(虽然我感觉应该很少抓PC)
还有要检测文件的创建和删除。如果攻击者是通过小马传大马的方式进行进一步的攻击,检测文件的创建和删除可以防止进一步的攻击,这个可以用schtasks,也可以用systracer。
最后是监控对驱动和硬件的调用,将损失尽量减少。
3.2 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息?
Process Monitor可以看的很清楚这个进程的实施者、端口等等,如果能定位到具体的exe,可以进一步丢到vt上,或者用ida反编译之类的深入研究。
四、实验感想
- 在这次实验的抓包中我遇到了很大的问题,网卡设置为仅主机或者NAT时,会出现主机虚拟机之间无法互相ping通的现象,并且设为仅主机时虚拟机不能连接互联网,而设置为桥接虽然可以使主机虚拟机之间互相ping通且虚拟机可连接互联网,但却在使用wireshark抓包时毫无反应,在网上搜索并尝试多种解决方法均无果,最后,我选择放弃了Virtual box,用硬盘把我室友的VMware拷贝了过来,使本次实验得以顺利完成。
- 在最开始设置完任务计划后,txt文档中却只会出现“请求的操作需要提升”字样,反复确定各设置无误后,发现是脚本文件中少打了一个空格,有点粗心大意了。
- 本次实验给我的感觉确实不如实验二有趣,并且经过这几次实验的对比,我认为防御的难度更高一些,需要掌握更加全面的知识,这也使我更加敬佩那些致力于防御工作的人,毕竟这项工作难度更高、趣味性却较低。
20194311姜晨昊Exp-4 恶意代码分析相关推荐
- 20194311姜晨昊Exp3-免杀原理与实践
文章目录 20194311姜晨昊Exp3-免杀原理与实践 一.基础问题回答 1.1 杀软是如何检测出恶意代码的? 1.2 免杀是做什么? 1.3 免杀的基本方法有哪些? 1.4开启杀软能绝对防止电 ...
- 20194311姜晨昊Exp6-MSF应用基础
20194311姜晨昊Exp6-MSF应用基础 零.实验准备 一.实践内容 1.1 一个主动攻击实践 1.1.1 关闭防火墙 1.1.2 打开445端口 1.1.3 查看靶机IP地址 1.1.3 执行 ...
- 20194311姜晨昊Exp5- 信息搜集与漏洞扫描
20194311姜晨昊Exp5- 信息搜集与漏洞扫描 20194311姜晨昊Exp5- 信息搜集与漏洞扫描 一.各种搜索技巧的应用 1.1 搜索某一个网址目录结构 1.2 通过搜索引擎进行信息搜索 1 ...
- 20194311姜晨昊Exp2-后门原理与实践
文章目录 20194311姜晨昊Exp2-后门原理与实践 一.实验基础 基础知识 后门的概念 常用后门工具 1.NC和Netcat 2.SoCat 3.Meterpreter 二.实验目标 三. 实验 ...
- 20194311姜晨昊Exp-8 Web综合
20194311姜晨昊Exp-8 Web综合 一.基础问题回答 1.1 .什么是表单 1.2 浏览器可以解析运行什么语言 1.3 WebServer支持哪些动态语言 二.Web前端HTML 2.1 启 ...
- 20194311姜晨昊Exp7-网络欺诈防范
20194311姜晨昊Exp7-网络欺诈防范 一.实验过程 1 简单应用SET工具建立冒名网站 2 ettercap DNS spoof 2.1 配置kali网卡 2.2 对DNS缓存表进行修改 2. ...
- 20145212罗天晨 恶意代码分析
20145212罗天晨 恶意代码分析 一.实验问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. (1 ...
- 恶意代码分析实战Lab1
第一章静态分析基础技术 恶意代码分析实战 恶意代码样本下载 1.1反病毒引擎扫描 1.2哈希值 1.3查找字符串 1.4加壳与混淆恶意代码 1.5PE文件格式 1.6链接库与函数 1.7静态分析技术实 ...
- 20145236《网络攻防》Exp4 恶意代码分析
20145236<网络攻防>Exp4 恶意代码分析 一.基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些 ...
最新文章
- python中的format函数_python中的format 函数是什么?如何使用?
- LINUX 下 WEBlogic集群的搭建-01
- CRM呼叫中心异步搜索实现的调试截图
- bootstrap快速入门_在5分钟内学习Bootstrap 4-快速入门指南
- python读取bmp文件_如何在python中读取bmp文件头?
- OUTLOOK 的PST文件和OST文件的区别
- weblogic进程自动关闭_手机内存不够还卡顿,那是你不会清理,关闭这3个设置就变流畅...
- IOS开发--仿制网易新闻
- fastclick.js插件使用简单说明
- 390计算机毕业设计
- C++博客十八罗汉造像
- (转)通过Net-Speeder为***提升网速
- java计算机毕业设计微留学学生管理系统源码+数据库+系统+lw文档+mybatis+运行部署
- 大数据工程师零基础起步——成长路线引入
- 2009年中国互联网大佬之众生相
- android视频动态壁纸app,视频动态壁纸app下载-视频动态壁纸app安卓版下载V1.0安卓版 - 非凡软件站...
- 同型号服务器更改硬盘,服务器更换硬盘需要怎么做
- 三国志13pk版登录武将输入中文名方法与更改图像详解
- laravel框架实现微信支付
- html5百度百科页面代码,百度百科-html.doc