Deleted Evidence (TexSaw 2025)
The goal was to recover the last flag generated by an executable (generator.exe
), which used seed files (seed_XX.txt
). The final solution required finding the last created seed, generating the flag and appending the seed's creation timestamp (YYYY-MM-DD_Hr:Min:Sec
).
Step‑1: System Information (windows.info
)
windows.info
)The first step is to understand the environment from which the memory dump originated. We use the windows.info
plugin in Volatility 3.
vol -f evidence.mem windows.info
Output:
Step‑2: Locating Seed Files (windows.filescan
)
windows.filescan
)Next, we search for traces of the seed files within the memory dump using windows.filescan
, filtering for the expected naming pattern. As sometimes I have to use filescan a lot so I always save its output to a text file and run strings on it later.
# Savin filescan output to files.txt
vol -f evidence.mem windows.filescan > files.txt
# Scan for files matching the seed pattern
strings files.txt | grep -i "seed"
This confirms the presence of multiple seed files and provides their virtual addresses. We note these virtual addresses for potential extraction later.
Step‑3: Locating the Generator (windows.filescan
)
windows.filescan
)We also need the generator.exe
file. Since the seeds were found in \Users\user\Documents\Flags\
, we scan for files in that directory, expecting to find the generator there as well.
# Scan for files within the Flags directory
strings files.txt | grep -i "Flags"
Output (filescan_generator.txt
):
We have located the generator executable in memory and obtained its virtual address (0xe78e757c07c0
).
Step‑4: Extracting the Generator (windows.dumpfiles
)
windows.dumpfiles
)Now, we extract generator.exe
from the memory dump using its virtual address.
# Dump the file using its virtual address
vol -f evidence.mem windows.dumpfiles --virtaddr 0xe78e757c07c0
# Verify the file type
file generator.exe
Output:
The generator executable has been successfully extracted
Step‑5: Confirming the Latest Seed (windows.mftscan
)
windows.mftscan
)To find the last created seed, we refer to the Master File Table (MFT) data using windows.mftscan.MFTScan
. This provides filesystem timestamps.
# Run mftscan and filter for seed text files
vol -f evidence.mem windows.mftscan.MFTScan | grep -i 'seed' | grep -i '.txt'
Output:
By comparing the File Creation timestamps (the first YYYY-MM-DD HH:MM:SS
column), we confirm that seed_89.txt
has the latest timestamp: 2025-03-26 02:08:23 UTC
. This is the seed file we need to extract and use.
Step‑6: Extracting the Target Seed (windows.dumpfiles
)
windows.dumpfiles
)We now extract the identified latest seed file (seed_89.txt
) using its virtual address found back in Step 2.
# Dump the specific seed file using its virtual address
vol -f evidence.mem windows.dumpfiles --virtaddr 0xe78e740daa70
Output:
Step‑7: Retrieving Seed Content (strings
)
strings
)To use the seed with the generator, we need its actual content. We use the strings
command on the extracted file.
strings seed_89.txt
Output:
Step‑8: Generating the Flag
I moved the generator.exe
to my windows host machine and executed it with the seed_89.txt
.
Output:
The generator creates a file called flag.txt
.
Step‑9: Constructing the Final Flag
The final step is to combine the generated flag with the creation timestamp of seed_89.txt
(recorded in Step 5), formatted as YYYY-MM-DD_Hr:Min:Sec
.
Generated Flag:
texsaw{0f59ede3e09e5a4d18b480be9e56f3c2aa1ed0b67287f0bc60ca0b2bce62ac28}
Seed Creation Timestamp (MFT):
2025-03-26 02:08:23 UTC
Formatted Timestamp:
2025-03-26_02:08:23
Final Flag:
texsaw{0f59ede3e09e5a4d18b480be9e56f3c2aa1ed0b67287f0bc60ca0b2bce62ac28_2025-03-26_02:08:23}
Last updated