Hacken lernen bzw. Hacker werden

08.01.2019, 20:22 - Autor: Mark B.
Ich lese immer und immer wieder Fragen wie:
Daher will ich diese Fragen etwas ausführlicher behandeln...

Nun erstmal gibt es nicht das "Hacken". Viele stellen sich das vor wie "hacken lernen" und dann kann man "hacken". Doch es gibt es noch zig Unterkategorien und Teilbereiche darüber hinaus ist noch einiges mehr an Zusätzlichem Wissen nötig, dass an sich nichts mit dem Thema "Hacken" zu tun hat aber ohne dieses Wissen sind viele Angriffe nicht durchführbar oder es können viele Angriffsvektoren garnicht identifiziert werden!

In der Regel fängt man als Scriptkiddy an - man spielt mit fertigen Tools herum, folgt Tutorials und landet hierbei allzuoft in Sackgassen... Reale Angriffe sind nun oftmals nicht so einfach oder Angriffsvektoren sind nicht so offensichtlich zu entdecken wie in speziell präparierten Beispielen! Es liegt dann an dir ob du dich weiterentwickelst...

Ein guter Einstieg wären Bücher oder Videokurse.

Von Youtube-Tutorials rate ich eher ab - viel zu oft wird nur das Tool und die Bedienung gezeigt und die techn. Details dahinter garnicht oder manchmal sogar komplett falsch erklärt. Natürlich gibt es einige brauchbare Tutorials aber vieles ist leider falsch oder unvollständig und ein Anfänger kann da nicht "die Spreu vom Weizen trennen".

Wenn du erst mal mit fertigen Tools umgehen kannst und zumindest soviel über die Arbeitsweise der Tools und die Hintergründe der Angriffe weißt, dass du es auch mal schaffst Probleme selbstständig zu lösen oder den ein oder anderen Workarround selber zu finden dann bist du schon mal einen kleinen Schritt weiter... Als "Scriptkiddy++" tastest du dich an die ersten realen Tests heran und lernst methodisch auf Schwachstellen zu testen. Außerdem musst du lernen, dass Hacken vor einem eine Geduldsübung ist. Vergiss die "Hacker" aus dem Fernsehen - zwei oder drei Befehle eintippen und schon ist man "drin" gibt es im realen Leben nicht außer jemand anders hat einem eine Backdoor hinterlassen!

Oftmals verbringt man Tage damit nur Informationen zu sammeln und nach Angriffspunkten zu suchen. Und sehr oft steht man dann vor einer irrsinnigen Datenflut, die man erstmal nach nützlichen Informationen durchsuchen muss.
Spätestens wenn man vor zig tausenden Zeilen von Programmausgaben sitzt und sich durch dutzende solcher Listen arbeiten muss wird der Wunsch aufkommen einige Dinge zu automatiesieren oder einfach nur diese irrwitzige Datenflut besser handeln zu können. Und damit kommt Programmierungs ins Spiel, sofern man sich bis dahin noch nicht beschäftigt hat wird es jetzt höchste Zeit! Außerdem wirst du irgendwann feststellen, dass die 0815-Tools nicht in allen Situationen gut funktionieren.

Ich rate dir an dieser Stelle: "Du solltest dir Python ansehen."! Mit wenigen Zeilen Code hast du ganz schnell POC-Scripte, die Automatisierung eines Angriffs, kleine Tools zum filtern und vergleichen von Daten, usw. gebastelt. Außerdem ist Python eine der am leichtesten zu lernenden Sprachen überhaupt und darüber hinaus auch noch sehr flexibel und mächtig! An diesem Punkt kannst du dann mit deinen Python-Kenntnissen anfangen eigene Tools zu entwickeln. (Python ist dafür sogar die bevorzugte Sprache vieler IT-Experten aka Hacker aka Pentester) Dabei wirst du ein noch tieferes Verständnis dafür bekommen wie die einzelnen Angriffe arbeiten und was genau hinter den Tools steckt.

Viele verwenden den Ausdruck Scriptkiddy so abwertend - ist er oftmals auch aber jeder Hacker ist auch ein Scriptkiddy! Ich verwende bei Pentests großteils fertige Tools und Scripte - warum das Rad immer neu erfinden? Auf der anderen Seite kenne ich auch die Hintergründe und kann mir bei Bedarfe ein spezielles Tool schreiben wenn ich es wirklich brauche oder einfach nur Bock drauf habe. Ein Hacker "programmiert" auch nicht ständig - den Großteil der Zeit verbringt man mit Weiterbildung, Datenauswertung, schreiben von Berichten und Gutachten, Datenbeschaffung, Recherche in Softwaredokumentationen, neue Sicherheitsmeldungen lesen, usw.

Eines der einfachsten Gebiete ist hierbei Web-Pentesting. Angriffe wie SQLi, XSS, CSRF, usw. sind meist weder besonders komplex noch besonders Aufwändig. Allerdings müsst man dazu die gängigen Sprachen des Web (HTML, CSS, Javascript, PHP, SQL, ...) kennen. Darüber hinaus sollte man auch die gängigen Frameworks wie jQuery, Node.js, usw. kennen auf die man eventuell treffen könnte. Damit kannst du die ersten Praxiserfahrungen (zB Bug-Bounty-Programme) sammeln und auch noch etwas Geld verdienen.

Als mittlere Schwierigkeitsstufe würde ich diverse Angriffe und Techniken für die Netzwerk- und Protokollgrundlagen erforderlich sind einstufen. Hierzu zählen MITM, Sniffer, Scanner, usw. Andere Dinge wie Buffer-Overflows, Shellcode-Generierung, etc. sind schon anspruchsvoller. Das sogenannte Exploit Research ist die Königsdisziplin - dazu wirst du dich mit Sprachen wie C/C++ oder Assembler auseinandersetzen müssen. Mit diesem Wissen bewaffnet kannst du dann lauffähige Programme Disassemblieren und mit Debuggern (gdb, OllyDebug, ...) untersuchen und Schwachstellen aufdecken. Allerdings ist das nicht gerade leichte Kost ;-)

Um alle möglichen Schwächen in kryptografischen Algorithmen zu verstehen wären sehr gute Mathematik-Kenntnisse Voraussetzung.

Irgendwo auf dem Weg kannst du dir auch Zertifizierungen wie zB CEH, LPT, usw. holen. (Allerdings sind die nicht gerade billig... 3.000 - 7.000 EUR / Zertifikat kannst du einplanen)

Abgesehen von den Hacking-Techniken brauchst du allerdings wie eingangs schon erwähnt einiges weitere Wissen wie zB:
Weitere wichtige Eigenschaften wären: