Vor dem Hacken Hacken
Du solltest dich nicht auf eine bestimmte Sprache beschränken, aber es gibt ein paar Hauptrichtungen.  C ist die Sprache in der Unix geschrieben wurde. Es lehrt dich (gemeinsam mit einigen Assemblern) etwas, was sehr wichtig beim Hacken ist: wie ein Speicher funktioniert. Python oder Ruby sind höhere Skriptsprachen, die dazu benutzt werden können verschiedene Arbeitsschritte zu automatisieren. Perl ist auch eine gute Wahl, genauso wie PHP, denn die meisten Web-Anwendungen sind in PHP geschrieben. Bash-Skripte sind ein Muss. Damit kann man Schreibskripte in Unix/Linux-Systemen manipulieren, was die Hauptarbeit ist. Assembler-Sprachen sind ein Muss. Das sind die grundlegenden Sprachen, die ein Prozessor versteht, von denen es ein paar Varianten gibt. Am Ende wird jedes Programm in Assembler übersetzt. Du kannst nicht wirklich alle Lücken in einem Programm ausnutzen, wenn du kein Assembler kannst. Der Prozess Informationen über dein Ziel zu sammeln, wird Enumeration genannt. Je mehr Informationen du im Vorfeld hast, desto weniger Überraschungen wirst du später erleben. Cygwin emuliert ein *nix für Windows-Benutzer. Nmap benutzt WinPCap auf Windows-Systemen und braucht kein Cygwin. Allerdings funktioniert Nmap schlecht auf Windows-Systemen, denn es gibt keine raw sockets. Du solltest dir überlegen Linux oder BSD zu benutzen, denn beide Systeme sind flexibler, zuverlässiger und sicherer. Die meisten Linux-Distributionen haben schon viele nützliche Tools vorinstalliert. Lerne alle üblichen Techniken um deinen Computer zu schützen. Fange mit den Grundlagen an: Hast du einen Server gefunden, der Webseiten mit illegalen oder möglicherweise schlechten Inhalten enthält? Versuche ihn auf jede Art und Weise zu hacken. Wechsle nicht die Seite, sondern gewinne die Koontrolle über sie. Kannst du das andere System erreichen? Du kannst zwar ping benutzen (was Teil der meisten Betriebssysteme ist) um zu sehen ob der Zielcomputer aktiv ist, aber du kannst den Ergebnissen nicht immer trauen — sie hängen vom ICMP-Protokoll ab, was leicht von paranoiden System-Administratoren abgeschaltet werden kann. Mache einen scan der Ports mit pOf oder nmap. Das gibt dir eine Liste der offenen Ports auf dem anderen Computer, das Betriebssystem, und es sagt dir sogar was für eine Firewall oder welche Router benutzt werden so dass du einen Plan für dein Vorgehen machen kannst. Du kannst die Betriebssystem-Erkennung in nmap mit -O aktivieren. Ports wie FTP (21) und HTTP (80) sind oft gut geschützt, und können möglicherweise nur durch Methoden ausgenutzt werden, die erst noch erfunden werden müssen.  Versuche es mit anderen TCP und UDP Ports, die eventuell vergessen wurden, wie zum Beispiel Telnet und verschiedene UDP Ports die für LAN-Spiele offen gelassen wurden. Ein offener Port 22 ist normalerweise ein Anzeichen dafür, dass ein SSH-Service auf dem Zielcomputer läuft, der manchmal mit brute force ausgenutzt werden kann. Es gibt verschiedene Methoden um ein Passwort zu hacken, unter anderem brute force. Ein brute force-Angriff auf ein Passwort ist der Versuch jedes mögliche Passwort aus einem Wörterbuch der brute force-Software auszuprobieren.  Du kannst auch ein gerootetes Tablet besorgen, einen TCP Scan installieren und ein Signal zum Upload der sicheren Seiten erhalten. Danach öffnet sich die IP Adresse und erstellt das Passwort für deinen Proxy. Anwender werden meistens aufgefordert sichere Passwörter zu verwenden, also kann ein brute force-Angriff viel Zeit brauchen. Allerdings gab es auch einige Verbesserungen in der brute force-Technik. Die meisten Hashing-Algorithmen sind schlecht, so dass du die Geschwindigkeit des Passwort-Hackens deutlich verbessern kannst indem du diese Schwächen ausnutzt (zum Beispiel kannst du den MD5-Algorithmus in vier Teie aufteilen, was ihn deutlich schneller macht). Neuere Techniken nutzen die Graphikkarte als weiteren Prozessor — und sie ist tausend mal schneller. Du kannst Rainbow Tables für das Passwort-Hacken benutzen. Passwort-Hacken ist nur eine gute Methode, wenn du den Hashwert des Passwortes schon kennst. Alle möglichen Passwörter zu probieren, wenn man sich auf einem anderen Computer einloggen will, ist keine gute Idee, denn es kann leicht entdeckt werden von Intrusion-Detection-Systemen, überschwemmt die system logs, und kann Jahre dauern. Oft ist es leichter einen anderen Weg in einen fremden Computer zu finden als das Passwort zu hacken. Versuche root-Rechte zu bekommen wenn dein Ziel ein *nix-Computer oder Administrator-Rechte, wenn es ein Windows-Computer ist.  Die meisten wichtigen Informationen auf einem Computer sind geschützt und Du brauchst bestimmte Rechte um sie nutzen zu können. Um alle Dateien lesen zu können, braucht man super-user-Rechte  - ein Benutzer, der die gleichen Rechte wie root auf Linux- und BSD-Systemen hat. Für Router ist das der admin-Benutzer (wenn es nicht zwischenzeitlich geändert wurde); für Windows ist das der Administrator. Zugang zu haben heißt noch lange nicht dass man alles benutzen kann. Nur ein super user, administrator oder root kann das. Oft kannst du super-user-Rechte bekommen, wenn du einen buffer overflow erzeugst, der dafür sorgt, dass Speicherinhalte überschrieben werden, und damit kannst du deinen eigenen Code ausführen lassen mit höheren Rechten als du eigentlich hättest.  In *nix-ähnlichen Systemen geschieht das, wenn die fehlerhafte Software das setuid bit gesetzt hat, denn damit kann das Programm von einem anderen Benutzer ausgeführt werden (super-user zum Beispiel). Du musst ein unsicheres Programm schreiben oder auf dem anderen Computer finden, das du dann auf dem anderen Computer ausführen kannst, damit du diese Techniken verwenden kannst. Sobald du die vollständige Kontrolle über einen Computer hast, ist es ratsam sicher zu stellen, dass du wieder Zugang erlangen kannst. Das kann mit dem backdooring eines wichtigen Systemservices, wie zum Beispiel dem SSH-Server, erreicht werden. Allerdings könnte deine Hintertür mit dem nächsten System-Upgrade wieder entfernt werden. Ein sehr erfahrener Hacker würde eine Hintertür in den Compiler einbauen, so dass jede kompilierte Software ein möglicher Eingang ist. Zeige dem Administrator nicht, dass das System verändert wurde. Verändere die Webseite nicht (wenn es sich um eine solche handelt), und erzeuge nicht mehr Dateien als unbedingt nötig. Lege keine neuen Benutzerkonten an. Handle so schnell wie möglich. Wenn du einen Server wie zum Beispiel SSHD verändert hast, sorge dafür, dass dein geheimes Passwort fest einprogrammiert ist. Wenn jemand versucht sich mit diesem Passwort einzuloggen, sollte der Server ihn lassen, aber er sollte keine wichtigen Informationen enthalten.
Lerne Programmiersprachen. Sei dir über dein Ziel bewusst. Benutze ein *nix-Terminal für die Kommandos. Sichere zuerst deinen Computer. Teste den Zielcomputer. Stelle fest welches Betriebssystem läuft. Finde einen offenen Port in dem anderen System. Hacke das Passwort oder den Anmeldeprozess. Verschaffe dir super-user-Rechte. Versuche verschiedene Tricks. Baue eine Hintertür ein. Verwisch deine Spuren.
https://www.wikihow.com/Hack https://www.wikihow.com/Hack
Preparing Before You Hack Hacking