20154319实验四 恶意代码分析
一、实验内容
1.监控自己系统的运行状态,看有没有可疑的程序在运行。
2.分析一个恶意软件,分析Exp2或Exp3中生成后门软件。
二、实验后问题回答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:我觉得这次实验就给我们提供了很好的方法,我们可以通过批处理设计windows计划任务触发器,定时触发,所得数据在excel中分析得到数据透视图,最后对联网次数较多的重点分析,可以使用Sysmon 查看怀疑对象的日志。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:可以用SysTracer快照啊,通过前后对比来分析出变化;看其他同学的博客,还可以用Wireshark工具抓包分析,以及Process Monitor可以用来看看进程做了什么。
三、实验体会
这次实验我可以说是很悲惨了,一直开着自己手机的热点做的,因为不知名的原因我的后门回连能成功回连纯粹是靠运气。这次实验下载了好几个之前不认识的软件用来分析恶意软件,工具的使用并不是很难,只是对于刚接触的我来说,分析真是一件很难的事情,实际上写在博客中的分析也是很浅显的,以后要更加努力才行。Wireshark之前下载安装有问题,就没有做了。其次,在对系统监控的期间,发现了一些流氓软件会自动连接网络,给电脑运行造成一些不必要的麻烦,还是关掉的比较好,嘻嘻。(实验是分好几个时间段完成的,所以用了好几个后门程序。)
四、实践过程
(一)系统运行监控
(1)输入命令:schtasks /create /TN netstat /sc MINUTE /MO 2 /TR “d:\netstatlog.bat”,实现每2分钟记录一下有哪些程序在连接网络
(2)在d盘目录下建一个文件d:\netstatlog.bat,内容为
date /t >> d:\netstatlog.txt
time /t >> d:\netstatlog.txt
netstat -bn >> d:\netstatlog.txt
(3)通过“Windows->控制面板->管理工具->任务计划程序”,找到我的任务
(注:将条件的电源那一栏的选项都去掉,否则断电后就无法运行)
(设置是执行一天,但数据统计只是其中的几个小时了)
(4)打开记录文件netstatlog.txt记事本,可以看到每隔2分钟记录并且能够显示日期和时间
一开始没有注意没有管理员权限:
设置以后可以看到:
(5)复制到excel中,再进行统计分析。
导入数据:数据选项卡-获取外部数据-来自文本,选择文本netstatlog.txt,导入过程中选择分隔符号,分隔符号都选上,列数据格式选择常规,完成导入
选择一部分数据,使用数据透视工具分析得到直观的数据透视图
第一个选取了程序接入网络的次数:
上网查询了解了以下几个联网次数较多和我不熟悉的进程:
1.qmdl.exe
是腾讯电脑管家的进程,QMDL.EXE是电脑管家的下载中心进程和更新病毒库和下载补丁有关,是正常进程
2.AlibabaProtect.exe
这个看起来是阿里巴巴的程序,但是我那段时间我都没有打开过阿里巴巴相关的网站,这是怎么回事呢?
一查才知道不是阿里巴巴的程序,而是优酷的,以下是网友的回答,如果大家也有这个程序也是比较烦人的啊
“AlibabaProtect不仅占用大量内存和部分CPU,还在后台监控你的一举一动,然后给你精准推送广告,是一个名副其实的流氓软件,所以它不仅仅是一个文件,还是一个恶意软件。AlibabaProtect是由于优酷播放器强制安装导致的,用户可以选择卸载优酷客户端来解决看看。”
解决方法的链接:www.xitongzhijia.net/xtjc/20180202/119631.html
第二个选取了程序接入网络的IP:
上网查询了解了一些IP地址:
1.次数最多的:
这个其实还是有些不明白局域网是啥??
2.奇怪的端口
连接到了深圳的IP?
(二)Sysmon
Sysmon是微软Sysinternals套件中的一个工具。
(1)确定监控目标为网络连接。
(2)配置文件:我用的配置文件1.txt。配置文件是xml文件,为了简单编辑就直接命令为.txt。(第一个是排除的谷歌浏览器,要求的3种都有找到)
参考网址:http://www.freebuf.com/sectool/122779.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.exe</Image> </NetworkConnect> <NetworkConnect onmatch="include"> <DestinationPort condition="is">80</DestinationPort> <DestinationPort condition="is">443</DestinationPort> <DestinationPort condition="is">4319</DestinationPort> </NetworkConnect> <FileCreateTime onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </FileCreateTime> <ProcessCreate onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </ProcessCreate> <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>
用事件查看器查看
1.进程创建
2.创建时间
3.网络连接
(2)第二个把微软的网页排除,只找到了两个,没有创建时间
<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">Microsoft Edge.exe</Image> </NetworkConnect> <NetworkConnect onmatch="include"> <DestinationPort condition="is">80</DestinationPort> <DestinationPort condition="is">443</DestinationPort> <DestinationPort condition="is">4319</DestinationPort> </NetworkConnect> <FileCreateTime onmatch="exclude" > <Image condition="end with">Microsoft Edge.exe</Image> </FileCreateTime> <ProcessCreate onmatch="exclude" > <Image condition="end with">Microsoft Edge.exe</Image> </ProcessCreate> <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>
用事件查看器查看
1.进程创建
2.网络连接
(3)启动Sysmon(用事件查看器是在启动之后,只是提前写在配置文件之后了)
(强调用管理员身份运行cmd哦)
使用指令一键安装 -accepteula -i -n
修改之后,用-c参数更新一下sysmon -c xxx.xml
(上图是出现了问题的,错误是版本号没有改,之前还出现过其他的错误,会有提示在第几行)
(更新之后)
(三) 使用PEiD分析恶意软件
使用PEiD
软件可以查看恶意软件的壳的相关信息,以及其所使用的编译器版本
(四) 使用ThreatExpert分析恶意软件
翻译结果:
感觉并没有得到什么信息,只是制动了这个进程试图与远程主机建立连接,不过比较靠谱的是得到了远程主机的IP和端口号,可以进行查询
(五)SysTracer快照分析
(1)快照,我分别在以下四种情况下进行快照:
Snapshot#1:不做任何操作,自然状态;
Snapshot#2:windows运行后门程序回连kali;
Snapshot#3:新建一个文本文档,并输入内容;
Snapshot#4:连接结束。
(2)比较第一个和第二个
1.可以看到注册表中被修改了
在应用项目在,回连kali运行后门程序于是running processes中新增了这一项
Opened Handles中新增了很多文件、设备信息以及子键
在Opened Ports中,可以看到源IP、回连IP、源端口、回连端口都能追踪到
2.比较第一个和第三个
Snapshot#3是新建一个文本文档,并输入内容,可以看到file中新增了一个文件4319p
(六)使用Process Explorer分析恶意软件
1.打开process explorer后,接着运行后门程序回连
2.双击点开进程,可以看到一些进程的基本信息
3.在TCP/IP选项卡中可以看到回连的Linux的IP地址和端口。
4.还有一个安全选项卡,但是看不懂
(七)使用Process Monitor分析恶意软件
1. 启动后会看到电脑现在运行的程序,可以从工具选项中,选择进程树,可以方便查看
2.在其中找到了后面程序43199.exe,可以看到一些基本情况,进入到只有43199.exe的界面,可以看到从开始到现在进行的连接
3.截图了其中有TCP连接的,点开查看详情如下:
可以看到路径有从ZWL连接到4319端口。
4.看到有其他同学的博客找到了一个可以的问题,我就在自己的下寻找,也一样找到了,此处粘贴同学的解释“在进程信息中的模块里找到 advapi32.dll 百度说是包含函数与对象的安全性、注册表的操控以及与事件日志有关,还是很重要的一个dll文件,一个无关程序莫名与其挂钩,就很值得引起我们怀疑。”