
Erkennen von EDR-Ausnahmen durch die Untersuchung der geladenen Module von Prozessen.
Dieses Tool sucht entweder nach den Prozessen, in denen eine bestimmte Binärdatei geladen ist, oder nach den Prozessen, in denen dies nicht der Fall ist. Dies ist in den folgenden Szenarien nützlich:
c:\windows\sytem32\lsass.exe die PID von Lsass).Vielleicht finden Sie andere wertvolle Möglichkeiten, dieses Tool zu nutzen. Diese Ergebnisse werden erzielt, ohne alle Prozesse im System zu durchlaufen, und mit reduziertem Rauschen.
Das Tool ermittelt alle Prozesse, in denen eine bestimmte Binärdatei geladen ist, indem es NtQueryInformationFile mit dem Flag FileProcessIdsUsingFileInformation aufruft. Nur falls erforderlich, wird EnumProcesses aufgerufen, um die PIDs aller Prozesse zu erhalten, und schließlich werden beide Ergebnisse verglichen, um eine endgültige PID-Liste zu erhalten. Wenn das Tool nicht im stillen Modus läuft, werden die endgültigen PIDs in den vollständig qualifizierten Pfad des Hauptmoduls des Prozesses übersetzt.
Wenn Sie die prozessübergreifende Aktivität reduzieren möchten, verwenden Sie den stillen Modus (--quiet oder -q). In diesem Fall wird kein Prozesshandle geöffnet, aber das Tool ruft nur die PIDs ab und nicht die vollständig qualifizierten Pfade.
Das Tool ist vollständig kompatibel mit Win10 und neuer sowie Windows Server 2016 und neuer. Für ältere Betriebssystemversionen erfordert der Aufruf von OpenProcess (Zeile src::main.rs:108) PROCESS_QUERY_INFORMATION und PROCESS_VM_READ anstelle von nur PROCESS_QUERY_LIMITED_INFORMATION (oder Sie können einfach im stillen Modus bleiben, der kein Prozesshandle öffnet).
Da wir das LITCRYPT-Plugin zum Verschleiern von Zeichenfolgenliteralen verwenden, muss die Umgebungsvariable LITCRYPT_ENCRYPT_KEY vor dem Kompilieren des Codes gesetzt werden:
C:\Users\User\Desktop\bin_finder\bin_finder> set LITCRYPT_ENCRYPT_KEY="yoursupersecretkey"
Danach einfach den Code kompilieren und das Tool ausführen:
C:\Users\User\Desktop\Bin-Finder> cargo build --release
C:\Users\User\Desktop\Bin-Finder\target\release> bin_finder.exe -h
Bin-finder hat zwei verschiedene Verwendungsmodi. Der Standardmodus sucht nach allen Prozessen, die die angegebene Binärdatei nicht geladen haben. Zum Beispiel können wir nach allen Prozessen suchen, die die CrowdStrike-DLL nicht geladen haben:

Dies ist sehr nützlich, wenn Sie nach Verzeichnissen/Prozessen in der Ausnahmeliste des EDR suchen.
Wenn Sie die prozessübergreifende Aktivität reduzieren möchten, kann der stille Modus verwendet werden, um nur die PIDs abzurufen:

Wenn Sie außerdem den Namen oder den Pfad der gesuchten DLL nicht kennen, können Sie versuchen, die Module aufzulisten, die in einem regulären Prozess geladen sind, indem Sie das Flag -l oder --list verwenden (dies ist auch nützlich, um festzustellen, ob ein EDR vorhanden ist oder nicht):

Der zweite Verwendungsmodus ist die Rückwärtssuche (Flags -r oder --reverse), die nach allen Prozessen sucht, die die angegebene Binärdatei derzeit geladen haben. Zum Beispiel möchten Sie vielleicht die PID des Prozesses erhalten, der den StorSvc-Dienst ausführt. In diesem Fall führen Sie einfach eine Rückwärtssuche für die DLL durch, die den RPC-Server implementiert, der von diesem Dienst verwendet wird:

Diese Rückwärtssuche kann auch verwendet werden, um direkt die PID eines Prozesses zu erhalten, indem der vollständig qualifizierte Pfad seines Hauptmoduls (normalerweise eine .exe-Datei) angegeben wird, ohne über alle Prozesse im System iterieren zu müssen. So würden Sie die PIDs aller laufenden chrome.exe erhalten:
