Die Sicherheitslandschaft verändert sich ständig. Beide Angreifer und Verteidiger stehen vor ständig neue Herausforderungen. Der Inhalt der Toolbox Pentester heute ist sehr verschieden von nur wenigen kurzen Jahren, ebenso die Reihe von Technologien, Netzwerkadministratoren und Sicherheitsexperten haben in dieser Verfügung gegen zunehmend in der Lage Bedrohung Agenten zu verteidigen. Mit diesem aus dem Weg, manchmal ist es Wert in rückblickend.
Ich habe auf einige meiner jüngsten Erfahrungen nachgedacht versuchen Privilegien auf Plattformen zeitgenössischen Windows eskalieren. Die Schlussfolgerung, die ich gekommen sind, ist: Ich kann häufig nicht. eine Meterpreter Schale mit einigen unprivilegierten Dienstkonto auf Server 2008, 2012 oder Windows 8.x in keiner Weise zu haben garantiert ich überall mit einem einfachen "GetSystem" bekommen werde - weit davon entfernt, in der Tat. Glücklicherweise bin ich wahrscheinlich nicht einmal, dass von außen Glück, oft die besten, die ich einige klutzy Web-Shell zu bekommen werde. So bin ich mit Entscheidungen links: Ich habe eine Reihe von Aufwand und Risiko der Entdeckung in gewinnt einen besseren Zugang zu den Webserver gießen kann, oder ich könnte einfach weitermachen. Ich mag, dass letztere Option, weil die seien wir ehrlich - alle Waren in der Backend-Datenbank sind oder auf andere Weise in Ihrem internen Netzwerk; Ihr vorderes Ende Webhost ist langweilig.
Im vorigen Jahrtausend vor NATs waren überall, ein nützliches Stück Software gibt einen SOCKS-Proxy oder Sockets Proxy aufgerufen wurde. Host A Host B kontaktieren bitten würde zu verbinden C in einem Netzwerk-Host, der B erreichen konnte, aber A konnte nicht, weil in der Regel B dual homed war; B würde Transportschicht-Nachrichten für ein Relais und C. Dies war und ist in neueren Formen wie SSH eine gute Methode für die Firewall-Bypass. Die meiste Zeit, obwohl Firewalls, Software oder auf andere Weise, werden sie nicht durch Verkehr auf den Listening-Port lassen Sie die Außenseite bilden und Ihre HIPS-Software wird ausflippen, wenn es trotzdem etwas Neues hören sieht.
Eigentlich kann SSH eigene dynamische Port-Forwarding dies tun, aber da Windows-Server in der Regel nicht SSH laufen, ich müsste mit Daemon sshd zu authentifizieren, die wahrscheinlich nicht die Portweiterleitung konfiguriert ist, um, wenn es da ist. Wenn ich versuche, meine eigene SSH-Client oder Daemon, steuert verschiedene Softwareeinschränkung zu implementieren sind wahrscheinlich keine gemeinsame Binärdateien zu blockieren.
Was muss ich tun, dies zu lösen ist mein Proxy in ein paar Teile zu teilen: die Service-Proxy, ein Connection Broker und eine Bibliothek, die ich dynamisch verknüpfen. Die Bibliothek wird Anrufe wickeln zu () zu verbinden, getaddrinfo (), GetHostInfo (), gethostbyname (), und ein paar andere, damit ich meine Lieblings-Tools durch laufen kann. Das wird genug sein, um mich grundlegende DNS und TCP in Ihrem Netzwerk zu geben, während ein paar Bedingungen erfüllen.
Alles funktioniert wie folgt: Der Service-Proxy-Nutzlast wird dem Opfer geliefert. Es schafft eine Outbound-Buchsen Anschluss an den Makler. Client-Programme sind mit Bibliothek Wrapper geladen. Wenn ein Client versucht, eine Steckdose zu öffnen oder einen DNS-Lookup ausführen, wird eine Meldung stattdessen an den Makler weitergeleitet, der die Anforderung an den Proxy über die vorhandene Buchse weiterleitet. Der Proxy übernimmt die Funktion der lokalen Ressource wie die DNS-Auflösung auf das Opfer und antwortet dem Broker. Der Broker geht schließlich Antworten zurück an den Client. Im Falle einer neuen Socket-Verbindung wird eine Weiterleitung Beziehung in dem Broker etabliert und dem Proxy-Weitergabe von Nachrichten und Socket-Ereignisse wie nah fortsetzen () für die gesamte Lebensdauer des Client-Verbindung.
Eine hypothetische Situation: Wir haben eine Datei-Upload-Verwundbarkeit auf einem Webserver, und haben eine grundlegende Webshell hochgeladen, die wir verwenden können, holen und den Service-Proxy-Nutzlast auszuführen. Der Server kann ausgehende Verbindungen machen auf Port 443. Der Angreifer bei 172.16.235.140 ist.
Zuerst richten wir ein paar Umgebungsvariablen auf dem angreifenden Computer, die der Broker und Bibliothek Wrapper verwenden:
Dann werden wir die Brokerkomponente bereit zu machen:
Die Nutzlast wird auf das Opfer ausgeführt:
In diesem Fall ist das Opfer Maschine auf TrustedSec das interne Netzwerk. Da der Angreifer, weiß ich nicht viel über das interne Netzwerk, aber zum Glück, weil mein Proxy-Resolver mit dem Opfer bietet mir die DNS-Auflösung, werde ich denke, dass es eine "intranet.companyname.local".
Groß! Sieht aus wie ein IIS-Server gibt, die ein Anfang sowieso. Ich werde iceweasel mit dem Wrapper beginnen und zu erkunden, dass für eine Weile Vielleicht!
Gerade jetzt, meine Proxy nur Griffe Sockets API-Ebene TCP und grundlegende DNS-Funktionen. Einige der wäre "goto" Tools wie nmap funktionieren nicht vollständig, da sie Raw Sockets und anderen niedrigeren Niveau Zugang erfordern. Dennoch mit dieser Technik habe ich einen Weg, um bequem Platz für eine DMZ mit nur einem Teil Kompromittierung eines Front-End-Server zu erkunden; vielleicht werde ich wirklich Glück und entdecken Sie einen Host den ganzen Weg nach innen zu Ihrem Kernnetz NAT'd haben. Auch ohne nmap kann ich Live-Hosts und Port-Scan mit anderen Techniken aufzählen, wie:
und
Hier ist ein anderer Gedanke für Sie: Das Opfer einer virtuellen Maschine war, die ein Gateway mit dem Angreifer gemeinsam, keine Anforderung in der Web-Host Beispiel beeinträchtigt aber nicht ungewöhnlich, in einem Café oder Hotel. TrustedSec VPN erlaubt keine Split-Tunnel-Datenverkehr, der gesamte Verkehr auf dem Client ist in das VPN gesendet, mit Ausnahme des VPN-Datenverkehr selbst natürlich. Wie die meisten VPN-Clients, erreicht es, dass durch den Weg zum Tor mit einem Host-Route über das Gateway für die VPN-Pier zu ersetzen, und das Ändern der Standard-Gateway an den Innen-Adresse des VPN-Pier. Folglich nicht getunnelte Verbindungen können weiterhin Adresse des Gateways direkt vorgenommen werden.
In Anbetracht der pwnd Gateway Szenario kann ein Angreifer über Tools wie Website cloner im SET-Toolkit verwenden, um einen Endpunkt zu Kompromissen, vor allem, wenn er HTTP oder DNS-Verkehr umleiten. Nach den Endpunkt zu beeinträchtigen und den Service-Proxy-Nutzlast Injizieren der Angreifer einfach für das Opfer wartet auf ihre VPN und voila zu verbinden! Der Service-Proxy kann den Angreifer immer noch zurückrufen am Gateway IP und jede Verbindung Proxys es wird Route über das VPN! Wenn Ihre Endpoint-Security und Client-Firewall-Konfigurationen Aufgabe nicht gewachsen sind, könnte Ihr Rechenzentrum viel weniger isoliert von allen anderen in der Cafeteria, als Sie ahnen. Wissen Sie, wer wirklich auf Ihrem VPN ist?
Wollen Sie mehr wissen? Wollen Sie etwas Quellcode zu sehen? Kommen Sie zu DefCon wo TrustedSec wird dies und vieles mehr präsentieren! Details folgen!
Dieser Artikel wurde von Geoff Walton von TrustedSec geschrieben