2016310Exp4 恶意代码及分析
网络对抗 Exp4 恶意代码分析
- 实验内容
- 系统运行监控
- 恶意软件分析
- 报告评分
- 基础问题回答
- 实践目标
- 实验内容
- 1. 系统运行监控——计划任务
- 2. 系统运行监控——利用Sysmon
- 3.1恶意软件分析—— virscan网站
- 3.2恶意软件分析——PEID
- 3.3恶意软件分析——PE Explorer
- 3.4恶意软件分析——Process Monitor
- 3.5恶意软件分析——Process Explorer
- 3.6恶意软件分析——Systraer
- 3.7恶意软件分析——Wireshark
- 实验中遇到的问题及解决方法
- 实验感想
一、基础问题回答
1. 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控
- 使用Windows自带的schtasks指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放、注册表信息等;
- 通过sysmon工具,配置好想记录事件的文件,之后在事件查看器里找到相关日志文件查看;
- 使用任务管理器->进程,监视进程执行情况,查看是否有可疑程序运行。
2. 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息
- 使用systracer工具分析恶意软件,查看其对注册表和文件的修改,进行快照的对比。
- virscan集合各种杀软,对指定文件进行分析定性。
- 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
二、实践目标
1.是监控你自己系统的运行状态,看有没有可疑的程序在运行。
2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
三、实践内容
1、windows计划任务
- 以管理员身份打开cmd,使用指令schtasks /create /TN 4310netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt创建计划任务4310netstat,记录每1分钟计算机联网情况:
- 在c盘下手动创建一个netstatlog.txt文件
- 在桌面建立一个20164310netstatlog.txt文件,内容为:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
将后缀名改为.bat后,用管理员身份将该文件放入C盘
- 打开计算机管理的“任务计划程序库”,可以查看到4310netstat任务就绪(这里忘记截图了)
- 打开其属性,修改其指令为20164310netstatlog.bat
- 可以在C盘的netstatlog.txt文件中查看到本机在该时间段内的联网记录:
2、使用sysmon工具
- 首先创建配置文件sysmon4310.txt,并输入如下的代码:
这里需要注意的是第一行代码那个版本如果谢3.10的时候出现问题那么就要换成4.20
<Sysmon schemaversion="4.20">
<!-- 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>
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is"></SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</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>
- 在官网上下载sysmon工具
- 以管理员身份打开命令行,使用指令Sysmon.exe -i安装sysmon
- 配置sysmon:输入命令Sysmon.exe -i sysmon4310.xml配置sysmon
- 安装成功之后在事件查看器中的应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational
- 然后在linux对windows进行控制,点击输入getpid,得到了进程号10386,然后在Image那一行出现了正在进行的后门
3、恶意软件分析
(1) 静态分析:文件扫描
将上次生成的jar文件放到virscan上扫描:
然后点击哈勃分析:
可以看到这个后门的种种行为如关键行为,进程行为等,此恶意代码是通过一个反弹链接来控制受害主机,并在受害主机中通过创建进程,船舰删除文件,创建事件对象等等,对目标主机有很大的威胁。
(2)用peid工具识别文件格式
先把一个没有加壳的后门放进去,结果什么也没有发现
然后把一个加壳的后门放进去,发现了压缩壳
同时peid也可以进行脱壳,右下角按钮点下显示的是插件列表,其中有一些脱壳的插件,不过只是一些简单的压缩壳而已,比 如upx等。
(3)使用PE Explorer
先导入没有加壳的后门程序,点击View->Import,查看程序所引用的dll库
再导入加壳的后门
可以发现加壳之后所引用的dll库明显减少,通过百度查到了这几个dll库分别代表了什么:
KERNEL32.dll:是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理。
USER32.dll:Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。它是一个对系统很关键或很可疑的文件,易遭受木马病毒破坏导致系统找不到此文件,出现错误提示框。
msvcrt.dll:是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现。
ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。
(4)使用Process Monitor
找到了后门程序,打开看看
可以看到该后门的路径,以及是用TCP进行操作的。同时也能看到它在电脑中的位置,打开第三项Stack可以看到所引用的dll库。
(5)使用Process Explorer
我找到了我正在运行的后门程序,可以看到反弹链接的ip和端口号
也可以看到该进程使用的CPU,虚拟内存空间、物理内存空间、I/O等。
(6)使用Systracer
点击右侧的take snapshot,存储快照(因为那个sys总是出现问题所以我快照名字比较混乱这里就不放名字了)
快照一:未移植后门程序
快照二:移植后门程序
快照三:运行后门程序并在kali中实现回连
快照四:在kali中使用dir
指令
快照五:在kali中使用record_mic
指令
对比快照一、二,可以发现多了个后门程序:
对照二、三可以发现多了一个TCP链接:
并且该后门文件生成了很多的文件和目录:
对照三、四,可以发现对对key_local_machine
根键中的内容进行了修改:
对照快照四、五可以发现注册表中有以下变化(隔的时间有点久,今早才创建的快照四)
(7)使用wireshark
在没有进行回连的时候启动抓包,回连之后暂停抓包:
然后过滤ip(虚拟机的ip为192.168.1.104,因为只看虚拟机和主机之间的通信)得到了以下内容:
传输的数据包括Windows向Kali发出TCP同步请求包SYN,Kali给Windows发出的SYN同步请求包和确认包ACK。
4、实验中遇到的困难和解决方法
这次实验也没遇到什么太大的困难,主要就是那个Sysmon安装不上,然后出现了以下问题:
解决办法就是你把那个xml文件放到C盘windows下,因为上面提示了那个xml文件的confugration(配置、路径)不对。
5、实验感想:
这次实验第一感觉就是信息太多,特别考验我们的信息处理能力,特别是在分析注册表修改的时候,一个点进去又会扯出很多问题,深刻感觉自己知识的缺乏,不过这些软件倒是很好用的,比上几次实验敲代码分析简单多了,希望异或能够用到他们。
2016310Exp4 恶意代码及分析的更多相关文章
- NetSarang软件中nssock2.dll模块被植入恶意代码技术分析与防护方案
原文地址:http://blog.nsfocus.net/nssock2-dll-module-malicious-code-analysis-report/ NetSarang是一家提供安全连接解决 ...
- 2018-2019-2 20165234 《网络对抗技术》 Exp4 恶意代码分析
实验四 恶意代码分析 实验目的 1.监控自己系统的运行状态,看有没有可疑的程序在运行. 2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals ...
- 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311
2018-2019 20165311 网络对抗 Exp4 恶意代码分析 2018-2019 20165311 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控(2分) 恶意软件分析(1.5分) ...
- 2018-2019-2 网络对抗技术 20165225 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165225 Exp4 恶意代码分析 实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp ...
- 2018-2019-2 网络对抗技术 20165321 Exp4 恶意代码分析
1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,sys ...
- 2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析 一.原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2 ...
- 20165214 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6
<网络对抗技术>Exp3 免杀原理与实践 Week5 一.实验目标与内容 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp ...
- 20164322韩玉婷 -----EXP4 恶意代码分析
1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,sys ...
- 2018-2019-2 网络对抗技术 20165308 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165308 Exp4 恶意代码分析 实验过程 一.系统运行监控 (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一 ...
随机推荐
- Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
pycharm运行TensorFlow警告:Your CPU supports instructions that this TensorFlow binary was not compiled to ...
- Cookie Manager
https://github.com/Rob--W/cookie-manager 修改饼干获取VIP标识
- python爬虫,使用BeautifulSoup解析爬出来的HTML代码时报错
UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for thi ...
- python基础---列表生成器、迭代器等
一.列表生成式 用来创建list的表达式,相当于for循环的简写形式 语法: [表达式 for循环 判断条件] ''' 普通写法 ''' def test(): l= [] for i in rang ...
- 华莱士的 第一个python程序之(用户登录)
Name = "shangzb"password = 43while True: _Name = input("Name:") if _Name == Name ...
- python 编写登陆接口
#!/usr/bin/env python#_*_ coding:utf-8 _*_dic={ 'yts':{'password':'123','count':0}, 'nick':{'passwor ...
- javascript 5.2
window.open(url,name,features):创建新的浏览器窗口:url是窗口的地址,name是新窗口名字,features是新窗口的各种属性 真协议特指因特网上两台计算机之间传输各种 ...
- vue的渐进式理解
链接:https://www.zhihu.com/question/51907207/answer/136559185 渐进式代表的含义是:主张最少. 每个框架都不可避免会有自己的一些特点,从而会对使 ...
- 加载Excel时,如何过滤空行空列
巨硬为Excel提供了丰富的C#接口,基本上可以将Excel当做一个微型数据库来用,奈何前端的我们,sql也只会写两句select * from table: 目前工作中遇到了一个问题,在需要读取的E ...
- Android L2TP Client Setup
原文链接:http://www.softether.org/4-docs/2-howto/9.L2TPIPsec_Setup_Guide_for_SoftEther_VPN_Server/3.Andr ...