Not So Complicated

Window Pains で使ったファイルについて、Jimmie のパスワードを要求された。

一般的に、Windowsのパスワード解析においては SYSTEMSAM からパスワードのハッシュを抜き出して解析を行うのが定石である。

Volatility 3 を用い、windows.registry.hivelist.HiveList を実行すると、出力の最初の部分は以下のようになった。

Regarding the file used in Window Pains, Jimmie's password was asked.

Generally speaking, the normal way to crack Windows password is extracting password hashes from SYSTEM and SAM and cracking the hashes.

I executed windows.registry.hivelist.HiveList on Volatility 3. The first part of the output was:

Volatility 3 Framework 1.0.0 Offset FileFullPath File output 0xab09bee71000 Disabled 0xab09bee55000 \REGISTRY\MACHINE\SYSTEM Disabled 0xab09bef33000 \REGISTRY\MACHINE\HARDWARE Disabled 0xab09c2599000 \Device\HarddiskVolume1\Boot\BCD Disabled 0xab09bf81f000 \SystemRoot\System32\Config\SOFTWARE Disabled 0xab09bfb88000 \SystemRoot\System32\Config\DEFAULT Disabled 0xab09c270f000 \SystemRoot\System32\Config\SECURITY Disabled 0xab09c27d2000 \SystemRoot\System32\Config\SAM Disabled

これに基づき、windows.registry.hivelist.HiveList --dump --filter \REGISTRY\MACHINE\SYSTEM および windows.registry.hivelist.HiveList --dump --filter \SystemRoot\System32\Config\SAM を用いて SYSTEMSAM の情報を抜き出そうとした。
その結果、SYSTEM の情報は抜き出せたようだったが、 SAM の情報は抜き出せなかった。

ここで、vol.py -h の出力を観察すると、プラグイン volatility3.plugins.windows.hashdump が読み込めなかった、というような出力がされていた。
さらに、setup.py を読むと、pycryptodome を参照しているようだった。
(README.md には、Optional Dependencies として yara-pythoncapstone しか載っていなかった)

ローカル環境ではなぜか pycryptodome をインストールしても volatility3.plugins.windows.hashdump は読み込めないままだったので、 AWS 上にEC2インスタンスを用意し、そこでVolatilityを実行することにした。
インスタンスタイプは t2.micro、AMIは Ubuntu Server 20.04 LTS (HVM), SSD Volume Type (ami-03d5c68bab01f3496) を使用した。
以下のコマンドを実行することで、ダウンロードしたVolatility 3 1.0.1 およびイメージファイルを解凍し、実行できるようになった。

Based on this, I tried to extract information of SYSTEM and SAM using commands
windows.registry.hivelist.HiveList --dump --filter \REGISTRY\MACHINE\SYSTEM and windows.registry.hivelist.HiveList --dump --filter \SystemRoot\System32\Config\SAM.
As a result, I looked succeeded to extract SYSTEM, but it failed to extract SAM.

Looking at the output of vol.py -h, there were some messages saying that a plugin volatility3.plugins.windows.hashdump coundn't be loaded.
Moreover, reading setup.py, I found it requiring pycryptodome.
(Only yara-python and capstone were listed as Optional Dependencies in README.md)

Installing pycryptodome in my local environment didn't activate volatility3.plugins.windows.hashdump, so I decided to create an EC2 instance on AWS and execute Volatility there.
I used t2.micro instance type and AMI "Ubuntu Server 20.04 LTS (HVM), SSD Volume Type" (ami-03d5c68bab01f3496).
I executed these commands to enable to unzip downloaded Volatility 3 1.0.1 and the memory image file, and to execute Volatility:

sudo apt-get update sudo apt-get -y install python unzip

さらに以下のコマンドを実行することで、pycryptodome をインストールし、windows.hashdump.Hashdump を使える状態にすることができた。

Then, I executed these commands to install pycryptodome. This enabled it to use windows.hashdump.Hashdump.

sudo apt-get -y install python3-pip pip3 install pycryptodome

その後 windows.hashdump.Hashdump を実行すると、ユーザ名とハッシュの対応表が得られた。

得られたハッシュのうち Jimmie に対応するものをCrackStationで解析すると、 パスワードを得ることに成功した。
このパスワードをもとに、flagが得られた。

After that, I ran windows.hashdump.Hashdump, obtaining a table of usernames and corresponding hashes.

I tried to crack the hashes corresponding to Jimmie using CrackStation.
It succeeded to recover the password and I obtained the flag based on the password.

flag{qwertyuiop}

DEADFACE CTF