
Client/Server-Skripte, die entwickelt wurden, um ausgehende (Egress-)Firewall-Regeln zu testen.
Client/Server-Skripte zum Testen ausgehender (Egress-)Firewall-Regeln.
Egresser ist ein Tool zur Aufzählung ausgehender Firewall-Regeln, das für Penetrationstester entwickelt wurde, um zu beurteilen, ob die Egress-Filterung innerhalb eines Unternehmensnetzwerks ausreichend ist. Durch das Sondieren jedes TCP-Ports nacheinander antwortet der Egresser-Server mit der Quell-IP-Adresse und dem Port des Clients, sodass der Client feststellen kann, ob der ausgehende Port erlaubt ist (sowohl über IPv4 als auch IPv6) und ob wahrscheinlich NAT-Traversal stattfindet.
Wie es funktioniert
Das serverseitige Skript arbeitet in Kombination mit Iptables und leitet allen TCP-Verkehr an Port 8080 um, wo der 'echte' Server läuft. Das serverseitige Skript ist in Perl geschrieben und ist ein Pre-Forking-Server, der Net::Server::Prefork verwendet und sowohl über IPv4 als auch über IPv6 lauscht, falls verfügbar. Jede TCP-Verbindung führt zu einer einfachen Antwort, die eine nullterminierte Zeichenkette mit der IP und dem Port des verbindenden Clients enthält. Sie können gerne Telnet verwenden, um mit dem Dienst zu interagieren, wenn Sie sich in einer eingeschränkten Umgebung ohne Zugriff auf den Egresser-Client befinden (unser Egresser-Server ist unter egresser.labs.cyberis.co.uk zu finden, den Sie für legitime Zwecke verwenden können).
Der Client ist ebenfalls in Perl geschrieben und für Geschwindigkeit multithreaded. Standardmäßig scannt er die TCP-Ports 1-1024, was jedoch im Skript konfiguriert werden kann. Es ist möglich, IPv4 mit dem Befehlszeilenargument '-4' oder IPv6 mit '-6' zu erzwingen; standardmäßig wird das von Ihrem Betriebssystem bevorzugte Protokoll gewählt. Wenn Sie alle offenen/geschlossenen Ports explizit auflisten möchten, geben Sie die ausführliche Option (-v) an, da die normale Ausgabe nur eine präzise Zusammenfassung der erlaubten Ports ist.
Warum?
Es wird empfohlen, ausgehende Firewall-Regeln in Unternehmensumgebungen einzuschränken, um sicherzustellen, dass Perimeter-Kontrollen nicht leicht umgangen werden können. Beispielsweise würde eine unzureichende Egress-Filterung innerhalb einer Organisation es einem böswilligen Benutzer ermöglichen, einen Web-Proxy, der Filter/AV/Protokollierung bereitstellt, trivial zu umgehen, indem einfach die Verbindungseinstellungen eines Browsers geändert werden. Es gibt auch viele andere Beispiele – viele Würmer verbreiten sich über SMB-Protokolle, Malware kann zahlreiche Kanäle zur Datenexfiltration nutzen, und potenziell nicht autorisierte Software (z. B. Torrent/P2P-Dateifreigabe) kann frei operieren, Unternehmensressourcen verschwenden und die Wahrscheinlichkeit der Einschleppung von bösartigem Code erheblich erhöhen.
Generell wird empfohlen, alle ausgehenden Protokolle einzuschränken und Ausnahmen für bestimmte Hosts von Fall zu Fall zuzulassen. Der Webbrowser sollte nur über dedizierte Web-Proxys erfolgen, wobei alle versuchten direkten Verbindungen von der Perimeter-Firewall protokolliert und gegebenenfalls untersucht werden sollten. Egresser ist ein einfach zu bedienendes Tool, das es einem Penetrationstester ermöglicht, schnell erlaubte Ports innerhalb einer Unternehmensumgebung aufzulisten.
iptables 1.4.17 oder höher und ein Kernel 3.7+ werden für IPv6-NAT-Unterstützung benötigt.
Die folgenden Perl-Module werden für den Client benötigt:
Thread::Queue ;
IO::Socket::IP;
Getopt::Long;
Die folgenden Perl-Module werden für den Server benötigt:
Net::Server::PreFork
Bitte melden Sie alle Probleme über https://github.com/cyberisltd/Egresser/issues