DEFCON-Konferenz 18. Sie haben das ganze Geld ausgegeben, aber sie haben Sie weiterhin. Teil 1

Wie immer, wie im letzten Jahr, kann ich nicht glauben, dass die Leute wirklich zu meinen Präsentationen kommen, um mir zuzuhören, was ich erzähle. Letztes Jahr war es am Sonntag, um 10 Uhr, ich war in einem Katerzustand und dachte, dass niemand kommen würde, um mich anzusehen.



Heute ist wieder Sonntag, 4 Uhr nachmittags, heute wollte ich nach Hause fliegen, aber trotzdem danke ich Ihnen und schätze Ihre Aufmerksamkeit wie im letzten Jahr sehr und ich liebe solche Leute und DefCon verdammt.

Das Thema der Präsentation ist, dass Sie all dieses Geld ausgegeben haben, aber sie haben Sie weiterhin. Ich habe viele Penetrationstests durchgeführt, war in vielen Ländern tätig, in denen ich am Pentesting beteiligt war, und überall hatte ich Probleme mit verschiedenen Schutzwerkzeugen wie Firewalls, AWS sowie IDS- und MAC-Intrusion-Detection-Systemen. Wir verprügeln sie immer noch, und das ist sehr schlimm. Wenn ich Tests mache, wird mein Bericht oft zu einer Nachricht über Vorfälle, und ich möchte sagen: „Hey Mann, aber du bist der Besitzer all dessen, wie kannst du solchen Mist verwenden?“. Ein ganzes Thema war diesem Thema gewidmet, aber lassen Sie mich zunächst sagen, wer ich bin.

Ich bin ein Pentester von Netzwerkanwendungen und unterrichte Leute darüber, und ich bin ein "Schwarzer" bei Sicherheitskonferenzen, ja, ich bin es! Also, ich knacke, ich werde heftig und ich trinke. Die Bestellungen ändern sich, aber ich bleibe gleich. Wenn du Leute wie mich nicht magst, kannst du aufstehen und gehen.

Lassen Sie mich also ein wenig zurückgehen, ungefähr 10 Jahre. Ich mache das immer, weil ich für diese Zeit besonders nostalgisch bin. In jenen Tagen war Pentesting eine leichte Aufgabe, wir kamen zum Kunden und sagten: „Hallo Mann, wir sind sichere Menschen“, und der Kunde hob die Hände und dachte: „Hölle, Menschen sind hier sicher!“

Danach haben wir das Client-Netzwerk mit Open-Source-Tools wie ISS oder Nessus gehackt. Wie viele von Ihnen erinnern sich, dass Nessus damals frei war?



Also kamen wir mit all diesen Dingen zum Kunden und hackten seine Website leicht mit Exploits wie RootShell mit PacketStorm - heben Sie Ihre Hände, wer erinnert sich daran! Wir haben Ports gescannt, um das Ziel zu finden, alle Arten von Kompilierungen, Schrägstriche und all diese Bibliotheken verwendet und das Control Panel geöffnet.





Dann machten wir Screenshots der Sicherheitsanfälligkeit, auf der Sie Ihre Passwörter und andere vertrauliche Informationen sehen konnten, und sagten: "Nun, das ist es, Mann, Ihr Netzwerk wurde übernommen!"



Dann haben wir einen Bericht verfasst, geschrieben, was für ein Slop-Netzwerk sie hatten, und Geld dafür erhalten. "Dein Netzwerk ist ein verdammter Mist, also bezahle mich!"



Aber heute, Leute, ist alles in allem eine solide CISSP, eine unabhängige Zertifizierung der Informationssicherheit, und der Typ, der Sie anstellt, glaubt, mehr zu wissen als Sie. Ich möchte ihm sagen: "Was zum Teufel hast du mich dann eingestellt?" Und er antwortet: "Weißt du, wir haben es getan, und das, wir haben IDS und MAC, wir haben das, wir haben das ..." Und du drehst dich dort in all dieser Scheiße.
Lass mich dir eine kleine Geschichte erzählen. Jeder, der mich kennt, weiß, dass ich immer eine Geschichte habe.

Vor ein paar Jahren hatte ich einen Kunden, der ein Pentesting bestellte. Er sagte: "OK, Joe, ich möchte, dass Sie diese Subnetze und die ACL-Zugriffssteuerungsliste für VLANs prüfen." Wahrscheinlich haben einige von euch bereits ACLs für VLANs erstellt, also seid ihr schlauer als ich, weil ich es nie getan habe.

Ich sage - nun, welche Art von Audit soll ich durchführen? Er antwortet: VLAN-Audit, okay, ich denke, ich werde mir die Netzwerkkonfiguration ansehen. Und hier sitze ich mit einem Netzwerkadministrator und sehe, dass sie 90 VLANs für 300 Benutzer haben! Ich war nur geschockt und sagte ihm, wie das möglich ist, aber er antwortete nur - nun, es ist passiert! Ich nahm ein kleines Stück Papier, ging um die Leute herum und fragte: „Brauchen Sie dieses Netzwerk? Aber brauchen Sie dieses Netzwerk? Vielleicht brauchen Sie dieses Netzwerk? " Also ging ich um alle herum, fand heraus, was jemand brauchte, und es war eine große, verdammt große Firma. Ich überprüfte alle diese VLANs, zertifizierte einige Netzwerke und erreichte eines der DMZ-Segmente, von denen es 4 im Unternehmen gab. Ich sagte mir: "Hey Mann, all diese Boxen müssen aktualisiert werden, sie müssen wirklich gepatcht werden." Ich ging zum stellvertretenden General Manager und sagte, dass Sie alle diese Geräte haben, die ein Software-Update benötigen, da Sie einige SQL-Patches, PHP-Patches und vieles mehr verpasst haben.

Sie hatten ein Meeting, weil sie sich ständig treffen, und einer der Entwickler steht auf und sagt: "Nein, nein, wir können dies nicht aktualisieren, dies sind unsere Entwicklungsserver!" (Lachen und Applaus in der Halle). Wie kann ich die Tatsache kommentieren, dass sich der Entwicklungsserver in der DMZ befindet? Und sie antworten mir: "Das ist besser!".

Also arbeite ich weiter für den Kunden, beginne mit meinem kleinen Pentesting und "bringe" ein paar Racks herunter, weil es einfach ist. Der Kunde fragt, warum unser IDS-System Sie nicht fangen konnte, und ich antworte, aber was, war IDS dort? Er sagt ja, wir verwenden es, um die Sicherheit zu überwachen. Ich antworte: "Nun, wahrscheinlich, weil jemand an diesem IDS gearbeitet hat"!

Unternehmen beauftragen andere Unternehmen, ihre IDS auszulagern, sie zu verwalten, Berichte zu erstellen und eine Menge beschissener Dinge zu tun. Also musste ich mir ihre "Kiste" ansehen und bat den Mann, mir Zugang zu gewähren, um sie schnell zu untersuchen. Ich habe verdammt noch mal mehr als 2 Minuten gebraucht, um mich über SSH anzumelden, und ich habe gesehen, dass diese Schlampe langsam zur Hölle ist, also habe ich angefangen, nach Rootkits zu suchen. Es stellte sich heraus, dass es bereits 4 Rootkits gab!



Pentesting ist also eine coole Sache! Also, was mache ich, wenn ich mich diesen Leuten aus großen Unternehmen widersetze, wenn ich all diese verdammten Banken, all diese verdammten Firmen prüfe - ich wende mich an Google, um Hilfe zu erhalten. Zunächst suche ich nach SQL-Fehlermeldungen, ich suche nach Dateien für die Fernsteuerung, alles, was mir einen schnellen Zugriff auf die Shell ermöglicht, den am stärksten gefährdeten Ort. Machen Sie niemals Unsinn wie das Scannen von Sicherheitslücken, sondern nehmen Sie das System sofort "am Hals". Daher bin ich immer auf der Suche nach SQL-Injektionen, RF-Dateien und Crossite-Scripting. Nachdem ich sie gefunden habe, wende ich mich passiver Intelligenz und OSINT - Open Source Intelligence zu. Dafür verwende ich Maltego. Ich benehme mich wie eine Frau, die ihren Mann wegen Hochverrats fangen will - ich schaue überall hin! Ich versuche herauszufinden, welche Subnetze sie haben, wo sich all diese Dinge befinden. Ich benutze dieses unglaubliche Tool namens Firefox. Glauben Sie mir, Sie werden überrascht sein, was er tun kann!

Passive Intelligenz ist das Hauptwerkzeug, das Sie unbedingt ausprobieren sollten. Ich bin sicher, dass die meisten von Ihnen es bereits verwenden, diese Technik sollte auf jeden Fall angewendet werden. Dann suche ich nach Load Balancern, jetzt mache ich ungefähr 30% meiner Penetrationstests durch Load Balancer, das ist wirklich eine bequeme Sache. Ich konfiguriere die Last auf der "Box" und finde heraus, ob es sich um einen DNS- oder HTTP-Lastausgleich handelt. Wenn Sie beispielsweise Pakete senden und diese auf all diesen Pfaden verstreut sind, wird das Testen etwas schwieriger.



Dann kehre ich zum fantastischen Firefox-Browser zurück und ändere den Inhalt des Headers der Suchleiste für HTTP-Header in Echtzeit. Auf diese Weise können Sie einige allgemeine Anforderungen an den Server senden.



Wenn Sie also das erste Paket senden und "5" an Sie zurückgegeben wird, senden Sie ein weiteres Paket an dieselbe Box und es gibt "6" zurück, sodass Sie einen Lastenausgleich haben. Gleiches gilt für das Dig-Team und Netcraft.

Netcraft ist im Allgemeinen eine erstaunliche Sache. Zum Beispiel suchen Sie nach etwas wie "F5 BigIP" und erhalten IP-Adressen mit einer bereits ausgeglichenen Last. Während des Pentests war es für mich sehr wichtig. Der Load Balancer wird von einem Shell-Skript erkannt oder verwendet Halberd. Dies ist ein Python-Skript, das dasselbe tut. Das sind also wirklich gute Dinge, die Ihnen helfen, die tatsächliche IP des Hosts zu bestimmen, den Sie angreifen möchten und der sich hinter dem Load Balancer befindet.



Als nächstes habe ich festgestellt, ob es ein IPS oder ein Intrusion Prevention-System gibt. Jeder scheint IPS zu haben, aber die überwiegende Mehrheit meiner Kunden verwendet es im IDS-Modus. So wie es keinen Sinn macht, Hacking-Tools gegen einen Host mit Lastenausgleich zu verwenden, macht es keinen Sinn, sie gegen einen Host zu verwenden, der IPS-geschützt ist. Benutzt jemand von euch dieses Ding? Trenne es zur Hölle, weil es den Verkehr blockiert! Versuchen Sie in der Tat, es zu deaktivieren und sehen Sie, was passiert. Wie viele glauben, dass dieses System den illegalen Verkehr blockiert? Hat sie Ihnen darüber geschrieben? Das ist die gleiche Scheiße wie alle Systeme wie sie. Stimmen Sie mir zu Ich möchte nur sicherstellen, dass ich nicht der einzige bin, der das glaubt.

Ich muss also herausfinden, ob ich gegen IPS kämpfen muss, dh ob der angegriffene Host nicht unter seinem Schutz steht, und dafür mache ich einige wirklich einfache Dinge.



Ich bin ein Linux-Typ, aber jetzt muss ich Windows verwenden, damit ich mich ein bisschen schmutzig fühle. Zunächst verwende ich cURL - dies sind Befehlszeilentools oder Skripte und eine Bibliothek, die Daten per URL weitergibt. Mit cURL werde ich ../../WINNT/system32/cmd.exe?d besiegen. Glauben Sie mir, dieser Angriff hat nicht funktioniert, seit Jesus auf der Erde gelebt hat. Lassen Sie mich wissen, ob Sie es schaffen, ihn auszuführen.

Der einzige Grund, warum dies getan werden muss, besteht darin, herauszufinden, ob etwas Ihre IP-Adresse blockiert oder Reset-Pakete an Ihre Verbindung sendet. Denn wenn dieses Ding Ihnen Reset-Pakete sendet, müssen Sie auf cmd.exe? D verweisen, da es wahrscheinlich ist, dass Ihre Adresse IPS blockiert. Auf die gleiche Weise haben die Mitarbeiter von purehacking.com die Funktion "Active Filter Detection" oder "Active Filter Detection" entwickelt. Dies ist ein sehr gutes Tool, das unter Python ausgeführt wird und das es Ihnen ermöglicht, es ein wenig zu ändern und an Ihre Bedürfnisse anzupassen.

Ich stoße häufig auf IPS, daher verwende ich 3-4 verschiedene IP-Adressen, von denen ich Pakete abschieße und sehe, ob ich als Antwort Dump-Pakete erhalte. Wenn ich empfange, bedeutet dies, dass meine IP-Adresse blockiert ist. Ich stelle fest, dass die meisten IDS / IPS-Lösungen keinen SSL-codierten Verkehr und keinen anderen verschlüsselten Verkehr überwachen. Als nächstes sehe ich, ob IPS mit SSL umgehen kann. Ich möchte Sie noch einmal daran erinnern, warum wir Linux verwenden.



Ich erstelle eine xlnetd-Datei und mache den sogenannten "SSL-Test". Sie sehen, dass ich Port 8888 öffne und alle Daten, die ich an den lokalen Host 8888 übergebe, in dieses kleine Shell-Skript fallen. Sie sehen server = /home/j0e/security/toolz/ssl_proxy.sh.

Auf der nächsten Folie sehen Sie die erstaunlichen Funktionen meines Skripts - sehen Sie sich dieses Skript einfach in einer Zeile an! Somit wird der Datenverkehr direkt zum Öffnen von SSL geleitet, und dann wird eine Verbindung mit dem Ziel hergestellt und dieselbe Active Filter Detection oder cmd.exe wird für den lokalen Host gestartet, um festzustellen, ob meine IP-Adresse blockiert ist.



Die überwiegende Mehrheit meiner Clients, die IPS bereitstellen und den Blockierungsmodus verwenden, entschlüsselt den SSL-Verkehr nicht, bevor er IPS oder IDS passiert. Wenn Sie Ihre Kunden dazu bringen möchten, das Geld gewinnbringend zu nutzen, fordern Sie sie daher auf, einen SSL-Beschleuniger zu kaufen. Es unterbricht das SSL-Protokoll vor IPS und versucht, den Datenverkehr zu entschlüsseln.
Lassen Sie uns nun sehen, wie Sie den Host über Tor angreifen und wie Sie Netzwerk-Scan-Tools über Tor ausführen können. Ich mache das ziemlich oft, starte privoxy und benutze im versteckten Modus Tools wie Nessus, um den Host über Port 8080 anzugreifen. In diesem Zusammenhang ist es empfehlenswert, seinen Kunden zu empfehlen, Tor-Ausgabeknoten zu blockieren.



Die meisten Unternehmen haben keinen Grund, ihren Kunden zu erlauben, über private Netzwerke eine Verbindung zu ihrem Netzwerk herzustellen, blockieren jedoch niemals solche Verbindungen. Daher sollten Sie Unternehmen zwingen, diese Knoten zu blockieren. Dies ist das, was ich zunächst für meine Kunden tue. Ich habe keine GLib-Proxy-Folie, da der Kater meine Fähigkeit, diese Folien heute Morgen ordnungsgemäß zu erstellen, wirklich beeinträchtigt hat.

Als letztes identifiziere ich WAF, Webanwendungsfirewalls oder Webanwendungsfirewalls. Wie kann ich feststellen, ob ein Host WAF verwendet?



Da ich viel PCI-Pentesting mache, weiß ich, dass einige geniale Köpfe in der PCI-Repräsentanz erkannt haben, dass Sie WAF verwenden können, wenn Sie anfällige Webanwendungen haben, die Sie nicht beheben möchten. Tatsächlich ist es einfach, die Verwendung solcher Firewalls zu entdecken. Zu diesem Zweck reicht es aus, Host 1 eine echte Anfrage, eine böswillige Anfrage, zu senden und zu sehen, wie sich die Antworten unterscheiden. Eine böswillig gestaltete HTTP-Anforderung kann eine Nutzlast enthalten, die alle Arten von Unsinn enthält, z. B. einen Apostroph, Anführungszeichen, Fragezeichen, Minuszeichen, Klammern, Sternchen usw.



Es ist also überhaupt nicht schwierig herauszufinden, ob Sie einen von WAF geschützten Host angreifen.
Sie senden also ungültige Zeichen. Danach geben Ihnen die auf der nächsten Folie abgebildeten Werkzeuge alle möglichen seltsamen Dinge. Wenn Sie also cmd.exe anfordern und das Befehlszeilenprogramm grep für die Methode "501" verwenden, dh anstelle des 404-Fehlers "nicht gefunden" die Fehlermeldung 501 "Die Anforderungsmethode wird vom Server nicht unterstützt" erhalten, ist dies wahrscheinlich aufgetreten mod_security Firewall, die den Apache-Server schützt. Neuere Versionen dieser Firewall haben die Situation geändert, aber wen interessiert es wirklich, ihre WAF zu aktualisieren?

Daher verwende ich die in der nächsten Folie gezeigten Methoden ziemlich häufig und leite meine Angriffe auch über die AQTRONIX Web Knight-Firewall weiter.



Sie sehen den 999 No Hacking-Code im Antwortheader, den ich beim Testen starte - "No Hacking". Sie fügen also einfach Dinge zur Adressleiste hinzu, um zu sehen, was dies bedeutet und ob Sie eine 404-Fehlermeldung für eine Datei erhalten, die sich nicht auf dem Host befindet.



Ich meine, wenn Sie die richtige Anfrage senden, die Ihnen eine 200-Nachricht gibt, und dann die falsche Anfrage für eine Datei senden, die nicht existiert, und der Server einen 404-Fehler ausgibt und dann plötzlich etwas für Cross-Site-Scripting einfügt, sendet der Server Sie haben eine ganz andere Bedeutung von Fehler. Dies zeigt an, dass in diesem Fall eine Art Schutzmechanismus vorhanden ist.

Zurück zu unseren Codierungsspielen. Wenn Sie feststellen, dass Sie gegen WAF sind, prüfen Sie, ob dieses Ding HEX unterstützt, ob es utf7, utf-8, base16, base64 oder eine Mischung dieser Codierungen verarbeitet. Die meisten WAFs funktionieren nicht gut mit Codierungen, insbesondere wenn Sie anfangen, sie miteinander zu mischen.

Meine guten Freunde Sancho Gachi und Windell haben letztes Jahr ein Python-Tool namens WAFW00F erstellt, ein Dienstprogramm zum Erkennen von WAF.



Dieses Ding nimmt Fingerabdrücke von HTTP-Antwortheadern und identifiziert WAF. Ich mag dieses Ding wirklich, jetzt haben wir bereits eine Liste von 10 oder 12 WAF und es wächst ständig. Das nächste, worauf Sie achten sollten, ist WAF Fun, ein Tool, das mit der Brute-Force-Methode für eine Reihe von Firewall-Regeln für Webanwendungen arbeitet und auch in Python geschrieben ist.

Ich bewundere diese Leute wirklich und wünsche mir, dass wir noch mehr Fortschritte machen, aber Sie wissen, dass wir ein wenig trinken, dann arbeiten, dann wieder trinken und wieder arbeiten, so dass der Prozess der Schaffung solcher Dinge nicht einfach ist. Ich hoffe jedoch weiterhin, dass ich auf der nächsten DefCon-Konferenz zeigen kann, wie WAF Fun mit der Brute-Force-Methode funktioniert.

Eine andere interessante Sache ist, was wir mit Unicode machen können. Es ist wahr, es ist in Ruby geschrieben und wir alle wissen, dass Ruby scheiße ist.

17:00 min

DEFCON-Konferenz 18. Sie haben das ganze Geld ausgegeben, aber sie haben Sie weiterhin. Teil 2



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?

Source: https://habr.com/ru/post/de432456/


All Articles