
Windowsプロセスから情報を抽出し、機密文字列をダンプするための小さなツールキット
Windowsプロセスから情報を抽出し、機密文字列をダンプするための小さなツールキット。FormThiefに付属するように作られています。
プロセスメモリをダンプし、読み取り可能な文字列を検索します。このバージョンではPID、検索文字列、および範囲のみ指定できます。検索文字列が見つかった場合、範囲パラメータは、見つかった文字列の両側に有効なASCII文字である限り何文字印刷するかを示します。
VSでコンパイル。以下はOutlookプロセスからユーザー情報をダンプする例:
PS C:\Users\capde> .\procsearch.exe 7592 "email" 500
[+] Search string "email" FOUND: (...) "age_group": "adult", "association_status": "{\"com.microsoft.Olk\":\"associated\"}"
,"authority": "https://login.microsoftonline.com/consumers", "birthday": "1969-3-1", "display_name": "John Doe",
"email": "[email protected]", "first_name": "John", "id": "3a25f54136ac887c", "last_name": "Doe", "location":
"UK", "login_name":"[email protected]","onprem_sid": "", "password_change_url": "", "phone_number": "" (...)
Inline-Execute-PEでは正しく機能しません。これを解決するために取り組んでおり、C++ BOFバージョンでは現在のCバージョンよりも大きな検索範囲を可能にする予定です。
.cnaをコンパイルしてロード:
x86_64-w64-mingw32-gcc -c procsearch-BOF.c -o procsearch-BOF.o
BOFバージョンはバッファサイズに敏感なので、<range>オプションはなく、出力はやや制限されます。バッファサイズを自由に調整してみてください。ただし、大きすぎると__chkstkエラーが発生したり、ビーコンがハングする可能性があるので注意してください。
理想的にはC++で書きたいところですが、bof-vsを使用してローカルでは動作確認済みですが、ビーコンで実行するとマングルされた未知のシンボルエラーやクラッシュが発生します。可能であれば更新します。Cで検索機能/バッファを実装するより良い方法があるかもしれませんが、今のところこれで動作します。
非常に大きなプロセスで"."のような1文字を検索することはお勧めしません。ビーコンがハングする可能性があります。BOFを使用する場合は、少なくとも3~4文字の検索文字列を推奨します。C++バージョンでは範囲を大幅に拡大できます。
Outlookプロセスからダミーユーザーデータをダンプする例:
https://github.com/mlcsec/proctools/assets/47215311/dccd1223-774e-4dec-8353-91c057900a07
指定されたpidのすべてのファイルバージョン情報を出力するC#ユーティリティ。VSまたはcscでコンパイル:

上記の機能の一部を再現するC BOF。VerQueryValue(lpVersionInfo, "\\StringFileInfo\\040904b0\\...の値をダンプする問題を解決する必要があります。
.cnaをコンパイルしてロード:
x86_64-w64-mingw32-gcc -c procinfo-BOF.c -o procinfo-BOF.o

指定されたプロセスのコマンドライン引数を抽出します。.cnaをコンパイルしてロード:
x86_64-w64-mingw32-gcc -c procargs.c -o procargs-BOF.o

プロセスを終了します(CSのkillを使えばいいので、なぜこれを作ったのかは不明):
x86_64-w64-mingw32-gcc -c prockill-BOF.c -o prockill-BOF.o
