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
      
      









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










All Articles