Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
rpcfirewall — Windows-RPC-Firewall, die bösartige entfernte Prozeduraufrufe prüft, erkennt und blockiert, um seitliche Bewegung, Aufklärung und Ausnutzung von RPC-basierten Angriffen wie DCSync und ZeroLogon zu verhindern. | Kitploit
Tools/GitHubGitHub/zeronetworks/rpcfirewall
DefensivwerkzeugeAufklärungExploitationIDS/IPS-UmgehungLaterale BewegungNetzwerksicherheitPenetrationstestsIncident Response
GitHubzeronetworks/rpcfirewall

rpcfirewall

Windows-RPC-Firewall, die bösartige entfernte Prozeduraufrufe prüft, erkennt und blockiert, um seitliche Bewegung, Aufklärung und Ausnutzung von RPC-basierten Angriffen wie DCSync und ZeroLogon zu verhindern.

Repository anzeigen
54780vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GitHub release (latest SemVer) GitHub all releases

Ich benötige weitere Informationen

Schauen Sie sich unseren RPC Firewall Blogbeitrag oder unseren BlackHat-Vortrag an, um ein besseres Verständnis von RPC, RPC-Angriffen und der Lösung – der RPC Firewall – zu erhalten.

Treten Sie unserem |Zero| Labs Slack Community Workspace bei, um Fragen zu stellen, Probleme zu melden oder einfach etwas loszuwerden.

Wir freuen uns auch über eine E-Mail (falls Sie zu den Menschen gehören, die dies bevorzugen). Kontaktieren Sie uns unter [email protected]

Erste Schritte

Das folgende Tutorial zeigt die grundlegende Installation und Einrichtung der RPC Firewall sowie eine Demonstration, wie sie vor verschiedenen RPC-basierten Angriffen schützt.

RPC Firewall 2.0 Tutorial

Warum sollte mich das interessieren?

RPC ist der zugrundeliegende Mechanismus, der für zahlreiche laterale Bewegungen, Aufklärungs- und Relay-Angriffe genutzt wird oder einfach dazu dient, verwundbare RPC-Dienste auszunutzen.

DCSync-Angriff? über RPC. Remote DCOM? über RPC. WMIC? über RPC. SharpHound? über RPC. PetitPotam? über RPC. PsExec? über RPC. ZeroLogon? über RPC... Nun, Sie verstehen, worauf ich hinaus will :)

Terminologie?

In diesem Dokument werden die folgenden Begriffe verwendet:

  • RPC Firewall: Bezieht sich auf die eigentliche RpcFirewall.dll, die in verschiedene RPC-Server geladen wird, um diese zu schützen.
  • RPC Filters: Bezieht sich auf den nativen Windows-RPC-Filtermechanismus.
  • RPCFW Configuration: Bezieht sich auf die Datei RpcFw.conf, mit der gesteuert wird, wie sich RPC Firewall und RPC Filters verhalten.
  • RPCFW Manager: Die Befehlszeilenschnittstelle, die Benutzern Zugriff auf sowohl RPC Firewall als auch RPC Filters bietet.

Wofür wird es verwendet?

Forschung

Kann verwendet werden, um alle entfernten RPC-Aufrufe zu auditieren. Sobald Sie ein entferntes Angriffswerkzeug ausführen, sehen Sie, welche RPC-UUIDs und Opnums remote aufgerufen wurden.

Eine Beispielkonfiguration finden Sie hier.

Erkennung von Remote-RPC-Angriffen

Wenn die RPCFW Configuration für das Auditieren konfiguriert ist, werden Ereignisse in das Windows-Ereignisprotokoll geschrieben. RPC Filter-Ereignisse werden mit der Ereignis-ID 5712 in das Sicherheitsprotokoll geschrieben. RPC Firewall-Protokolle werden unter Anwendung/RPCFW geschrieben.

Benutzer können diese Protokolle an ihr SIEM weiterleiten und damit Basislinien des entfernten RPC-Verkehrs für verschiedene Server erstellen. Sobald ein anormaler RPC-Aufruf auditiert wird, nutzen Sie dies, um eine Warnung für Ihr SOC-Team auszulösen.

Wir haben mehrere Sigma-Regeln integriert, mit denen ungewöhnliche RPC-Aktivitäten und Angriffe erkannt werden können.

Verhinderung von Remote-RPC-Angriffen

Die RPCFW Configuration kann so konfiguriert werden, dass nur potenziell bösartige RPC-Aufrufe blockiert und auditiert werden. Alle anderen RPC-Aufrufe werden nicht auditiert, um die Rauschunterdrückung zu verbessern und die Leistung zu steigern.

Sobald ein potenziell bösartiger RPC-Aufruf erkannt wird, wird er blockiert und auditiert. Dies kann verwendet werden, um Ihr SOC-Team zu alarmieren, während Ihre Server geschützt bleiben.

Als ergänzenden Schutz können Sie die RPC-Filterfunktionen nutzen, die ebenfalls über die RpcFwManager.exe unterstützt werden.

Ein Beispiel für eine solche Konfiguration finden Sie hier.

Was sind die Komponenten der RPC Firewall?

Sie besteht aus 3 Komponenten:

  1. RpcFwManager.exe – Fungiert als eigenständiges Befehlszeilenverwaltungstool für RPC Filters und die RPC Firewall-Bereitstellung. Fungiert auch als installierter Dienst zur Bereitstellung der RPC Firewall.
  2. RpcFirewall.dll – Eine injizierte DLL, die das Auditieren und Filtern von RPC-Aufrufen durchführt.
  3. RpcMessages.dll – Eine gemeinsame Bibliothek zum Teilen von Funktionen und Logik, die Daten in die Windows-Ereignisanzeige schreibt.

RPC Firewall oder RPC Filter verwenden?

Obwohl die Verwendung beider Methoden Vor- und Nachteile hat, gibt es einige wesentliche Vorteile der RPC Firewall, die besondere Beachtung verdienen. Diese sind:

  1. Granularität: Die RPC Firewall wird für jeden RPC-Aufruf angewendet und kann zur Erstellung detaillierterer Steuerungen für bestimmte RPC-Funktionen verwendet werden.
  2. Quelladresserkennung: RPC Firewall kann die Quelladresse des Aufrufers besser bestimmen. RPC Filters können die Quelladresse von Aufrufen über Named Pipes (SMB) nicht identifizieren, was bedeutet, dass RPC-Filterregeln für RPC-Aufrufe über Named Pipes fehlschlagen!!!
  3. Fehler!: RPC Filters leidet unter verschiedenen Fehlern, deren Behebung von Microsoft nicht forciert wird. Einige Beispiele: IP-Bereiche funktionieren nicht, und es kann kein „Catch-All“-Filter angewendet werden, da dies mehrere Domain Controller-Dienste wie NetLogon beschädigen könnte.

Andererseits eignen sich RPC Filters hervorragend für das pauschale Zulassen oder Verweigern ganzer UUIDs, da dies problemlos funktioniert.

Wie verwenden?

Status prüfen

Vor der Ausführung eines Befehls wird empfohlen, den Status der Bereitstellung zu überprüfen. Dies geschieht mit dem Befehl '/status':

root@kitploit:~
RpcFwManager.exe /status

Dies zeigt den Status sowohl der RPC Firewall als auch der RPC Filters an. Es werden detaillierte Informationen zum Installationsstatus sowie zum Betriebsstatus der Bereitstellung ausgegeben.

Die Suffixe 'fw' / 'flt'

Fast jeder Befehl kann mit fw oder flt am Ende versehen werden. Dies teilt dem RPCFW Manager mit, ob der Befehl auf RPC Firewall ('fw'), RPC Filters ('flt') oder beide (wenn kein Suffix verwendet wird) angewendet wird.

Installieren / Deinstallieren

Führen Sie die Installation der entsprechenden Funktion durch (RPC Filters / RPC Firewall / beide).

  • Installation der RPC Firewall: Konfiguriert das Ereignisprotokoll, legt die relevanten DLLs im Ordner %SystemRoot%\System32 ab und konfiguriert das Anwendungsprotokoll RPCFW für die Ereignisanzeige. Installiert auch den Dienst „RPC Firewall“, der für die Persistenz verwendet wird.
  • Installation der RPC Filters: Aktiviert die Sicherheitsüberwachung von RPC-Ereignissen. Diese finden Sie unter dem Sicherheitsprotokoll mit der Ereignis-ID 5712.

Stellen Sie sicher, dass die Ereignisanzeige während der Installation/Deinstallation geschlossen ist. Es ist außerdem empfehlenswert, vor der Installation zu stoppen und zu deinstallieren, um sicherzustellen, dass keine älteren Versionen installiert sind.

root@kitploit:~
RpcFwManager.exe /stop
RpcFwManager.exe /uninstall
RpcFwManager.exe /install

Die Deinstallation führt das Gegenteil durch. Auch hier ist es empfehlenswert, den Dienst vor der Deinstallation zu stoppen.

root@kitploit:~
RpcFwManager.exe /stop
RpcFwManager.exe /uninstall

Starten / Stoppen

RPC Filters werden systemweit auf jeden RPC-Server angewendet. Das Anwenden solcher Filter bleibt auch über Neustarts hinweg bestehen. Jeder neue oder alte Prozess wird gemäß der RPCFW Configuration durch RPC Filters geschützt.

RPC Firewall wird injiziert und schützt jeden RPC-Serverprozess, der auf entfernte RPC-Aufrufe lauscht. Dies geschieht durch die Injektion von RPC Firewall in Prozesse, die RPCRT4.DLL (die RPC-Laufzeit) laden. Sobald geladen, erkennt RPC Firewall, ob der RPC-Server auf entfernte RPC-Aufrufe lauscht. Falls nicht, entlädt es sich selbst. Wenn der Prozess ein gültiger RPC-Server ist, beginnt die RPC Firewall mit der Überwachung und Auditierung eingehender RPC-Aufrufe gemäß der RPCFW Configuration.

Die empfohlene Methode zum Schutz von RPC-Diensten ist die Verwendung des Befehls '/start'. Dieser startet den RPC Firewall-Dienst (für 'fw' oder kein Suffix) und erstellt RPC Filters (für 'flt' oder kein Suffix).

root@kitploit:~
RpcFwManager.exe /start

Es ist auch möglich, RPC Firewall Ad-hoc zu verwenden, um bestimmte Prozesse zu schützen. Dadurch wird der RPC Firewall-Dienst nicht gestartet und die Schutzeinstellungen bleiben nicht über Neustarts hinweg bestehen.

Zum Schutz eines einzelnen Prozesses anhand der Prozess-ID (PID):

root@kitploit:~
RpcFwManager.exe /start pid <pid>

Zum Schutz eines einzelnen Prozesses anhand des Namens:

root@kitploit:~
RpcFwManager.exe /start process <Prozessname>

Um den Schutz zu stoppen, geben Sie einfach den Befehl '/stop' mit dem entsprechenden Suffix ein (es ist nicht möglich, den Schutz für einen bestimmten Prozess zu stoppen).

root@kitploit:~
RpcFwManager.exe /stop

Je nach verwendetem Suffix ('fw' oder 'flt' oder keines) wird der RPC Firewall-Dienst gestoppt und die RPC Firewall-DLL aus allen Prozessen entladen. Für RPC Filters werden alle vom RPCFW Manager erstellten Filter gelöscht.

Persistenz

Einmal gestartet, bleibt die RPC Firewall über Neustarts hinweg bestehen. RPC Filters sind ebenfalls persistent.

Konfiguration

Der RPCFW Manager sucht nach einer Datei RpcFw.conf im selben Verzeichnis wie die ausführbare Datei. Diese Datei verwendet die folgenden Konfigurationsoptionen:

Wichtig: Jede Konfigurationszeile sollte mit entweder 'fw:' oder 'flt:' beginnen, um anzugeben, ob die Zeile für RPC Firewall oder RPC Filter gilt.

Weitere Details anzeigen

Um weitere RPC-bezogene „Dinge“ anzuzeigen, gibt es den Befehl show. Derzeit zeigt er nur geschützte Prozesse an, die nicht mit dem RPC Firewall-Modul geschützt werden können.

root@kitploit:~
RpcFwManager.exe /show

Die Konfigurationsreihenfolge ist wichtig, da die erste Übereinstimmung das Ergebnis des RPC-Aufrufs bestimmt.

Das folgende Konfigurationsbeispiel schützt einen Domain Controller mit RPC Firewall vor einem DCSync-Angriff. Es erlaubt die „gefährliche“ Opnum 3 DRSGetNCChanges der MS-DRSR-UUID nur von anderen Domain Controllern.

root@kitploit:~
fw:uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 addr:<dc_addr1> opnum:3 action:allow
fw:uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 addr:<dc_addr2> opnum:3 action:allow
fw:uuid:e3514235-4b06-11d1-ab04-00c04fc2dcd2 opnum:3 action:block

Wenn sich die Konfiguration ändert, müssen Sie die rpcFirewall.dll über den update-Befehl benachrichtigen:

root@kitploit:~
RpcFwManager.exe /update

Logs anzeigen

Für RPC Firewall öffnen Sie die Ereignisanzeige -> Anwendungs- und Dienstprotokolle -> RPCFW. Die Ereignis-IDs 1 und 2 beziehen sich auf 'protect'- und 'unprotect'-Ereignisse. Ereignis 3 auditiert die eigentlichen RPC-Aufrufe. Fügen Sie außerdem die Spalte Schlüsselwörter hinzu. Diese Spalte enthält Audit Success/Failure und zeigt an, ob der RPC-Aufruf blockiert wurde oder nicht.

Für RPC Filters öffnen Sie die Ereignisanzeige -> Sicherheit -> RPCFW. Filtern Sie nach Ereignis-ID 5712.

Kann ich beitragen?

Ja! Scheuen Sie sich nicht, einen Pull-Request zu stellen.

Ich möchte, dass die RPC Firewall mehr kann!

Das wollen wir auch! Bitte kontaktieren Sie uns mit Ihren Gedanken, Ideen oder Problemen: [email protected]

Gibt es eine Lizenz?

Weitere Details finden Sie unter LICENSE.

Tool herunterladen
ParameternameErklärungUnterstützt von ...
opnum:Übereinstimmung mit einer RPC-OpnumRPC Firewall
verbose:Kann entweder true oder false sein. Bei true werden Debug-Informationen für bestimmte RPC-Aufrufe ausgegeben (Standard: false)RPC Firewall
prot:Übereinstimmung mit dem verwendeten Protokoll gemäß den Protokollsequenzkonstantensowohl RPC Firewall als auch Filters
addr:Übereinstimmung mit einer entfernten IP-Adresse (IPv4 oder IPv6, einschließlich CIDR)RPC Firewall und teilweise von RPC Filters, mehr dazu hier
uuid:Übereinstimmung mit einer bestimmten UUIDsowohl RPC Firewall als auch Filters
action:Kann entweder allow oder block sein (Standard: allow)sowohl RPC Firewall als auch Filters
audit:Kann entweder true oder false sein. Steuert, ob Ereignisse in das RPCFW-Protokoll geschrieben werden (Standard: false)sowohl RPC Firewall als auch Filters
sid:Übereinstimmung eines authentifizierten Benutzers mit einer Security Identifier. Kann ein bestimmter Benutzer oder eine Gruppe sein.sowohl RPC Firewall als auch Filters