PHDays HackQuest 2017:RanSomWare-GOの小さな暗号

こんにちは、 PHDaysから2週間のHackQuest終わりました 。 WEBに関連するタスクの優位性にもかかわらず、主催者はリバースに関連するタスクを無視しませんでした。 これらのタスクの1つ( erawmosnar )の解決策を、今日検討したいと思います。 さらに、私はWannaCryの同様のトピックがさらに関連するようになると思います。
タスクの手がかりは1つだけでした。
警告:erawmosnar ==ランサムウェア。実行していない場合は、実行しないでください。

始めましょう


ファイルをダウンロードしてIDAで開くと、1000を超える名前のない関数があり、Golangのように見えるので、Googleにアクセスしてください



簡単なGoogle検索でこの問題の解決策が示されました。 スクリプトをダウンロードし、IDAで実行してお楽しみください。



バイナリを開始すると、8桁のPINコードの入力を求める招待状と、失敗した場合の不正確さに関するメッセージが表示されます。



これを出発点として使用すると、これらすべてを処理する関数を見つけることは難しくありません。 スクリプトでコードを処理した後、この関数はmain_mainと呼ばれます

それはすべて、ハッシュがバッファに書き込まれるという事実から始まります。



次に、ピンを入力するように求められます。



次に、SHA1ハッシュがそこから計算され、標準に対してチェックされます。そうすれば、フラグが表示されるか、現在のディレクトリの内容が暗号化されるかのいずれかで、すべてが単純になります。



明確にするために、いくつかのブレークポイントを設定します。

gdb-peda$ break *0x4015B4 Breakpoint 1 at 0x4015b4 gdb-peda$ break *0x4015D5 Breakpoint 2 at 0x4015d5 gdb-peda$ break *0x401669 Breakpoint 3 at 0x401669 gdb-peda$ 

runtime_concatstring2関数が呼び出される前に最初のブレークポイントがトリガーさ 、ハッシュがスタックに送信され、ピンと「\ n」記号が送信されます。



[続行]をクリックすると、次のブレークポイントに到達します。ここでは、入力したPINコードとソルトを連結した結果が明確に表示されます。



3番目のブレークポイントでは、ハッシュが検証されます。 必要な情報がすべて揃ったので、ハッシュを削除するだけです。 検索用の辞書を作成します。

 gh0st3rs@gh0st3rs-pc:erawmosnar$ crunch 8 8 1234567890 -o /media/DATA/passwdlst/8digits.lst 

検索を開始します。

 gh0st3rs@gh0st3rs-pc:erawmosnar$ sudo hashcat -m 110 --hex-salt hash /media/DATA/passwdlst/8digits.lst 



ピンは正常に選択され、フラグを拾うために残ります:

Source: https://habr.com/ru/post/J328114/


All Articles