以下のファイルが与えられ、脆弱なパスワードとそのアカウント名を要求された。
Following files were given. A weak password and the account name for the password was asked.
SAM
SAM.LOG1
SAM.LOG2
SECURITY
SECURITY.LOG1
SECURITY.LOG2
SYSTEM
SYSTEM.LOG1
SYSTEM.LOG2
samdump2でSYSTEM
とSAM
を変換すると、
*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.
31d6cfe0d16ae931b73c59d7e0c089c0
は空文字列に対応するNTLMハッシュのようであった。
しかし、flag{stella_}
はIncorrectとなった。
「SYSTEM.LOG1 SAM.LOG1」でググると、以下のページがヒットした。
I cracked this via 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
ここで紹介されていたSAM\Domains\Account\Users
に格納されていそうであることがわかった。
そこで、「SAM\Domains\Account\Users hash」でググり、以下のページを見つけた。
Opening and observing given files with 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:
このページより、
Reading this page, I found that
I googled "mimikatz sam security dump" and found this page:
Dumping NTLM Hashes from SAM using Mimikatz | JoshDawes.com
このページを参考に、mimikatzのlsadump::sam
コマンドでハッシュのダンプを行い、
grep
でNTLM
を含む行を抽出した。
得られたハッシュ値を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 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.