Die Übersetzung des Artikels wurde speziell für Studenten des Pentest vorbereitet . Penetrationstestpraxis . “
Sind Sie an der Entwicklung von Hacking-Methoden interessiert und möchten Ihre Entdeckungen mit der Informationssicherheits-Community teilen? In diesem Artikel werde ich einige Empfehlungen für diejenigen geben, die Analyst im Bereich Web-Sicherheit werden möchten, sowie über die Möglichkeiten und Fallen sprechen, die er selbst einmal auf seinem Weg getroffen hat.
Wer ist ein Netzwerksicherheitsanalyst?
Netzwerksicherheitsanalysten sind Personen, die nicht nur bekannte Hacking-Techniken wie SQLi und
XSS verwenden, sondern auch neue Bedrohungen für Websites finden. Dies können innovative Lösungen sein, die vorhandene Methoden komplizieren, z. B. den Ansatz zur Ausnutzung
lokaler + blinder XXE- Schwachstellen, oder ganz neue Bedrohungsklassen wie
Web Cache Deception (Vergiftung des Webanwendungscaches).
Es ist sehr schwierig, Websites vor unbekannten Angriffsmethoden zu schützen, daher können sie häufig zum Betreiben einer großen Anzahl anderer sicherer Websites verwendet werden. Dies bedeutet, dass die Veröffentlichung Ihrer Entdeckungen in diesem Bereich dazu beitragen kann, dass Websites Schwachstellen beseitigen und dadurch das allgemeine Sicherheitsniveau für das gesamte Ökosystem erhöht wird.
Für das Leben brechen
Der Großteil der Forschung umfasst die Verwendung vorhandener Methoden, die sich etwas weiterentwickelt haben. Daher wäre es zunächst einmal schön, sich mit dem aktuellen Stand der Dinge vertraut zu machen. Der schnellste Weg, dies zu tun, besteht darin, einen Job zu finden, bei dem Sie die meiste Zeit Hacking-Techniken anwenden. Viele
gute Leute haben bereits
Ratschläge gegeben, wie man in die Informationssicherheitsbranche einsteigt, deshalb werde ich mich hier kurz fassen.
Ich empfehle einen praxisorientierten Ansatz, der von unserer
Network Security Academy ausgeht und zu offeneren Aufgaben wie meinem
hackxor.net übergeht , um zunächst einfache Aufgaben mit einer kleinen Belohnung für die Bemühungen bei
HackerOne und
BugCrowd und schließlich zu
erledigen Wechseln Sie zu bewährten, großzügigen und gut bezahlten generischen Schwachstellenprogrammen. Nachdem Sie mehrere Schwachstellen gefunden und analysiert haben, sollte es einfach sein, täglich Berater für Informationssicherheit zu werden und jeden Tag neue Websites und Webanwendungen zu hacken.
Es gibt viele kostenlose Online-Ressourcen, die Ihnen auf
Ihrem Weg
gute Dienste
leisten , einschließlich unserer
Burp- Methodik, HackerOne
Hacker 101 und
OWASP- Testanleitung. Für Bücher würde ich empfehlen, das
WebApp Hacker's Handbook und
The Tangled Web zu lesen. Die oben genannte
Network Security Academy soll interaktiv als Ersatz für das WebApp Hacker-Handbuch verwendet werden. Es wird jedoch einige Zeit dauern, bis wir alle erforderlichen Themen behandelt haben. Daher würde ich vorerst empfehlen, beide Quellen zu verwenden.
Über bekannte Methoden hinausgehen
Sobald Sie anfangen zu arbeiten und den ganzen Arbeitstag mit Hacken beschäftigt sind, werden Sie die Arbeitsbelastung verstehen. Nach einiger Zeit werden Ihre Erfahrungen umfangreich sein und neue Kenntnisse werden schwierig sein. In dieser Phase ist der wichtigste Schritt, sich nicht auf unseren Lorbeeren ausruhen zu lassen und weiter zu lernen und zu üben. Nur so werden Sie zum echten Spezialisten.
Die Jagd nach vergessenem Wissen
Jeder versteht, dass Sie mit neuen Entwicklungen Schritt halten und
Branchenexperten , Nachrichtenaggregatoren und Sicherheitskonferenzen überwachen müssen. Ausschließlich neuen Entwicklungen zu folgen bedeutet jedoch, das wertvolle Wissen und die Forschung, die vor langer Zeit durchgeführt und vergessen wurden, nicht zu bemerken.
Sparen Sie nicht jedes Mal, wenn Sie einen guten Blog-Artikel finden - lesen Sie das gesamte Archiv. Dort sind oft unbezahlbare und vergessene Informationen versteckt. Nehmen Sie zum Beispiel diesen RSnake-
Artikel über DNS-Neubindung, der 2009 geschrieben wurde. Durch das erneute Binden von DNS werden IP-basierte / Firewall-basierte Zugriffskontrollen auf Websites umgangen. Die einzige effektive Möglichkeit, dies zu vermeiden, besteht darin, Ihre Anwendung in die Host-HTTP-Header-Liste aufzunehmen. Die Leute entschieden schnell, dass Browser damit umgehen können, und neun Jahre später, mit einer neuen Reihe von
Exploits, wurde klar, dass diese Sicherheitsanfälligkeit wiederverwendet wurde.
Das Durchsuchen von Archiven hilft Ihnen auch dabei, das Rad, das bereits jemand anderes erfunden hat, nicht neu zu erfinden, wie dies beispielsweise bei der
Neuerfindung von CSS-Angriffen zehn Jahre später der Fall war. Einige Studien sind jedoch sehr schwer zu finden, so dass eine versehentliche Vervielfältigung unvermeidlich ist. Einmal veröffentlichte ich eine Studie und stellte fest, dass kuza55 bereits vor fünf Jahren dasselbe tat. Tun Sie daher alles, um Doppelarbeit zu vermeiden. Wenn dies jedoch passiert, geraten Sie nicht in Panik, es passiert jedem.
Sammle Raritäten
Um Themen zu verknüpfen und Möglichkeiten zu identifizieren, die andere Menschen verpassen, ist es sehr wichtig, Informationen aus verschiedenen Quellen zu sammeln. Beschränken Sie sich zunächst nicht auf das Lesen von Inhalten zur Informationssicherheit. Sie finden schnell eine
Dokumentation , die Sie durch den Exploit führt. Auch hier mag der nächste Tipp ziemlich offensichtlich sein, aber bevor Sie Google durchsuchen oder versuchen, eine
Frage auf Twitter / Reddit / StackOverflow zu formulieren, sollten Sie Ihre Kollegen fragen. Es kommt oft vor, dass das notwendige Wissen irgendwo in der Nähe ist, aber manche Leute teilen es einfach nicht öffentlich.
Versuchen Sie außerdem, die Vielfalt Ihrer Erfahrungen zu erhalten.
Durch die Durchführung von Black-Box-Penetrationstests für Konsultationen zur Informationssicherheit sollten Sie eine breite Palette externer und interner Webanwendungen erhalten, auf die Sie im Bug-Bounty-Programm möglicherweise nie stoßen. Das Zeitlimit verhindert jedoch, dass Sie sich mit dem Verständnis der Anwendung befassen, die in Monaten der Fehlerbehebung für einen bestimmten Zweck verfügbar ist. Obwohl dies ein langsamer und begrenzter Prozess ist, bietet eine Überprüfung des White-Box-Quellcodes möglicherweise eine alternative Angriffsperspektive, an die ein Black-Box-Pentester nicht gedacht hätte. Um sich als Analyst zu entwickeln, müssen Sie alle drei Arbeitsmethoden kombinieren. Zusätzliche Funktionen wie CTF-Spiele und das Schreiben von Webanwendungen erweitern Ihre Perspektive.
Es gibt keine zu dummen Ideen
Eine der schlimmsten Fallstricke, in die Sie geraten können, besteht darin, eine großartige Idee fallen zu lassen, vorausgesetzt, sie funktioniert definitiv nicht, und sie nicht zu versuchen, weil "jemand anderes sie bemerkt hätte" oder "es ist zu dumm, um es zu tun." arbeiten. " Ich hatte zuvor so viel gelitten, dass ein Teil der Studie zwei Jahre später erschien, als es hätte sein sollen. Es spielt keine Rolle, ob dies die
Authentifizierung umgeht,
indem Sie dasselbe Kennwort erneut eingeben oder die Google-Verwaltungsseite von Ihrem Telefon anstelle eines Laptops
hacken , da der nächste wichtige Exploit von einer wirklich dummen Idee ausgehen kann.
Trost aufgeben
Wenn eine Technologie als komplex, unpraktisch oder gefährlich angesehen wird, ist dies eindeutig ein Thema, das untersucht werden muss. Nach wiederholten Erfahrungen mit echten Durchbrüchen, nachdem ich Themen aufgegriffen hatte, die weit außerhalb meiner Komfortzone lagen, entschied ich, dass der schnellste Weg zu neuen Entdeckungen darin besteht, aktiv nach Themen zu suchen, bei denen ich mich unwohl fühle. Höchstwahrscheinlich meiden andere Hacker diese Themen und geben ihnen ernsthaftes Forschungspotential. Für mich ist dies die einzige plausible Erklärung dafür, warum ich die Ausrüstung, die 2005 erstmals dokumentiert und 2016 erneut auf der DEF CON vorgestellt wurde, nehmen und damit 70.000 US-Dollar an Bug Bounty im Jahr 2019 verdienen konnte.
Wiederholen, neu erfinden, teilen
Wiederholen
Der einfachste Weg, um mit der Arbeit zu beginnen, besteht darin, die prospektive Forschung eines anderen zu finden, darauf basierend etwas Eigenes aufzubauen, einige Methoden zu mischen und dann zu versuchen, Ihren neuen Ansatz vor Ort anzuwenden und zu prüfen, ob etwas Interessantes passiert.
In diesem
Artikel über die Fehlkonfiguration von CORS wurde beispielsweise auf ein interessantes Verhalten hingewiesen, und es wurde darauf hingewiesen, dass ein solches Verhalten äußerst häufig ist. Der Autor hörte jedoch dort auf und untersuchte die Auswirkungen auf einzelne Websites nicht.
Ich nahm das vorgeschlagene Konzept als Grundlage und wandte es auf Bug-Bounty-Sites an, auf denen ich rechtlich experimentieren und versuchen konnte, alle möglichen Schutzmöglichkeiten zu vermeiden. Unterwegs habe ich mithilfe der bekannten Open-Redirect-Exploit-Techniken etwas verbessert, schließlich durch Lesen der CORS-Dokumentation den Ursprung von „null“ entdeckt und die Möglichkeiten einer Cache-Vergiftung untersucht.
Es gab nichts in diesem Prozess, was eine unglaubliche Intuition oder herausragendes technisches Wissen erfordern würde. Das Endergebnis war jedoch leicht zu erzielen - der Betrieb von CORS-Fehlkonfigurationen für Bitcoins und
Bounty .
Invent
Das Wiederholen der Arbeit anderer Leute ist cool, aber die coolste Forschung kommt aus dem Nichts, egal ob der relative
Pfad neu geschrieben oder der Cache der
Webanwendung vergiftet wird. Ich glaube, dass solche Entdeckungen durch persönliche Erfahrungen verursacht werden, die zu Hinweisen führen. Ich nenne sie "führende Erfahrungen" oder "Brotkrumen", weil sie manchmal mysteriös sind und viele brauchen, um Sie zu einer nützlichen Entdeckung zu bringen.
Zum Beispiel habe ich 2011 versucht, den von
addons.mozilla.org
verwendeten
CSRF- Schutz zu knacken. Ich habe die Token-Prüfung umgangen, aber sie haben auch überprüft, ob der Host im Referer-Header mit der aktuellen Site übereinstimmt. Ich habe das
sla.ckers
Forum um Hilfe gebeten, und
'barbarianbob'
sagte, dass Django den Host der aktuellen Site anhand des Werts des Host-Felds in den HTTP-Headern ermittelt und es durch den X-Forwarded-Host-Header überschrieben werden kann. Diese Idee könnte mit der Idee der Schwachstelle der Einführung von Headern in Flash kombiniert werden, um die CSRF-Prüfung zu umgehen. Noch wichtiger war jedoch der erste Breadcrumb. Sie war die Idee, dass Anwendungen sich auf den Host-Header verlassen können, um ihren aktuellen Standort zu bestimmen.
Einige Zeit später sah ich mir den Quellcode der Piwik-Funktion zum Zurücksetzen des Passworts an und fand eine Zeile, die ungefähr so aussah:
$passwordResetLink = getCurrentUrlWithoutQueryString() + $secretToken
Ja, dachte ich. Piwik verwendet PHP, was viel Spaß beim Umgang mit dem Pfad macht. Daher kann ich unter
piwik.com/reset.php/foo;http : //evil.com ein Zurücksetzen des
Passworts anfordern. Als Ergebnis erhalte ich eine E-Mail mit zwei Links und das geheime Token wird gesendet auf
evil.com
. Diese Idee hat funktioniert, mir Vorteile gebracht und den Grundstein für die nachfolgenden Suchen gelegt.
Die dritte und letzte Krume war, wie Piwik versuchte, diese Sicherheitsanfälligkeit zu beheben. Sie haben
getCurrentUrlWithoutQueryString()
durch
getCurrentUrlWithoutFileName()
. Dies bedeutete, dass ich meine Methode nicht mehr zum Exploit verwenden konnte. Aufgrund der Tatsache, dass ich bereits mit Django vertraut war, beschloss ich, mich mit dem Code zu befassen und herauszufinden, wie Piwik den aktuellen Hostnamen ermittelt hat. Ich fand heraus, dass sie wie Django den Host-Header verwendeten, was bedeutete, dass ich leicht gesendete E-Mails generieren konnte, um das Passwort zurückzusetzen. Wie sich herausstellte, funktionierte dieser Trick auf
addons.mozilla.org
und Gallery, Symfony und Drupal sowie auf einer Reihe anderer Websites. Dies führte dazu, dass Angriffe mit der Ersetzung des HTTP-
Host- Headers durchgeführt wurden.
Ich beschreibe das Auftreten von Entdeckungen, die so ausführlich sind, und hoffe, dass ich das Rätsel um den Forschungsprozess lösen und es im Gegensatz zu einer spontanen Idee aus dem Nichts zeigen konnte. Unter diesem Gesichtspunkt scheint es die Hauptkompetenz (zusätzlich zu den vorhandenen Kenntnissen und Erfahrungen) zu sein, solche Brotkrumen zu erkennen und dem Pfad zu folgen, den sie angeben. Ich kann nicht formulieren, wie es auf zugängliche Weise gemacht wird, aber ich weiß, wie man die Dinge berücksichtigt, die Sie dazu bringen, immer wieder zu sagen, dass es sinnlos ist.
Teilen
Es ist wichtig, dass Sie Ihre Forschung mit der Community teilen. Dies wird dazu beitragen, Ihr Portfolio zu erweitern und Ihren Arbeitgeber möglicherweise zu ermutigen, Ihnen mehr Arbeitszeit für die Forschung zu geben. Darüber hinaus können Sie so Zeitverschwendung vermeiden und weitere Forschungen anregen. Wenn Sie Ihre Arbeit kritisieren und kommentieren, können Sie sehen, was Sie zuvor noch nicht bemerkt haben. Es gibt auch nichts Nützlicheres, als zu sehen, wie ein anderer Analyst seine Techniken basierend auf Ihren entwickelt.
Bitte denken Sie nicht, dass Technologie oder eine Idee nicht geteilt werden sollte, nur weil sie nicht innovativ ist. Zwei Logos und eine Präsentation - veröffentlichen Sie alles, was Sie haben (idealerweise in einem Blog und nicht auf einer schlecht indizierten geschlossenen Plattform wie Twitter).
Wenn Sie Ihre Forschungsergebnisse teilen, ist es immer nützlich, ein Beispiel für die Anwendung Ihrer Methode auf eine echte Webanwendung zu zeigen. Ohne dies werden die Menschen unweigerlich Schwierigkeiten haben, es zu verstehen, und sie können an seinem praktischen Wert zweifeln.
Schließlich eignen sich Präsentationen hervorragend, um ein breiteres Publikum zu erreichen. Sie sollten jedoch nicht in einen Teufelskreis geraten oder Ihre Zeit damit verschwenden, vergangene Präsentationen endlos zu wiederholen.
Fazit
Ich selbst muss noch viel über Netzwerksicherheit lernen, daher würde ich einige Jahre später mit einem frischen Aussehen und neuen Ideen auf dieses Thema zurückkommen. Darüber hinaus weiß ich, dass andere Analysten möglicherweise andere Standpunkte vertreten, und ich freue mich auf Ideen, die sie teilen können.
Zusammenfassung meiner Tipps zum Network Security Analyst:- Suchen Sie nach vergessenem Wissen und lesen Sie Archivunterlagen.
- Holen Sie sich Informationen aus so vielen verschiedenen Quellen wie möglich.
- Gehen Sie tief in komplexe und "beängstigende" Themen ein;
- Wiederholen, erfinden, teilen;
- Es gibt keine zu dummen Ideen.
Wenn Sie also loslegen möchten, kann ich Sie bei unserer jährlichen Auswahl der zehn besten
Web-Hacking-Techniken beraten. Darüber hinaus habe ich eine Liste verschiedener
Blogs erstellt , die mich seit vielen Jahren inspirieren. Viel Glück bei Ihrer Recherche und viel Spaß!