20154312 曾林 Exp4恶意软件分析
写在前面
如果把恶意软件比作罪犯的话,怎么看这次实验?
实验目的:以后能够在茫茫人海中找到罪犯。
实验过程:现在以及抓到了一个罪犯,把他放到茫茫人海里去,看看他和普通人有啥区别。这些区别就是罪犯的特征,以后可以根据这些特征找到更多的罪犯。
实验手段:利用各种技术去找到罪犯和普通人的区别。
回答问题
Q:如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
A:
- 监控TCP连接
- 监控注册表修改情况
- 监控创建新的文件
- 监控是否频繁连接未知IP
- 利用日志进行监控
Q:如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
A:
- PEiD:是否加壳
- PE Explorer:反汇编是否有问题,是否有不正常的Data
- Wireshark:抓包分析,是否有可疑连接
- TCPView:查看是否使用cifs端口
- Systracer:程序运行前后是否有注册表、端口、文件的变化
实践过程记录
目录
1.系统运行监控
1.1Sysinternals工具集
1.1.1TCPView工具
1.1.2Sysmon工具
1.1.3Promon工具
1.2计划任务并记录联网行为
1.3Wireshrak分析
2.恶意软件分析
2.1VirScan分析恶意代码
2.2分析软件动态分析
2.2.1PE Explorer
2.2.2PEiD
2.2.3SysTracer
1.系统运行监控
系统运行监控大致可以分为两种:
- 通过Sysinternals工具集来进行实时的分析,分析出有哪些进程、程序是比较可疑的。
- 通过建立任务计划,将一段时间内的程序动态记录在日志里,然后通过分析日志来检查是否有可疑的程序。
1.1Sysinternals工具集
Sysinternals Suite包含一系列免费的系统工具,其中有大名鼎鼎的Process Explorer、FileMon、RegMon等,如果把系统管理员比喻成战士的话,那么Sysinternals Suite就是我们手中的良兵利器。熟悉和掌握这些工具,并且对Windows的体系有一定的了解,将大幅度的提高日常的诊断和排错能力。
这次我们主要使用的是:
- TCPView
- Sysmon
- Promon
1.1.1TCPView工具
顾名思义,TCPView
自然是用来监测TCP连接的工具,在开启后门的情况下,打开工具就可以看到后门程序正在通过RemotePort:4312连接到RemoteAdress:192.168.15.132,值得注意的是LocalPort这一栏只有4312-3是cifs,其他的进程都是具体的端口号。
查阅资料可以知道cifs是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。很明显如果有程序的LocalPort显示为cifs的时候就要注意了。
1.1.2Sysmon工具
Sysmon
是Sysinternals工具集
里面一个重要工具,最主要的功能就是可以通过自定记录规则进行系统运行的监控,语法结构与HTML
一致,在老师配置文件的基础上我修改了一份自己的配置文件。
<Sysmon schemaversion="4.00">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<NetworkConnect onmatch="exclude">
<Image condition="end with">Chrome.exe</Image>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
<DestinationPort condition="is">4312</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="endwith">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
配置的时候可能会由于版本号不对导致无法进行配置,只要修改头部的版本号就可以了。就是这个<Sysmon schemaversion="x.xx">
。
显示Sysmon started
之后就开始记录了,到事件管理器里面就可以看到。
使用Sysmon的查找功能可以迅速找到你想要查找的有关内容
或者使用筛选器,筛选出一段时间内的信息
结合这两点分析,就找到了电脑上的后门4312-3.exe
1.1.3Promon工具
同属于Sysinternals工具集
主要是对于进程进行的分析,并且能够以进程树的形式分析每一个进程的行为。
刚开始分析就看到了一个很奇怪的东西
这个JUMP文件是我当时实践跳一跳脚本的文件夹,莫名其妙出现了一个LDSGameCenter
的文件,正打算百度一下看看这是个啥,结果一念发现LDS=鲁大师
这可能是个鲁大师的游戏中心文件,百度了一下果然是。我说我怎么一直找不到鲁大师游戏中心到底存哪了。顺藤摸瓜把它删了。
如果选择用ProcessTree
视图查看可以看到很多cmd.exe的进程树,我觉得都很可疑,因为一般正常的程序是不会有一个cmd.exe进程在下面常驻的,一个一个点开看,果然看到了4312-3.exe
。
对4312-3.exe
进行分析,可以看到程序的链接路径
进行回连之后,先执行dir
命令,可以看到4312-3.exe
读取了整个Desktop
的文件,并且进行了CreateFile
和CloseFile
操作。
再看看执行webcam_snap
会有什么不同,可以看到新出现了LoadImage
等一系列操作。并且还修改了和COM3
有关的注册表,COM3
明显是一个端口,这一点已经很可疑了,一般不会有什么程序用到COM1
COM2
之外的端口。
我们再用record_mic
命令试试看
又一次修改了COM3
端口有关的注册表,可以推测修改COM3
端口是后门程序传输数据的一个重要特征。我们再看一看4312-3.exe
的具体信息
可以看到还调用了advapi32.dll
库,这个库包含了函数与对象的安全性、注册表操控以及事件日志。这也可以作为后门程序的一个特征了。
1.2计划任务并记录联网行为
在创建计划任务之前,先创建一个netstatlog.bat
文件(命令:echo netstatlog.bat
),用来把netstat
记录的东西格式化输出到netstatlog.txt
,其内容如下:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
之后就可以在Windows>>计划任务里面创建新的计划,注意勾选以最高权限运行
设置里面启动的程序只要选netstatlog.bat
就ok,积累了一天的日志可以开始分析了。
首先是把netstatlog.txt
导入到excel中去,导入之后选择分隔符进行拆分就好了。
之后我们再建立数据透视表/图,这样可以更加直观的看到情况,注意筛选一下行标签就行。
筛选之后我们可以分别建立:
程序联网频率图
外部IP地址连接频率图
连接状态频率图
协议使用频率图
我们主要是分析前两个,通过分析比较,我发现了程序联网频率图里有一个连接频率高,而且我不认识的程序perfwaston2
,上网一查,结果发现Virscan上75%概率是病毒。
利用搜索功能,我找到了这个perfwaston2
,结果发现它竟然在VisualStudio
的目录下面,通过百度,发现也有人说这个是VS用来防止扩展的。
以防万一,我上传到Virscan
上试试看
和我自己做的后门的报错率竟然一样,引擎都一样是这个F-PORT
。我接着去日志里面找到了它的连接情况
去找一下这个IP在哪
香港 Microsoft数据中心,可我还是不明白一个防扩展程序为什么要联网?接着把它反汇编一下
反汇编看不出来啥,我打算发封邮件去给微软了。
接着分析外部IP的数据透视图,不出意外找到了一个奇怪的IP地址,连接了1036次。
到日志里找一下看看到底是谁连的
XLServicePlatform
,百度一下看看它是干啥的
%!@#*&……!@#……!流氓服务!还连了1036次!我的流量啊!
另外:这个地址是个山东联通的地址。
最后还是在茫茫人海里找到了我的后门。
1.3Wireshark分析
回连的时候Wireshrak
可以捕获到整个过程
输入Webcam_snap
命令之后可以看到,有N个满载(1514)的TCP数据包,大胆猜测,这几个就是传输Webcam
拍到的图片的数据包。
2.恶意软件分析
恶意软件分析部分主要是运用各种分析工具,从不同的角度对恶意软件进行“解刨”。
2.1VirScan分析恶意代码
好像分析不出来啥???
2.2分析软件动态分析
利用分析软件进行动态分析可以知道每一个软件每时每刻在干啥,有比较直观的反馈。
2.2.1PE Explorer
利用PE Explorer
可以看到程序的头部信息
以及程序的一些数据
还有就是程序的结头信息
PE也可以进行反汇编,反汇编之后得到如下信息
个人感觉PE的分析还是偏向于静态除非对于程序内部结构比较了解,不然在发现可疑程序方面不如动态的分析。
2.2.2PEiD
这个查壳软件解释了之前为什么加壳什么用都没有,太容易被查了...
2.2.3SysTracer
在使用SysTracer之后发现,它最重要的功能不是在于可以做系统快照,而是在于可以比较系统快照之间的不同。
我根据
- 为植入后门
- 植入后门后进行回连
- 回连之后使用
dir
命令
分别进行了三次系统快照,结果如下
通过三者之间两两比较可以发现注册表上的变化
很明显可以发现4312-3.exe
这个可疑进程,并且第二张图里面可以看到,有一条奇怪的data执行了inetcpl.cpl.-4312#immutable1
,查资料之后就会知道inetcpl.cpl
是控制面板上的Internet选项,大胆猜测这个很有可能是后门程序添加了4312
这个端口有关的参数到Internet选项中去,来方便通信。
实验总结与体会
一个可疑程序应该有哪些特点?
- TCPView:LocalPort为cifs
- Sysmon:频繁连接未知IP
- Promon: 藏在
cmd.exe
进程树下面,执行诸如LoadImage
createfile
之类的操作,并且修改端口注册表 - Wireshark: 传输1514大小的TCP数据包给一个未知IP
- PE Explorer:有异常的Data,反汇编后程序中有异常的跳转
- PEiD:程序加过壳
- SysTracer:修改
inetcpl.cpl
最后,日志分析真的真的是个好东西!
20154312 曾林 Exp4恶意软件分析的更多相关文章
- 20154312 曾林 Exp3 免杀原理与实践
20154312 曾林 0.写在前面 AV厂商检测恶意软件的方式主流的就三种: 基于特征码的检测 启发式恶意软件检测 基于行为的恶意软件检测 我们要做的就是让我们的恶意软件没法被这三种方式找到,也就是 ...
- 20154312 曾林 EXP6 信息搜集与漏洞扫描
目录 1.实验后回答问题 2.实验总结与体会 3.实践过程记录 --3.1.信息收集 ----3.1.1.whois查询 ----3.1.2.nslookup,dig查询 ----3.1.3.trac ...
- 20154312 曾林 ExpFinal CTF Writeup
0.写在前面 1.不合理的验证方式 2.加密与解密的对抗 3.一个SQL引发的血案 4.管理员的诟病 5.备份信息的泄露 6.svn信息泄露 7.coding 8.平衡权限的威胁 9.文件上传的突破 ...
- 20154312 曾林 EXP9 Web安全基础
目录 -0.webgoat Could not find source file -1.基础问题回答 -2.环境配置 -3.Injection Flaws ----3.1.Numeric SQL In ...
- 20154312 曾林 Exp8 web基础
1.基础问题回答 1.1.什么是表单 1.2.浏览器可以解析运行什么语言 1.3.WebServer支持哪些动态语言 2.实践总结与体会 3.实践过程记录 ----3.1.Web前端:HTML基础 - ...
- 20154312曾林 - Exp1 PC平台逆向破解
1.逆向及Bof基础实践说明 1.1-实践目标 对象:pwn1(linux可执行文件) 目标:使程序执行另一个代码片段:getshell 内容: 手工修改可执行文件,改变程序执行流程,直接跳转到get ...
- 20154312 曾林 EXP7 网络欺诈防范
目录 1.基础问题回答 ----1.1.通常在什么场景下容易受到DNS spoof攻击 ----1.2.在日常生活工作中如何防范以上两攻击方法 2.实践总结与体会 3.实践过程记录 ----3.1.简 ...
- 20154312 曾林 Exp5_MSF基础应用
--目录-- MSF渗透测试-CVE-2017-11882 1.基础内容回答 2.实践过程记录 2.1.主动攻击实践-ms08_067 2.2.针对浏览器的攻击-ms10_046 2.3.针对客户端的 ...
- 安全学习概览——恶意软件分析、web渗透、漏洞利用和挖掘、内网渗透、IoT安全分析、区块链、黑灰产对抗
1 基础知识1.1 网络熟悉常见网络协议:https://www.ietf.org/standards/rfcs/1.2 操作系统1.3 编程2 恶意软件分析2.1 分类2.1.1 木马2.1.2 B ...
随机推荐
- 解决启动Distributed Transaction Coordinator服务出错的问题
解决启动Distributed Transaction Coordinator服务出错的问题 "Windows 不能在 本地计算机 启动 Distributed Transaction ...
- javaAgent 参数
-javaagent 这个JVM参数是JDK 5引进的. Java -help的帮助里面写道: -javaagent:<jarpath>[=<options>] load Ja ...
- oracle的日期相减
oracle的日期相减 : 两个date类型的 日期相减,得到的是天数,可能是带小数点的.如下:
- SSL/TLS 握手优化详解
随着 HTTP/2 的逐渐普及,以及国内网络环境越来越糟糕(运营商劫持和篡改),HTTPS 已经开始成为主流.HTTPS 在 TCP 和 HTTP 之间增加了 TLS(Transport Layer ...
- js-之NaN和isNaN
NaN (not is number) 不是一个数字的意思,在js中整型和浮点数都是Number类型. 除此之外,Number还有一个特殊的值,NaN. 一.可能会产生NaN值的情况 1.表达式计算, ...
- C# 枚举 小总结
枚举 枚举类型声明为一组相关的符号常数定义了一个类型名称. 枚举类型为定义一组可以赋给变量的命名整数常量提供了一种有效的方法.例如:假设你必须定义一个变量,该变量的值表示一周中的一天.该变量只能存储七 ...
- mysql全局唯一ID生成方案(二)
MySQL数据表结构中,一般情况下,都会定义一个具有‘AUTO_INCREMENT’扩展属性的‘ID’字段,以确保数据表的每一条记录都可以用这个ID唯一确定: 随着数据的不断扩张,为了提高数据库查询性 ...
- 【make install】自定义安装目录,添加动态链接库 【--prefix】 【ldconfig】 【LD_LIBRARY_PATH】
怎么卸载make install安装的软件? https://www.zhihu.com/question/20092756 怎么指定安装目录以及对应的添加动态库的方法 linux库在不指定安装路径时 ...
- PULL解析学习
学习过程 安卓中有三种对XML解析的方式,这个众所周知,DOM,SAX,PULL 其中被推荐的方法是PULL,说是非常简单,但从一开始接触就觉得比较迷惑,总是云里雾里的感觉,甚至在自己写出了一个能 ...
- 【JMeter】如何用JMeter进行压力测试
[JMeter]如何用JMeter进行压力测试(调试脚本已再猪猪微信的收藏中进行了收藏哦,名字叫exam-wow.jmx) 一.用badboy录制压测过程形成脚本另存为jmeter格式文档. 二.JM ...