DEFCON-Konferenz 18. Sie haben das ganze Geld ausgegeben, aber sie haben Sie weiterhin. Teil 1Ich benutze eine interessante Sache von Gary O'Leary-Steele namens Unicod-fun, die für ein in Ruby geschriebenes Dienstprogramm ziemlich gut ist. Sie wissen, dass meine Tools ausschließlich in Python geschrieben werden sollten, deshalb haben wir dies in Python übersetzt. Jetzt können wir eine andere Codierung für Tools anwenden, die zum Angriff auf Webanwendungen entwickelt wurden und Teil des WAF-Frameworks sind.

Das WAF-Framework umfasst WAF Fun und WAFWOOF und basiert auf Multicodierung und Informationen, die vom Proxy empfangen werden. Bei all diesen verschiedenen Aufgaben kann es über Tor- oder GLib-Proxys funktionieren. Dies ist also wirklich eine nützliche Sache, um die Informationen zu erhalten, die Sie benötigen.
Wir haben darüber gesprochen, Websites über Tor anzugreifen. Ich habe letztes Jahr ausführlich darüber gesprochen. Die folgende Folie zeigt die Skripte für einen solchen Angriff:
alias hide='su -c "/home/j0e/dumbscripts/hide.sh"' $ cat /home/j0e/dumbscripts/hide.sh #!/bin/bash # Startup privoxy /usr/sbin/privoxy /etc/privoxy/config # Start Tor /usr/bin/tor $ hide
Erwähnt werden sollte auch das Plugin, das als Tor-Schaltfläche in den Firefox-Browser eingebettet ist.
Ich weiß nicht, ob einer von Ihnen mit dem DotNet Defender WAF gearbeitet hat, der von diesen verdammten Unternehmen verwendet wird. Wir haben festgestellt, dass es den Server vor SQL-Injection schützen kann. Auf der Folie sehen Sie das Ergebnis der Generierung eines Cross-Site-Scripting-Angriffs - dotDefender hat unsere Anfrage blockiert.

Als Nächstes sehen Sie einen Versuch, diese Art von Schutz mithilfe der SQL-Injektion ohne Codierung zu umgehen. Und DotNet Defender konnte nichts dagegen tun.

Tatsache ist, dass es nur bestimmte SQL-Injektionen blockiert, die hauptsächlich das Wort select enthalten. Dies ist der Höhepunkt der Sicherheitstechnologie - blockieren Sie die Wortauswahl. Wenn Sie in Unicode verschlüsseln, können Sie an diesem Verteidiger vorbeikommen, sodass er diese Sicherheitsanfälligkeit im letzten Jahr behoben hat, aber nichts gegen andere Codierungsstandards unternommen hat. Wenn Sie eine andere Codierung verwenden, können Sie DotNet Defender daher problemlos umgehen. Dadurch konnte ich den Administratorkennwort-Hash ohne Codierung zurücksetzen.

Tut mir leid, Leute vom DotNet Defender, aber Sie müssen Ihre Scheiße reparieren.
Das Wichtigste, was ich geschafft habe, war, über das Internet in das LAN einzudringen. Das ist schwierig genug, aber immer noch möglich. Dafür habe ich ein einfaches Tool in Perl verwendet, das ich mir gefallen lassen musste, obwohl ich ein begeisterter Anhänger von Python bin. Es funktioniert sehr gut, dank dessen können Sie die Netzwerkschnittstelle von netcat oder meterpreter shell über einen DNS-Tunnel laden. Dies ist ein wirklich großartiges Projekt und ein neues Update wurde kürzlich dafür veröffentlicht.

Im Folgenden finden Sie eine Möglichkeit, SQL mithilfe des SQL Map-Tools einzufügen. Mit diesem in Python geschriebenen Tool können Sie Os-Shell oder Meterpreter herunterladen. Es hat auch eine eigene OS-Shell, mit der Sie basteln können. Auf diese Weise können Sie die erforderlichen Befehle eingeben, um das System zu steuern, netcat zu konfigurieren oder direkt die Meterpreter-Shell aufzurufen. Daher verwende ich dieses Tool häufig.
Und jetzt kommen wir zu wichtigerem Material. Der offizielle Name dieses Teils des Berichts lautet: Lass dich nicht erwischen! Sei kein Tiger!

Ich möchte nur nicht erwischt werden. Wer ist Tiger? Er ist ein Punk, verdammter Punk, wer stimmt mir zu? Wenn ich eine Milliarde Dollar wert bin und du ein Pornostar bist, weißt du, dass ich Leute habe, die bereit sind, dich zu töten, wenn du es zulässt. Stimmen Sie mir zu
Das Wichtigste, um nicht erwischt zu werden, ist die Definition von Einbruchsfiltern. Viele Leute probieren verschiedene Optionen aus. Die erste ist die clientseitige Filterung. Das ist schlecht. Das ist schlecht. Und noch fünf Mal - das ist schlecht! Verwenden Sie keine JavaScript- oder VB-Skripte oder andere Elemente auf der Clientseite, um zu versuchen, die Eingaben einer wichtigen Anwendung herauszufiltern. Wenn Sie ein Framework wie J2EE verwenden, das diese JavaScripts erstellt, müssen Sie serverseitigen Code schreiben, der überprüft, ob alles, was vom Client stammt, in Ordnung ist.

Überprüfen Sie den Quellcode auf Parameter, die über die Site übertragen werden und mit JavaScript oder VB-Skript gefiltert werden können, und löschen Sie sie. Speichern Sie die Seite lokal und löschen Sie die entsprechenden JavaScript- oder VB-Skripte oder verwenden Sie einen lokalen Proxy wie Paros, Web Scarab, Burp Suite.
Wenn Sie gerade diesen verdammten Deal mit einer Person gemacht haben, denken Sie daran, dass alles Schlimme auf dem Computer des Kunden passiert. Sie müssen den Entwicklern diese kleinen Lektionen beibringen. Ich sage ihnen: "OK, Entwickler, ich möchte, dass Sie darüber nachdenken, weil Sie all diese Sicherheit in einen Hacker-Laptop stecken werden!" Glaubst du, das ist richtig? " Deshalb, Leute, benutzt keine Filterung auf der Client-Seite!
Die folgenden Einschränkungen gelten für die schwarze Liste. Oft versuchen Menschen, die Verwendung von Sonderzeichen einzuschränken. Nehmen wir an, Sie können kein Gleichheitszeichen, mehr oder weniger Zeichen und dergleichen senden.

In Bezug auf die SQL-Syntax müssen Sie jedoch nicht 1 = 1 angeben. Beispielsweise können Sie in der Anforderung http: // [site] /page.asp?id=2 oder 1 wie 1 generell die Verwendung des Gleichheitszeichens und des Operators oder vermeiden, indem Sie sie in der Adressleiste durch die Wörter „und“ und „ersetzen. wie "zum Beispiel" und 1 als 1 "," und 1 als 2 "und so weiter:
http: // [site] /page.asp?id=2 und 1 wie 1
http: // [site] /page.asp?id=2 und 1 wie 2
Tatsächlich verwenden SQL-Injektionen in den meisten Fällen keine Sonderzeichen.
Betrachten Sie als Nächstes signaturbasiertes IDS. Sag mir, wer von euch hat so einen Tisch auf dem Mauspad? Wenn Sie eine Tabelle mit ASCII- oder HEX-Dezimalcodes haben, reißen Sie sie mit dieser Matte auf.

Was ich letzte Nacht gelernt habe, als ich in der Innensohle betrunken war, ist, dass ASCII wirklich funktioniert! Wenn Sie also mit IDS zu tun haben und eine TCP-Warnung von einer beliebigen IP-Adresse von einem beliebigen Port erhalten, der an den Port unseres Webservers gelangt, suchen Sie nach einem speziellen Datentyp 1 = 1. Überlegen wir mal, wie viele Hacker konnten dieses Ding fangen? Lass uns darüber nachdenken.

2 ist 2? Vierzig Unzen gleich vierzig Unzen? 1 = 1 ist nicht die einzige Möglichkeit, eine Anfrage zu erstellen, für die Sie die Antwort "true" erhalten können. Sie können eine Anfrage vom Typ "2 = 2", "1 <2" usw. senden. Wenn Signaturen so einfach zu umgehen sind, warum werden sie dann benötigt? Die Antwort ist für automatische Werkzeuge und Kinder.
Die folgende Folie zeigt meine auf Signaturen basierende IDS-Vision - dies ist der Torhüter, der 1 Ball gefangen hat, während hundert Bälle durch das Tor geflogen sind.

Das Pentester-Dienstprogramm namens sqlmap umgeht diesen Schutz, den ich Ihnen standardmäßig gezeigt habe, und es ist auch in Python geschrieben!
Ähnliches wird auf der nächsten Folie gezeigt. Hier habe ich zur Umgehung dieses Problems die 2- oder 2-Technik verwendet und den Benutzer ausgewählt.

In diesem Fall habe ich den gesamten Ausdruck in hexadezimalem Code dargestellt, aber Sie können ihn in Unicode, utf7, utf-8, utf-16 ausführen. Bei jeder Codierung spielt es keine Rolle, diese Methode funktioniert immer noch und ermöglicht es Ihnen, viele WAFs zu umgehen.
Es gibt ein anderes Produkt auf dem Gebiet von PHP - dies ist PHP IDS. Ich finde es verdammt cool, dass sie jetzt eine Demonstration seiner Fähigkeiten auf der Website haben. Wenn Sie zu demo.phpids.net gehen, können Sie den Rauchtest versuchen. Mit diesem Smoketest können Sie alle Ihre SQL-Injektionen, Cross-Site-Scripting- oder Webanwendungsangriffe ausprobieren und Ihnen zeigen, welche Signaturen diese Angriffe erkennen, sodass Sie weiterhin Kung Fu im Internet üben können.

Sie können beispielsweise einen Effekt anwenden, eine Signatur abrufen, einen anderen versuchen, einen anderen Satz von Signaturen abrufen usw. Sie arbeiten einfach weiter und arbeiten, bis dieser böse Junge sagt, dass alles in Ordnung ist, Sie die Verteidigung umgangen haben und nichts anderes Sie „raucht“. So verbessern Sie Ihre Kung-Fu-Fähigkeiten, bis Sie etwas finden, das die meisten Regeln umgehen kann.

Jetzt hat sich Modsecurity mit PHP IDS zusammengetan und sie haben ihren eigenen Rauchtest. Ich habe es aufgrund eines morgendlichen Kater nicht zu meinen Folien hinzugefügt, aber ich möchte sagen, dass es ihnen gelungen ist, den Modsecurity-Regelsatz mit dem PHP-IDS-Regelsatz in einer Weboberfläche zu kombinieren. Fügen Sie dort einfach Ihre Exploits ein, bis Sie alle Regeln umgangen haben. Kurz gesagt, signaturbasiertes IDS ist nur ein dummer Witz. Zumindest hatte ich keine Kunden, die von diesen Produkten wussten, aber sie kauften sie trotzdem. Aber das ist eine etwas andere Geschichte.
Ich verstehe diejenigen von Ihnen, die Analysten von IDS und WAF sind, vollkommen. Ich weiß, dass ich viel rede, aber ich fühle deinen Schmerz, weil ich deine Arbeit gemacht habe und es nicht genug Alkohol auf der Welt gibt, um deiner Arbeit standzuhalten.

Die überwiegende Mehrheit der Dinge, die ich Ihnen gerade gezeigt habe, erfolgt über das Netzwerk. Wie gesagt, Sie interagieren remote mit IDS und IPS und laden verschiedene Exploits. Wie viele von Ihnen haben sich mit JBoss, einem Open-Source-Anwendungsserver, befasst, weiß, dass die meisten Dateien damit heruntergeladen werden. Die SQL-Injection codiert einfach einige Pfade, auf die ich zugreifen kann, wodurch ich normalerweise Zugriff auf die Shell und die DMZ habe, und ich versuche, von dort aus zu arbeiten.
Danach mache ich eine unglaubliche Sache und sende eine E-Mail an den Kunden, weil es funktioniert. Ihre Clientseite mit dem Metasploit-Framework sieht einfach wunderbar aus. Sie können also alles auswählen, was den neuesten Browser-, PDF-, ActiveX- oder Datei-Exploit unterstützt. Stellen Sie sicher, dass die TCP-Shell umgekehrt wird. Anschließend wandelt Metasploit diese Nachricht in HTTPS um. Alles ist großartig, das einzig schlechte ist, dass es in Ruby geschrieben ist. Das Python SET-Tool ist jedoch eine völlig neue Ebene des Pentesting.

Mit diesem Tool können Sie unglaubliche Dinge tun. SET wurde von David Kennedy von der ReLic-Gruppe erstellt. Wir begrüßen ihn dafür. Dies ist genau das, was wir brauchen, um die Essenz des Geschehens zu veranschaulichen. Hacker scannen nicht mehr die Ports Ihres Netzwerks. Wenn sie dies nicht versuchen, werden sie die Shell wahrscheinlich auf keinen Fall übernehmen. Hacker versuchen, Ihnen etwas Bösartiges per E-Mail oder ähnlichem herunterzuladen.
Daher muss der Kunde verstehen, dass es während des Pentests notwendig ist, sein System auf Beständigkeit gegen die Auswirkungen betrügerischer Websites, Phishing und dergleichen zu testen. Besonders wenn Sie auf einen solchen Kunden stoßen, den ich hatte, stand er auf und sagte: "OK, Joe, ich werde Sie nicht für Ratschläge bezahlen, um den Mitarbeitern des Unternehmens den richtigen Umgang mit dem Netzwerk beizubringen." Sie müssen also alle realen Bedrohungen auf der Client-Seite reproduzieren, damit er versteht, wie ernst dies ist.
Die nächste Stufe des Pentests ist also der Pivot-Angriff oder „Turning Attack“, bei dem ein gehackter Host verwendet wird, um andere Hosts anzugreifen. "Turning Attack" im LAN ist ein wichtiger Bestandteil des clientseitigen Pentests.

Metasploit unterstützt Pivot. Wenn ich das CAB-Archiv nicht mit allen ausführbaren Dateien herunterladen kann, die zuvor statisch kompiliert wurden, muss nichts installiert werden. Ich verwende dies in meiner Werkstatt, um einen Pivot-Rollout in einem LAN durchzuführen, also „springe“ ich hinein und beginne von dort aus zu bewegen.
Als nächstes denke ich über allgemeine Sicherheitslösungen für das LAN nach. Dieser Mangel an DHCP, dh statischen IP-Adressen, DHCP-MAC-Adressen, Port-Sicherheit und NAC-Lösungen, macht es mir unmöglich, in das Netzwerk zu gelangen. Was mache ich also, wenn ich nicht ins Netz komme?
Wenn DHCP fehlt und die IP-Adressen statisch sind, stehle ich dem Host eine gültige IP-Adresse. Meine Kinder haben mir das beigebracht, weil statische IP-Adressen unglaublich ineffizient sind. Ich hoffe, Sie haben keine Clients, die sagen, dass sie Hacker daran hindern werden, statische IP-Adressen zu verwenden. Ich mache dasselbe bei Vorhandensein von DHCP-MAC-Adressen - ich stehle eine gültige MAC-Adresse. Wenn wir einen sicheren Port haben, stehle ich auch eine gültige IP- oder MAC-Adresse. Wenn es NAC-Lösungen gibt, können Sie den Computer einfach abholen, umdrehen und seine MAC-Adresse überprüfen oder versuchen, Ausnahmen für das 802.1x-Protokoll zu finden, dh Geräte, die 802.1x nicht unterstützen, z. B. Drucker, Kopierer und CD-ROM-Racks und VoIP-Telefone.
Alle diese Methoden funktionieren für mich und die besten Geräte zum Durchdringen von LANs sind VoIP-Telefone. Ich hatte viele Clients, die die automatische Autorisierung von VoIP-Telefonen im Sprachnetzwerk basierend auf der MAC-Adresse und dem VLAN-Tag verwendeten. Sie können also eine Linux-Box ähnlich einem VoIP-Telefon erstellen und unter Umgehung von NAC-Lösungen in ein virtuelles Voice-LAN-Netzwerk stürzen.
Die meisten Telefone meiner Kunden mussten direkt mit dem CallManager-Softwarecenter in der internen DMZ verbunden werden, da alle CallManager-Center mit den übrigen Servern zusammenarbeiten sollten, sodass mein Empfang für das gesamte Netzwerk einwandfrei funktionierte.
Es gibt eine Funktion namens Voip Hopper, die den Prozess des Eindringens in ein Sprach-VLAN automatisiert. Sie können diesen Exploit von voiphopper.sourceforge.net herunterladen und damit direkt in das VLAN „springen“.
Wenn ich in das Netzwerk komme, finde ich normalerweise zuerst heraus, wer der Domänenadministrator ist. Auf der Folie sehen Sie eine Liste der Befehle, die ich verwende: set - um Informationen über die Domäne und die Benutzer herauszufinden, Netzansicht - um Netzwerkcomputer, Benutzerdomänen und andere Domänen anzuzeigen, net localgroup - um lokale Computergruppen zu finden und so weiter.

Ich mache das, um herauszufinden, wer und in welchen Gruppen im Netzwerk arbeitet, um zu versuchen, ihre Computer anzugreifen. Noch besser, wenn ich einen lokalen Administrator oder ein lokales System erhalten kann, scanne ich als Nächstes das Netzwerk, um festzustellen, wer der bestimmte Benutzer dieses Computers ist.

Sie können verschiedene Skripte verwenden, um das Netzwerk zu überprüfen, um herauszufinden, wo und auf welchem Computer sich die „Box“ des Administrators befindet. Wenn Sie einen lokalen Administrator oder ein lokales System "erwischt" haben, können Sie in dessen "Box" "springen" und von dort aus die pcexec-Shell verwenden.

Nachdem ich in die "Box" gesprungen bin, suche ich nach einer Möglichkeit, meine Privilegien zu erhöhen. Privilegien aufzubauen ist eine wirklich schwierige Sache. In Windows XP funktionieren diese Dinge sogar mit dem Sp3-Service Pack, das diese schöne Befehlszeilenschnittstelle cmd.exe verwendet, was eine großartige Sache ist.
Als ich eine Bank pentestierte, musste ich den McAfee Framework Service "töten", der sich auf das HIPS Intrusion Prevention System bezieht. Dafür habe ich den Befehl pskill.exe verwendet. Also habe ich McAfee deaktiviert, HIPS deaktiviert, den Interceptor und Firepm sowie alle anderen vom Intrusion Prevention-System gestarteten Prozesse deaktiviert.

Eine andere Sache, für die ich keine Zeit hatte, auf der Folie zu zeigen, ist, dass Sie beim Deaktivieren von McAfee zuerst die Berechtigungen erhöhen müssen. Dies funktioniert auch in Bezug auf den Symantec-Endpunktschutz. Tatsache ist, dass, nachdem Sie alle diese Prozesse „beendet“ haben, sie nach einer Weile von vorne beginnen. Daher müssen Sie die DLL-Dateien im Speicher "aushängen", um den Neustart des Schutzes zu beenden. Ich habe dies nicht auf den Folien gepostet, aber wenn Sie sich später erinnern, werde ich Ihnen die Syntax für diesen Trick geben.
Eine andere Sache, die ich gerade über McAfee erfahren habe, ist, dass die Dateien in der Ausschlussliste unter einem bestimmten Namen angezeigt werden, nicht unter einem Hash oder ähnlichem. Daher sind Dateien, die in der McAfee Antivirus-Ausschlussliste enthalten sind, nicht vor Pufferüberläufen geschützt, und ich werde diese Tatsache für meine eigenen Zwecke verwenden.
Das Folgende zeigt das "Töten" von HIPS als System mit Metasploit. Jetzt haben sie etwas namens getsystem, also können Sie einfach Metasploit schreiben, getsystem aufrufen und es wird Sie mit einer von vier Methoden direkt in das System werfen: Stoppen Sie den allgemeinen Virenschutz, stoppen Sie HIPS, "töten" Sie McAfee-Prozesse oder "töten" Sie HIPS-Prozesse.

Das Letzte, was ich zeigen wollte, war die Domain-Erfassung.

Sobald ich an der "Box" des Administrators angekommen bin, verwende ich alle gestohlenen Token und beginne, seine Kräfte einzusetzen. Als Domänenadministrator erstelle ich eine Benutzergruppe und füge sie der Administratorgruppe hinzu. Für meine Zwecke funktioniert das großartig.

Zum Schutz habe ich 1-2 Seiten Dokumentation zum Schutz vor jedem der Angriffe, über die ich heute gesprochen habe. Es heißt, wie man einen Angriff ausführt und wie man sich dagegen verteidigt. Wenn Sie solche Informationen benötigen, kontaktieren Sie mich, alle Kontakte befinden sich auf der Folie.
Wenn ich keine Fragen habe, werde ich dort enden.
Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung
aufgeben oder Ihren Freunden empfehlen, einen
Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis Januar kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie
hier bestellen.
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über
den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?