Hacken lernen, wie fange ich an?

8 Antworten

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: https://www.amazon.de/s//www.amazon.de/s/ref=nb_sb_noss_2?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords=hacken+kali&rh=i%3Aaps%2Ck%3Ahacken+kali&ajr=0

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.

  • Welches Betriebssystem hat das Opfer und in welcher Version?
  • Welche Dienste bietet das Opfer an?
  • Welche Software in welcher Version stellt die Dienste zur Verfügung?
  • Welche Scripte laufen zB auf dem Webserver?
  • Wie ist das Netzwerk geschützt - Firewall? IDS? WAF? usw...
  • Gibt es externe Schwachpunkte - Filialen? Homeoffice von Mitarbeitern?
  • Welche Email-Adressen gibt es? Eventuell hat ja zB ein Admin in einem Forum nach Hilfe gesucht und nütliche Infos wie Teile von Config-Dateien oder dergleichen gepostet...
  • Spitznamen, Usernamen, sozial Media Accounts, usw. der Mitarbeiter? Man sollte Namen der Verwandten, Partner, Kinder, Hobbies, usw. kennen um eine individuelle Passwordliste für die Mitareiter zu erstellen.
  • usw.

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 SQLiXSS, 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.

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:

  • Erfahrung mit der Wartung und Administration von Betriebssystemen - Sicherheit hängt hier stark davon ab wie gut der Admin ist und um dessen Maßnahmen zu überlisten sollte man in der Regel mehr Wissen als er!
  • Netzwerk-Grundlagen wie zB den Schichten, 3-Wege-Handshake, ...
  • zumindest Grundlagenwissen wie die gängigen Protokolle (TCP, IP, ARP, IMAP, HTTP, FTP, POP, SMTP, ...) arbeiten
  • Programmierkenntnisse um Angriffscode zu schreiben oder auch fertigen Exploitcode zu debuggen - hierbei sollte ich erwähnen, dass Exploitcode oftmals nicht sehr universell einsetzbar programmiert ist oder auch nur ordentlich dokumentiert ;-)
  • Ich hatte schon oftmals das "Vergnügen" in fremden Exploitcode Anpassungen vornehmen zu müssen damit er auf meinem System überhaupt läuft.
  • Außerdem gibt es Angriffe für die man sich überlegen müsste wie etwas wohl umgesetzt worden sein könnte um sich dann mögliche Tests auf Schwachstellen zu überlegen.
  • Erfahrungen mit dem Einrichten, Administrieren und Warten von Serverdiensten (IIS, Apache, ProFTPd, EXIM, Postfix, NGINX, MySQL, ...) und Firewalls - oftmals liegen die Schwachstellen nicht in der Software selbst sondern in fehlerhafter oder unsicherer Konfiguration der Dienste!

Weitere wichtige Eigenschaften wären:

  • Geduld, Hartneckigkeit und Durchhaltevermögen - nicht jeder kann sich nach zig Rückschlägen und Sackgassen wieder hochraffen und weiteran einem Problem arbeiten. Ein kühler Kopf ist ebenfalls unerlässlich - oftmals hilft es nur ein oder zwei Schritte zurück zu machen und einen neuen Weg zu suchen.
  • Eine hohe Frustrationsgrenze (oder einen Boxsack im Büro)! Ich kenne derart "stabilen" Exploit-Code, der regelmäßig alle 30-90 Sekunden abstürzt und die Verbindung beendet. Mit soetwas über Stunden hinweg zu versuchen die Userrechte weiter auszubauen und sich über 300x an einem einzigen Arbeitstag wieder neu einzuloggen ist definitiv ein gutes Mittel geben zu niedrigen Blutdruck!
Woher ich das weiß:Berufserfahrung – Pentester & Sachverständiger für IT Sicherheit

Kommt darauf an, was du hacken willst. Grundsätzlich solltest du zumindest 2-3 grundlegende Programmiersprachen kennen.

Danach hilft nur lesen und dich mit Software und deren Funktionsweise, speziell bei Datenbankzugriff und Abmeldeverfahren beschäftigen. Am schnellsten wirst du Lücken in Datenbankschnittstellen finden, die über das Web erreichbar sind. Webmin, phpmyadmin, MySQL, Wordpress, Tomcat, jenkins usw usf.

Schlecht konfiguriert sind solche Dinge wie ein Schweizer Käse.

Woher ich das weiß:eigene Erfahrung

Mein Sohn hat noch zwei Festmeter Buchenstämme hinter dem Haus liegen, die müssten gehackt werden.

Wenn Du möchtest kannst Du Dich gern daran versuchen... Eine gute Axt würden wir Dir selbstverständlich zur Verfügung stellen.

Spaß bei Seite...

Ich verstehe nicht warum so viele gerade mit der Königsdisziplin im Bereich der Informatik beginnen möchten.

Es wäre doch viel einfacher einfach mal sich ein kleines Projekt wie eine einfache Webseite vorzunehmen.

Dazu braucht man weder große Vorkenntnisse noch aufwendige Programmierumgebungen.

Das Windowseigene Notepad genügt zum programmieren. Zum ausführen braucht man nur den Browser.

Eine gute Anleitung für JavaScript findest Du unter https://www.w3schools.com/js/default.asp

Ok...das ist nur Javascript, aber es sollte Dir erstmal ein Gefühl geben wie Variablen und Funktionen gehandhabt werden.

Das ist einfach und man braucht keine Extraprogramme.

Wenn Du erstmal reingeschnuppert hast, kannst du dir das Werkzeug für eine Programmiersprache deiner Wahl besorgen und richtig loslegen.

Bis du in fremde Netzwerke eindringen kannst, wird es jedoch noch einige Jahre dauern.... Für sowas muss man tausende Seiten Stoff lernen...


PeterP58  18.03.2019, 10:49

Beste Antwort - bin leider nicht Fragesteller :-)
Kleine Verbesserung (weil ich kann nicht ohne)... man muss nicht "tausende Seiten Stoff lernen" ... eher mehrere zehntausen Seiten!

PeterP58  18.03.2019, 11:10
@PeterP58

+d-n (dämliche tippfehler. tastatur wohl wieder vom ganzen hacken kaputt *grr)

Erzesel  18.03.2019, 11:12
@PeterP58

...und vor allem, wenn man eine Methode gefunden hat um irgendwo einzudringen, ist sie damit auch gleich wieder unwirksam 😤

Jeder bekannte Hack ist ein toter Hack😇

PeterP58  18.03.2019, 11:38
@Erzesel

... oder man gehört zu den guten und weist die Anbieter auf die "Sicherheitslücke" hin! Wenn es große Unternehmen sind, wird die nach 2 Jahren immerhin geschlossen. Bei Kleinunternehmen in 2 Stunden! *twink

PeterP58  12.12.2019, 20:12
@Guterfragerlol

Wurde vor ca. 20 Jahren mal in ein Großunternehmen bestellt, weil die schonwieder neue Rechner brauchten, weil die "alten" immer gehackt werden.

Da standen in dem sehr großen und hohem Haus über 600 Computer. Zu der Zeit sehr "teure" Computer.... Das Personal hatten wir ein paar Infos in die Hand gedrückt wegen "Wahl des Passwortes" usw. Hat sich aber keine dran gehalten!

Auf 136 Rechnern gab es wirklich da Passwort "123456" ^^+g und die anderen waren auch nicht kreativer. Also haben wir neue Passwört vergeben, ala: "55!HAstdU55?" :)

Konnte sich keiner merken und das Ergebnis war also, dass wir mal wieder gerufen wurden! Ergebnis:

Auf jedem Monitor klebte ein Zettel mit Username und Passwort für eben diesen Rechner.... *out_of_word

Erzesel  12.12.2019, 20:23
@PeterP58

🤣🤣🤣🤣🤣🤣🤣 kenne ich...

Selbst wenn der Zeltel nicht am Monitor klebt, so findet man ihn dort wo ihn niemand vermutet, im Töpfchen für Stifte und Büroklammern...

Du musst verstehen, wie ein Computer (Hardware + Netzwerktechnik) und die Programme (Software) funktionieren - "normale" Leute studieren so etwas, kann man sich aber selber beibringen - dauert halt!

Bei Letzteren wäre es hilfreich, wenn Du die fünf häufigsten Programmiersprachen beherrscht. Und dann kannst Du anfangen übers "hacken" nachzudenken!

Woher ich das weiß:eigene Erfahrung

Kurz und knapp, beschäftige dich mit Phyton, batch, vbs, c# und java.

Dann musst du schauen ob du nun ein Hacker oder ein Cracker werden willst. Wenn du dich entschieden hast, dann geht es weiter mit der jeweiligen richtung.