概要
Hack The Box(以下、HTB)のRetiredチャレンジである"Find The Easy Pass"のwriteupです。
利用ツール
-
ghidra
https://ghidra-sre.org/ -
immunity Debugger
https://www.immunityinc.com/products/debugger/
Walkthrough
1. ファイルのダウンロード
ダウンロードしたzipファイルを解凍すると
EasyPass.exe
が入っている
2. ファイルの素性を簡単に確認
3. ファイルを実行してみる
"Wrong Password"が表示されます。
たぶん正解パスワードとの一致を検証していることが想定されます。
4. ghidraで解析
ghidraのインストールなどはご自身で実施ください。
ghidraとはファイルの解析などに利用できるリバースエンジニアリングツールです。
ghidra起動後、以下の手順で解析を進めます。
-
任意の場所に任意の名前でプロジェクトを作成します。
-
EasyPass.exeを指定しインポートします。
-
インポートしたEasyPass.exeをクリックし、デフォルトのままAnalyzeで解析を進めます。
しばらく解析が進みます。
-
Defined StringsウィンドウのFilterにファイル実行時に確認した"Wrong Password"を入力します。
-
一件ヒットしたのでダブルクリックで表示し、対象のStringの位置で右クリック
References -> Show References To Address で対象文字列が参照されているアドレスがわかる
-
00454131のアドレスの関数から"Good~"と"Wrong~"に分岐していることがわかる。
5. immunity Debuggerで解析
immunity Debuggerを使えばbreakpointなどを設定し実行時の動作を追いかけることができる。
-
ghidraで解析したアドレス「00454131」を選択して右クリック -> Breakpoint -> ToggleでBreakpointを設定
-
immunity Debuggerの右側のRegistersで入力文字列と正解文字列の比較していることが変わる
2つ目のASCII文字が正解のパスワードになる
6. Submit Flag
提出時のフォーマット : HTB{<見つけたパスワード>}