-
2019-12-14 22:29:09
目 录
摘 要 1
关键词 1
Abstract 1
Key words 1
一、恶意代码概述 1
(一)认识恶意代码 1
(二)恶意代码分类 2
二、恶意代码分析技术 3
(一)静态分析方法 3
(二)动态分析方法 4
(三)恶意代码分析流程 4
(四)恶意代码分析实例一 5
(五)恶意代码分析实例二 8
三、恶意代码的防治 10
(一)使用优质的杀毒软件 11
(二)安装正版的应用程序 11
(三)提高对计算机病毒的防范意识 11
结语 11
参 考 文 献 12恶意代码的分析与防治
摘 要:自恶意代码诞生之日起,它便一直威胁着计算机网络环境的安全。因此对恶意代码的研究是非常重要的。本文主要介绍了恶意代码造成的危害,以及常见的恶意代码类型,并对病毒、木马、蠕虫的工作原理进行了分析。在研究恶意代码的分析方法中,对比分析了恶意代码的静态分析方法与动态分析方法。接着结合分析方法提出了恶意代码的分析流程。并针对恶意代码对网络安全的危害,提出了防范对策。以此在保障计算机安全中起到一定的作用,确保信息不被泄露。
关键词:恶意代码;静态分析;动态分析;防治Analysis and prevention of Malicious Code
[Abstract] Since the beginning of Malicious Code, it has been threatening the security of computer net
更多相关内容 -
《恶意代码分析实战》官方实验样本
2021-01-13 15:21:27学习恶意代码分析,从官方下载的《恶意代码分析实战》课后实验样本。 -
恶意代码分析实战_源文件.zip
2021-01-26 15:06:18实验文件 请用虚拟机解压 (参考书:恶意代码分析实战 迈克尔·斯科尔斯基) -
恶意代码分析实战实验作业
2017-09-19 23:15:40这是由Michael Sikorski与Andrew Honig编写的《恶意代码分析实战》课后的配套练习题。本书具有极强的实战性,可以说是每一位恶意代码分析师人手必备的经典。特别是每一章后面的配套练习,都是作者以自己的实战经验,... -
恶意代码分析实例
2018-04-19 15:42:03恶意代码分析实例 病毒、木马实际案例分析 恶意代码分析实例 -
恶意代码分析实战
2018-07-03 09:56:41恶意代码分析实战,恶意代码分析入门推荐,简单易学, -
恶意代码分析实战.part2
2015-08-14 17:55:41本书一方面从内容上更侧重于恶意代码分析技术与实践方法,而非各类恶意代码的原理技术与检测对抗方法;另一方面更加侧重实用性,能够引导读者们在实际恶意代码样本分析过程中使用书籍中所介绍的各种分析技术、工具和... -
恶意代码分析实战(带目录)
2018-10-05 13:46:15本书是一本内容全面的恶意代码分析技术指南,其内容兼顾理论,重在实践,从不同方面为读者讲解恶意代码分析的实用技术方法。 本书分为21章,覆盖恶意代码行为、恶意代码静态分析方法、恶意代码动态分析方法、恶意... -
恶意代码分析技术ppt
2018-12-02 21:30:06。。恶意代码分析技术ppt -
Android恶意代码分析
2015-12-28 15:53:47通过对本书的阅读,了解一定的相关分析能力,对于Android的开发会有一定的帮助 -
恶意代码分析与防范.ppt
2019-08-29 13:39:20恶意代码分析与防范 什么是上网安全意识 恶意代码如何进入我们的计算机? 恶意代码以什么形式存在于我们的计算机中? -
恶意代码分析实战 英文原版pdf
2018-12-28 11:14:24恶意代码分析实战,详细介绍了网络安全基本技术。包括:静态分析、动态分析、反汇编、IDA分析等 -
恶意代码分析实战课后练习
2018-09-04 23:22:07恶意代码分析实战的课后资料,如果有兴趣的同学可以下载,然后通过7z解压, -
恶意代码分析实战 课后练习实验文件
2018-09-07 23:05:06恶意代码分析实战 课后练习配套完整文件。 -
恶意代码分析
2018-01-02 09:18:58很好的一本分析恶意代码的书籍,推荐所有逆向工程爱好者阅读! -
恶意代码分析实战.part1
2015-08-14 17:35:34本书一方面从内容上更侧重于恶意代码分析技术与实践方法,而非各类恶意代码的原理技术与检测对抗方法;另一方面更加侧重实用性,能够引导读者们在实际恶意代码样本分析过程中使用书籍中所介绍的各种分析技术、工具和... -
安卓恶意代码分析工具详解—MobSF
2021-02-24 00:08:37该平台可对安卓、苹果应用程序进行恶意代码自动分析,并在web端输出报告。该平台同时包含静态分析和动态分析功能,静态分析适用于安卓、苹果应用程序,而动态分析暂时只支持安卓应用程序。(PS:其web界面相当美观,... -
恶意代码分析实战Lab1
2021-01-25 16:26:22Lab1-1恶意代码分析实战恶意代码样本下载Lab1-1二、使用步骤1.引入库2.读入数据总结 恶意代码分析实战 Michael Sikorski Andrew Honig 著 诸葛建伟 姜辉 张光凯 译 恶意代码样本下载 前言-先决条件-恶意代码样本...第一章静态分析基础技术
恶意代码分析实战
Michael Sikorski Andrew Honig 著
诸葛建伟 姜辉 张光凯 译恶意代码样本下载
前言-先决条件-恶意代码样本下载链接:
https://practicalmalwareanalysis.com/
1.点击Labs
2.点击Download
NOTE: We provide a self-extracting archive and an encrypted 7-zip file containing the labs.The password “malware”.
注:我们提供自提取存档和包含实验室的加密 7 zip 文件,密码"恶意软件"
3.点击Download ZIP
1.1反病毒引擎扫描
VirusTotal网站:
https://www.virustotal.com/1.2哈希值
MD5在线加密:
https://www.sojson.com/hash.html
1.3查找字符串
Strings程序:
http://technet.microsoft.com/enus/sysinternals/bb897439https://docs.microsoft.com/zh-cn/sysinternals/downloads/strings
1.4加壳与混淆恶意代码
UPX工具:
http://upx.sourceforge.net/
UPX是一款免费、可移植、可扩展、高性能的可执行文件,用于多种可执行格式1.5PE文件格式
1.6链接库与函数
Dependency Walker工具:
http://www.dependencywalker.com/msvcrt.dll百度百科
https://baike.baidu.com/item/msvcrt.dll/10968059
msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编译的程序提供了初始化(如获取命令行参数)以及退出等功能1.7静态分析技术实战
1.8PE文件头与分节
1.使用PEview来分析PE文件
2.使用ResourceHacker工具来查看资源节
http://www.angusj.com/
3.使用其他的PE文件工具
PEBrowse Professional:
http://www.smidgeonsoft.prohosting.com/pebrowsepro-file-viewer.html
PE Explorer(收费):
http://www.heaventools.com/Lab1-1
实验题目:这个实验使用Lab01-01.exe和Lab01-01.dll文件
问题:
1.将文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
2.这些文件是什么时候编译的?
这两个文件的编译日期都在2010年12月19日。
Lab01-01.dll 2010-12-19 16:16:38
Lab01-01.exe 2010-12-19 16:16:19
3.这两个文件中是否存在迹象说明它们是否被加壳或混淆了?如果是,这些迹象在哪里?
检测加壳软件的一种方法是使用PEiD工具。
PEiD正常检测出.dll和.exe的编译环境,且EP段是正常的.text。
所以这两个文件都没有被加壳或混淆过的迹象。
4.是否有导入函数显示出了这个恶意代码是做什么的?如果是,是哪些导入函数?
Lab01-01.dll导入函数是CreateProcess和Sleep;这个文件导入了WS2_32.dll中的函数,这些函数提供了联网功能。
P14:Wsock32.dll和Ws2_32.dll这两个是联网DLL,访问其中任何一个DLL的程序非常可能连接网络,或是执行网络相关的任务。
Lab01-01.exe导入函数是FindFirstFile、FindNextFile和CopyFile,这些导入函数告诉我们,这个程序在搜索文件系统和复制文件。
P17:FindFirstFile和FindNextFile函数是特别值得关注的,因为它们提供的功能是搜索一个目录下所有的文件。5.是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?
检查C:\Windows\System32\kerne132.dll来发现额外的恶意活动。请注意,文件kerne132.DLL,用数字1代替了字母l,是为了看起来像是系统文件kernel32.dll。这个文件可以用来在主机作为恶意代码感染的迹象进行搜索。
P436详细分析过程:C:\Windows\System32\kernel32.dll和C:\Windows\System32\kerne132.dll(字母l和数字1的变化),kerne132.dll文件显然是想将自己冒充混淆为Windows的系统文件kernel32.dll。因此kerne132.dll可以作为一个基于主机的迹象来发现恶意代码感染,并且是我们分析恶意代码所需要关注的一个线索。6.是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
7.你猜这些文件的目的是什么?
.dll文件可能是一个后门
.exe文件是用来安装与运行DLL文件的
P3:后门:恶意代码将自身安装到一台计算机来允许攻击者访问。后门程序通常让攻击者只需很少认证甚至无需认证,便可连接到远程计算机上,并可以在本地系统执行命令。Lab1-2
分析Lab01-02.exe文件
问题:
1.将Lab01-02.exe文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-02.exe匹配到已有的反病毒软件特征,截图如下:
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-02.exe被加壳了
用kali脱壳
用ubuntu脱壳也行 upx -d file在Kali执行upx命令可以查看参数介绍:
执行upx -d命令脱壳成功
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
在对文件进行脱壳之后,将Lab01-02.exe文件上传至https://www.virustotal.com/,会发现导入函数CreateService、InternetOpen、InternetOpenUrl
用IDApro打开Lab01-02.exe,查看输入表
4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
用IDApro打开Lab01-02.exe,shift+Fn+F12查看字符串(我的电脑是shift+Fn+F12,有的电脑是shift+F12)
一个名为Malservice的服务,并通过到http://www.malwareanalysisbook.com的网络流量,来检查被恶意代码感染的主机。
Lab1-3
分析Lab01-03.exe文件
问题:
1.将Lab01-03.exe文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-03.exe匹配到已有的反病毒软件特征,截图如下:
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-03.exe被加壳了
Lab01-03.exe是由FSG进行加壳的,而不是UPX,学到18章后再回来分析Lab01-03.exe。
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
这个问题在没有脱壳的情况下还无法回答。
4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
这个问题在没有脱壳的情况下还无法回答。Lab1-4
分析Lab01-04.exe文件
问题:
1.将Lab01-04.exe文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-03.exe匹配到已有的反病毒软件特征,截图如下:
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-04.exe没有被加壳或混淆过的迹象
3.这个文件是什么时候被编译的?
4.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
advapi32.dll权限操作相关函数
导入函数WriteFile和WinExec,以及https://www.virustotal.com/的结果,表示这个程序会写一个文件到磁盘上,然后执行它。导入函数还有一些是用于从文件的资源节中读取信息的。
5.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
用IDApro打开Lab01-04.exe,字符串\system32\wupdmgr.exe表示,这个程序会在这个位置创建或者修改文件。字符串www.malwareanalisisbook.com/updater.exe可能表示额外恶意代码的网络存储位置,用于下载。
6.这个文件在资源段中包含一个资源。使用Resource Hacker工具来检查资源,然后抽取资源,从资源中你能发现什么吗?
我用HxD打开Lab01-04.exe
认真是一种态度更是一种责任 -
恶意代码分析环境搭建(恶意代码分析实战第二章学习)
2019-11-04 15:46:51Vmware Player是免费的,并且可以用来创建和运行虛拟机,但它缺少一些进行有效的恶意代码分析所必需的功能。Vmware Workstation软件的成本在200美元以下,一般是恶意代码分析师更好的选择。它包含了快照等强大的功能,...Vmware Player和Vmware Workstation的区别
Vmware提供了流行的桌面虚拟化系列产品,可用于在虚拟机中分析恶意代码。 Vmware Player是免费的,并且可以用来创建和运行虛拟机,但它缺少一些进行有效的恶意代码分析所必需的功能。Vmware Workstation软件的成本在200美元以下,一般是恶意代码分析师更好的选择。它包含了快照等强大的功能,允许你保存当前虚拟机的状态,并具有克隆或复制现有虚拟机的能力。(恶意代码分析实战)
参考计算机病毒实践汇总五:搭建虚拟网络环境,搭建记录如下:
1.下载VMware-workstation-full-15.5.0-14665864.exe,安装虚拟机主机Win7,虚拟机服务器Kali-Linux-2019.1-vm-amd64。
2.开始配置。
vmware新建host-only网络(这里是VMnet3),下面我选的是默认配置。
将win7和kali均选择该网络。
kali
kali上无需安装inetsim,root下运行即可。
这里需要修改inetsim.conf配置文件。路径如上图所示,每个版本可能有所不同。
修改之前需要ifconfig知道kali的IP。后面的修改都是将回传地址修改为该IP。
修改一:service_bind_address(去掉注释+修改)
修改二:dns_default_ip(去掉注释+修改)
修改三:redirect_enabled(去掉注释+修改)
修改四:redirect_external_address(修改IP)修改五:redirect_exclude_port (去注释)
以上即为kali的网络配置。
win7
win7上的配置 直接修改即可。或者使用ApdateDNS。
运行
在kali上打开inetsim会出现(下图来源动态分析基础技术 - Hvnt3r的博客 - CSDN博客)
windows访问网络会出现
在你安装完操作系统之后,你可以安装任何所需的应用程序。当然你也可以以后随时安装所需的应用程序,但通常在刚开始时创建一个比较完备的环境,是个很好的主意。我们在附录B中给出了个推荐使用的恶意代码分析应用程序列表。
断开外接设备
Vmware的界面允许你连接和断开外部设备。如果你将一个USB设备连接到一台机器,而同时一虚拟机窗口正处于活跃状态, Vmware将会把USB设备连接到虚拟机中,而不是宿主机,有些时候这是非预期的,比如日益流行的通过USB存储设备进行传播的蠕虫病毒。想要避免这种情况发生,需要修改虚拟机的配置,选择VM→ Settings→USB Controller菜单项,取消选中“ Automatically connectnew USB devices”复选框,就可以防止USB设备被自动连接到虚拟机。
从虚拟机传输文件:VMware 拖放功能(安装VMware tools)或者共享文件夹的方式。
记录/重放功能+视频捕捉
参考文献
1.佚名. 恶意代码分析实战[M]. 2014.
2.计算机病毒实践汇总五:搭建虚拟网络环境 - 20135317 - 博客园
https://www.cnblogs.com/hyq20135317/p/5515675.html -
恶意代码分析实战课.zip
2021-09-05 15:46:46威胁计算机系统安全的领域越来越广泛,其中以恶意代码最为严重。而随着计算机系统安全攻击与防御技术的不断较量,恶意代码的攻击手法、攻击形式也...尽管恶意代码以许多不同的形态出现,但分析恶意代码的技术是通用的。 -
网络安全应急响应-恶意代码分析技术
2022-03-25 17:12:28一 、恶意代码概述 1. 恶意代码简述 恶意代码(Malicious Code)或恶意软件是指没有作用却会带来危险的代码,一个最广泛的定义是把所有不必要的代码都看作是恶意的,不必要的代码比恶意代码具有更宽泛的含义,包括所有...网络安全应急响应专题文章:
1. 网络安全应急响应-日志分析技术
2. 网络安全应急响应-流量分析技术
3. 网络安全应急响应-恶意代码分析技术
4. 网络安全应急响应-终端检测与响应技术
5. 网络安全应急响应-电子数据取证技术
6. 网络安全应急响应-常用工具
7. 网络安全应急响应-基础技能
一 、恶意代码概述
1. 恶意代码简述
恶意代码(Malicious Code)或恶意软件是指没有作用却会带来危险的代码,一个最广泛的定义是把所有不必要的代码都看作是恶意的,不必要的代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。
2. 病毒
病毒是一段自我复制的代码,它将自己依附到其他的程序上,进行传播时经常需要人的参与,主要特点:
- 一般不能作为独立的可执行程序运行。
- 可自我复制。
- 携带有害的或恶性的动作,能够破坏数据信息。
- 病毒的感染
病毒的感染机制和目标包括感染可执行文件、感染引导扇区、感染文档文件和感染其他目标,其中,感染可执行文件的技术又包括伴侣感染技术、改写感染技术、前置感染技术和附加感染技术。
- 感染可执行文件的伴侣感染技术
当用户请求执行源程序文件时,操作系统会同时启动病毒程序。 - 感染可执行文件的改写感染技术
改写感染技术是通过改写宿主的部分代码来感染可执行文件,当用户试图打开可执行文件时,执行的不是原来的文件,而是病毒代码。 - 感染可执行文件的前置感染技术
前置感染技术是通过将自身代码插入到被感染程序的头部,并不破坏宿主程序。 - 感染可执行文件的附加感染技术
附加感染技术(后置感染技术)是将自身代码插入到被感染程序的尾部,同样不破坏宿主程序。 - 感染引导扇区
感染引导扇区是一种在BIOS之后,系统引导时出现的病毒,它先于操作系统,依托的环境是BIOS中断服务程序。 - 感染文档文件
感染文档文件的常见病毒是宏病毒。Word-Normal.dot为定义的一个共用的通用模板,里面包含了基本的宏。只要启动Word,就会自动运行Normal.dot文件。
- 病毒的传播
病毒的传播一般需要人的参与,包括移动存储设备、网络共享、网络下载、电子邮件等方式。 - 病毒的启动
- 启动项启动
启动项启动直接把恶意程序放到启动文件中。这种方式已经很少用到了,但U盘病毒等仍采用此方式启动。 - 注册表启动项
主要位置有:
计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\CurrentVersion\Run
- 服务启动
服务启动在远控木马中用得最多,可以用“services.msc”或“msconfig.exe”进行查看。 - 捆绑启动
捆绑启动是把恶意程序跟正常程序捆绑到一起,不会修改目标程序,可绕过程序自身的CRC校验,相当于WinRAR压缩。 - DLL方式
DLL方式通常有三种:第一种是单独编写的DLL文件,通过注册表的Run键值“rundll32.exe”启动,隐蔽性差。第二种是替换系统合法的DLL文件,遇到应用程序请求原来的DLL文件时,病毒DLL进行转发,隐蔽性好。第三种是远程注入DLL,用一个exe程序将病毒DLL加载至某些系统进程(如Explorer.exe)中运行,用户清除困难。 - 感染可执行文件
感染可执行文件可在头部、尾部插入代码,也可在文件空隙处插入代码,文件的大小不变,很难被发现。 - 加载sys驱动文件
加载sys驱动文件可调用Hook Apl函数,隐藏自身,从而绕过主动防御。 - 写入硬盘MBR
引导扇区由主引导记录MBR和硬盘分区表组成,MBR先判断哪个分区被标记为活动分区,然后再去读取那个分区的启动区,并运行该区中的代码。
- 病毒的隐藏与自我保护
- 映像劫持技术(IFEO)
IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定,系统厂商之所以会这么做,是有一定历史原因的。在WindowsNT时代,系统使用一种早期的堆(Heap,由应用程序管理的内存区域)管理机制,使得一些程序的运行机制与现在的不同,而后随着系统更新换代,厂商修改了系统的堆管理机制,通过引入动态内存分配方案,让程序对内存的占用更为减少,在安全上也保护程序不容易被溢出,但是这些改动却导致了一些程序从此再也无法运作,为了兼顾这些出问题的程序,微软公司以“从长计议”的态度专门设计了“IFEO”技术,其本意不是“劫持”,而是“映像文件执行参数”。 - 进程守护
进程守护指多个进程相互保护,文件关联。不同的病毒进程会不间断地检测对方是否已经被清除,如果一个病毒进程被消除,另外的病毒进程就会重新创建对方。 - 免杀技术
免杀技术Anti Anti-virus,即反杀毒技术,简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术,如加壳、加花、修改特征码等。
3. 蠕虫病毒
蠕虫是一种常见的计算机病毒,是无须计算机使用者干预即可运行的独立程序,它通过不停地获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。它跟病毒最大的区别是不需要用户交互,可自动传播。
- 较强的独立性
计算机病毒一般都需要宿主程序,病毒将自己的代码写到宿主程序中,当该程序运行时先执行写入的病毒程序,从而造成感染和破坏。 - 利用漏洞主动攻击
由于不受宿主程序的限制,蠕虫病毒可以利用操作系统的各种漏洞进行主动攻击。 - 传播速度更快
蠕虫病毒比传统病毒具有更大的传染性,它不仅仅感染本地计算机,而且会以本地计算机为基础,感染网络中所有的服务器和客户端。蠕虫病毒可以通过网络中的共享文件夹、电子邮件、恶意网页,以及存在着大量漏洞的服务器等途径肆意传播。 - 更好的伪装和隐藏方式
为了使蠕虫病毒在更大范围内传播,病毒的编制者非常注重病毒的隐藏方式。在接收、查看电子邮件时,用户都采取双击打开邮件主题的方式来浏览邮件内容,如果该邮件中带有病毒,计算机就会立刻被病毒感染 - 技术更加先进
些蠕虫病毒与网页脚本相结合,利用VBScript、Java、ActiveX等技术隐藏在HTML页面里。当用户上网浏览含有病毒代码的网页时,病毒会自动驻留在内存并伺机触发。 - 追踪变得更困难
当蠕虫病毒感染了大部分系统之后,攻击者就能发动多种其他攻击方式对付一个目标站点,并通过蠕虫网络隐藏攻击者的位置,要抓住攻击者是非常困难的。
4. 木马病毒
木马病毒是特指一种基于远程控制的黑客工具,其实质是一种C/S结构的网络程序。特洛伊木马程序表面看上去具有一些很有用的功能,实际上隐藏着可以控制整个计算机系统、打开后门、危害系统安全的功能,它通过各种诱惑骗取用户信任,在计算机内运行后,可造成用户资料的泄露、系统受控制,甚至导致系统崩溃等。它通常的功能具有远程文件操作、远程控制、键盘记录、开启摄像头、执行系统命令等。
在传输过程中,木马病毒通常会使用HTTP协议、UDP协议、ICMP协议和POP3等协议。- NTFS交换数据流技术
在NTFS文件系统中存在着NTFS交换数据流(Alternate Data Streams,ADS),这是NTFS磁盘格式的特性之一,是为了和Mac的HFS文件系统兼容而设计的,它使用资源派生(Resource Forks)来维持与文件相关的信息。在NTFS文件系统下,每个文件都可以存在多个数据流,除主文件流(Primary data Stream)之外还可以有许多非主文件流。主数据流在文件创建的同时就被创建,能够直接看到,而非主文件流寄宿于主文件流中,无法直接读取。绝大部分情况下用户只会与主数据流打交道,查看文件内容时也仅仅显示主数据流的内容,因此从用户角度来说,非主文件流是隐藏的,用常规的dir命令和Windows文件资源管理器都查不到。 - 远程线程插入
线程插入也叫远程线程技术是指将自己的代码插入正在运行进程中的技术。通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间,事先把要执行的代码和有关数据写进目标进程,然后创建一个远程线程来让远端进程执行那些代码。 - 端口复用技术
在Winsock的实现中,对于服务器的绑定是可以多重绑定的,在确定多重绑定使用谁时,根据谁的指定最明确则将包递交给谁的原则,而且没有权限之分,也就是说,低级权限的用户是可以重绑定在高级权限(如服务启动)端口上的。 - 多线程保护技术
在Windows操作系统中引入了线程的概念,一个进程可以同时拥有多个并发线程。三线程技术就是指一个恶意代码进程同时开启了三个线程,其中一个为主线程,负责远程控制的工作。另外两个辅助线程是监视线程和守护线程,其中监视线程负责检查恶意代码程序是否被删除或被停止自启动。 - 反向连接技术
防火墙对于外部网络进入内部网络的数据流有严格的访问控制策略,但对于从内网到外网的数据却疏于防范。反向连接技术指被恶意代码攻击的被控制端主动连接控制端。
5. Rootkit
Rootkits最早是一组用于UNIX操作系统的工具集。这些程序在植入系统后,Rootkits会将它们隐藏起来,包括任何恶意程序过程、文件夹、注册码等。
Rootkit使用的3种技术分别是Hooking、DLL注入和直接内核对象操纵。- Hooking
-
- IAT和EAT Hooking
-
- 内联Hooking
-
- SSDT Hooking
-
- 内核态内联Hooking
-
- IDT Hooking
-
- INT 2E Hooking
-
- 快速系统调用Hooking。
- DLL注入
-
- Appinit_DLL键值
-
- 全局Windows Hook
-
- 线程注入
- 直接内核对象操纵
-
- 直接内核对象操纵是恶意软件使用的最高级的Rootkit技术。这个技术集中在修改内核结构,以绕过内核对象管理器来避免访问检查。
二 、Windows恶意代码分析
1. 前置知识
- 关于进程和子进程
进程(Process)是一个具有一定独立功能的程序关于某个数据集合的运行活动,是系统进行资源分配和调度的基本单位,它是操作系统结构的基础。进程是程序执行的一个实例。每个进程都拥有独立的地址空间,进程下面又有子进程。
比如子进程“notepad++.exe”的父进程就是“uTools.exe”,因为notepad++是使用uTools快速启动的。
- 关于内核和钩子
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件安全访问的部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。
Windows中的窗口程序是基于消息,由事件驱动的,在某些情况下可能需要捕获或者修改消息,从而完成一些特殊的功能。对于捕获消息而言,无法使用IAT或Inline Hook之类的方式去进行捕获,这就要用到Windows提供的专门用于处理消息的钩子(Windows Hook)。按照钩子作用的范围不同,又可以分为局部钩子和全局钩子,其中,全局钩子具有相当大的功能,几乎可以实现对所有Windows消息的拦截、处理和监控。局部钩子是针对某个线程的,而全局钩子则是作用于整个系统中基于消息的应用。全局钩子需要使用DLL文件,实现相应的钩子函数。2. 利用杀毒软件排查
- 杀毒软件
- 在线杀毒引擎
- 利用工具排查
三 、Linux恶意代码排查
1. Chkrootkit工具
Chkrootkit是一款用于UNIX/Linux系统的本地 Rootkit检查工具,官网,可使用命令“
wget-cfp:/fp.pangea.com.br/pub//seg/pac/chkrootkittar.gz
”进行下载,主要功能:- 检测是否被植入后门、木马、 Rootkit等病毒
- 检测系统命令是否正常
- 检测登录日志
下载 安装 运行
如果有异常,会报出“INFECTED”字样。2. Rkhunter工具
Rootkit Hunter结果比Chkrootkit更为详细和精准,若有条件,建议使用RootkitHunter对系统进行二次复查。
RootkitHunter官方网址
RootkitHunter下载网址
主要功能:- 系统命令(Binary)检测,包括Md5校验
- Rootkit检测
- 本机敏感目录、系统配置、服务及套件异常检测
- 第三方应用版本检测
安装 运行
检测结果中,标红的“warning”需要注意,检测报告默认在“/var/log/rkhunter.log”中。 -
01 恶意代码分析技术概述
2021-08-31 15:31:02恶意代码分析技术介绍1.恶意代码分析关键点2.静态分析3.动态分析4.恶意代码静态分析方法列表5.恶意代码动态分析方法列表6.恶意代码分析目标 一. 恶意代码基础知识 1.基础知识: 恶意代码的定义:使计算机按照攻击... -
java恶意代码检测源码-QualityDemo:质量演示
2021-06-05 07:49:44java恶意代码检测源码 #1.前言: 在我们平时项目开发中,经常会写一些不严谨的代码或者一些比较低级的错误代码,但是这些错误往往很难被发现,这样就导致了我们的项目中会隐藏了很多影响性能甚至是导致闪退的错误代码,... -
恶意代码分析实战课后习题
2018-07-03 09:53:31该文件解压后会包含另外一个压缩文件该文件解密密码为malware -
[恶意代码分析]恶意代码种类以及分析环境介绍
2021-08-06 10:43:43恶意代码种类以及分析环境介绍1、使用010Editor分析html样本2、使用PETool.exe 分析感染式样本3、使用jd-gui.exe 分析一个蠕虫样本的jar包 1、使用010Editor分析html样本 1、使用010Editor分析html样本 对PE文件进行...