THMDynamicAnalysisDebugging
Introduction在 基本动态分析 房间中,我们学习了如何在执行期间识别受感染系统中的恶意软件痕迹。但是,恶意软件作者知道恶意软件将被分析并希望阻止它。这可以通过各种规避技术来实现。为了击败这些规避技术,恶意软件分析师希望对恶意软件的执行有更多控制权。在这个房间里,我们将了解恶意软件分析师如何更好地控制恶意软件的执行以实现预期结果。
学习目标:在这个房间里,我们将学习:
用于逃避基本动态分析的规避技术。
调试器简介以及它们如何帮助我们控制恶意软件的执行流程。
通过更改寄存器或其他参数在运行时操纵执行流程。
修补恶意软件以迫使它越过规避技术并进入实际的恶意内容。
先决条件:为了从这个房间获得最佳学习成果,建议您完成以下房间:
Basic Static Analysis
Basic Dynamic Analysis
Advanced Static Analysis
The Need for Advanced Dynamic Analysis分析恶意软件就像猫捉老鼠的游戏。恶意软件分析师不断设计新技术来分析恶意软件,而恶意软件作者则设计新技术来逃避检测。这项任务将回顾一些阻碍我 ...
24-10杂谈
本想10月开摆,但还是没成功。除了国庆稍微休息了一下之外,后面又开始忙了起来。报名了美亚杯,备赛的过程中也是学习了大量先前缺失的知识。收获也挺大。然后就是网鼎杯和强网杯,被队友狠狠地带飞进了线下,不过不得不说现在真的打不太来CTF了,有空再说(。除此之外还有一个小程序测试的任务,打算下个月再详细学学。
THMMalDocStaticAnalysis
Introduction在当今的数字时代,文档是共享信息的最常见方式之一。它们用于各种目的,包括报告、提案和合同。由于文档的普遍性,它们也是网络攻击的常见载体。恶意行为者可以使用文档来传播恶意软件、窃取敏感信息或进行网络钓鱼攻击。
因此,分析恶意文档是任何网络安全策略的重要组成部分。分析师可以通过分析文档的结构和内容并采取措施缓解威胁来识别潜在威胁。这在当今尤为重要,因为越来越多的企业依赖数字文档来共享和存储敏感信息。
预期结果
本室的预期结果是确定文档是否确实是恶意的,然后寻找以下指标:
存在恶意 URL
文件名/API 函数的引用
IP 地址
域
恶意脚本,如 Powershell、JavaScript、VBScript 宏等
在本室中,我们将了解恶意文档的不同变体、它们的结构以及它们在不同网络钓鱼攻击中的使用方式。然后,我们将探索分析恶意文档所需的工具和概念。
学习目标
在本室中,将涵盖以下学习目标:
不同类型的文档,如 onenote、dotm、docx、xls 等。
分析复杂的 JavaScript。
恶意文档分析的重要性。
PDF 结构和关键组件,如对象、关键字和过滤 ...
THMBasicDynamicAnalysis
Introduction之前,我们在 基本静态分析 房间中学习了无需执行恶意软件即可对其进行分析的技术。但是,正如我们所了解的,恶意软件可以使用技术来向恶意软件分析师隐藏其功能。但无论恶意软件如何巧妙地将其功能隐藏在静态分析之外,其主要目的都是执行。当恶意软件执行时,它会留下痕迹,恶意软件分析师可以使用这些痕迹来识别它是否是恶意的。我们将在此房间中使用基本的动态分析技术来分析恶意软件在运行时留下的痕迹。
学习目标:在此房间中,我们将学习:
沙盒化和使用沙盒进行恶意软件分析。
沙盒的组件以及如何为自己创建沙盒。
使用 ProcMon 监视进程的活动。
使用 API Logger 和 API Monitor 识别恶意软件发出的 API 调用。
使用 ProcExp 识别进程是否被恶意修改。
使用 Regshot 跟踪恶意软件所做的注册表更改。
先决条件:在开始此房间之前,建议您完成以下房间,以便更好地了解此房间的内容。
Introduction to Windows API
Windows Internals
Intro to Malware Analysis
Basic Stati ...
THMAdvancedStaticAnalysis
Introduction在 基本静态分析 房间中,我们研究了恶意软件的特征,如字符串、哈希、导入函数和标头中的其他关键信息,以了解给定恶意软件的用途。在 高级静态分析 中,我们将进一步将恶意软件逆向工程到反汇编代码中,并分析汇编指令,以更好地了解恶意软件的核心功能。
高级静态分析高级静态分析是一种用于分析恶意软件代码和结构而不执行恶意软件的技术。这可以帮助我们识别恶意软件的行为和弱点,并为防病毒软件开发签名以检测它。通过分析恶意软件的代码和结构,研究人员还可以更好地了解它的工作原理并开发新的防御技术。
学习目标
这个房间旨在帮助您获得有效逆向恶意软件所需的知识。它将教您更系统地处理汇编指令,使您能够更轻松地识别重要功能,而不是被每条指令所吸引。
这个房间涵盖的一些主题包括:
了解如何执行高级静态分析。
探索 Ghidra 的反汇编程序功能。
理解和识别汇编中的不同 C 构造。
先决条件参与者应完成以下房间以更好地理解。
x86 架构概述
x86 汇编速成课程
基本静态分析
让我们开始学习吧。
Malware Analysis: Overview恶意软件分析是检查恶意软件(恶意软 ...
THMBasicStaticAnalysis
Introduction在本模块的前几个房间中,我们学习了计算机架构和汇编语言的基础知识。虽然这些主题是学习恶意软件分析的基本构建块,但我们将从这个房间开始分析恶意软件。
先决条件在开始这个房间之前,建议您完成以下房间。
恶意软件分析简介
x86 汇编速成课程
x86 架构概述
学习目标分析恶意软件的第一步通常是在不运行它的情况下查看其属性。这种分析称为静态分析,因为恶意软件是静态的并且没有运行。我们将在这个房间中介绍基本的静态分析。特别是,我们将介绍以下主题。
恶意软件分析实验室设置
在恶意软件中搜索字符串
通过哈希对恶意软件进行指纹识别
基于签名的检测机制
从 PE 标头中提取有用信息
事不宜迟,让我们继续下一个任务,了解如何设置恶意软件分析实验室。
Lab SetupBasic precautions for malware analysis:在分析恶意软件之前,必须了解恶意软件通常具有破坏性。这意味着在分析恶意软件时,很有可能破坏正在分析的环境。这种损害可能是永久性的,消除这种损害可能比分析恶意软件所付出的努力还要多。因此,创建一个能够承受恶意软件破坏性的实验室设置是必 ...
THMWindowsInternals
Introduction操作系统背后蕴含的技术和架构比我们最初看到的要多得多。在这个房间里,我们将观察 Windows 操作系统和常见的内部组件。
学习目标
了解并与 Windows 进程及其底层技术交互。
了解核心文件格式及其使用方式。
与 Windows 内部交互并了解 Windows 内核的运行方式。
由于 Windows 机器构成了企业基础设施的大多数,红队需要了解 Windows 内部结构及其可能被(滥用)使用的方式。红队可以在制作攻击性工具或漏洞时(滥用)使用 Windows 来帮助规避和利用。
在开始这个房间之前,请熟悉 Windows 的基本使用和功能。还建议但不要求具备 C++ 和 PowerShell 的基本编程知识。
Processes进程维护并代表程序的执行;应用程序可以包含一个或多个进程。进程有许多组件,这些组件被分解成多个部分进行存储和交互。Microsoft 文档 分解了这些其他组件,“每个进程都提供执行程序所需的资源。进程具有虚拟地址空间、可执行代码、系统对象的打开句柄、安全上下文、唯一进程标识符、环境变量、优先级类、最小和最大工作集大小以及至少 ...
THMIntrotoMalwareAnalysis
Introduction偶尔,当您担任 SOC 分析师时,您会遇到看似可疑的内容(文件或流量),并且您必须确定该内容是否是恶意的。对此类内容提供的所有混杂信号感到困惑是正常的。对于刚开始从事网络安全工作的人来说,这有点不知所措,并且开始自我猜测是很常见的。知道采取什么步骤来解决这种情况很有帮助。这个房间将列出一些步骤,以帮助您就特定可疑文件做出初步结论。
值得注意的是,在这个房间里,您将了解:
什么是恶意软件?
如何开始分析恶意软件
静态和动态恶意软件分析
帮助您分析恶意软件的资源
让我们开始吧!
Malware Analysis恶意软件恶意软件一词源于“恶意软件”一词。因此,任何具有恶意目的的软件都可以被视为恶意软件。恶意软件根据其行为进一步分为不同的类别。但是,我们不会详细介绍这个房间里的恶意软件。在这里,我们将思考如果我们怀疑在机器中发现恶意软件,我们将采取哪些步骤。那么,让我们开始吧。
恶意软件分析背后的目的恶意软件分析是一项重要的技能。简要概述一下,恶意软件分析由安全行业的以下人员执行:
安全运营团队分析恶意软件以编写针对其网络中恶意活动的检测。
事件响应团队分析恶意软 ...
THMYara
Introduction简介
这个房间需要您了解基本的 Linux 知识,例如安装软件和用于系统常规导航的命令。此外,这个房间并非旨在测试您的知识或得分。它旨在鼓励您跟随并尝试您在这里学到的知识。
与往常一样,我希望您从这个房间中学到一些东西,即 Yara(又一个荒谬的缩写)的奇妙之处及其在当今信息安全中的重要性。Yara 由 Victor M. Alvarez (@plusvic) 和 @VirusTotal 开发。查看 GitHub 存储库 此处。
What is Yara?关于 Yara 的一切
“恶意软件研究人员(以及其他所有人)的模式匹配瑞士军刀”(Virustotal.,2020)
有了这样一句恰当的引言,Yara 可以根据二进制和文本模式(例如文件中包含的十六进制和字符串)识别信息。
规则用于标记这些模式。例如,Yara 规则经常被编写为根据文件呈现的特征(或模式)来确定文件是否是恶意的。字符串是编程语言的基本组成部分。应用程序使用字符串来存储文本等数据。
例如,下面的代码片段在 Python 中打印“Hello World”。文本“Hello World”将存储为字符串 ...
THMMITRE
Introduction to MITRE对于网络安全领域的新手来说,您可能从未听说过 MITRE。我们这些已经了解的人可能只会将 MITRE 与 CVE(常见漏洞和暴露)列表联系起来,这是您在搜索特定漏洞的利用时可能会查看的一种资源。但 MITRE 在网络安全之外的许多领域进行研究,以“确保国家安全、稳定和福祉”。这些领域包括人工智能、健康信息学、太空安全等等。
来自 Mitre.org:“在 MITRE,我们解决问题,让世界更安全。通过我们联邦资助的研发中心和公私合作伙伴关系,我们与政府各部门合作,应对国家安全、稳定和福祉面临的挑战。”
在这个房间里,我们将重点介绍美国非营利组织 MITRE 公司为网络安全社区创建的其他项目/研究,具体包括:
ATT&CK®(对抗战术、技术以及通用知识)框架
CAR(网络分析存储库)知识库
ENGAGE(抱歉,不是花哨的缩写)
D3FEND(检测、拒绝和DisruptionFrameworkEmpoweringNetworkDefense)
AEP(ATT&CKEmulationPlans)
Basic Terminology在 ...
VolatilityCheatSheet
Vol2系统相关判断内存镜像内存信息
vol -f file imageinfo
或者
vol -f file kdbgscan
插件使用:
vol -f file –profile=xxx plugin
timeliner: 将所有操作系统事件以时间线的方式展开
shutdowntime: 最后一次关机时间
envars -p :查询指定进程的环境变量
进程相关pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,
pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
dlllist: 列出某一进程加载的所有dll文件
malfind: 用于寻找可能注入到各种进程中的恶意软件,也可以-p指定pid
netscan: 获取网络连接
memdump -p: 转存指定进程的内存
文件相关filescan 扫描当前打开的文件
mftparser:解析MFT记录
mftparser –output-file=file -D output_file
敏感信息 ...
VolatilityTHM
IntroductionVolatility 是一款免费的内存取证工具,由 Volatility Foundation 开发和维护,通常由蓝队中的恶意软件和 SOC 分析师使用,或作为其检测和监控解决方案的一部分。Volatility 用 Python 编写,由 Python 插件和模块组成,旨在以即插即用的方式分析内存转储。
Volatility 适用于 Windows、Linux 和 Mac OS,完全用 Python 编写。
Volatility Overview来自 Volatility Foundation Wiki,“Volatility 是世界上使用最广泛的从易失性存储器 (RAM) 样本中提取数字工件的框架。提取技术完全独立于被调查的系统,但提供了对系统运行时状态的可见性。该框架旨在向人们介绍从易失性存储器样本中提取数字工件的技术和复杂性,并为进一步研究这一令人兴奋的研究领域提供平台。”
Volatility 由多个插件共同构建,用于从内存转储中获取信息。要开始分析转储,您首先需要识别图像类型;有多种识别此信息的方法,我们将在后面的任务中进一步介绍。一旦您对图像类型和 ...
