HACKTIVITY-Konferenz 2012. Die Urknalltheorie: Die Entwicklung des Pentesting für mehr Sicherheit. Teil 2

HACKTIVITY-Konferenz 2012. Die Urknalltheorie: Die Entwicklung des Pentesting für mehr Sicherheit. Teil 1

Jetzt werden wir einen anderen Weg versuchen, SQL zu implementieren. Mal sehen, ob die Datenbank weiterhin Fehlermeldungen ausgibt. Diese Methode wird als "Warten auf eine Verzögerung" bezeichnet, und die Verzögerung selbst wird in der folgenden Form geschrieben: "Warten auf Verzögerung 00:00:01". Ich kopiere dies aus unserer Datei und füge es in die Adressleiste des Browsers ein.



All dies wird als "temporäre blinde SQL-Injektion" bezeichnet. Alles, was wir hier tun, ist zu sagen: "Warte auf eine Verzögerung von 10 Sekunden." Wenn Sie bemerken, haben wir oben links die Aufschrift "Connecting ...", das heißt, was macht unsere Seite? Sie wartet auf eine Verbindung und nach 10 Sekunden wird die richtige Seite auf Ihrem Monitor angezeigt. Mit dieser Technik wenden wir uns der Datenbank zu, damit wir ihr einige weitere Fragen stellen können. Wenn der Benutzer beispielsweise Joe ist, müssen Sie 10 Sekunden warten. Das ist klar? Wenn der Benutzer dbo ist, warten Sie ebenfalls 10 Sekunden. Dies ist die Blind-SQL-Injection-Methode.

Ich denke, dass Entwickler beim Erstellen von Patches diese Sicherheitsanfälligkeit nicht beseitigen. Dies ist eine SQL-Injection, aber unser IDS-Programm sieht es auch nicht so gut wie die vorherigen Methoden der SQL-Injection.
Versuchen wir etwas Interessanteres. Kopieren Sie diese Zeile mit der IP-Adresse und fügen Sie sie in den Browser ein. Es hat funktioniert Der TCP-Strip in unserem Programm wurde rot, das Programm hat zwei Sicherheitsbedrohungen festgestellt.



Schauen Sie sich genauer an, was passiert ist. Wir haben eine Bedrohung für die XP-Shell und eine andere Bedrohung ist der Versuch, SQL zu injizieren. Insgesamt wurden zwei Versuche, die Webanwendung anzugreifen, vermerkt.



Ok, jetzt hilf mir mit der Logik. Wir haben ein Interventionsdatenpaket, in dem IDS angibt, dass es auf verschiedene Interventionen in der XP-Befehlsshell reagiert hat.



Wenn wir nach unten gehen, sehen wir eine Tabelle mit HEX-Codes, rechts davon befindet sich ein Flag mit der Meldung xp_cmdshell + & 27ping, und dies ist offensichtlich schlecht.



Mal sehen, was passiert ist. Was hat der SQL Server gemacht?



Der SQL Server sagte: "Sie können ein Passwort aus meiner Datenbank haben, Sie können alle Datensätze meiner Datenbank abrufen, aber ich möchte nicht, dass Sie meine Befehle ausführen, es ist überhaupt nicht cool!"

Wir müssen sicherstellen, dass diese Bedrohung ignoriert wird, auch wenn IDS eine Bedrohung für die XP-Shell meldet. Wenn Sie SQL Server 2005 oder SQL Server 2008 verwenden, wird beim Erkennen eines SQL-Injektionsversuchs die Befehlsshell des Betriebssystems blockiert, sodass Sie Ihr Geschäft nicht fortsetzen können. Das ist sehr ärgerlich. Also, was machen wir? Sie müssen versuchen, den Server sehr liebevoll zu fragen. Ich muss sagen: "Bitte, Papa, kann ich diese Kekse haben?" Das ist, was ich im Ernst mache, ich frage den Server sehr höflich! Ich bitte Sie, zusätzliche Optionen anzuzeigen, eine Neukonfiguration anzufordern und die XP-Shell-Einstellungen zu ändern, um die Shell verfügbar zu machen, da ich sie benötige!



Wir sehen, dass IDS dies erkannt hat - Sie sehen, dass hier bereits 3 Bedrohungen festgestellt wurden.



Sie sehen nur hier - wir haben die Sicherheitsprotokolle gesprengt! Es sieht aus wie ein Weihnachtsbaum, so viele Dinge sind hier aufgehängt! Bis zu 27 Sicherheitsbedrohungen! Hurra Leute, wir haben diesen Hacker gefangen, wir haben ihn!



Wir befürchten nicht, dass er unsere Daten stiehlt, aber wenn er Systembefehle in unserer "Box" ausführen kann - das ist ernst! Sie können eine Telnet- oder FTP-Route zeichnen, Sie können meine Daten übernehmen, das ist cool, aber ich mache mir keine Sorgen, ich möchte nur nicht, dass Sie die Kontrolle über die Shell meiner "Box" übernehmen.

Ich möchte über die Dinge sagen, die mich wirklich "erwischt" haben. Ich arbeite für Organisationen, ich arbeite für sie seit vielen Jahren, und ich erzähle Ihnen davon, weil meine Freundin glaubt, dass ich arbeitslos bin. Sie glaubt, dass ich nur mache, was ich auf der Bühne stehe und plaudere, dies kann nicht als Arbeit angesehen werden. Aber ich sage: "Nein, meine Freude, ich bin ein Berater!" Das ist der Unterschied - ich drücke meine Meinung aus und sie bezahlen mich dafür.

Ich werde das sagen - wir lieben es wie Hacker, die Muschel zu knacken, und für uns gibt es auf der Welt kein größeres Vergnügen als "das Waschbecken zu schlucken". Wenn IDS-Analysten ihre Regeln schreiben, stellen Sie fest, dass sie sie so schreiben, dass sie sich vor dem Brechen der Shell schützen. Wenn Sie sich jedoch mit dem CIO über das Problem der Datenextraktion unterhalten, bietet er Ihnen zwei Möglichkeiten an. Angenommen, ich habe eine Anwendung, die 100 "Teile" pro Stunde erstellt. Was ist für mich wichtiger - um die Sicherheit aller Daten in dieser Anwendung oder die Sicherheit der "Box" -Shell zu gewährleisten? Das ist eine ernste Frage! Worüber sollten Sie sich mehr Gedanken machen?



Die Tatsache, dass Sie eine beschädigte Box-Shell haben, bedeutet nicht unbedingt, dass jemand Zugriff auf den internen Betrieb von Anwendungen hat. Ja, das ist mehr als wahrscheinlich, und wenn dies noch nicht geschehen ist, kann es bald geschehen. Beachten Sie jedoch, dass viele Sicherheitsprodukte auf der Voraussetzung basieren, dass sich ein Angreifer in Ihrem Netzwerk bewegt. Daher achten sie auf die Ausführung von Befehlen, auf die Einführung von Befehlen, und Sie sollten beachten, dass dies eine ernste Sache ist. Sie achten auf geringfügige Sicherheitslücken, auf sehr einfaches Cross-Site-Scripting und auf sehr einfache SQL-Injections. Sie kümmern sich nicht um komplexe Bedrohungen oder verschlüsselte Nachrichten, sie kümmern sich nicht um solche Dinge. Wir können sagen, dass alle Sicherheitsprodukte nach Lärm suchen, sie suchen ein „Ja“, sie wollen aufhören, was Ihnen in den Knöchel beißt. Das habe ich im Umgang mit Sicherheitsprodukten verstanden. Sie müssen keine Sicherheitsprodukte kaufen, Sie müssen nicht rückwärts fahren. Sie brauchen kompetente und qualifizierte Mitarbeiter, die sich mit Technologie auskennen. Ja, mein Gott, es sind Menschen! Wir möchten nicht Millionen von Dollar in diese Probleme stecken, aber viele von Ihnen haben in diesem Bereich gearbeitet, und Sie wissen, dass Ihr Chef, sobald er die Anzeige sieht, mit einem Schrei zum Laden rennt: "Wir müssen das Ding bekommen!" Aber in Wirklichkeit brauchen wir es nicht, wir müssen nur das Chaos beheben, das hinter uns liegt. Das war die Voraussetzung für diese Präsentation.

In einer erweiterten Sicherheitsumgebung habe ich viel Zeit damit verbracht, die Regeln für die Funktionsweise von Sicherheitsmechanismen zu verstehen. Sobald Sie die Schutzmechanismen verstanden haben, ist es einfach, den Schutz zu umgehen. Ich habe beispielsweise eine Webanwendung, die durch eine eigene Firewall geschützt ist. Ich kopiere die Adresse des Einstellungsfensters, füge sie in die Adressleiste des Browsers ein, gehe in die Einstellungen und versuche, Cross-Site-Scripting anzuwenden.



Infolgedessen erhalte ich eine Firewall-Meldung über die Bedrohung - sie haben mich blockiert.



Ich denke das ist schlecht, stimmst du zu? Sie haben ein Sicherheitsprodukt gefunden. Was aber, wenn ich so etwas versuche: Ich gebe den Parameter Joe '+ OR + 1 =' 1 in die Zeile ein



Wie Sie sehen, hat es funktioniert. Korrigieren Sie mich, wenn ich falsch liege, aber wir haben gesehen, wie SQL Injection die Anwendungsfirewall besiegt hat. Stellen wir uns nun vor, wir wollen ein Unternehmen gründen, um Sicherheitsmaßnahmen umzusetzen. Probieren wir also den Hut eines Softwareherstellers an. Jetzt verkörpern wir das Böse, weil es ein schwarzer Hut ist. Ich bin ein Berater, also kann ich das mit Softwareherstellern machen.

Wir möchten ein neues Intrusion Detection-System erstellen und bereitstellen, um eine Intrusion Detection-Firma zu gründen. Als Open-Source-Produkt enthält Snort Hunderttausende von Intrusion-Threat-Signaturen. Wir müssen ethisch korrekt vorgehen, damit wir diese Signaturen nicht aus anderen Anwendungen stehlen und in unser System einfügen. Wir setzen uns einfach hin und schreiben sie alle neu - hey, Bob, Tim, Joe, lass uns hier hingehen und all diese 100.000 Unterschriften überprüfen!

Wir müssen auch einen Schwachstellenscanner erstellen. Sie wissen, dass Nessus, ein Programm zur automatischen Suche nach Schwachstellen, über gut 80.000 Signaturen und Skripte verfügt, die nach Schwachstellen suchen. Wir werden wieder ethisch handeln und sie alle persönlich in unser Programm aufnehmen.
Die Leute fragen mich: "Joe, machst du all diese Tests mit Open-Source-Software wie Mod Security, Snort und dergleichen und antwortest, wie ähnlich sie Produkten anderer Hersteller sind?" Ich antworte ihnen: "Sie sehen überhaupt nicht aus wie sie!" Da Hersteller Open-Source-Sicherheitsprodukten nicht das Zeug stehlen, setzen sie sich hin und schreiben all diese Regeln mit ihren eigenen Händen.

Wenn Sie Ihre eigenen Signaturen und Angriffslinien verwenden können, ohne Open Source-Produkte zu verwenden, ist dies eine große Chance für Sie. Wenn Sie kommerziellen Produkten nichts entgegensetzen können und sich in die richtige Richtung bewegen, sollten Sie ein Konzept finden, das Ihnen dabei hilft, auf Ihrem Gebiet berühmt zu werden.

Jeder weiß was ich trinke. Lass mich dir zeigen, warum ich trinke. Wenn Sie jemals den Quellcode in Ihrem Leben überprüft haben, werden Sie ihn definitiv trinken, glauben Sie mir, danach werden Sie anfangen zu trinken.



Unsere Lieblingssprache ist also C ++. Schauen wir uns dieses Programm an - Web Knight, dies ist eine Firewall-Anwendung für Webserver. Standardmäßig gibt es Ausnahmen. Dies ist interessant - wenn ich diese Firewall bereitstelle, schützt sie mich nicht vor Outlook Web Access.



Großartig! Dies liegt daran, dass viele Softwareanbieter die Regeln aus denselben Anwendungen beziehen und sie in ihr Produkt einfügen, ohne sich auf die Forschung zu verlassen. Wenn ich die Netzwerk-Firewall-Anwendung bereitstelle, glaube ich daher, dass alles, was mit Webmail zu tun hat, falsch ist! Weil praktisch jedes Webmail standardmäßig die Sicherheit verletzt. Sie haben Webcode, der Systembefehle und Abfragen von LDAP oder einem anderen Benutzerdatenbank-Repository direkt im Internet ausführt.

Sag mir, auf welchem ​​Planeten kann dies als sicher angesehen werden? Denken Sie nur daran: Sie öffnen Outlook Web Access, drücken Strg + K, suchen nach Benutzern und alles, Sie verwalten Active Directory direkt aus dem Internet, Sie führen unter Linux Systembefehle aus, wenn Sie "Protein-Mail" verwenden, oder Horde oder was noch etwas. Sie ziehen alle diese Auswertungen und andere Arten von unsicheren Funktionen. Aus diesem Grund schließen viele Firewalls diese von der Liste der Sicherheitsrisiken aus. Fragen Sie den Hersteller Ihrer Software.

Zurück zur Web Knight-App. Es hat einem URL-Scanner, der alle diese Bereiche von IP-Adressen scannt, viele Sicherheitsregeln gestohlen. Sind all diese Adressbereiche von meinem Produkt ausgeschlossen?



Möchten Sie diese Adressen in Ihrem Netzwerk festlegen? Soll Ihr Netzwerk unter diesen Adressen ausgeführt werden? Ja, das ist großartig. Scrollen Sie in diesem Programm nach unten und schauen Sie sich andere Dinge an, die diese Firewall nicht tun möchte.

Sie heißen 1999 und möchten, dass ihr Webserver in der Vergangenheit liegt! Erinnert sich jemand an diesen Müll: / scripts, / iishelp, msads? Vielleicht werden sich ein paar Leute mit Nostalgie daran erinnern, wie viel Spaß es gemacht hat, solche Dinge zu knacken. "Denk dran, Mann, vor wie langer Zeit haben wir Server" getötet ", es war cool!"



Wenn Sie sich diese Ausnahmen ansehen, werden Sie feststellen, dass Sie all diese Dinge tun können - msads, Drucker, iisadmpwd - all diese Dinge, die heute niemand mehr benötigt. Was ist mit Befehlen, die Sie nicht ausführen dürfen?



Das ist arp, at, cacls, chkdsk, cipher, cmd, com. Wenn Sie sie auflisten, sind Sie mit Erinnerungen an vergangene Tage bedeckt, "Alter, erinnern Sie sich, wie wir diesen Server erfasst haben, erinnern Sie sich an diese Tage"?

Aber was wirklich interessant ist: Sieht hier jemand WMIC oder vielleicht PowerShell? Stellen Sie sich vor, Sie haben eine neue Anwendung, die funktioniert, indem Sie Skripte auf dem lokalen System ausführen. Dies sind moderne Skripte, da Sie Windows Server 2008 ausführen möchten, und ich werde sie mit Regeln, die für Windows 2000 entwickelt wurden, hervorragend schützen Wenn der Provider das nächste Mal mit Ihrer Webanwendung zu Ihnen kommt, fragen Sie ihn: „Hey Mann, und Sie haben Dinge wie Bits admin oder das Ausführen von Powershell-Befehlen bereitgestellt, haben Sie alle anderen Dinge überprüft, weil wir dies tun werden Upgrade und benutze den neuen ve UIS DotNET »? All diese Dinge müssen jedoch standardmäßig im Sicherheitsprodukt enthalten sein!



Das nächste, worüber ich mit Ihnen sprechen möchte, sind logische Fehler. Gehen wir zur Adresse 192.168.2.6. Dies ist ungefähr die gleiche Anwendung wie die vorherige.



Möglicherweise bemerken Sie etwas Interessantes, wenn Sie auf der Seite nach unten scrollen und auf den Link Kontakt klicken.



Wenn Sie sich den Quellcode der Registerkarte "Kontakt" ansehen, ist dies eine der Methoden zum Pentesten. Was ich dann ständig mache, ist, diese Zeile zu bemerken.



Denken Sie darüber nach! Ich höre, dass viele beim Anblick sagten: "Wow!" Einmal führte ich Penetrationstests für eine Milliardärsbank durch und bemerkte dort etwas Ähnliches. Wir brauchen also weder SQL-Injections noch Cross-Site-Scripting - wir haben die Hauptsache, diese Adressleiste.



Ohne zu übertreiben - die Bank teilte uns mit, dass sie beide - einen Netzwerkspezialisten und einen Webinspektor - hatten, und sie machten keine Kommentare. Das heißt, sie hielten es für normal, dass Sie über einen Browser eine Textdatei öffnen und lesen können.

Das heißt, Sie können die Datei einfach direkt aus dem Dateisystem lesen. Der Leiter des Sicherheitsdienstes sagte zu mir: "Ja, einer der Scanner hat diese Sicherheitsanfälligkeit gefunden, sie jedoch als geringfügig eingestuft." Worauf ich antwortete, gib mir eine Minute. Ich habe in der Adressleiste Dateiname = .. / .. / .. / .. / boot.ini eingegeben und konnte die Boot-Datei des Dateisystems lesen!



Sie sagten mir: "Nein, nein, nein, das sind keine kritischen Dateien!" Ich antwortete - aber das ist Server 2008? Sie sagten ja, das ist er. Ich sage - aber dieser Server hat eine Konfigurationsdatei im Stammverzeichnis des Servers, oder? "Richtig", antworten sie. "Ausgezeichnet", sage ich, "was ist, wenn der Angreifer dies tut", und ich gebe filename = web.config in die Adressleiste ein. Sie sagen - na und, Sie sehen nichts auf dem Monitor?



Ich sage - was ist, wenn ich mit der rechten Maustaste auf den Monitor klicke und die Option "Seitencode anzeigen" auswähle? Und was werde ich hier finden? Nichts kritisches? Ich werde das Server-Admin-Passwort sehen!



Und Sie sagen, dass es kein Problem gibt?

Aber mein Lieblingsteil ist der folgende. Sie gestatten mir nicht, Befehle in der "Box" auszuführen, aber ich kann das Administratorkennwort und die Datenbank des Webservers stehlen, die gesamte Datenbank anzeigen, alle Materialien zu Datenbank- und Systemfehlern von dort abrufen und alles damit belassen. Dies ist der Fall, wenn ein Bösewicht sagt: "Hey Mann, heute ist ein großartiger Tag!"



Lassen Sie Sicherheitsprodukte nicht zu Ihrer Krankheit werden! Lassen Sie sich von Sicherheitsprodukten nicht krank machen! Finden Sie einige „Nerds“, geben Sie ihnen all diese denkwürdigen Star Trek-Zatskis, interessieren Sie sie, ermutigen Sie sie, bei Ihnen zu bleiben, denn diese langweiligen Gerüche, die nicht täglich duschen, sind diejenigen, die Ihre Netzwerke zum Funktionieren bringen sollte! Dies sind die Personen, die dazu beitragen, dass Ihre Sicherheitsprodukte ordnungsgemäß funktionieren.

Sagen Sie mir, wer von Ihnen kann mit der Person, die ständig sagt: "Oh, ich muss dieses Drehbuch dringend ausdrucken!", Lange im selben Raum bleiben und wer ist die ganze Zeit damit beschäftigt? Aber Sie brauchen Leute, die dafür sorgen, dass Ihre Sicherheitsprodukte funktionieren.

Ich wiederhole noch einmal - Sicherheitsprodukte sind dumm, weil die Lichter ständig falsch sind, ständig schlampige Dinge begehen, sie bieten einfach keine Sicherheit. Ich habe noch nie ein gutes Sicherheitsprodukt gesehen, das keine Person mit einem Schraubendreher erfordert, die sich bei Bedarf festziehen kann, damit alles mehr oder weniger normal funktioniert. Dies ist nur eine riesige Liste von Regeln, die besagen, dass dies schlecht ist und das ist es!

Deshalb möchte ich, dass Sie auf Bildung achten, auf Sicherheit und polytechnische Ausbildung, denn es gibt viele kostenlose Online-Kurse zu Sicherheitsfragen. Lernen Sie Python, Assembly Assemblys und Testen von Webanwendungen.



Folgendes hilft Ihnen beim Schutz Ihres Netzwerks. Kluge Köpfe schützen Netzwerke, Netzwerkprodukte schützen nicht! Kehren Sie zur Arbeit zurück und sagen Sie Ihrem Chef, dass Sie mehr Budget für klügere Leute brauchen. Ich weiß, dass es eine Krise gibt, aber sagen Sie ihm immer noch, dass wir mehr Geld brauchen, damit die Leute sie ausbilden können. Wenn wir ein Produkt kaufen, aber keinen Kurs zum Umgang damit kaufen, weil es teuer ist, warum kaufen wir es dann überhaupt, wenn wir den Leuten nicht beibringen werden, wie man es benutzt?

Ich habe für viele Hersteller von Sicherheitsprodukten gearbeitet, fast mein ganzes Leben damit verbracht, diese Produkte zu implementieren, und ich habe all diese Netzwerkzugriffskontrollen und andere Dinge satt, weil ich all diese Mistprodukte installiert und auf den Markt gebracht habe. - , 802.1x EAP, MAC . , , , . , MAC IP . , 802.1x, .

MAC MAC , MAC, ! MAC , VoIP ?

, , , , . , , HIPS, NIPS, LAUGTHS, MACS , . , . , , , , .

, , MS 1103. , «» HIPS, Host Intrusion Prevention Signature, . HIPS. , , , , , .
, , .


:)


, . ? ? , , VPS $4.99 , entry-level , : VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps $19 ? ( RAID1 RAID10, 24 40GB DDR4).

Dell R730xd 2 - Equinix Tier IV ? 2 Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 $199 ! Dell R420 - 2x E5-2430 2,2 GHz 6C 128 GB DDR3 2x960 GB SSD 1 Gbit / s 100 TB - ab 99 US-Dollar! Lesen Sie mehr über das Erstellen von Infrastruktur-Bldg. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?

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


All Articles