当前位置: 首页 > news >正文

取证 - voasem

分类

内存取证

经常利用volatility分析

  • 取证文件后缀 .raw、.vmem、.img
  • 常用命令(imageinfo,pslist,dumpfiles,memdump)
  • 可疑的进程(notepad,cmd)
  • 和磁盘取证结合起来考察
  • 了解部分操作系统原理
  • 常见文件后缀dmg,img

命令

python3 vol.py -f [取证文件]  插件

可以使用 -h 参数获取使用方法和插件介绍,列举几个常用到的命令

  • imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 –profile 中带上对应的操作系统,后续操作都要带上这一参数

  • pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以

  • pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程

  • psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程

  • cmdscan:可用于查看终端记录

  • notepad:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)

  • filescan:扫描所有的文件列表

    linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’

  • dumpfiles:导出某一文件(指定虚拟地址)

    需要指定偏移量 -Q 和输出目录 -D

  • mendump:提取出指定进程,常用foremost 来分离里面的文件

    需要指定进程-p [pid] 和输出目录 -D

  • editbox:显示有关编辑控件(曾经编辑过的内容)的信息

  • screenshot:保存基于GDI窗口的伪截屏

  • clipboard:查看剪贴板信息

  • iehistory:检索IE浏览器历史记录

  • systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)

  • hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)

  • mftparser:恢复被删除的文件

  • svcscan:扫描 Windows 的服务

  • connscan:查看网络连接

  • envars:查看环境变量

  • dlllist: 列出某一进程加载的所有dll文件

  • hivelist: 列出所有的注册表项及其虚拟地址和物理地址

  • timeliner: 将所有操作系统事件以时间线的方式展开

磁盘取证

常用工具

  • 磁盘取证软件

    十六进制编辑软件,常用的十六进制编辑软件有winhex,010editor,x-way

  • 7z

硬盘结构

主引导扇区由主引导程序(Master Boot Record,MBR)、硬盘分区表(Disk Partition Table,DPT)和结束标志三部分组成

磁盘格式

常见的磁盘分区格式有以下几种

  • Windows: FAT12 -> FAT16 -> FAT32 -> NTFS

  • Linux: EXT2 -> EXT3 -> EXT4

  • FAT 主磁盘结构

forensic-filesys

forensic-filesys

  • 删除文件:目录表中文件名第一字节 e5

VMDK

VMDK:(VMWare Virtual Machine Disk Format)是虚拟机VMware创建的虚拟硬盘格式,文件存在于VMware文件系统中,被称为VMFS(虚拟机文件系统),可以用7z打开

VMDK不能用volitility打开

​ VMDK 文件本质上是物理硬盘的虚拟版,也会存在跟物理硬盘的分区和扇区中类似的填充区域,我们可以利用这些填充区域来把我们需要隐藏的数据隐藏到里面去,这样可以避免隐藏的文件增加了 VMDK 文件的大小(如直接附加到文件后端),也可以避免由于 VMDK 文件大小的改变所带来的可能导致的虚拟机错误。而且 VMDK 文件一般比较大,适合用于隐藏大文件。

内存

  • 解析 Windows / Linux / Mac OS X 内存结构
  • 分析进程,内存数据
  • 根据题目提示寻找线索和思路,提取分析指定进程的特定内存数据

磁盘镜像

自己电脑留足镜像文件的存储空间

利用kali工具(AutoPsy)或者其他磁盘镜像分析工具veracryto挂载磁盘文件

找到密钥挂在,查看文件(包括隐藏文件)

数据恢复

工具

volitility3

strings-初步分析

从二进制文件(如磁盘镜像、可执行文件等)中提取可打印字符串,快速筛选出可能包含 flag、配置信息、关键文本的内容,是初步分析的常用工具。

mount-磁盘挂载

mount用于挂载文件系统(比如将磁盘镜像、分区等虚拟为一个 “可访问的磁盘”)。当拿到一个磁盘镜像(如 .img 文件)时,通过 mount 可以把镜像里的分区挂载到系统中,方便后续查看、分析其中的文件内容。

extundelete-恢复文件

针对 ext 系列文件系统(如 ext3、ext4),恢复被删除的文件。如果磁盘分区是 ext 格式,且文件被误删或需要从取证角度恢复已删除数据,可使用该工具尝试找回文件。

veracrypt-解密加密卷

一款开源的磁盘加密/解密工具,支持对整个磁盘分区或容器进行加密,也能解密由它或类似工具(如 TrueCrypt)加密的磁盘。在 CTF 中,若遇到加密的磁盘镜像或分区,可通过 veracrypt 尝试解密,获取其中的隐藏数据或 flag。

TSK命令

TSK 工具按图层组织,此页面基于这些图层进行组织。通常,以下工具将磁盘或文件系统映像作为输入。

原网页链接:TSK 工具概述 - SleuthKitWiki
以下是几个示例:

mmls

mmlsmmls(Multipart Multisector Listing,多分区多扇区列表)工具的命令,它是 autopsy 取证套件中 tsk 工具集的一部分,主要用于查看磁盘镜像或存储设备的分区表信息

image-20250911210017151

image-20250911210150755

fls

flsfile list 的缩写,同样是 tsk 工具集中的一个命令,用于列出磁盘镜像或分区中的文件和目录信息。

image-20250911210223459

参数

  • -o 2048-o 选项用于指定偏移量(offset),这里表示从磁盘镜像的第 2048 个扇区开始分析,这是因为前面通过 mmls 得知第 2048 个扇区之后才是实际的文件系统开始位置。
  • -r :表示递归列出目录下的所有文件和子目录,即不仅列出当前目录下的文件,还会深入到子目录中列出其中的文件和目录。

执行结果:列出了磁盘镜像中指定偏移量之后的文件和目录信息,如 d/d 26417: home 表示发现了一个名为 home 的目录 ,d/r 11: lost+found 表示发现了一个名为 lost+found 的目录 。 这里的 d 表示目录(directory),d/dd/r 中的第二个字符表示目录的权限等属性相关的信息。

icat

icat 是数字取证工具集 The Sleuth Kit(TSK)中的一个命令,用于从磁盘镜像或文件系统中提取指定的文件内容。

image-20250911211202734

在命令 icat -o 2048 dds2-alpine.flag.img 18291 中:

  • -o 2048:指定偏移量(offset)为 2048 个扇区(通常每个扇区 512 字节,这里用于定位文件系统或特定数据在磁盘镜像中的起始位置,因为前面通过 mmls 等命令分析出有效数据从 2048 扇区开始)。
  • dds2-alpine.flag.img:要分析的磁盘镜像文件名称。
  • 18291:是文件的 inode 编号(inode 是文件系统中存储文件元信息的数据结构,每个文件对应唯一的 inode 编号),通过这个编号可以定位到具体的文件,进而提取其内容。

执行该命令后,会从指定的磁盘镜像中,根据偏移量和 inode 编号,提取出对应文件的内容,图中显示的就是提取出的字符

srch_strings

srch_strings:是数字取证工具集 The Sleuth Kit(TSK)中的字符串提取工具,作用是从二进制文件(如磁盘镜像)中提取可打印的 ASCII 或 Unicode 字符串(忽略不可见的二进制数据),类似 strings 命令,但更适用于取证场景。
还有很多命令目前还没有用到,命令连接集放这儿了TSK 工具概述 - SleuthKitWiki

Autopsy(Windows版)

介绍

Autopsy是数字取证工具The Sleuth Kit(TSK)的图形界面,可以用来分析磁盘镜像和恢复删除的文件,提供在磁盘镜像中进行字符串提取,包括关键字搜索,哈希匹配,注册表分析,Web分析,恢复文件,时间轴分析,chrome,firefox 等浏览器历史分析,关键字搜索和邮件分析等功能.支持的镜像格式有DD、E01,用户也可以添加本地驱动器进或本地文件/文件夹进行分析。Autopsy 支持的文件系统有NTFS、FAT12、FAT16、FAT32、 HFS+、ISO9660、Ext2、 Ext3 以及UFS等。另外, Autopsy 还可以很方便地导出报告。

eg:

挑战描述:

标签: 取证, 磁盘

作者:LT 'SYREAL' JONES

描述

下载此磁盘映像并找到标志。

用Autopsy打开disk.flag.img,
image
发现三个卷和一个未分配卷,Vol2 是引导卷,vol3 是交换分区,vol4 是主分区.交换分区是空的,引导卷没有任何异常,所以接下来将注意力放到vol4.
来回翻找,在home/yone/gallery下面发现了几张图片,在对home/yone下的文件夹仔细查看,大致定位这就是我们即将翻动的天地

yone
├── .ash_history
├── gallery
│   ├── 1.bmp
│   ├── 2.bmp
│   ├── 3.bmp
│   └── 7.bmp
├── irclogs
│   ├── 01
│   │   └── 04
│   │       └── #avidreader13.log
│   ├── 02
│   │   ├── 04
│   │   │   └── #leagueoflegends.log
│   │   ├── 07
│   │   │   └── #leagueoflegends.log
│   │   ├── 09
│   │   │   └── #leagueoflegends.log
│   │   ├── 17
│   │   │   └── #leagueoflegends.log
│   │   └── 25
│   │       └── #leagueoflegends.log
│   └── 07
│       └── 17
│           └── #common.log
├── .lynx
│   └── browsing-history.log
├── Maildir
│   ├── cur
│   │   ├── 1673722143.M758346P394112Q1.haynekhtnamet:2,S
│   │   ├── 1673722272.M345699P394146Q1.haynekhtnamet:2,S
│   │   ├── 1673722272.M354727P394146Q3.haynekhtnamet:2,S
│   │   ├── 1673722272.M362142P394146Q4.haynekhtnamet:2,S
│   │   ├── 1673722272.M370158P394146Q5.haynekhtnamet:2,S
│   │   ├── 1673722272.M382945P394146Q7.haynekhtnamet:2,S
│   │   ├── 1673722272.M388674P394146Q8.haynekhtnamet:2,S
│   │   ├── 1673722272.M394284P394146Q9.haynekhtnamet:2,S
│   │   ├── 1673722272.M406783P394146Q11.haynekhtnamet:2,S
│   │   ├── 1673722272.M413082P394146Q12.haynekhtnamet:2,S
│   │   └── 1673722272.M418711P394146Q13.haynekhtnamet:2,S
│   ├── new
│   │   └── 1673722272.M424681P394146Q14.haynekhtnamet
│   └── tmp
└── notes├── 1.txt├── 2.txt└── 3.txt

并没看出什么,只觉得都很吓人,继续检查下一个子目录 irclogs。

IRC 代表 Internet Relay Chat,因此我们可以推测 irclogs 中的文件是聊天记录。让我们先看看 avidreader13.log

[08:12] <yone786> Ok, let me give you the keys for the light.
[08:12] <avidreader13> I’m ready.
[08:15] <yone786> First it’s steghide.
[08:15] <yone786> Use password: akalibardzyratrundle
[08:16] <avidreader13> Huh, is that a different language?
[08:18] <yone786> Not really, don’t worry about it.
[08:18] <yone786> The next is the encryption. Use openssl, AES, cbc.
[08:19] <yone786> salt=0f3fa17eeacd53a9 key=58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 iv=7a12fd4dc1898efcd997a1b9496e7591
[08:19] <avidreader13> Damn! Ever heard of passphrases?
[08:19] <yone786> Don’t trust em. I seed my crypto keys with uuids.
[08:20] <avidreader13> Ok, I get it, you’re paranoid.
[08:20] <avidreader13> But I have no idea if that would work.
[08:21] <yone786> Haha, I’m not paranoid. I know you’re not a good hacker dude.
[08:21] <avidreader13> Is there a better way?
[08:22] * yone786 yawns.
[08:24] <yone786> You’re ok at hacking. I’m good at writing code and using it
[08:24] <avidreader13> What language are you writing in?
[08:26] <yone786> C
[08:26] <avidreader13> Oh, I see.
[08:26] <yone786> I’m glad you like it. I’m sure you wouldn’t understand half of what I was doing.
[08:28] <avidreader13> I understand enough, but I do wish you wouldn’t take so much time with it.
[08:28] <yone786> Sorry. Well, I wish you could learn some things.
[08:29] <avidreader13> But it’s an incredible amount of time you spend on it.
[08:29] <yone786> Haha, don’t take it like that.

仔细阅读会发现在这个聊天记录提到了steghide的使用,这是一种用于隐藏图像中数据的程序.或许与之前的那四个bmp有关.尝试使用 steghide 提取嵌入的消息。使用聊天日志中提供的密码“akalibardzyratrundle”:

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ steghide extract -sf 1.bmp -p akalibardzyratrundle
wrote extracted data to "les-mis.txt.enc".

得到了 les-mis.txt.enc,我们可以猜测它是加密的。聊天日志提到了 openssl 并提供了 salt、key 和 iv 值:

salt=0f3fa17eeacd53a9 key=58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 
iv=7a12fd4dc1898efcd997a1b9496e7591

尝试解密,搜索了一番用openssl

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ openssl enc -d -aes256 -in les-mis.txt.enc -out les-mis.txt \
-S 0f3fa17eeacd53a9 \
-K 58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 \
-iv 7a12fd4dc1898efcd997a1b9496e7591 \
| head -5 les-mis.txtThe Project Gutenberg eBook of Les Misérables, by Victor HugoThis eBook is for the use of anyone anywhere in the United States and
most other parts of the world at no cost and with almost no restrictions
whatsoever. You may copy it, give it away or re-use it under the terms

没发现flag,尝试过滤搜索

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ if [ $(cat les-mis.txt | grep -c "picoCTF") != 1 ]; \
then printf "\nFlag not found!"; fiFlag not found!

没找到,尝试别的图片

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ steghide extract -sf 2.bmp -p akalibardzyratrundle
wrote extracted data to "dracula.txt.enc".┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ openssl enc -d -aes256 -in dracula.txt.enc -out dracula.txt \
-S 0f3fa17eeacd53a9 \
-K 58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 \
-iv 7a12fd4dc1898efcd997a1b9496e7591 \
| if [ $(cat dracula.txt | grep -c "picoCTF") != 1 ]; \
then printf "\nFlag not found!"; fiFlag not found!

尝试3.bmp:

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ steghide extract -sf 3.bmp -p akalibardzyratrundle
wrote extracted data to "frankenstein.txt.enc".┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ openssl enc -d -aes256 -in frankenstein.txt.enc -out frankenstein.txt \
-S 0f3fa17eeacd53a9 \
-K 58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 \
-iv 7a12fd4dc1898efcd997a1b9496e7591 \
| if [ $(cat frankenstein.txt | grep -c "picoCTF") != 1 ]; \
then printf "\nFlag not found!"; fiFlag not found!

尝试7.bmp:

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ steghide extract -sf 7.bmp -p akalibardzyratrundle
steghide: could not extract any data with that passphrase!

7.bmp啥也没有哦,图象费了半天劲,啥也没发现,接着看别的聊天记录吧.

下一个子目录 Maildir 包含电子邮件,并有其他 3 个子目录 cur、new 和 temp。先打开cur...

image

此文件夹中的电子邮件似乎是营销垃圾邮件。然而,一个有趣的是三封已删除的电子邮件。这些是标有红色“X”的文件。其中两个文件无法立即恢复,另一个已删除文件的 inode 已被.ash_history重复使用,结果也无法恢复。

现在看看新文件夹Maildir,这里只有一封电子邮件

查看另一个文件夹.lynx。我们可以看到.lynx 中有一个名为“browsing-history.log”的文件,这是有道理的,因为 Lynx 是一个网络浏览器。
查看browsing-history.log,发现

www.google.com
https://www.google.com/search?q=number+encodings&source=hp&ei=WeC9Y77KJ_iwqtsP0sGu6A0&iflsig=AK50M_UAAAAAY73uaRxDkbHRUH8jn4OVhOgM8riUqvVI&ved=0ahUKEwj-2r_EgL78AhV4mGoFHdKgC90Q4dUDCAk&uact=5&oq=number+encodings&gs_lcp=Cgdnd3Mtd2l6EAMyBggAEBYQHjIFCAAQhgMyBQgAEIYDMgUIABCGAzIFCAAQhgM6DgguEIAEELEDEIMBENQCOgsIABCABBCxAxCDAToRCC4QgAQQsQMQgwEQxwEQ0QM6CAgAELEDEIMBOgsILhCABBCxAxCDAToFCAAQgAQ6CAgAEIAEELEDOggILhCABBDUAjoHCAAQgAQQCjoHCC4QgAQQClAAWI0VYPAXaABwAHgDgAHDA4gB-iKSAQkwLjMuNS40LjOYAQCgAQE&sclient=gws-wiz
https://en.wikipedia.org/wiki/Church_encoding
https://cs.lmu.edu/~ray/notes/numenc/
https://www.wikiwand.com/en/Golden_ratio_base

似乎是某人的浏览历史记录。“yone”尝试查看不同的编码.似乎在找到有关黄金比例基础的信息后停止搜索。

综上,我们浏览了整个主文件夹的“yone”,发现了四张图像,其中三张包含我们解密的隐藏消息,另一张图像可能有也可能没有隐藏的秘密。我们看到“yone”删除了“阿泽里特大师”的三封电子邮件,我们看到这三封已删除的电子邮件无法立即恢复。

接下来,开始寻找那些已删除的电子邮件.也就是"尸检"!我们知道已删除的电子邮件是从“azerite17@gmail.com”发送的或发送到“”的,因此我们对该电子邮件执行简单的关键字搜索.
image
找到了什么?
image

找到了,在未分配的空间中有多个命中。看到了被删除的三封电子邮件。我把它们按顺序排列在下面

subject: Enlightened passwords
to: Sten Walker <yone786@gmail.com>
from: Bob Bobberson <azerite17@gmail.com>
Yone,
You asked me about good passwords. I have some advice on this topic as it relates greatly to our shared endeavor of spreading light.
I cannot recommend this philosophy of passwords highly enough: https://xkcd.com/936/ My only adaptation is that I use unique words from my favorite game, World of Warcraft.
Please delete this email as soon as you have taken whatever notes you need and censored any damning details.
To the Light and All it reveals,
- The Azerite Mastersubject: Re: Enlightened passwords
to: Bob Bobberson <azerite17@gmail.com>
from: Sten Walker <yone786@gmail.com>
I've adopted this for my passwords, Azerite. For my most important password, I use it both for my ledger and for my user account on my machine, just so I remember it better without writing it down.subject: Re: Enlightened passwords
to: Sten Walker <yone786@gmail.com>
from: Bob Bobberson <azerite17@gmail.com>
Very good.
- The Azerite Master

从这些电子邮件中我们看到,“azerite”推荐“yone”遵循 https://xkcd.com/936/ 的密码理念:

Press enter or click to view image in full size

“Yone”遵循此建议并将其作为密码。

也许这是找到7.bmp密码的线索?不过,你看过 xkcd 漫画,暴力破解用四个随机单词制作的密码需要数年时间。

irclogs
├── 01
│   └── 04
│       └── #avidreader13.log
├── 02
│   ├── 04
│   │   └── #leagueoflegends.log
│   ├── 07
│   │   └── #leagueoflegends.log
│   ├── 09
│   │   └── #leagueoflegends.log
│   ├── 17
│   │   └── #leagueoflegends.log
│   └── 25
│       └── #leagueoflegends.log
└── 07└── 17└── #common.log

用户“yone”似乎是英雄联盟的狂热玩家。这有多重要?如果你回顾一下我们用在 steghide 上使用的密码“akalibardzyratrundle”,它实际上是英雄联盟中四个英雄的名字串联起来的。四位冠军是阿卡丽、巴德、婕拉和特伦德尔,如这里所确认的。用户“yone”也以英雄联盟冠军 The Unforgotten Yone 的名字命名!

因此,可以合理地假设从7.bmp中提取隐藏数据的密码遵循相同的模式。

然而,存在一个问题。英雄联盟中有 162 个独特的冠军名称,因此可能的排列(换句话说,密码)的数量是:
image

基本上,我们对7.bmp的字典攻击的单词列表会663526080不同的密码。虽然这是可能实现的,但我们希望现在而不是以后破解它!对我们来说幸运的是,我们可以走捷径。还记得3.txt吗?

I keep forgetting this, but it starts like: yasuoaatrox...

7.bmp的密码是否以“yasuoaatrox”开头?亚索和亚托克斯都是英雄联盟冠军,所以它确实符合模式。如果我们知道前2个单词,会有多少个排列?
image

只有 26082。这更容易管理。

从制作单词列表开始。我们需要将每个英雄联盟冠军的名字放入文本文件中。我们可以从这里复制列表并将其粘贴到名为 lol_champs.txt 的新文件中。


┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ head lol_champs.txt
AatroxAhriAkaliAkshanAlistar

使用sed命令:

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ sed -i '/^$/d' lol_champs.txt ; head lol_champs.txt
Aatrox
Ahri
Akali
Akshan
Alistar
Amumu
Anivia
Annie
Aphelios
Ashe

制作一个 python 脚本来创建我们的单词列表:

#make_lol_wordlist.py#load champion names into lines
with open('lol_champs.txt') as f:lines = f.read().splitlines()with open("lol_wordlist.txt", "a") as g:for x in lines:for y in lines:pw = ("yasuoaatrox"+x+y+"\n").lower()g.write(pw)

运行make_lol_wordlist.py:

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ python3 make_lol_wordlist.py ; head lol_wordlist.txt
yasuoaatroxaatroxaatrox
yasuoaatroxaatroxahri
yasuoaatroxaatroxakali
yasuoaatroxaatroxakshan
yasuoaatroxaatroxalistar
yasuoaatroxaatroxamumu
yasuoaatroxaatroxanivia
yasuoaatroxaatroxannie
yasuoaatroxaatroxaphelios
yasuoaatroxaatroxashe

现在我们有了单词列表,让我们创建另一个脚本来对7.bmp进行字典攻击。

#attack.pyimport subprocessdef dict_attack(wordlist):for x in wordlist:try:subprocess.check_output(["steghide", "extract", "-sf", "7.bmp", "-p", x], stderr=subprocess.DEVNULL)return xexcept subprocess.CalledProcessError:passreturn 0if __name__ == "__main__":with open('lol_wordlist.txt') as f:lines = f.read().splitlines()passphrase = dict_attack(lines)if passphrase:print("Success! Passphrase is " + passphrase)else:print("Sorry, no cigar.")

运行attack.py:

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ python3 cracker.py
Success! Passphrase is yasuoaatroxashecassiopeia

啊哈!密码是“yasuoaatroxashecassiopeia”,steghide 确实成功地提取了隐藏的数据。隐藏数据已提取到名为 ledger.1.txt.enc 的文件中.
查看,

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ head ledger.1.txt.enc
��#ԇ�.O�G<���A ��md��٣�\��Kس�B��9�ޗa�$O�y��oP�Jb�����<�@��܉a|+�(9�/ӈpth�U˨�LK/܀M
�-&m�@��Y�q�l$��Ȃ{���b{&��S�׺�c���?�Y���1�֯������,�A�c��o��8q��~�ʌC��/I��~h
���lA����\��=ц�|��J,��،H�'�GX�e�VA�$\n��:?�����9�ve��&pƶ%�������5  'J����989|/�k��v|p��/Z�DH��|>I*l����3C򣓜
5d�
��_����.D3��Mz8�0k]�6�̤�٣�_�%��
�+"K��Eh|w�m���K8Ҡ0��2X��W��!@��1��F��n���J2���gVh���)��6-8R�8�ҟ1
�yd�^)W��T�#tI^�5T�F� ��rG�t����7��#lp�(>%:�R�-��O�������j�w�[�'S���\P���`[��)�����!�~h��F�8\,�仇c?����

似乎是加密的。但它的加密方式是否与其他三张图像相同?

└─$ openssl enc -d -aes256 -in ledger.1.txt.enc -out ledger.1.txt \
-S 0f3fa17eeacd53a9 \
-K 58593a7522257f2a95cce9a68886ff78546784ad7db4473dbd91aecd9eefd508 \
-iv 7a12fd4dc1898efcd997a1b9496e7591
bad decrypt

不可以,因此必须使用其他值来加密 ledger.1.txt.enc。我们将不得不在驱动器上的其他地方找到这些值,暴力破解 aes-256-cbc 不是好的选择。

在我看来,下一部分是挑战中最困难的部分。
因为我到现在反复看了三遍仍然没有看明白.

使用 Autopsy,您可以查看磁盘上未分配的数据以及使用文件雕刻。
image

但是在搜索了 3-4 个小时的雕刻文件和未分配的空间后,我没有发现任何有用的东西。我还搜索了“key”、“salt”和“iv”,但没有成功。我无可救药地被困住了,直到我发现了松弛的空间。使用 NIST 的定义,松弛空间为:

文件分配块或内存页中可能保存剩余数据的未使用空间。

我们可以使用 Autopsy 搜索闲置空间,只需在“slack”上进行关键字搜索:

image

搜索结果是磁盘中每个文件的空闲空间:
image

不幸的是,由于我们不知道我们在寻找什么,因此我们将不得不一一查看每个文件。

然而,在我们搜索的早期,我们发现了......
image

那到底是什么?二元的?让我们更好地了解一下:phi_enc.txt,如上图

奇怪,但我想我以前见过这种情况。还记得之前browsing-history.log的文件吗?这是该日志中的最后一个条目......

黄金比例底座 — Wikiwand

现在从链接中查看黄金比例基础的示例:
image

Taken from: Golden ratio base — Wikiwand
这看起来很像从松弛空间中获取的数据!它可以用黄金比例碱基编码吗?让我们制作一个脚本来解码它。

#phi_decoder.py
from math import ceil
from scipy.constants import goldendef phinary_to_decimal(phigit):integer, fraction = phigit.split(".")integer = integer[::-1] #reverse integer stringnumber = 0for i, x in enumerate(integer):if x == "1":number = number + golden ** (i)for i, x in enumerate(fraction):if x == "1":number = number + golden ** -(i+1)return numberif __name__ == "__main__":with open("phi_enc.txt") as f:string = f.read()string = string.rstrip("\n")#Split string every 15th characterphigits = [string[i: i + 15] for i in range(0, len(string), 15)]decoded_phi = []for phigit in phigits:decoded_phi.append(ceil(phinary_to_decimal(phigit)))print(''.join(map(chr,decoded_phi)))

在上面的脚本中,我每 15 个字符拆分一次phi_enc.txt,因为在字符串的开头,第一个“.”之前有 11 个字符,在末尾的“.”之后有 3 个字符。

执行脚本时我们得到了什么有用的东西吗?


┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ python3 phi_decoder.py
salt=2350e88cbeaf16c9
key=a9f86b874bd927057a05408d274ee3a88a83ad972217b81fdc2bb8e8ca8736da
iv=908458e48fc8db1c5a46f18f0feb119f

好!我们可以使用这些值解密 ledger.1.txt.enc 吗?

┌──(user㉿kali)-[~/picoctf/UnforgettenBits]
└─$ openssl enc -d -aes256 -in ledger.1.txt.enc -out ledger.1.txt \
-S 2350e88cbeaf16c9 \
-K a9f86b874bd927057a05408d274ee3a88a83ad972217b81fdc2bb8e8ca8736da \
-iv 908458e48fc8db1c5a46f18f0feb119f \
| cat ledger.1.txt
avidreader13                                                 PAIDLes Mis, Dracula, Frankenstein, Swiss FamilyRobinson, Don Quixote, A Tale of Two Cities513u7h                                                       PAIDDon QuixotemasterOfSp1n                                                 PAIDSwiss Family Robinson, A Tale of Two CitiesAwolCoyote                                                   PAIDLes Mis, DraculapicoCTF                                                    UNPAIDpicoCTF{f473_53413d_de7d35ee}

震惊,终于做出来了!(容我再看看)

相关文章:

取证 - voasem

分类 内存取证 经常利用volatility分析取证文件后缀 .raw、.vmem、.img 常用命令(imageinfo,pslist,dumpfiles,memdump) 可疑的进程(notepad,cmd) 和磁盘取证结合起来考察 了解部分操作系统原理 常见文件后缀dmg,img命令 python3 vol.py -f [取证文件] 插件可以使用 -h…...

django对接drf-spectacular替代swagger

django对接drf-spectacular替代swagger 1.1、安装drf-spectacular pip install drf-spectacular pip install django-restframework1.2 配置 Django 设置 # settings.pyINSTALLED_APPS = [ # ... drf_spectacular, # 添加此项 rest_framework, # 确保 DRF 已添加 # ... ]REST_F…...

可画

https://www.canva.cn/...

Symbol VBRK: Invalid data type u SAP 事务成功新号码获取到 但是提交后提示失败如何处理

前几天用户提了个错误问题 Symbol "VBRK": Invalid data type "u" 提示说发票创建车工但是离开的时候报错 分析问题可能 增强失败 ST22检查没有讯息 今天经过更老的老师傅提示 SM14查看可能事务回滚了 赶紧查看了下 有错 点击 DEBUG发现是发票创建成功以…...

Oracle 19c asm单机OPatch补丁报错checkSystemCommandAvailable failed.

Oracle 19c asm单机OPatch补丁报错"checkSystemCommandAvailable" failed.一、OPatch Conflict Check As the Grid home user: % $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/36916690/3691259…...

three.js中怎么加载 .gltf/glb格式 文件

3D编辑器格式 用于特定应用程序(主要是3D编辑器):. .blend (Blender), .max (3d Studio Max), .mb and .ma (Maya), etc... 交换格式 有.OBJ, .DAE (Collada), .FBX.等格式。它们被设计出来用于3D编辑器之间交换信息的。因此,它们通常比所需的大得多(内含3D编辑器内所需要的…...

ollama如何安装使用

Ollama 是目前最流行的本地大语言模型(LLM)运行和管理的工具。它让下载、运行和体验各种开源模型(如 Llama、Mistral、Gemma 等)变得极其简单。 下面是从安装到使用的完整指南。一、安装 Ollama Ollama 支持 macOS、Linux 和 Windows(预览版)。 1. macOS方式一(推荐):…...

【SPIE独立出版|连续多年EI稳定检索】第七届地球科学与遥感测绘国际学术会议(GRSM 2025)

为交流近年来国内外在地球、地理科学和遥感测绘领域的理论、技术和应用的最新进展,展示最新成果,第七届地球科学与遥感测绘国际学术会议将于2025年10月17-19日在中国-乌鲁木齐召开,GRSM 2025旨在为从事地球科学和遥感测绘领域的专家学者、工程技术人员、技术研发人员提供一个…...

手把手教你实现C++高性能内存池,相比 malloc 性能提升7倍!

大家好,我是小康。 写在前面 你知道吗?在高并发场景下,频繁的malloc和free操作就像是程序的"阿喀琉斯之踵",轻则拖慢系统响应,重则直接把服务器拖垮。 最近我从0到1实现了一个高性能内存池,经过严格的压测验证,在8B到2048B的分配释放场景下,性能相比传统的ma…...

LDPC 码 BP 算法性能研究

1. 要点来源:NASA 技术报告 + IEEE 802.16e 标准矩阵 算法:经典 Belief-Propagation(BP)迭代解码 + 最小和(MS)变体 性能:BER vs Eb/N0、迭代次数、码长/码率影响、BP vs MS 对比 输出:BER 曲线图、迭代收敛图、误码位置分布2. 结构 LDPC_BP_Study/ ├── main_…...

内外网文件传输方式有哪些:从传统方案到专业系统的全面解析!

在数字化时代,企业数据流通需求日益增长,许多企业为保障核心数据安全实施网络隔离,由此催生了内外网文件传输的高频场景。内外网文件传输指在企业内部网络与外部网络(或不同安全域隔离网络)之间,实现文件数据流通的行为,其核心诉求是在突破网络连接限制的同时,兼顾安全…...

实用指南:DeerFlow 实践:华为IPD流程的评审智能体设计

实用指南:DeerFlow 实践:华为IPD流程的评审智能体设计pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", mon…...

py之补环境代理脚本

function getEnvs(proxyObjs) {for (let i = 0; i < proxyObjs.length; i++) {const handler = `{get: function(target, property, receiver) {console.log("方法:", "get ", "对象:", "${proxyObjs[i]}", " 属性:", …...

Python psutil模块

一、简介psutil(Process and System Utilities)是Python中最强大的系统监控和进程管理库之一。它提供了跨平台的系统信息获取接口,能够轻松获取系统的CPU、内存、磁盘、网络等硬件信息,以及进程管理、系统监控等功能。无论是开发运维工具、系统监控程序,还是性能分析应用,…...

跨网文件传输工具选择要点是什么?

内容概要 在选择跨网文件传输工具时,企业面临着诸多考量。本文旨在全面剖析“跨网文件传输工具如何选择”的关键要素,特别是聚焦于像Ftrans Ferry跨网文件安全交换系统这样的专业解决方案。以下将从安全性、功能特性、易用性及扩展性四大维度出发,通过具体分析和实例,为您提…...

下半年业绩冲刺,12个效率工具帮你提速!

三季度收尾在即,距离 2025 年结束只剩 3 个月,你的业绩目标还差多少? 如果进度滞后,四季度的冲刺就得靠 “巧劲”—— 别只拼时间,多借工具的力。就像我一位朋友,刚工作时同事还在手写记录、靠电话找信息,他早早用电脑打字、上网查资料,效率直接领先一截。古人说 “君子…...

AUTOSAR的MPU内存保护

AUTOSAR的MPU内存保护Q:How can I configure MPU(Memory Protection Unit) for an OS_Task in Vector AUTOSAR Conguration Tool? A:For a configured task, you configure OsTaskMemoryProtectionIdentifier to specify a memory protection identifier for the task. you …...

AI赋能CRM:纷享销客智能图像提升终端运营效率

在消费品行业竞争日益白热化的当下,终端已成为品牌竞争的核心战场。门店陈列是否规范、数据是否真实、执行是否合规,让诸多企业陷入“看不见、管不清、控不住”的终端管理困境。 面对这一核心痛点,纷享销客推出全新升级的纷享 AI 图像智能,以 AI 技术重新定义终端管理模式。…...

【linux命令】网卡命令 ①

网卡命令 ifup / ifdown功能:启用或关闭网络接口。 依赖配置文件:在 RHEL/CentOS 系统,读取 /etc/sysconfig/network-scripts/ifcfg-*。用法: ifup eth0 # 启用 eth0 ifdown eth0 # 关闭 eth0限制:如果没有写配置文件,会提示 not configured,所以更偏向于系统初…...

一款基于 .NET 开源美观、功能丰富的串口调试工具

前言 今天大姚给大家分享一款基于 .NET 开源(GPL-3.0 license)、美观、流畅、高效、功能丰富的串口调试工具:SuperCom。 工具介绍 SuperCom 是一款基于 .NET 开源(GPL-3.0 license)、美观、流畅、高效、功能丰富的串口调试工具,主要用于 Window 串口日志的采集、存储、可…...

麒麟系统中docker常用命令

检查 docker 服务是否已启动 sudo systemctl status dockersudo systemctl start docker # 启动 sudo systemctl enable docker # 设置开机自启 sudo systemctl restart docker #重启docker查看 docker 镜像和容器docker images # 列出本地所有镜像 docker…...

2015年7月微软安全更新深度解析:SQL Server、IE及系统漏洞修复

微软2015年7月发布14项安全更新,含4项紧急补丁,涉及SQL Server远程代码执行、IE浏览器漏洞、Hyper-V虚拟化风险等关键技术领域,同时提供Windows Server 2003最终安全更新和恶意软件清除工具增强。2015年7月安全更新概要 2015年7月15日(日本时间),微软发布14项新安全公告(…...

国产传输软件解决方案厂商优选指南

内容概要 在当今数字化时代,选择合适的国产传输软件解决方案厂商对于企业的信息安全与业务效率至关重要。众多厂商中,国产传输软件解决方案厂商以其专业实力脱颖而出,其中Ftrans SFT文件安全传输系统‌备受瞩目。本指南旨在通过深入分析厂商的全面适配信创生态能力、解决方案…...

安卓方程式计算器HiPER Calc PRO v11.2.7 高级版

HiPER Calc Pro(原应用名称HiPER Scientific Calculator高级版),一款收费非常好用且无广告功能强大的方程式图形计算器,分数计算器,代数计算器,矩阵计算器,具备完整图形、算术方程式、表格、常数、函数强大功能。它多包含100位有效数字和9位小数,支持检测重复的小数,并…...

.NET 10 是微软 AI 战略的技术承重墙

微软于2025年1月成立的新部门 CoreAI - Platform and Tools(简称CoreAI),是其AI战略升级的核心举措,旨在整合内部资源、加速AI基础设施与工具开发,推动“以模型为中心”的应用变革。CoreAI是微软AI战略的“中枢神经”,通过整合开发工具、云平台与研究资源,构建覆盖全场景…...

在Oracle中,如何彻底停止expdp进程?

许多同事在使用expdp命令时,不小心按了CTRL+C组合键,然后又输入exit命令(或者网络中断等异常现象),导致expdp进程不存在,但Oracle数据库的会话仍存在,所以dmp文件也一直在增长。在这种情况下的处理办法如下所示: 1、检查expdp进程是否还在 ps -ef | grep expdp 若存在,…...

[SDR] 两种方法可视化打飞机:ADS-B 信号接收与航班追踪

目录效果展示一、前言二、gr-air-modes2.1 环境构建2.2 经典案例效果展示一、前言介绍ADS-B协议和1090MHz频段。 使用USRP和dump1090等工具接收和解码航班信息。 在地图上实时显示航班位置。二、gr-air-modes gr-air-modes 是一个开源的软件定义无线电(SDR)接收器,用于解析飞…...

P7072 [CSP-J2020] 直播获奖

P7072 [CSP-J2020] 直播获奖#include <bits/stdc++.h> using namespace std;const int maxn = 1e5 + 10; int n,w,cnt[610] = { 0 };int main(){ios::sync_with_stdio(0);cin.tie(0);cin >> n >> w;int ans = 1;for(int i = 1; i <= n; i++){int t;cin &g…...

服务器文件同步工具大盘点

内容概要 在数据驱动的时代,服务器文件同步成为企业日常运营不可或缺的一环。面对繁多的文件同步需求,“服务器文件同步工具有哪些”成为众多IT管理者关心的焦点。本文将全面盘点当前主流的服务器文件同步工具,特别介绍如Ftrans FTC文件传输管控系统等高效解决方案。它们凭借…...

基于Python+Vue开发的酒店客房预订管理系统源码+运行步骤

项目简介该项目是基于Python+Vue开发的酒店客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的酒店客房预订管理系统项目,大学生可以在实践…...

AI破局俱乐部,通过AI搞副业,确实解决了很多人中年危机问题

前段时间“李一舟”事件炒得沸沸扬扬,有的人悲愤不已,有的人拍手叫好。割韭菜的情景,就如你满怀期待地报班学一门课程,结果发现所谓的“秘籍”不过是些网上随处可见的常识。又如你兴冲冲地去吃大餐,结果端上来的却是昨天的剩饭。这种“割韭菜”的套路,简直就是在考验我们…...

深入剖析布谷im即时通讯app系统软件源码之技术

随着互联网的发展,企业和个人对即时通讯(IM)应用的需求日益增长。山东布谷鸟网络科技有限公司深入了解市场与用户需求,专注于即时通讯app系统的开发,提供包括源码交付的完整解决方案,助力客户快速搭建安全、稳定且高效的IM平台。 山东布谷科技将从软件开发的多个维度,详…...

解锁RAG高阶密码:自适应、多模态、个性化技术深度剖析

别让你的AI系统还停留在只会查字典的阶段!本文用轻松幽默的方式揭秘高级RAG技术如何让AI变得更聪明:自适应检索像读心术一样精准,多模态RAG让AI能看图识字,个性化RAG则让AI记住你的每一个小习惯。想打造真正智能的AI应用?这三项技能缺一不可!当你走进一家智能咖啡厅,第一…...

低延迟垃圾收集器:挑战“不可能三角”

----------- 先赞后看 👍 效果翻倍 🔥 ---------------- 在开始之前,必须再次强调 “不可能三角”:内存占用、吞吐量、延迟,三者难以同时完美。 传统的垃圾收集器(如 Serial, Parallel, CMS, G1)在堆内存变大时,停顿时间(Latency)也会显著变长,因为它们总有一些阶…...

Java Heap Dump详解

1、什么是 Heap dump? Java堆转储(Heap Dump)是Java虚拟机(JVM)在某一时刻内存使用情况的快照,它包含了该时刻所有对象的实例信息、类信息、字段值和引用关系等数据。堆转储文件通常以 .hprof或 .heap为扩展名,是诊断内存问题的关键工具。 当应用程序出现内存泄漏、内存…...

软件逆向入门理论

软件逆向入门理论目录大脉络软件的构成软件逆向是一种技术手段,它能达成的目的:分析该软件的漏洞; 分析这个软件,想作为跳板获取其他软件、系统的更高权限; 分析该软件的安全性、可靠性等; 分析该软件的构成;下面粗浅的进行软件逆向入门,将选择经典的x86平台下的软件来…...

鸿蒙应用开发从入门到实战(七):ArkTS组件声明语法

《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战等原创内容、欢迎关注!​本文从界面制作从组件声明开始,通过一个相对简单的案例来系统的学习 ArkTS 声明组件的语法。大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发…...

P1115 最大子段和

P1115 最大子段和 妙#include <bits/stdc++.h> using namespace std; #define int long long const int maxn = 2e5 + 10;int n,a[maxn],dp[maxn]; int ans = -100010;signed main(){// freopen("in","r",stdin);ios::sync_with_stdio(0);cin >&g…...

麒麟系统关闭防火墙

有时远端连接数据库时出现 连接超时 ,则有可能是 麒麟系统的防火墙 开启了,最简单的方法是关闭防火墙#查看防火墙状态 sudo systemctl status firewalld #检查 firewalld 是否运行 #或 sudo systemctl status ufw #检查 ufw 是否运行 (部分系统适用)#临时停止防火…...

P14003 [eJOI 2025] Reactions 解题报告

题目意思 随便找的题目,树状数组和离散化,很板子的东西不会细说 给定两个数组 \(D_i,T_i\),求 \(\max\limits_{i=1}^{n}{(\sum\limits_{j=i}^n[\sum\limits_{k=i}^jD_k \ge T_j])}\)。 思路 首先如果你将上面那个式子分解或者稍稍理解一下就能想到将区间加和,区间问题转化为…...

计算机科学入门

计算机科学入门 总结:知识点体系图 graph TDA[C++基础知识点] --> B[计算机发展史]A --> C[操作系统]A --> D[硬件组成]A --> E[编程语言与开发]A --> F[基本操作]B --> B1[重要人物:图灵/冯诺依曼]B --> B2[历史里程碑:ENIAC/103机]B --> B3[奖项:…...

Windows Server 2019开启远程桌面无法远程处理

故障现象 Windows Server 2019开启了远程桌面但是无法远程 Telnet对应端口3389也不通 故障原因 远程服务Down了 修复 到服务管理重启远程服务Remote Desktop Service如果提示病毒则关闭本机自带杀毒...

英语_阅读_This makes me crazy_待读

My parents know little about high-tech products. 我的父母对高科技产品几乎一无所知。 Computers, mobile phones, iPads ... They cant use any of them! 电脑、手机、平板……他们一个都不会用! Every time Im home for a holiday, my parents ask me how to take a phot…...

一位华裔数学家40年目睹之怪现状:美国学生的数学为什么那么差?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087最近在《知识分子》上读到一篇特写《数学战争警示录:我们需要什么样的数学教育?》,颇有感触。在这俄乌战争已持续三年有余、…...

这些年轻科学家不再满足于“追赶美国”

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选)在很长一段时间里,硅谷是全球AI人才的终点站。而中国曾是最大的人才输出地,把一代又一…...

英语_阅读_

My parents know little about high-tech products. 我的父母对高科技产品几乎一无所知。 Computers, mobile phones, iPads ... They cant use any of them! 电脑、手机、平板……他们一个都不会用! Every time Im home for a holiday, my parents ask me how to take a phot…...

聊聊理想的影像团队

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087这实际上是一个招聘贴,期望能捞一些理念相同的同道中人,一起做一些事情,为视觉中枢在 AI 浪潮里留下点什么,为 AI 做出点什…...

黑芝麻智能上半年亏损超7亿 CEO单记章去年薪酬高达1.66亿

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选)国内“智驾芯片第一股”黑芝麻智能国际控股有限…...

英语_阅读_BMI_待读

56. What is Chinas recent success in BMI? 中国在脑机接口方面最近的成功是什么? A paralyzed patient was able to drink water by controlling a glove with his brain. 一位瘫痪患者能够通过用大脑控制手套来喝水。57. What is the external device in the recent exper…...

Flutter数据可视化:fl_chart图表库的高级应用

Flutter数据可视化:fl_chart图表库的高级应用本文基于BeeCount(蜜蜂记账)项目的实际开发经验,深入探讨如何使用fl_chart构建美观、交互式的财务数据可视化图表。项目背景 BeeCount(蜜蜂记账)是一款开源、简洁、无广告的个人记账应用。所有财务数据完全由用户掌控,支持本地存…...