Wie man ein Computersystem hackt

Posted on
Autor: Laura McKinney
Erstelldatum: 4 April 2021
Aktualisierungsdatum: 15 Kann 2024
Anonim
Wie funktioniert HACKEN?
Video: Wie funktioniert HACKEN?

Inhalt

In diesem Artikel: Vorgehensweise vor dem StartEinführung in ein SystemZusammenfassung der Artikelreferenzen

In den "guten alten Zeiten" des Rechnens wurde Hacking eingesetzt, um Informationen über die im Internet verwendeten Systeme und Techniken zu erhalten. In jüngerer Zeit und aufgrund einiger weniger Straftäter hat der Begriff Hacking eine negativere Bedeutung erhalten. Andererseits nutzen heute viele Unternehmen ehemalige Hacker, um ihre eigenen Systeme zu testen und ihre Stärken und Schwächen zu entdecken. Diese ehemaligen Piraten sind inzwischen zu "Hackern" geworden, die die gesetzlichen Grenzen kennen und einhalten, die nicht überschritten werden dürfen, und aufgrund des Vertrauens, das sie in ihre Arbeitgeber setzen, können sie hohe Löhne verdienen. Wenn Sie bereit sind, in die Welt der Hacker einzutauchen und diese Kunst zu erlernen, nehmen Sie sich etwas Zeit, um sich über das Thema zu informieren.


Stufen

Teil 1 Was ist zu tun, bevor Sie beginnen?



  1. Lerne eine Programmiersprache. Sie müssen sich nicht auf eine bestimmte Sprache beschränken. Hier finden Sie einige Tipps dazu.
    • Die C-Sprache ist eine leistungsstarke Build-Sprache, mit der das UNIX-Betriebssystem generiert wurde. In dieser Sprache lernen Sie (in Verbindung mit der Assembler-Sprache) etwas Entscheidendes: die Funktionsweise des Arbeitsspeichers eines Computers.
    • Python- oder Ruby-Sprachen, leistungsstarke Interpreten auf hohem Niveau, die für die Automatisierung verschiedener Aufgaben verwendet werden können.
    • Perl-Sprache ist auch in diesem Bereich eine vernünftige Wahl. Das Erlernen der PHP-Sprache wird interessant sein, da sie in den meisten Datenbankanwendungen im Web verwendet wird.
    • Kenntnisse des BASH-Skripts sind ebenfalls unerlässlich, da Sie das Verhalten von UNIX / LINUX-Betriebssystemen auf einfache Weise ändern können. Diese Art der Programmierung besteht aus dem Schreiben von Skriptdateien, die die meiste Arbeit für Sie erledigen.
    • Sie müssen die Assembler-Sprache immer zur Hand haben. Dies ist die "niedrige" Sprache des Prozessors Ihres Computers. Es gibt mehrere Varianten (eine pro Mikroprozessorfamilie). Schließlich werden alle ausgeführten Programme in Assembler-Anweisungen übersetzt. Sie können ein Programm nie wirklich ändern, wenn Sie den Assembler nicht kennen.



  2. Kennen Sie genau Ihr Zielsystem. Das Abrufen von Informationen zu den Hardware- und Softwarekomponenten dieses Systems wird als "Aufzählung" bezeichnet. Je mehr Sie im Voraus über Ihr Ziel wissen, desto weniger Überraschungen werden Sie hinterher erleben.

Teil 2 Einführen in ein System



  1. Verwenden Sie ein Unix / Linux-Terminal, um Ihre Befehle einzugeben. Wenn Sie unter Windows arbeiten, hilft Cygwin Ihnen beim Emulieren eines Unix / Linux-Terminals. Das Nmap-Programm verwendet insbesondere WinPCap und benötigt CygWin nicht, um unter Windows ausgeführt zu werden. Sie sollten jedoch wissen, dass Nmap auf Windows-Systemen eher schlecht funktioniert, da einige fehlen Steckdosen grundlegend. Sie sollten auch Linux- oder BSD-Systeme verwenden, die mehr Sicherheit, Flexibilität und Zuverlässigkeit bieten. Viele sehr nützliche Tools sind auf den meisten Linux-Distributionen vorinstalliert.
    • Seit den letzten Aktualisierungen von Windows 10 Fall Creators finden Sie im Windows Store ein Linux-Terminal zum Emulieren von Linux-Befehlen über das Windows Linux-Subsystem.



  2. Sichern Sie Ihre Maschine an erster Stelle. Vergewissern Sie sich, dass Sie die Techniken verstehen, die häufig zum Schutz Ihrer Person angewendet werden. Beginnen Sie mit den Grundlagen: Haben Sie einen Server gefunden, auf dem sich eine Website befindet, die möglicherweise ungesunde oder illegale Aktivitäten anbietet? Versuchen Sie, es mit allen Mitteln zu hacken, die Ihnen zur Verfügung stehen. Verändern Sie es nicht, sondern nutzen Sie nur diese Seite.


  3. Testen Sie die Aktivität des Zielsystems. Können Sie das Remote-System erreichen? Solange Sie das Ping-Dienstprogramm (das in den meisten Betriebssystemen enthalten ist) verwenden können, um den Aktivitätsstatus des Ziels zu überprüfen, können Sie sich nicht immer auf die Ergebnisse verlassen, da der Betrieb auf dem ICMP-Protokoll beruht, das einfach sein kann von einigen paranoiden Systemadministratoren blockiert.


  4. Bestimmen Sie das verwendete Betriebssystem. Ein Scan der Eingangs- und Ausgangshäfen, der mit Hilfe der Dienstprogramme durchgeführt wird pOf oder nmap Sie erhalten einen Bericht über die offenen Ports, das verwendete Remote-Betriebssystem und können sogar über den Typ der verwendeten Firewall oder des verwendeten Routers informiert werden, damit Sie den Ablauf Ihrer Aktion planen können. mit nmap Sie können den Typ des verwendeten Remote-Betriebssystems erkennen, indem Sie den Schalter "-O" in Ihrer Befehlszeile setzen.


  5. Suchen Sie einen offenen Pfad oder Port im fernen System. Die herkömmlichsten Ports wie FTP (Port 21) oder HTTP (Port 80) sind häufig am besten geschützt und möglicherweise anfällig für noch nicht entdeckte Angriffsmittel.
    • Probieren Sie andere TCP- und UDP-Ports aus, die möglicherweise vergessen wurden, z. B. Telnet oder andere UDP-Ports, die für die LAN-Verwendung offen bleiben.
    • Ein offener Port 22 ist in der Regel ein Hinweis darauf, dass ein Secure Shell-Dienst (SSH) auf dem Ziel ausgeführt wird, der manchmal beschädigt werden kann.


  6. Knacken Sie das Passwort oder das Authentifizierungsverfahren. Es gibt verschiedene Möglichkeiten, ein Kennwort zu knacken, einschließlich des Erzwingens. Ein Passwort erzwingen heißt, jede mögliche Kombination, die in einem vordefinierten Wörterbuch einer Forcing-Software enthalten ist, auszuprobieren.
    • Benutzer werden häufig aufgefordert, ein komplexes Kennwort zu verwenden, damit ein möglicher Erzwingungsversuch so lange wie möglich dauert. Die Techniken zum Erzwingen von Software werden jedoch immer schneller und effizienter.
    • Die meisten Hashing-Algorithmen sind schwach, und es ist möglich, die Cracking-Geschwindigkeit durch Ausnutzen dieser Schwächen signifikant zu erhöhen (da der MD5-Berechnungsalgorithmus um 25% reduziert werden könnte, was zu einer erheblichen Beschleunigung führen würde). ).
    • Die neuesten Techniken verwenden den Grafikkartenprozessor als zusätzlichen Prozessor, wodurch das Erzwingen von Passwörtern erheblich beschleunigt wird.
    • Sie können versuchen, die Tabellen zu verwenden Regenbogen so schnell wie möglich zu knacken. Beachten Sie jedoch, dass das Knacken eines Kennworts nur gültig ist, wenn Sie den Hash kennen.
    • Versuchen Sie nicht alle möglichen Kennwörter, indem Sie sich beim Remote-Computer anmelden. Sie könnten Systemberichte kontaminieren, von Intrusion Detection-Systemen entdeckt werden, und es würde Jahre dauern, bis Sie dort ankommen.
    • Es ist möglich, ein gerootetes Tablet zu verwenden und einen TCP-Scanner zu installieren. Sie können sehen, dass das Kennwort auf Ihrem Proxy angezeigt wird, wenn die IP-Adresse geöffnet wird.
    • Es ist oft einfacher, einen anderen Weg zu finden, um in ein System einzudringen, als ein Passwort zu knacken.


  7. Holen Sie sich die Berechtigungsstufe von Super-User. Versuchen Sie, "root" -Rechte zu erhalten, wenn Sie auf einen Unix / Linux-Computer abzielen, oder Administratorrechte, wenn Sie sich auf einem Windows-System befinden.
    • Die meisten wichtigen Informationen sind geschützt und Sie benötigen ein gewisses Maß an Authentifizierung, um sie abzurufen. Um alle Dateien auf einem Computer anzuzeigen, benötigen Sie die Berechtigungsstufe "Super User", bei der es sich um ein Benutzerkonto handelt, das der Benutzerstufe "root" unter Linux- und BSD-Betriebssystemen entspricht.
    • Dies ist häufig das Standardkonto "admin" auf Routern (es sei denn, es wurde zuvor geändert). Auf Windows-Systemen ist dies das Konto "Administrator".
    • Der Zugriff auf eine Verbindung bedeutet nicht, dass Sie auf das gesamte System zugreifen können. Nur der Superuser, das Administratorkonto, in dem die Benutzerebene "root" je nach Betriebssystem auf das gesamte System zugreifen kann.


  8. Wende verschiedene Taktiken an. Um den Status eines Super-Users zu erhalten, müssen Sie häufig auf eine Taktik zurückgreifen, die einen "Pufferüberlauf" hervorruft, wodurch der Speicher geleert wird (Speicherauszug) und Sie die Möglichkeit haben, Daten zu injizieren Code oder führen Sie eine Aufgabe auf einer höheren Ebene als normalerweise zulässig aus.
    • Dies passiert in Unix-ähnlichen Systemen, wenn das "SetUid" -Bit des Buggy-Programms gesetzt ist und dieses Programm ausgeführt wird, als ob Sie ein anderer Benutzer wären (Super User). zum Beispiel).
    • Dies ist nur möglich, wenn Sie ein ungesichertes Programm schreiben oder finden, das auf dem Zielcomputer ausführbar ist.


  9. Erstellen Sie einen versteckten Zugang zur Hintertür. Es ist eine gute Idee, dass Sie sicherstellen müssen, dass Sie wieder auf dieses System zugreifen können, sobald Sie die Kontrolle über das System erlangt haben. Dies kann durch Modifizieren eines wichtigen Dienstes des Zielsystems, beispielsweise seines SSH-Servers, für diesen Zweck erfolgen. Beachten Sie jedoch, dass dieser Rückgabezugriff bei einem nächsten Upgrade des Zielsystems möglicherweise gelöscht wird. Ein wirklich erfahrener Hacker würde den Compiler (oder genauer eine seiner Bibliotheken) lieber so modifizieren, dass jedes Programm nach dem Upgrade zu einem potenziellen Backdoor-Zugriff im Zielsystem wird.


  10. Löschen Sie Ihre Spuren. Lassen Sie den Administrator nicht erkennen, dass sein System gestört wurde. Ändern Sie die Website nicht (wenn dies der Fall ist) und erstellen Sie nicht mehr Dateien als erforderlich. Fügen Sie dem System keine Benutzer hinzu. Handeln Sie so schnell wie möglich. Wenn Sie einen Server wie SSHD patchen müssen, stellen Sie sicher, dass Ihr Kennwort integriert ist. Wenn sich also jemand mit diesem Kennwort anmeldet, kann der Server darauf zugreifen, aber nicht zustellen. keine entscheidenden Informationen.