CSIRT_asks_you_02

以下のファイルが与えられ、脆弱なパスワードとそのアカウント名を要求された。

Following files were given. A weak password and the account name for the password was asked.

samdump2SYSTEMSAMを変換すると、 *disabled*の付いた行やアカウント名が特殊な文字の行の中に、以下の行があった。

I had samdump2 to convert SYSTEM and SAM. The result contained this like among lines with *disabled* and lines that uses a special character as the account name.

stella:1001:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

Ophcrackで解析を行った結果、 31d6cfe0d16ae931b73c59d7e0c089c0は空文字列に対応するNTLMハッシュのようであった。
しかし、flag{stella_} はIncorrectとなった。

「SYSTEM.LOG1 SAM.LOG1」でググると、以下のページがヒットした。

I cracked this via Ophcrack and found that 31d6cfe0d16ae931b73c59d7e0c089c0 is a NTLM hash that corresponds to an empty string.
However, flag{stella_} was judged as Incorrect.

I googled "SYSTEM.LOG1 SAM.LOG1" and found this page:

Bam KeyとTransaction Log - @port139 Blog

ここで紹介されていたRegistry Explorer/RECmdを用いて与えられたファイル群を開き、調査すると、 アカウントの情報が SAM\Domains\Account\Users に格納されていそうであることがわかった。
そこで、「SAM\Domains\Account\Users hash」でググり、以下のページを見つけた。

Opening and observing given files with Registry Explorer/RECmd that was introduced in this page, I found the account information looks stored in SAM\Domains\Account\Users.
Then, I googled "SAM\Domains\Account\Users hash" and found these pages:

これらのページでは、レジストリのデータからパスワードのハッシュ値を求める方法が紹介されていた。 しかし、与えられたデータと比較すると、SYSKEYを求めるためのデータの長さが合わず、処理の方法がわからなかった。
そこで、「nthash syskey」でググり、以下のページを見つけた。

How to obtain the hash values of the passwords from data stored in the Registry was in the pages.
However, looking at the given data, the length of data to obtain SYSKEY from differed and I didn't know how to deal with them.
Then, I googled "nthash syskey" and found this page:

Retrieving NTLM Hashes and what changed in Windows 10 – Industrial Security Research Group

このページを参考にFの値をチェックすると、パスワードはAESで暗号化されていそうだった。
しかし、与えられたデータ中のSYSKEYを求めるためのデータの長さは、このページの記述とも合わなかった。
そこで、「system sam aes encrypted john」でググり、以下のページを見つけた。

I checked the value of F referring to this page and found that the password is encrypted with AES.
However, the length of data to obtain SYSKEY from in the given data also differed from the description in this page.
Seeing this, I googled "system sam aes encrypted john" and found this page:

Pwdump on Windows 10 after password change with anniversary update installed · Issue #2 · CiscoCXSecurity/creddump7 · GitHub

このページより、mimikatzでハッシュ値が求められそうだったので、 「mimikatz sam security dump」でググり、以下のページを見つけた。

Reading this page, I found that mimikatz should be useul to obtain the hash value.
I googled "mimikatz sam security dump" and found this page:

Dumping NTLM Hashes from SAM using Mimikatz | JoshDawes.com

このページを参考に、mimikatzのlsadump::samコマンドでハッシュのダンプを行い、 grepNTLMを含む行を抽出した。

得られたハッシュ値をCrackStationに入れて解析を行うと、 ハッシュ値3c99b8901b00758369f18b9df72012c8に対応する値がtesttestであることがわかった。
さらに、ダンプ結果からこのハッシュ値で検索を行うと、このハッシュ値に対応するアカウント名はtestだとわかった。
これらを組み合わせることでflagが得られた。

Referring to this page, I dumped the hashes via the lsadump::sam command in mimikatz and extracted lines that contains NTLM via grep from the result.

Cracking the hash values obtained via CrackStation, I found the hash value 3c99b8901b00758369f18b9df72012c8 corresponds to the value testtest.
After that, I searched for this hash value from the result of the dump, finding that the account name that corresponds to this hash value is test.
I obtained the flag by putting these together.

flag{test_testtest}

setodaNote CTF