Articles

0: Basiswissen

Posted on

Exploit-Entwicklung ist schwer, zu lernen, wie man es macht, wird viel Studium, Übung und ein gutes Verständnis für eine ziemlich breite Palette von verwandten Themen erfordern. Die gute Nachricht ist, dass Sie nicht alles auf einmal oder über Nacht lernen müssen und dass es viele Menschen gibt, die dieselbe schmerzhafte Reise unternommen haben oder sich auf dieser befinden – einige von ihnen schreiben Blogs wie Corelan Security oder Fuzzy security.

Der allgemein empfohlene Ansatz für Anfänger besteht darin, am Anfang zu beginnen, dem einfachen Stack-basierten Pufferüberlauf im Stil der späten 90er Jahre, der durch Aleph Ones „Smashing the Stack for fun and profit“ populär gemacht wurde, und dann schrittweise daran zu arbeiten, immer modernere Mitigationen, neue Ausnutzungsvektoren und Architekturen einzuführen und zu besiegen. Wenn Sie dies tun und gegen reale Exploits üben, fangen Sie an, einige der zusätzlichen Kenntnisse aus Ihrer eigenen Forschung zu sammeln, und vergessen Sie nicht, Notizen zu machen, vielleicht hilft es Ihnen, einen Blog zu führen oder exemplarische Vorgehensweisen für Ihre Exploits hier zu veröffentlichen

Genau, auf welchem Qualifikationsniveau Sie sein müssen, bevor Sie anfangen, etwas über binäre Ausbeutung zu lernen, wird immer etwas sein, das einigen Menschen Sorgen bereitet. Bist du schon bereit? Die Antwort ist im Allgemeinen ja und Nein, Sie lernen mehr, indem Sie heute beginnen und versagen, als jede Menge Aufschub, aber gleichzeitig entdecken Sie jedes Mal, wenn Sie etwas Neues lernen, zwei Dinge, die Sie nicht verstehen. Hacking ist schrecklich dafür, je mehr ich lerne, desto mehr fühle ich mich wie ein kompletter Neuling. Der schlimmste Fall ist, dass Sie feststellen, dass Sie zuerst andere Dinge lernen müssen, und es tut nie weh, ein Buch zu lesen.

Ressourcen:

Eine Vielzahl von Büchern

Empfohlene Themen:

Ein Verständnis von C / C ++

Speicher- und CPU-Konzepte wie Speicheradressierung, Register und Stacks

Eine Skriptsprache wie Python, Perl, Ruby oder Bash

Fließend in Ihrem gewählten Betriebssystem und zumindest ein grundlegendes Verständnis des Debuggers, den Sie verwenden

Die Frage der Plattformen, die Sie als Ihre Wahl verwenden sollen, ist eine persönliche Entscheidung, einige Leute lernen zuerst Windows Exploitation und wechseln dann zu Linux, während andere (wie ich) lieber mit Linux Exploitation beginnen, bevor sie zu Windows wechseln. Meiner Meinung nach gibt es mehr und bessere Ressourcen, um die Grundlagen von Linux zu erlernen, aber Sie haben wirklich die Wahl.

Ressourcen:

Smashing the Stack for Fun and Profit

Exploit Exercises Protostar: Stack levels 0-5

Einige der Konzepte, die mit dem Erlernen dieser Art der einfachen Ausbeutung verbunden sind, werden einem Anfänger ziemlich fremd sein, aber mit etwas Zeit, die Sie mit einem Debugger verbringen, sollten Sie anfangen, einige der Dinge zu verstehen, über die Sie sich informieren müssen

2: Format String Schwachstellen

Ressourcen:

Einführung in Format-String-Exploits

Exploit-Übungen Protostar: Format Levels 0-4

Format-String-Exploits sind ein guter nächster Schritt nach einfachen Pufferüberläufen, da sie sehr viele Ähnlichkeiten aufweisen, aber auch die Möglichkeit bieten, mit beliebigen Speichermanipulationen herumzuspielen. Format strings zeigt Ihnen auch einige der Seltsamkeiten, die zu ausnutzbaren Situationen führen können

3: Kehren Sie zu LibC zurück – Besiegen Sie nicht ausführbare Stapel (auch bekannt als DEP, W ^ X, NX)

Ressourcen:

(Ausnutzen von Protostar: Stack-Ebene 6](https://exploit.education/protostar/stack-six/)

ret2libc ist die erste einfache Umgehung eines Exploit Mitigation und dient als Einführung in die Konzepte, die die Grundlage der leistungsfähigen Return Oriented Programming-Technik bilden, gibt es ein paar Varianten dieser Technik wie ret2plt oder ret2text

4: Return Oriented Programming (ROP)

Ressourcen:

Exploit Übungen Protostar: Stack Level 7

/ u / d4mianwaynes ROP Einführung

ROP ist eine Schlüsseltechnik für die moderne Nutzung, mit der sowohl DEP als auch ASLR besiegt werden können, und eine interessante Möglichkeit, etwas über Assembler zu lernen und sich wirklich mit Systemaufrufen, Registern und anderen Grundlagen auf niedriger Ebene zu befassen.

5: Stack-Kanarienvögel besiegen

Stack-Kanarienvögel sind eine Exploit-Abschwächung, die versucht, Exploits zu verhindern, indem am Ende von Funktionen eine kleine Überprüfung auf Pufferüberläufe hinzugefügt wird. Sie kommen in einer Vielzahl von Formen und Stilen, wie Terminator Kanarienvögel und zufällige Kanarienvögel. Das Erlernen einiger Techniken, um sie zu besiegen oder zu umgehen, ist ziemlich wichtig.

Ressourcen:

Corelans Anmerkungen dazu

Hinweis: Die Ressourcen dafür scheinen begrenzt zu sein – Vorschläge oder Beiträge zu diesem Thema sind willkommen

6: Grundlagen der Heap-Ausnutzung

Die modernere Ausnutzung konzentriert sich eher auf den Heap als auf den Stack, teilweise aufgrund des sich verbessernden Zustands der Abwehrmaßnahmen für stapelbasierte Exploits, teilweise, weil sich die Codierungsstandards verbessert haben und es weniger Möglichkeiten für einfaches Stapelzertrümmern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.