Das beste Betriebssystem für einen Hacker. Rezension ungewöhnlicher Linux-Distributionen

Viele Leute halten es für ein „Hacker“-Betriebssystem. Hacker selbst werden, insbesondere unter jungen Leuten, mit Bewunderung betrachtet. Dies erklärt das Interesse junger Menschen an Kali Linux. Sie versuchen es zu installieren und auszuführen und haben viele „kindische“ Fragen. Diese Fragen müssen beantwortet werden, egal wie einfach, naiv oder falsch sie auch sein mögen. Für mich persönlich ist das Verhalten von „erfahrenen“ Leuten, die auf solche Fragen antworten mit „Warum brauchst du das?“, „Schon wieder Schulferien?“, „Sollte man für so dumme Fragen gesperrt werden?“ inakzeptabel? usw. Russische Fachforen sind voll von dieser Unhöflichkeit. Ich erlaube es mir selbst nicht und werde es auch anderen nicht erlauben, dies auf FreeForum.biz zu tun. Absolut jeder, egal wie großartig er inzwischen geworden ist, begann mit dem Studium der Grundlagen und begann mit „Kinder“-Fragen. Wer keine einfachen Fragen stellt, wird am Ende nie die Antworten erfahren.

Das Einrichten und Betreiben von Kali Linux wirft auch bei fortgeschrittenen Linux-Benutzern Fragen auf. Aber diese Fragen sind komplex oder kreativ. Und einerseits möchte ich allen Anfängern helfen (da ich selbst einer war), andererseits aber nicht auf ein völliges Kinderniveau abrutschen. Schließlich ist die Beantwortung banaler Fragen weder interessant noch Zeitverschwendung.

Deshalb habe ich für alle Hacker-Anfänger eine Liste mit dem vorbereitet, was Sie lernen müssen. Für jeden Punkt werde ich versuchen zu erklären, warum Sie ihn wissen müssen.

1. Grundlagen der Programmiersprachen

1.1 HTML

Tatsächlich ist HTML nicht einmal eine Programmiersprache, sondern eine Auszeichnungssprache, d. h. Grob gesagt wird es zum Formatieren von Text verwendet.

Wie kann es einem unerfahrenen Hacker helfen? Ich gebe Ihnen mein persönliches Beispiel. Einer der Internetanbieter, deren Dienste ich genutzt habe (ein lokaler Anbieter mit einem Heimatstadtnetz), hatte (vielleicht immer noch – ich weiß nicht, ich habe diesen Anbieter schon vor langer Zeit verlassen) eine eigene Website und eigene Dienste für Benutzer. In den frühen 2000er Jahren war dies relevant – der Internetverkehr (extern) wurde bezahlt, also versuchte jeder, lokale Ressourcen zu nutzen. Diese Ressourcen erfreuten sich sicherlich großer Beliebtheit. Eines der beliebtesten Programme ist die Dateifreigabe. Aufgrund des ständigen Missbrauchs durch Benutzer (z. B. Klassenkameradin Mascha, die sich mit Photoshop „ausgezogen“ hat) hat der Inhaber des Dateihosting-Dienstes ein obligatorisches Passwort eingegeben. Dieses Passwort wurde automatisch generiert und konnte nicht in einem Dateikommentar enthalten sein. Die Analyse des Formulars zum Senden einer Datei und einige Experimente damit ergaben, dass das Passwort in einem der versteckten Felder des Formulars enthalten ist, das natürlich bearbeitet werden kann. Dieses Passwort wurde auf dem Server nicht mehr überprüft. Indem wir das Formular zum Herunterladen einer Datei auf Ihrem Computer gespeichert und leicht bearbeitet haben, ist es uns gelungen, sicherzustellen, dass Dateien ohne Passwort erneut heruntergeladen werden können. Dieses Formular kann von jedem Kunden des Anbieters verwendet werden. Später „schloss“ der Anbieter die Lücke und begann mit der Suche nach einem Passwort. Mit denselben einfachen Manipulationen konnte jedoch sichergestellt werden, dass Dateien immer mit einem „Standard“-Passwort („0000“, wie es scheint) geladen wurden, und dass dieses Passwort in einen Kommentar zur Datei geschrieben werden konnte.

Wer zumindest mit den Grundlagen von HTML vertraut ist, versteht vollkommen, wovon ich spreche. Für andere ist es nur ein chinesischer Buchstabe.

Ein weiteres frisches Beispiel. Erst neulich (11. Februar 2015) wurde eine Lücke im WordPress-Theme entdeckt, die es ermöglicht, abgeleitete Dateien auf den Server hochzuladen. Beschreibung dieses Themas. Die in diesem Theme anfällige Datei ist admin/upload-file.php. Ich habe diesen Thread durchsucht und diese Datei gefunden. Die Datei ist sehr kurz, daher gebe ich sie vollständig wieder:

Diese Datei ist in PHP, aber um diese Sicherheitslücke auszunutzen, müssen Sie das Dateiübermittlungsformular in HTML erstellen.

Sie müssen also HTML beherrschen, um: a) nach Schwachstellen zu suchen; b) Schwachstellen ausnutzen. Es gibt auch fortgeschrittenere Aufgaben, die HTML-Kenntnisse erfordern, aber hören wir hier auf.

1,2 PHP

Oben habe ich den Inhalt einer kleinen, in PHP geschriebenen Datei angegeben. Diese Datei enthält einen solchen Fehler, dass es keine Rolle mehr spielt, wie gut der Server konfiguriert ist, ob eine Datei-Firewall vorhanden ist usw. Wenn jemand dieses Theme verwendet, dann steht die Website dieser Person unter unserer vollständigen Kontrolle (und wenn der Server/das Hosting schief konfiguriert ist, dann steht der gesamte Computer unter unserer Kontrolle). Aber um das zu verstehen, müssen Sie zumindest ein wenig PHP kennen.

Um vorgefertigte Exploits zu verwenden, die jemand anderes geschrieben hat, müssen Sie wiederum zumindest die Grundlagen von PHP kennen, um zu wissen, wo die Site-Adresse und andere Variablen geschrieben werden müssen und wie dieses Skript im Allgemeinen ausgeführt wird.

1.3 MySQL

Normalerweise liegen die interessantesten Dinge in Datenbanken. Um zu verstehen, wie man MySQL-Injection verwendet, müssen Sie wissen, was MySQL-Injection ist. Um das Wesentliche der MySQL-Injection zu verstehen, müssen Sie wissen, was MySQL-Abfragen sind, wie die Syntax dieser Abfragen lautet, wie die Datenbankstruktur ist, wie Daten gespeichert werden, welche Tabellen es gibt usw.

Im Allgemeinen sind die ersten drei Punkte sowie Ideen zu Website-Geräten am einfachsten zu verstehen, wenn Sie lernen, Websites nicht zu „hacken“, sondern sie zu erstellen. Studieren Sie mit dem Ziel, etwas Positives zu tun. Darin liegt ein Paradox, denn um zu lernen, wie man Webanwendungen gut schützt, muss man auch lernen, wie man sie hackt! Nur wer Webtechnologien mit den Augen eines Hackers betrachten kann, kann wertvolle Erfahrungen sammeln. Dasselbe gilt auch für Websites – das bloße Erlernen der Funktionen und Grundlagen der Sprache nützt wenig. Sie müssen Webentwickler werden, um die Besonderheiten einer Website zu verstehen.

1.4 JavaScript, JQuery

Zumindest müssen Sie wissen, dass Websites von JavaScript gesteuert werden. Auf einigen Websites, auf denen Sie Inhalte nicht auswählen (und/oder kopieren) können, ist es sogar nicht möglich, eine Datei herunterzuladen, oder Sie müssen lediglich JavaScript deaktivieren, um dies alles zu ermöglichen.

Nun, um JavaScript zu deaktivieren, müssen Sie wissen: a) in welchen Situationen der Betrieb (Schutz) der Website davon abhängt; b) wie JavaScript angebunden ist und auf welche Weise Skripte blockiert werden können.

Sie können eine Menge Beispiele für erfolglosen Formularschutz mit JavaScript nennen (ich erinnere mich an ein Formular auf der Website des FSB der Russischen Föderation – um es einzureichen, müssen Sie einhunderthundert Felder ausfüllen (Reisepass, Registrierung usw.). ), aber mit den einfachsten Manipulationen kann diese „Einschränkung“ umgangen werden (das ist lange her, es ist durchaus möglich, dass sie das Feedback-Formular korrigiert haben)).

2. Grundlagen von Netzwerken, Webservern und Websites

2.1 Netzwerkdesign

Sie müssen unbedingt über die Struktur von Netzwerken Bescheid wissen: Was ist eine IP-Adresse? Sie können damit einen Internetnutzer identifizieren, wie Sie Ihre IP verbergen, was ein Proxy ist, was TOR ist, was eine Domain ist, Ports usw .

Sie müssen das oben Gesagte zunächst wissen, um zumindest grundlegende Computertexte und -anweisungen zu verstehen. Und auch die Tatsache zu erkennen, dass Anonymität im Internet eine vergängliche Sache ist.

Erweiterte Kenntnisse im Aufbau von Netzwerken helfen Ihnen in Zukunft dabei, effektive Scans mit speziellen Programmen durchzuführen.

2.2 Den Aufbau und Betrieb eines Webservers verstehen

Wie in den vorherigen Absätzen beginne ich mit einem einfachen Beispiel (übrigens sehr aktuell). Beim Besuch eines der Server wurde festgestellt, dass die Servereinstellungen es ermöglichen, den Inhalt von Verzeichnissen anzuzeigen (Dateiliste). phpMyAdmin wurde auf dem Server gefunden, aber die Standardpasswörter stimmten nicht damit überein. Beim Durchsuchen der Verzeichnisse auf der Suche nach anfälligen Skripten (es gibt selbst geschriebene Skripte zur Verarbeitung von Krankenhausakten und zur Verteilung von „Nummern“) wurde eine Textdatei (!) gefunden, die eine Zeile mit zwei durch Komma getrennten Wörtern enthielt. Wie sich herausstellte, war dies der Benutzername und das Passwort für phpMyAdmin. Die Datenbank gehört, wie man sagt, aufgrund der klinischen Dummheit des Entwicklers uns, aber um Ihre Datei auf den Server zu schreiben, brauchten Sie Kenntnisse über diesen Server. Beispielsweise müssen Sie den absoluten Pfad kennen, in dem die Aufnahme erfolgen soll. Um den absoluten Pfad zu kennen, müssen Sie zumindest die Verzeichnisstruktur des Apache-Servers kennen.

CREATE TABLE `shell` (`script` TEXT NOT NULL) COMMENT = "table for include"; INSERT INTO `shell` (`script`) VALUES (""); SELECT script FROM `shell` INTO OUTFILE "C://Apache24/htdocs/shell.php"; DROP TABLE `shell`;

Was ich mit diesem Beispiel sagen möchte, ist nicht, dass Sie die Apache-Struktur lernen müssen. Ich möchte sagen, dass Sie ohne Kenntnis der Funktionsweise und der allgemeinen Funktionsprinzipien eines Webservers ständig auf die Unfähigkeit stoßen werden, eine Schwachstelle vollständig zu „fördern“, selbst wenn sie bereits gefunden wurde.

Erinnern Sie sich, was ich über Programmiersprachen und das Verständnis der Funktionsweise von Websites gesagt habe? Um die ganze Tiefe zu verstehen, müssen Sie selbst Webentwickler werden. Um einen Webserver zu verstehen, müssen Sie Bücher lesen, die sich nicht mit dem Hacken eines Webservers befassen, sondern mit dessen Wartung. Diese. Sie müssen selbst Systemadministrator werden, und das Bewusstsein für Schwachstellen, in welche Richtungen Sie „graben“ müssen, wenn Sie versuchen, in einen Webserver einzudringen, wird sich von selbst einstellen.

2.3 Das Design und den Betrieb von Websites verstehen

Im Allgemeinen wird viel klar, wenn man Programmiersprachen für Webanwendungen studiert.

Um sich weiterhin mit der Gestaltung von Websites vertraut zu machen, ist es ratsam, Erfahrung im Umgang mit gängigen Content-Management-Systemen, gängigen Engines und Skripten zu haben. Erfahren Sie, wie Plugins und Themes funktionieren, wo sie sich befinden, welche Dateien von Interesse sein könnten usw.

Zum Beispiel ein sehr einfaches Wissen, dass Sie zum Hinzufügen eines Bildes zu einer Site, die sich zwei Verzeichnisse höher in Bezug auf die .htm-Datei befindet, die Konstruktion ./../../ verwenden können, d. h. Zum Beispiel

Diese scheinbar banalen Informationen ermöglichten es uns, einen sehr einfachen, aber erstaunlich effektiven „Hack“ zu erstellen.

If ($handle = opendir("./../../../../../../../../..")) ( while (false !== ($entry = readdir($handle))) ( if ($entry != "." && $entry != "..") ( echo "$entry
"; ) ) geschlossenir($handle); )

Als ich das selbst entdeckte, nutzte ich noch kostenloses Hosting (der Domainname des Unternehmens war holm.ru oder holms.ru – sie verteilten auch Third-Level-Domains wie *.h7.ru, *.h10.ru, also die Nummern). es gibt sequenzielle Änderungen, wenn die Server voll sind).

Ich habe diese wenigen Zeilen angewendet, die ich oben angegeben habe, und es stellte sich heraus, dass ich über die Grenzen des mir zugewiesenen Ordners hinausgehen konnte. Ein leicht verbessertes Skript ermöglichte es mir, nicht nur das Stammverzeichnis des Servers anzuzeigen, sondern auch in die Ordner, die ich sah, zu gehen und Dateien zum Anzeigen zu öffnen. Das Ergebnis war erstaunlich! Ich habe viel über die Websites anderer Leute gelernt. Die wichtigste Entdeckung ist, dass das Verhältnis von „normalen“ zu „abnormalen“ Websites (betrügerisch, bedeutungslos, einfach nur leer) nicht zugunsten der „normalen“ ist. Ich bin auf „Dating-Seiten“ gestoßen (manchmal stoße ich immer noch darauf), deren „Cover“ sehr schön ist – die Hauptseite, mit netten Leuten, die anscheinend bereits Nutzer der Seite sind. Und wenn Sie mit ihnen kommunizieren möchten, müssen Sie sich registrieren und dort etwas eingeben oder bezahlen. Tatsächlich gibt es auf der Website jedoch nichts anderes als diese zehn Fotos. Das ist mittlerweile jedem klar, aber einmal habe ich Internetbetrug genau auf diese Weise untersucht.

Aber das Erstaunlichste, was ich entdeckte, waren Websites, deren Domainnamen das Wort „Mail“ enthielten. „Äußerlich“ bestanden diese Seiten aus einer einzigen Seite, die völlig identisch mit der Anmeldeseite von mail.ru war. Aber darin befanden sich mehrere Dateien, von denen sich fast immer herausstellte, dass es sich bei einer davon um eine Sammlung von Login-Passwort-Paaren handelte. Diese. Jemand lockte unter verschiedenen Vorwänden (z. B. Blick auf eine Postkarte) Benutzer auf diese Seite, ahnungslose Benutzer gaben ihre Daten ein und schon landete sie beim Hacker.

Es gab viele kompromittierte Konten (ich habe mehr als hundert von allen Websites gesammelt). In etwa der Hälfte der Fälle funktionierte das Passwort nicht (der Benutzer konnte es ändern) oder das Postfach war völlig leer (der Benutzer vermutete etwas und löschte alle Buchstaben). Aber wenn ich mich an die zweite Hälfte erinnere, quält mich immer noch eine Vermutung: Wenn die Leute denken, dass niemand es herausfinden wird, sind sie dann wirklich so verdammt komisch oder habe ich einfach nur Glück mit der Auswahl? Von den interessanten Kisten enthielten viele auf die eine oder andere Weise Korrespondenz über den Austausch intimer Fotos, Gespräche „unter der Gürtellinie“, und das Thema Minderjährige wurde in einem wesentlichen Teil angesprochen. Ich erinnere mich noch an ein Foto eines Mannes in einem Frauenoutfit (Strümpfe und das ganze Set), der es an eine Frau schickte, die sich für Frauen interessierte (der Mann überzeugte ihn davon, dass er eine Frau war), damit sie es ihr schickte. Nacktfotos im Gegenzug. Welchen Aufwand würden Sie auf sich nehmen, um ein Foto einer nackten Frau zu sehen? 🙂

Es ist durchaus möglich, dass es sich dabei um eine Art Ermittlungsmaßnahme handelte, um heimlich Informationen von Personen zu erhalten, auf die Strafverfolgungsbeamte aufmerksam wurden. Ich weigere mich immer noch zu glauben, dass die meisten Menschen (oder zumindest eine bedeutende Masse) so sind.

Es ist schwer, Viktor Pelevin zu widersprechen

Es ist nur so, dass der Assembler der Seele eines anderen bei näherer Betrachtung selten attraktiv aussieht.

3. Grundlagen des Linux-Betriebssystems

Je mehr Sie über Linux wissen, desto besser. Schon allein deshalb, weil eine Vielzahl von Webservern im Internet Linux als Betriebssystem verwenden.

Ich habe meinen Fall darüber geschildert, dass ich über das mir auf dem Hosting zugewiesene Verzeichnis hinausgegangen bin. Bei einem anderen Hoster gelang es mir, in das Stammverzeichnis des Dateisystems zu gelangen (die Seiten erwiesen sich jedoch als unzugänglich, da die Rechte an den Ordnern korrekt eingetragen waren). Und stellen Sie sich die Situation vor: Ich hetze durch die Serverordner, weil ich schnell etwas Wertvolles ergattern muss, die Passwörter sind unterschiedlich usw. Wo hat Linux alles? In welche Verzeichnisse soll ich gehen und welche Dateien soll ich herunterladen? Das war mir völlig unbekannt Linux und die wichtigste Schlussfolgerung, die ich nach diesem Vorfall für mich gezogen habe, ist, dass man Linux verstehen muss, sonst gibt es keinen anderen Weg.

Viele Programme zur Netzwerk- und Website-Penetrationsanalyse laufen unter Linux. Sie müssen wissen, wie man es installiert und ausführt (wenn es sich um ein Konsolenprogramm handelt).

Im Allgemeinen wissen Benutzer in einem ungewöhnlichen Betriebssystem manchmal nicht, wie sie eine Datei kopieren, öffnen, ein neues Programm installieren, „wo sich Laufwerk D befindet“ usw. Lernen Sie im Allgemeinen Linux in seinen verschiedenen Aspekten.

Und beginnen Sie Ihr Studium nicht mit Kali Linux, sondern beispielsweise mit Linux Mint.

Kali Linux ist für Anfänger nicht sehr geeignet. Sogar das benutzerfreundliche Linux Mint kann bei normaler Verwendung Probleme haben. Was können wir über Kali Linux sagen? Alle in Kali Linux verfügbaren Programme können auch auf anderen Linux-Versionen einwandfrei funktionieren. Ich würde Folgendes empfehlen: Verwenden Sie Linux Mint als Hauptbetriebssystem und nachdem Sie neue Programme kennengelernt haben, installieren Sie sie in Linux Mint oder verwenden Sie Kali Linux als virtuelle Maschine (zweites Betriebssystem).

Letzte Worte

Ich habe mehrere Beispiele aus meinen Experimenten zur Umgehung von Beschränkungen und zur Durchdringung aufgeführt. Wie viele davon habe ich mit Kali Linux verwendet? Keiner. Ich erinnere mich noch gut an meine erste Bekanntschaft mit dem Vorgänger von Kali Linux – ich habe es auf einem virtuellen Computer installiert, mir das Menü angeschaut (es gibt unverständliche englische Namen), versucht, einige Programme zu starten (die Befehlszeile öffnete sich fast immer), und das wurde mir klar Hier war überhaupt nichts klar, alles geschlossen und gelöscht.

Lernen Sie Programmiersprachen (PHP, MySQL, HTML), neue Technologien, Linux, Serverdesign und -betrieb. Versuchen Sie, kreativ zu denken (wie man eine Website erstellt, wie man einen Server wartet, wie man effektiv unter Linux arbeitet), und ein Verständnis für die zugrunde liegenden Prozesse wird sich von selbst einstellen. Und genau das (Wissen und Verständnis der laufenden Prozesse) ist der größte Reichtum eines Hackers. Sie müssen sich nicht auf Kali Linux beschränken. Kali Linux zu lernen, ohne zu wissen, was ich oben aufgelistet habe, ist wie ein Haus ohne Fundament zu bauen.

Viele Menschen interessieren sich für die Frage, welches Betriebssystem sich besser zum Hacken eignet. Zunächst möchte ich sagen, dass fast jeder Fachmann und Experte dies verwendet Linux oder Unix. Obwohl einige Operationen von unten durchgeführt werden können Windows Und Mac OS, fast alle Werkzeuge sind speziell dafür konzipiert Linux.

Es gibt jedoch einige Ausnahmen, wie z. B. Programme Kain und Abel, Havij,Zenmap Und Metasploit, die entwickelt wurden oder auf die übertragbar sind Windows.

Bewerbungen für Linux, die unter entwickelt wurden Linux und dann auf Windows portiert werden, können einige Funktionen verloren gehen. Darüber hinaus sind einige Optionen integriert Linux, nicht verfügbar in Windows. Aus diesem Grund sind Hacker-Tools in den meisten Fällen NUR für diesen Zweck konzipiert Linux.

Um ein hochqualifizierter Hacker zu werden, müssen Sie im Allgemeinen einige Fähigkeiten beherrschen Linux, und arbeiten auch mit Distributionen wie BackTrack oder Kali.

Für diejenigen, die es noch nie benutzt haben Linux, gewidmet Dies ist eine Sammlung von Grundlagen Linux mit Schwerpunkt auf den Fähigkeiten, die zum Hacken erforderlich sind. Du musst also laufen BackTrack oder andere Verbreitung Linux.

Schritt 1: Starten Sie Linux

Nach dem Start BackTrack und melden Sie sich als Benutzer an „ Wurzel", geben Sie den Befehl ein:

Bt>startx

Der Bildschirm sollte in etwa so aussehen.

Schritt 2: Öffnen eines Terminals

Experte werden in Linux, müssen Sie lernen, wie man das Terminal benutzt. In verschiedenen Distributionen Linux Viele Dinge können einfach durch Zeigen und Klicken erledigt werden, genau wie in Windows oder Mac OS, aber ein professioneller Hacker muss wissen, wie man ein Terminal verwendet, um die meisten Tools auszuführen.

Sie können das Terminal also öffnen, indem Sie auf das entsprechende Symbol im unteren Bereich klicken. Auf dem Bildschirm sollte ein ähnliches Bild erscheinen.

Terminal rein Linuxähnlich der Befehlszeile in Windows, aber es ist viel leistungsfähiger. Im Gegensatz zur Befehlszeile im Terminal mit Linux Sie können ALLES tun und das System genauer steuern als in Windows.

Es ist wichtig, sich daran zu erinnern Linux Die Groß-/Kleinschreibung ist wichtig. Das heißt, der Befehl „ Desktop" unterscheidet sich von " Desktop", was nicht dasselbe ist wie" Schreibtisch" Für einige Neulinge Linux Das ist eine Herausforderung und erfordert Auswendiglernen.

Schritt 3: Machen Sie sich mit der Verzeichnisstruktur vertraut

Kommen wir zu den Grundlagen der Arbeit Linux. Viele Anfänger sind verwirrt über die Struktur des Dateisystems Linux. Unter Linux ist das Dateisystem im Gegensatz zu Windows nicht an den physischen Speicher auf der Festplatte gebunden, es gibt also keine Systemfestplatte C:\, als Root des Betriebssystems Linux, aber da ist / .

Das Schrägstrichzeichen ( / ) repräsentiert die Wurzel ( Wurzel) oder an der Spitze der Dateisystemhierarchie. Alle anderen Verzeichnisse (Ordner) liegen tiefer in der Struktur, wie Ordner und Unterordner auf einer Festplatte C:\.

Um das Dateisystem zu visualisieren, sehen Sie sich das Diagramm unten an.

Es ist wichtig, ein grundlegendes Verständnis der Dateistruktur zu haben, da Sie zum Navigieren im Dateisystem oft das Terminal verwenden müssen, ohne ein Tool wie dieses zu benötigen Windows Explorer.

In dieser grafischen Darstellung sind mehrere wichtige Punkte zu beachten.

Katalog /Behälter– Dies ist der Speicherort, an dem sich die Binärdateien befinden. Programme, die es ermöglichen Linux arbeiten.

/usw– Dies ist der Ordner, in dem Konfigurationsdateien gespeichert werden. IN Linux Fast alles wird mithilfe von Textkonfigurationsdateien konfiguriert, die sich in befinden /usw.

Im Katalog /dev Gerätedateien, die den Treibern ähneln, werden darin abgelegt Windows.

/var– Dies ist der Ort, an dem Protokolldateien und andere Dateien gespeichert werden.

Schritt 4: Verwenden des pwd-Befehls

Terminal rein BackTrack wird standardmäßig im Verzeichnis des Benutzers geöffnet heim. Wie in der obigen Grafik dargestellt, befindet sich dies in der Hierarchie eine Stufe unterhalb des Stammverzeichnisses Wurzel. Sie können überprüfen, in welchem ​​Verzeichnis sich der Benutzer befindet, indem Sie den folgenden Befehl eingeben:

Bt > pwd

Team pwd abgeleitet von " aktuelles Arbeitsverzeichnis" (Englisch: „das Arbeitsverzeichnis darstellen“) und gibt den Wert zurück /Wurzel, was bedeutet, dass der Benutzer angemeldet ist sein das Stammverzeichnis (nicht zu verwechseln mit dem Anfang der Systemdateistruktur).

Team pwd Es ist besser, sich das zu merken, denn so können Sie immer herausfinden, wo sich der Benutzer im Verzeichnissystem befindet.

Schritt 5: Verwenden des cd-Befehls

Sie können das Verzeichnis mit dem Befehl ändern CD(aus dem Englischen „change Directory“, „Verzeichnis ändern“). Um in diesem Fall in der Ordnerstruktur „nach oben“ zu gelangen, müssen Sie Folgendes eingeben:

Bt > cd ..

Team CD gefolgt von zwei Punkten ( .. ) sagt: „Eine Ebene nach oben in der Ordnerstruktur verschieben.“ Beachten Sie, dass sich die Befehlszeile bei der Eingabe geändert hat pwd, Linux antwortet, dass sich der aktuelle Benutzer in „ / "oder oben im Verzeichnissystem (im Stammverzeichnis des Systems).

Bt > pwd

Schritt 6: Verwenden des Befehls whoami

Im letzten Schritt dieses Tutorialbeitrags wird der Befehl verwendet Wer bin ich. Das Ergebnis dieses Befehls ist die Ausgabe des Benutzernamens, der im System angemeldet ist. Da die Anmeldung hier durch den Root-Benutzer erfolgt, können Sie sich bei jedem Benutzerkonto anmelden und der Name dieses Benutzers wird im Terminal angezeigt.

Bt > whoami

Das ist alles für den Moment. IN die folgenden Ausbildungsstellen beschreibt die Grundlagen der Arbeit in Linux, die Sie benötigen, um ein professioneller Hacker zu werden.

Ablehnung der Verantwortung: Dieser Artikel dient nur zu Bildungszwecken. Der Autor oder Herausgeber hat diesen Artikel nicht für böswillige Zwecke veröffentlicht. Wenn Leser die Informationen zum persönlichen Vorteil nutzen möchten, haften der Autor und der Herausgeber nicht für etwaige Schäden oder Schäden.

Es gibt mehrere beliebte Sicherheitsdistributionen, die die meisten gängigen Dienstprogramme und Anwendungen für Penetrationstests enthalten. Sie basieren in der Regel auf bestehenden Linux-Distributionen und sind überarbeitete Versionen davon. In diesem Artikel werden die berühmtesten davon vorgestellt.

Kali Linux

Die beliebteste Distribution heute. Es ist der Nachfolger von Backtrack Linux.
Kali Linux ist ein unglaublich leistungsstarkes Penetrationstest-Tool, das über 600 Sicherheitsdienstprogramme wie Wireshark, Nmap, Armitage, Aircrack, Burp Suite usw. enthält.

Es gibt verschiedene Arten dieser Distribution für verschiedene Plattformen, wie ARM, Virtualisierungssysteme, Instanzen zur Durchführung von Angriffen von mobilen Plattformen – Kali Nethunter.

Die Distribution ist derzeit als Rolling Release implementiert, was sicherstellt, dass Sie immer über die neuesten Versionen der besten Penetrationstest-Tools und -Dienstprogramme verfügen.

BlackArch

BlackArch Linux wurde speziell für Pentester und Sicherheitsexperten entwickelt. Es unterstützt i686- und x86_64-Architekturen. Das Installationskit umfasst derzeit 1.359 Penetrationstest-Dienstprogramme und ihre Zahl wächst ständig. Basierend auf Arch Linux.

Die Anzahl der Dienstprogramme ist zwar ziemlich beeindruckend, aber einige von ihnen haben ähnliche Funktionen und es kann für einen Anfänger ziemlich schwierig sein, so viele Programme zu verstehen.

Parrot Security-Betriebssystem

Eine zunehmend beliebte Sicherheitsdistribution basierend auf Debian-Linux. Ziemlich einfach zu erlernen, sowohl für Anfänger als auch für Profis geeignet. Diese Distribution richtet sich sowohl an Penetrationstests als auch an anonymes Arbeiten im Internet.

Viele Sicherheitsexperten halten es für ein relativ leichtes und effektives Tool und einen Ersatz für das zunehmend leistungshungrige Kali, insbesondere da Parrot Kali-Repositories für Updates verwendet.

Hintere Box

BackBox ist eine leichtgewichtige Distribution, die auf Ubuntu basiert. Im direkten Vergleich mit Kali wird es in vielen Punkten verlieren. Es ist nicht so eine große Auswahl an Tools, Dienstprogrammen und Frameworks verfügbar, die sofort einsatzbereit sind. Es gibt keine Kernel-Optimierungen oder andere Optimierungen.

Die leichte Shell von XFCE macht BackBox Linux besser für den täglichen Gebrauch als Arbeitstier auf Ihrem PC geeignet. Es gibt einen Modus – den anonymen Modus – der gesamte Systemverkehr wird über den TOR-Proxy geleitet. Das Startskript ändert die MAC-Adresse und den Hostnamen des Systems. Wenn der Modus deaktiviert wird, werden alle temporären Dateien mithilfe des integrierten BleachBit-Pakets gelöscht.

Backbox Linux kann eine großartige Alternative zu Kali Linux für diejenigen sein, die ein Gleichgewicht zwischen Funktionalität und Benutzerfreundlichkeit im Alltag suchen.

Pentoo Linux

Pentoo ist eine Sicherheitsdistribution, die auf der beliebten Gentoo-Linux-Distribution basiert, von der die Pentoo-Entwickler Fans sind. Enthält viele Sicherheitsdienstprogramme.

Eines der Features ist die native Unterstützung für Hardened Gentoo – mehrere Änderungen am Compiler und Kernel, die die allgemeine Sicherheit des Systems gegen Hackerangriffe erhöhen.

Netzwerksicherheits-Toolkit

Network Security Toolkit ist eine von vielen Linux-Distributionen im Live-CD-Stil, die auf die Analyse der Netzwerksicherheit abzielen. NST ermöglicht Administratoren einfachen Zugriff auf eine Vielzahl offener Netzwerkanwendungen, von denen viele zu den 100 besten Sicherheitstools gehören, die von insecure.org empfohlen werden. Basierend auf Fedora Linux.

Mit einem ausgewogenen Satz an Netzwerküberwachungs-, Analyse- und Sicherheitstools kann es dem Netzwerkadministrator klare Vorteile bei der Kontrolle der Sicherheit der ihm anvertrauten Infrastruktur bieten.

DEFT Linux

Diese Distribution wurde auf der Lubuntu-Plattform entwickelt und verfügt über eine benutzerfreundliche grafische Oberfläche. Darüber hinaus wurde dem Produkt eine Reihe spezialisierter Dienstprogramme hinzugefügt, angefangen bei Antivirenprogrammen, Systemen zum Durchsuchen von Informationen im Browser-Cache, Netzwerkscannern und Dienstprogrammen zum Identifizieren von Rootkits bis hin zu Tools, die zum Suchen nach auf der Festplatte versteckten Daten erforderlich sind.

Der Hauptzweck besteht darin, forensische Aktivitäten durchzuführen – die Folgen des Hackens von Computersystemen zu analysieren, verlorene und kompromittierte Daten zu identifizieren sowie sogenannte. Digitale Beweise für Cyberkriminalität.

Samurai Web Security Framework

Der Hauptzweck dieser Distribution ist das Penetrationstesten verschiedener Webanwendungen.

Wird als Image einer virtuellen Maschine geliefert und enthält die beliebtesten Open-Source-Dienstprogramme zum Sammeln von Informationen und zum Ausführen verschiedener Angriffe auf Webanwendungen.

Pentest-Box

PentestBox ist nicht wie andere Sicherheitsdistributionen, die auf virtuellen Maschinen laufen. Es wäre nicht ganz richtig, diese Assembly als Distribution zu bezeichnen; es handelt sich vielmehr um eine Reihe von *nix-ähnlichen Dienstprogrammen, die in einer Windows-Umgebung ausgeführt werden.

Es verfügt über eine eigene Shell, die Schnittstelle ist in Form einer Befehlszeile ausgeführt und enthält eine große Anzahl von Dienstprogrammen, deren Liste unabhängig ergänzt/angepasst werden kann.

Wenn Sie ein Windows-Benutzer sind und Angst vor der Installation virtueller Maschinen oder Linux haben, können Sie versuchen, mit dieser Shell zu arbeiten.

Santoku-Linux

Die Distribution basiert auf Ubuntu Linux. Wird nur als X64-Plattform präsentiert.

Diese Baugruppe ist für die Analyse mobiler Geräte und Anwendungen gedacht – für die Durchführung von Sicherheitsanalysen, Datenextraktion, Reverse Engineering und Forensik – und enthält auch Entwicklungstools.

WifiSlax

Hierbei handelt es sich um eine spezialisierte Distribution mit einer Auswahl an Tools zur Überprüfung der Sicherheit von WiFi-Netzwerksystemen und zur Durchführung forensischer Analysen. Die Distribution basiert auf Slackware Linux.

Derzeit ist dies eines der am häufigsten verwendeten Tools zur Prüfung von WLAN-Netzwerken, es enthält die meisten gängigen Dienstprogramme zur Analyse der Sicherheit drahtloser Netzwerke und unterstützt die meisten Hersteller von Netzwerkkarten.

In diesem Teil möchte ich über die Wahl der Hardware und des Betriebssystems für einen Hacker sprechen. Was das Betriebssystem betrifft, werde ich über die Wahl zwischen Linux und Windows sprechen, nicht über Linux-Distributionen. Was die Hardware angeht, bin ich kein großer Hardware-Spezialist, ich möchte Ihnen lediglich einige Beobachtungen mitteilen, die auf der Grundlage der Praxis entstanden sind.

Computer für einen Hacker

Beginnen wir mit der guten Nachricht: Für Penetrationstests und Hacking eignet sich jeder durchschnittliche Computer. Wenn Sie sich entscheiden, einem neuen Hobby nachzugehen oder Computersicherheit zu erlernen (sehr nützlich für Programmierer von Webanwendungen und alle anderen, die nicht Opfer von Hackern werden möchten), müssen Sie nicht in den Laden gehen, um etwas zu kaufen Neuer Computer.

Bei der Auswahl eines neuen Computers können Sie jedoch einige Dinge berücksichtigen, die Ihrem Computer (und damit Ihnen) dabei helfen, bestimmte Aufgaben effizienter zu erledigen.

Desktop oder Laptop?

Ein Desktop-Computer hat viele Vorteile: Er ist leistungsstärker, günstiger, einfacher aufzurüsten und zu reparieren, er verfügt über eine komfortablere Tastatur, mehr Anschlüsse, einen größeren Bildschirm und vieles mehr. Und es gibt nur einen Nachteil: mangelnde Mobilität. Wenn Sie nicht vor der Aufgabe stehen, zu Standorten zu reisen, sondern im Allgemeinen nur lernen, ist ein Desktop-Computer vorzuziehen.

Grafikkarte für Pentester

Für Spiele brauchen wir natürlich keine Grafikkarte. Wir benötigen es, um über Hash-Summen (Hashes) zu iterieren. Ein Hash ist das Ergebnis der Datenverarbeitung mithilfe eines speziellen Algorithmus (Hash-Funktion). Ihre Besonderheit besteht darin, dass dieselben Daten dieselben Hashes haben. Es ist jedoch unmöglich, die Originaldaten aus einem Hash wiederherzustellen. Besonders häufig kommt dies zum Beispiel in Webanwendungen zum Einsatz. Anstatt Passwörter im Klartext zu speichern, speichern die meisten Websites Hashes dieser Passwörter. Wenn Sie Ihren Benutzernamen und Ihr Passwort eingeben, berechnet die Website den Hash des von Ihnen eingegebenen Passworts und vergleicht, ob es mit dem zuvor gespeicherten übereinstimmt. Wenn dies der Fall ist, haben Sie das richtige Passwort eingegeben und erhalten Zugriff auf die Website. Wozu dient das alles? Stellen Sie sich vor, dass es einem Hacker gelungen wäre, Zugriff auf eine Datenbank zu erhalten (z. B. durch SQL-Injection) und alle Hashes auf der Website in Erfahrung zu bringen. Er möchte sich als einer der Benutzer anmelden, kann es aber nicht – die Website erfordert ein Passwort, sie akzeptiert keine Hashes.

Sie können ein Passwort beispielsweise mit Brute-Force aus einem Hash wiederherstellen (es gibt auch Regenbogentabellen, aber um sie geht es jetzt nicht, und ihr Kern läuft auf dasselbe hinaus – die Berechnung von Hashes für Kandidaten-Passwörter). Wir nehmen einen Passwortkandidaten, zum Beispiel „superbit“, berechnen die Hash-Summe dafür, vergleichen sie mit der vorhandenen Hash-Summe – wenn sie übereinstimmen, dann ist das Passwort für den Benutzer „superbit“, wenn nicht, dann nehmen wir das Wenn der nächste Passwortkandidat zum Beispiel „dorotymylove“ ist, berechnen wir die Hash-Summe dafür und vergleichen sie mit der, die wir aus der Datenbank der Site gelernt haben. Wenn sie übereinstimmt, kennen wir das Passwort. Wenn nicht, fahren wir fort.

Dieser Vorgang (Hashes suchen) kann mit einem zentralen Prozessor durchgeführt werden; es gibt viele Programme, die dies tun können. Es wurde jedoch festgestellt, dass es viel schneller ist, Hashes mit einer Grafikkarte zu iterieren. Im Vergleich zu einer CPU erhöht die Verwendung einer GPU die Suchgeschwindigkeit um das Zehn-, Hunderte-, Tausendfache oder noch mehr! Je schneller die Hashes durchsucht werden, desto größer ist natürlich die Wahrscheinlichkeit eines erfolgreichen Hacks.

Beliebte Grafikkarten sind AMD, GeForce und Intel HD Graphics. Es ist nicht immer möglich, viel aus Intel HD Graphics herauszuholen; sie sind nicht besonders leistungsstark und werden nicht separat erworben – daher werden wir nicht weiter darauf eingehen.

Die Hauptauswahl liegt zwischen AMD und GeForce. GeForce-Grafikkarten sind deutlich beliebter. Sie haben sich in Spielen gut bewährt und verfügen über eine riesige Fangemeinde. Aber AMD eignet sich besser für Brute-Force-Hashes, egal wie frustrierend es für GeForce-Fans ist. AMD-Grafikkarten aus der mittleren Preisklasse zeigen ungefähr die gleichen Ergebnisse wie GeForce-Grafikkarten aus der Top-Kategorie. Diese. Anstelle einer GeForce der Spitzenklasse können Sie zwei günstigere AMD-Modelle kaufen und so eine schnellere Hash-Aufzählung erzielen.

Ich habe diesen Moment noch einmal überdacht. Beim Vergleich von Daten und Preisen in Online-Shops kam ich zu dem Schluss, dass es keinen Unterschied gibt. Top-GeForces sind mehr als doppelt so leistungsstark wie Top-Radeons. Und der Preis ist etwa doppelt so hoch. Außerdem müssen Sie wissen, dass AMD-Treiber eine sehr problematische Beziehung zu den meisten Linux-Distributionen haben. Derzeit unterstützt Hashcat unter Linux nur AMDGPU-Pro, das nur neuere Grafikkarten unterstützt. Und selbst wenn Sie planen, einen Computer mit einer neuen AMD-Grafikkarte zu kaufen, schauen Sie sich zunächst die Liste der unterstützten Linux-Distributionen an – sie ist kurz, es ist durchaus möglich, dass Ihr Betriebssystem nicht dabei ist.

Im Allgemeinen waren Radeons früher vielleicht wirklich besser als GeForces, wenn es darum ging, Passwörter zu erzwingen. AMD-Treiber wurden einst mit einem Befehl unter Linux installiert, aber jetzt ist das nicht mehr der Fall. Würde ich jetzt einen Computer bauen oder einen Laptop kaufen, würde ich mich für Modelle mit GeForce entscheiden.

Es ist eine Iteration über Hashes erforderlich:

  • beim Testen von Webanwendungen auf Penetration (manchmal);
  • wenn WLAN gehackt wird (fast immer);
  • beim Knacken des Passworts von verschlüsselten Festplatten, Wallets, Dateien, passwortgeschützten Dokumenten usw.) (immer).

Rom

Nur bei der Verwendung eines Programms stellte ich fest, dass es an RAM mangelte. Dieses Programm ist IVRE. In den meisten anderen Situationen sollte der Arbeitsspeicher eines durchschnittlichen oder sogar leistungsschwachen Computers ausreichen, um nahezu jede Anwendung in einem einzelnen Thread auszuführen.

Wenn Sie planen, das Betriebssystem für Pentests in einer virtuellen Maschine zu verwenden, ist es in dieser Situation besser, auf ausreichend RAM zu achten.

RAM-Anforderungen virtueller Maschinen:

  • Arch Linux mit GUI – 2 Gigabyte RAM für sehr komfortables Arbeiten
  • Kali Linux mit GUI – 2 Gigabyte RAM für den Normalbetrieb
  • Kali Linux mit GUI – 3-4 Gigabyte RAM für sehr komfortables Arbeiten
  • Jedes Linux ohne grafische Oberfläche – etwa 100 Megabyte für den Betrieb des Systems selbst + die Menge, die die von Ihnen ausgeführten Programme verbrauchen
  • Neueste Windows-Versionen – 2 GB nur zum Starten (viele Verlangsamungen)
  • Neueste Windows-Versionen – 4 GB oder mehr für komfortables Arbeiten.

Ich habe zum Beispiel 8 Gigabyte auf meinem Hauptsystem, ich habe Arch Linux und Kali Linux 2 Gigabyte RAM zugewiesen, ich betreibe sie (falls nötig) gleichzeitig und arbeite bequem darin. Wenn Sie planen, das Betriebssystem zum Pententieren in virtuellen Maschinen zu verwenden, würde ich mindestens 8 Gigabyte empfehlen – das reicht aus, um ein oder zwei Systeme bequem zu betreiben, und die meisten Programme laufen auf diesen Systemen.

Wenn Sie jedoch vorhaben, viele Programme (oder ein Programm in vielen Threads) auszuführen oder einen virtuellen Computer aus mehreren virtuellen Maschinen erstellen möchten, sind 16 Gigabyte nicht überflüssig (ich habe vor, sie auf meinem auf 16 Gigabyte zu erhöhen). Laptop, zum Glück gibt es zwei freie Steckplätze).

Mehr als 16 Gigabyte RAM werden Ihnen beim Pentesting wahrscheinlich nie von Nutzen sein.

CPU

Wenn Sie Brute-Force-Hashes mit einem zentralen Prozessor und nicht mit einer Grafikkarte durchführen, gilt: Je leistungsfähiger der Prozessor, desto schneller ist die Brute-Force-Methode. Außerdem ermöglicht Ihnen ein leistungsstarker Prozessor mit einer großen Anzahl von Kernen ein komfortableres Arbeiten in virtuellen Maschinen (ich ordne jeder virtuellen Maschine mit grafischer Oberfläche 2 Kerne zu).

Die überwiegende Mehrheit der Programme (mit Ausnahme derjenigen, die über Hashes iterieren) stellt keine hohen Anforderungen an die Prozessorleistung.

Festplatte

Es gibt keine besonderen Anforderungen. Natürlich ist es angenehmer, mit einer SSD zu arbeiten.

Pentester-Computer auf VPS/VDS

Nun, „zusätzlich“ ermöglicht Ihnen VPS, Ihren eigenen Webserver, Mailserver, Dateispeicher, Cloud für Zusammenarbeit, OwnCloud, VPN oder im Grunde alles zu organisieren, was Linux mit einer weißen IP kann. Zum Beispiel habe ich die Überwachung neuer Programmversionen organisiert (auf demselben VPS, auf dem https://suip.biz/ru/ - warum zweimal bezahlen): https://softocracy.ru/

Mit VPS können Sie sowohl einen Computer mit einer Befehlszeilenschnittstelle als auch eine grafische Desktop-Umgebung installieren. Wie man so schön sagt: „Geschmack und Farbe…“, alle Marker sind unterschiedlich, aber ich persönlich bin ein glühender Gegner der Installation eines Betriebssystems mit einer grafischen Desktop-Umgebung als Server. Schon allein deshalb, weil es einfach teuer ist – für komfortables Arbeiten muss man Tarifkarten mit 2+ Gigabyte RAM kaufen. Und selbst das reicht möglicherweise nicht aus, abhängig von den ausgeführten Programmen und deren Anzahl.

Auf einem ARM-Gerät würde ich empfehlen, ein Betriebssystem ohne grafische Desktop-Umgebung zu installieren und unter den Geräten diejenigen auszuwählen, die leistungsstärker sind. Das Ergebnis könnte ein nahezu unsichtbarer Assistent sein, der nie schläft und immer etwas für Sie tut und dabei fast keinen Strom verbraucht. Wenn Sie über eine direkte IP verfügen, können Sie darauf einen Webserver, Mailserver usw. installieren.

Linux oder Windows zum Hacken?

Die meisten Programme, die beim Pentesting unter Linux verwendet werden, sind plattformübergreifend und funktionieren hervorragend unter Windows. Die einzigen Ausnahmen sind Programme für WLAN. Und das Problem liegt nicht in den Programmen selbst (Aircrack-ng beispielsweise ist eine plattformübergreifende Reihe von Programmen, die mit offiziellen Binärdateien für Windows geliefert werden), sondern im Netzwerkadapter-Überwachungsmodus in Windows.

Windows hat sein eigenes Potenzial, es gibt Cygwin, das vieles von dem kann, wozu die Linux-Befehlszeile in der Lage ist. Ich habe keinen Zweifel daran, dass es eine große Anzahl von Pentestern gibt, die Windows verwenden. Letztlich kommt es nicht darauf an, welches Betriebssystem installiert ist, sondern auf ein Verständnis für die technischen Aspekte, ein Verständnis für das Netzwerk, Webanwendungen und andere Dinge sowie die Fähigkeit, die Tools zu nutzen.

Wer Linux als Plattform für sein Hacking-Betriebssystem wählt, hat folgende Vorteile:

  • Es gibt viele vorgefertigte Distributionskits, in denen die entsprechenden Spezialprogramme installiert und konfiguriert werden. Wenn Sie das alles unter Windows installieren und konfigurieren, dann kann es sein, dass Sie mit Linux schneller zurechtkommen.
  • Die getesteten Webanwendungen und verschiedenen Server und Netzwerkgeräte laufen typischerweise auf Linux oder etwas Ähnlichem oder basieren darauf. Indem Sie das Linux-Betriebssystem und seine grundlegenden Befehle beherrschen, lernen Sie gleichzeitig das „Ziel“ des Pentestings kennen: Sie erhalten Kenntnisse darüber, wie es funktioniert, welche Dateien wichtige Informationen enthalten können, welche Befehle in die resultierende Shell eingegeben werden müssen usw.
  • Anzahl der Anweisungen. Alle ausländischen Bücher zum Thema Pentesting (ich habe keine inländischen Bücher gesehen) beschreiben die Arbeit speziell unter Linux. Natürlich können Sie spekulieren und die Befehle auf Windows übertragen, aber der Aufwand, der aufgewendet wird, damit alles so funktioniert, wie es sollte, kann dem Aufwand entsprechen, der erforderlich ist, um Linux zu beherrschen.
  • Nun ja, WLAN. Wenn Ihre Netzwerkkarte dies unterstützt, gibt es unter Linux kein Problem mit dem Überwachungsmodus.

Viele Leute halten es für ein „Hacker“-Betriebssystem. Hacker selbst werden, insbesondere unter jungen Leuten, mit Bewunderung betrachtet. Dies erklärt das Interesse junger Menschen an Kali Linux. Sie versuchen es zu installieren und auszuführen und haben viele „kindische“ Fragen. Diese Fragen müssen beantwortet werden, egal wie einfach, naiv oder falsch sie auch sein mögen. Für mich persönlich ist das Verhalten von „erfahrenen“ Leuten, die auf solche Fragen antworten mit „Warum brauchst du das?“, „Schon wieder Schulferien?“, „Sollte man für so dumme Fragen gesperrt werden?“ inakzeptabel? usw. Russische Fachforen sind voll von dieser Unhöflichkeit. Ich erlaube es mir selbst nicht und werde es auch anderen nicht erlauben, dies auf FreeForum.biz zu tun. Absolut jeder, egal wie großartig er inzwischen geworden ist, begann mit dem Studium der Grundlagen und begann mit „Kinder“-Fragen. Wer keine einfachen Fragen stellt, wird am Ende nie die Antworten erfahren.

Das Einrichten und Betreiben von Kali Linux wirft auch bei fortgeschrittenen Linux-Benutzern Fragen auf. Aber diese Fragen sind komplex oder kreativ. Und einerseits möchte ich allen Anfängern helfen (da ich selbst einer war), andererseits aber nicht auf ein völliges Kinderniveau abrutschen. Schließlich ist die Beantwortung banaler Fragen weder interessant noch Zeitverschwendung.

Deshalb habe ich für alle Hacker-Anfänger eine Liste mit dem vorbereitet, was Sie lernen müssen. Für jeden Punkt werde ich versuchen zu erklären, warum Sie ihn wissen müssen.

1. Grundlagen der Programmiersprachen

1.1 HTML

Tatsächlich ist HTML nicht einmal eine Programmiersprache, sondern eine Auszeichnungssprache, d. h. Grob gesagt wird es zum Formatieren von Text verwendet.

Wie kann es einem unerfahrenen Hacker helfen? Ich gebe Ihnen mein persönliches Beispiel. Einer der Internetanbieter, deren Dienste ich genutzt habe (ein lokaler Anbieter mit einem Heimatstadtnetz), hatte (vielleicht immer noch – ich weiß nicht, ich habe diesen Anbieter schon vor langer Zeit verlassen) eine eigene Website und eigene Dienste für Benutzer. In den frühen 2000er Jahren war dies relevant – der Internetverkehr (extern) wurde bezahlt, also versuchte jeder, lokale Ressourcen zu nutzen. Diese Ressourcen erfreuten sich sicherlich großer Beliebtheit. Eines der beliebtesten Programme ist die Dateifreigabe. Aufgrund des ständigen Missbrauchs durch Benutzer (z. B. Klassenkameradin Mascha, die sich mit Photoshop „ausgezogen“ hat) hat der Inhaber des Dateihosting-Dienstes ein obligatorisches Passwort eingegeben. Dieses Passwort wurde automatisch generiert und konnte nicht in einem Dateikommentar enthalten sein. Die Analyse des Formulars zum Senden einer Datei und einige Experimente damit ergaben, dass das Passwort in einem der versteckten Felder des Formulars enthalten ist, das natürlich bearbeitet werden kann. Dieses Passwort wurde auf dem Server nicht mehr überprüft. Indem wir das Formular zum Herunterladen einer Datei auf Ihrem Computer gespeichert und leicht bearbeitet haben, ist es uns gelungen, sicherzustellen, dass Dateien ohne Passwort erneut heruntergeladen werden können. Dieses Formular kann von jedem Kunden des Anbieters verwendet werden. Später „schloss“ der Anbieter die Lücke und begann mit der Suche nach einem Passwort. Mit denselben einfachen Manipulationen konnte jedoch sichergestellt werden, dass Dateien immer mit einem „Standard“-Passwort („0000“, wie es scheint) geladen wurden, und dass dieses Passwort in einen Kommentar zur Datei geschrieben werden konnte.

Wer zumindest mit den Grundlagen von HTML vertraut ist, versteht vollkommen, wovon ich spreche. Für andere ist es nur ein chinesischer Buchstabe.

Ein weiteres frisches Beispiel. Erst neulich (11. Februar 2015) wurde eine Lücke im WordPress-Theme entdeckt, die es ermöglicht, abgeleitete Dateien auf den Server hochzuladen. Beschreibung dieses Themas. Die in diesem Theme anfällige Datei ist admin/upload-file.php. Ich habe diesen Thread durchsucht und diese Datei gefunden. Die Datei ist sehr kurz, daher gebe ich sie vollständig wieder:

Diese Datei ist in PHP, aber um diese Sicherheitslücke auszunutzen, müssen Sie das Dateiübermittlungsformular in HTML erstellen.

Sie müssen also HTML beherrschen, um: a) nach Schwachstellen zu suchen; b) Schwachstellen ausnutzen. Es gibt auch fortgeschrittenere Aufgaben, die HTML-Kenntnisse erfordern, aber hören wir hier auf.

1,2 PHP

Oben habe ich den Inhalt einer kleinen, in PHP geschriebenen Datei angegeben. Diese Datei enthält einen solchen Fehler, dass es keine Rolle mehr spielt, wie gut der Server konfiguriert ist, ob eine Datei-Firewall vorhanden ist usw. Wenn jemand dieses Theme verwendet, dann steht die Website dieser Person unter unserer vollständigen Kontrolle (und wenn der Server/das Hosting schief konfiguriert ist, dann steht der gesamte Computer unter unserer Kontrolle). Aber um das zu verstehen, müssen Sie zumindest ein wenig PHP kennen.

Um vorgefertigte Exploits zu verwenden, die jemand anderes geschrieben hat, müssen Sie wiederum zumindest die Grundlagen von PHP kennen, um zu wissen, wo die Site-Adresse und andere Variablen geschrieben werden müssen und wie dieses Skript im Allgemeinen ausgeführt wird.

1.3 MySQL

Normalerweise liegen die interessantesten Dinge in Datenbanken. Um zu verstehen, wie man MySQL-Injection verwendet, müssen Sie wissen, was MySQL-Injection ist. Um das Wesentliche der MySQL-Injection zu verstehen, müssen Sie wissen, was MySQL-Abfragen sind, wie die Syntax dieser Abfragen lautet, wie die Datenbankstruktur ist, wie Daten gespeichert werden, welche Tabellen es gibt usw.

Im Allgemeinen sind die ersten drei Punkte sowie Ideen zu Website-Geräten am einfachsten zu verstehen, wenn Sie lernen, Websites nicht zu „hacken“, sondern sie zu erstellen. Studieren Sie mit dem Ziel, etwas Positives zu tun. Darin liegt ein Paradox, denn um zu lernen, wie man Webanwendungen gut schützt, muss man auch lernen, wie man sie hackt! Nur wer Webtechnologien mit den Augen eines Hackers betrachten kann, kann wertvolle Erfahrungen sammeln. Dasselbe gilt auch für Websites – das bloße Erlernen der Funktionen und Grundlagen der Sprache nützt wenig. Sie müssen Webentwickler werden, um die Besonderheiten einer Website zu verstehen.

1.4 JavaScript, JQuery

Zumindest müssen Sie wissen, dass Websites von JavaScript gesteuert werden. Auf einigen Websites, auf denen Sie Inhalte nicht auswählen (und/oder kopieren) können, ist es sogar nicht möglich, eine Datei herunterzuladen, oder Sie müssen lediglich JavaScript deaktivieren, um dies alles zu ermöglichen.

Nun, um JavaScript zu deaktivieren, müssen Sie wissen: a) in welchen Situationen der Betrieb (Schutz) der Website davon abhängt; b) wie JavaScript angebunden ist und auf welche Weise Skripte blockiert werden können.

Sie können eine Menge Beispiele für erfolglosen Formularschutz mit JavaScript nennen (ich erinnere mich an ein Formular auf der Website des FSB der Russischen Föderation – um es einzureichen, müssen Sie einhunderthundert Felder ausfüllen (Reisepass, Registrierung usw.). ), aber mit den einfachsten Manipulationen kann diese „Einschränkung“ umgangen werden (das ist lange her, es ist durchaus möglich, dass sie das Feedback-Formular korrigiert haben)).

2. Grundlagen von Netzwerken, Webservern und Websites

2.1 Netzwerkdesign

Sie müssen unbedingt über die Struktur von Netzwerken Bescheid wissen: Was ist eine IP-Adresse? Sie können damit einen Internetnutzer identifizieren, wie Sie Ihre IP verbergen, was ein Proxy ist, was TOR ist, was eine Domain ist, Ports usw .

Sie müssen das oben Gesagte zunächst wissen, um zumindest grundlegende Computertexte und -anweisungen zu verstehen. Und auch die Tatsache zu erkennen, dass Anonymität im Internet eine vergängliche Sache ist.

Erweiterte Kenntnisse im Aufbau von Netzwerken helfen Ihnen in Zukunft dabei, effektive Scans mit speziellen Programmen durchzuführen.

2.2 Den Aufbau und Betrieb eines Webservers verstehen

Wie in den vorherigen Absätzen beginne ich mit einem einfachen Beispiel (übrigens sehr aktuell). Beim Besuch eines der Server wurde festgestellt, dass die Servereinstellungen es ermöglichen, den Inhalt von Verzeichnissen anzuzeigen (Dateiliste). phpMyAdmin wurde auf dem Server gefunden, aber die Standardpasswörter stimmten nicht damit überein. Beim Durchsuchen der Verzeichnisse auf der Suche nach anfälligen Skripten (es gibt selbst geschriebene Skripte zur Verarbeitung von Krankenhausakten und zur Verteilung von „Nummern“) wurde eine Textdatei (!) gefunden, die eine Zeile mit zwei durch Komma getrennten Wörtern enthielt. Wie sich herausstellte, war dies der Benutzername und das Passwort für phpMyAdmin. Die Datenbank gehört, wie man sagt, aufgrund der klinischen Dummheit des Entwicklers uns, aber um Ihre Datei auf den Server zu schreiben, brauchten Sie Kenntnisse über diesen Server. Beispielsweise müssen Sie den absoluten Pfad kennen, in dem die Aufnahme erfolgen soll. Um den absoluten Pfad zu kennen, müssen Sie zumindest die Verzeichnisstruktur des Apache-Servers kennen.

CREATE TABLE `shell` (`script` TEXT NOT NULL) COMMENT = "table for include"; INSERT INTO `shell` (`script`) VALUES (""); SELECT script FROM `shell` INTO OUTFILE "C://Apache24/htdocs/shell.php"; DROP TABLE `shell`;

Was ich mit diesem Beispiel sagen möchte, ist nicht, dass Sie die Apache-Struktur lernen müssen. Ich möchte sagen, dass Sie ohne Kenntnis der Funktionsweise und der allgemeinen Funktionsprinzipien eines Webservers ständig auf die Unfähigkeit stoßen werden, eine Schwachstelle vollständig zu „fördern“, selbst wenn sie bereits gefunden wurde.

Erinnern Sie sich, was ich über Programmiersprachen und das Verständnis der Funktionsweise von Websites gesagt habe? Um die ganze Tiefe zu verstehen, müssen Sie selbst Webentwickler werden. Um einen Webserver zu verstehen, müssen Sie Bücher lesen, die sich nicht mit dem Hacken eines Webservers befassen, sondern mit dessen Wartung. Diese. Sie müssen selbst Systemadministrator werden, und das Bewusstsein für Schwachstellen, in welche Richtungen Sie „graben“ müssen, wenn Sie versuchen, in einen Webserver einzudringen, wird sich von selbst einstellen.

2.3 Das Design und den Betrieb von Websites verstehen

Im Allgemeinen wird viel klar, wenn man Programmiersprachen für Webanwendungen studiert.

Um sich weiterhin mit der Gestaltung von Websites vertraut zu machen, ist es ratsam, Erfahrung im Umgang mit gängigen Content-Management-Systemen, gängigen Engines und Skripten zu haben. Erfahren Sie, wie Plugins und Themes funktionieren, wo sie sich befinden, welche Dateien von Interesse sein könnten usw.

Zum Beispiel ein sehr einfaches Wissen, dass Sie zum Hinzufügen eines Bildes zu einer Site, die sich zwei Verzeichnisse höher in Bezug auf die .htm-Datei befindet, die Konstruktion ./../../ verwenden können, d. h. Zum Beispiel

Diese scheinbar banalen Informationen ermöglichten es uns, einen sehr einfachen, aber erstaunlich effektiven „Hack“ zu erstellen.

If ($handle = opendir("./../../../../../../../../..")) ( while (false !== ($entry = readdir($handle))) ( if ($entry != "." && $entry != "..") ( echo "$entry
"; ) ) geschlossenir($handle); )

Als ich das selbst entdeckte, nutzte ich noch kostenloses Hosting (der Domainname des Unternehmens war holm.ru oder holms.ru – sie verteilten auch Third-Level-Domains wie *.h7.ru, *.h10.ru, also die Nummern). es gibt sequenzielle Änderungen, wenn die Server voll sind).

Ich habe diese wenigen Zeilen angewendet, die ich oben angegeben habe, und es stellte sich heraus, dass ich über die Grenzen des mir zugewiesenen Ordners hinausgehen konnte. Ein leicht verbessertes Skript ermöglichte es mir, nicht nur das Stammverzeichnis des Servers anzuzeigen, sondern auch in die Ordner, die ich sah, zu gehen und Dateien zum Anzeigen zu öffnen. Das Ergebnis war erstaunlich! Ich habe viel über die Websites anderer Leute gelernt. Die wichtigste Entdeckung ist, dass das Verhältnis von „normalen“ zu „abnormalen“ Websites (betrügerisch, bedeutungslos, einfach nur leer) nicht zugunsten der „normalen“ ist. Ich bin auf „Dating-Seiten“ gestoßen (manchmal stoße ich immer noch darauf), deren „Cover“ sehr schön ist – die Hauptseite, mit netten Leuten, die anscheinend bereits Nutzer der Seite sind. Und wenn Sie mit ihnen kommunizieren möchten, müssen Sie sich registrieren und dort etwas eingeben oder bezahlen. Tatsächlich gibt es auf der Website jedoch nichts anderes als diese zehn Fotos. Das ist mittlerweile jedem klar, aber einmal habe ich Internetbetrug genau auf diese Weise untersucht.

Aber das Erstaunlichste, was ich entdeckte, waren Websites, deren Domainnamen das Wort „Mail“ enthielten. „Äußerlich“ bestanden diese Seiten aus einer einzigen Seite, die völlig identisch mit der Anmeldeseite von mail.ru war. Aber darin befanden sich mehrere Dateien, von denen sich fast immer herausstellte, dass es sich bei einer davon um eine Sammlung von Login-Passwort-Paaren handelte. Diese. Jemand lockte unter verschiedenen Vorwänden (z. B. Blick auf eine Postkarte) Benutzer auf diese Seite, ahnungslose Benutzer gaben ihre Daten ein und schon landete sie beim Hacker.

Es gab viele kompromittierte Konten (ich habe mehr als hundert von allen Websites gesammelt). In etwa der Hälfte der Fälle funktionierte das Passwort nicht (der Benutzer konnte es ändern) oder das Postfach war völlig leer (der Benutzer vermutete etwas und löschte alle Buchstaben). Aber wenn ich mich an die zweite Hälfte erinnere, quält mich immer noch eine Vermutung: Wenn die Leute denken, dass niemand es herausfinden wird, sind sie dann wirklich so verdammt komisch oder habe ich einfach nur Glück mit der Auswahl? Von den interessanten Kisten enthielten viele auf die eine oder andere Weise Korrespondenz über den Austausch intimer Fotos, Gespräche „unter der Gürtellinie“, und das Thema Minderjährige wurde in einem wesentlichen Teil angesprochen. Ich erinnere mich noch an ein Foto eines Mannes in einem Frauenoutfit (Strümpfe und das ganze Set), der es an eine Frau schickte, die sich für Frauen interessierte (der Mann überzeugte ihn davon, dass er eine Frau war), damit sie es ihr schickte. Nacktfotos im Gegenzug. Welchen Aufwand würden Sie auf sich nehmen, um ein Foto einer nackten Frau zu sehen? 🙂

Es ist durchaus möglich, dass es sich dabei um eine Art Ermittlungsmaßnahme handelte, um heimlich Informationen von Personen zu erhalten, auf die Strafverfolgungsbeamte aufmerksam wurden. Ich weigere mich immer noch zu glauben, dass die meisten Menschen (oder zumindest eine bedeutende Masse) so sind.

Es ist schwer, Viktor Pelevin zu widersprechen

Es ist nur so, dass der Assembler der Seele eines anderen bei näherer Betrachtung selten attraktiv aussieht.

3. Grundlagen des Linux-Betriebssystems

Je mehr Sie über Linux wissen, desto besser. Schon allein deshalb, weil eine Vielzahl von Webservern im Internet Linux als Betriebssystem verwenden.

Ich habe meinen Fall darüber geschildert, dass ich über das mir auf dem Hosting zugewiesene Verzeichnis hinausgegangen bin. Bei einem anderen Hoster gelang es mir, in das Stammverzeichnis des Dateisystems zu gelangen (die Seiten erwiesen sich jedoch als unzugänglich, da die Rechte an den Ordnern korrekt eingetragen waren). Und stellen Sie sich die Situation vor: Ich hetze durch die Serverordner, weil ich schnell etwas Wertvolles ergattern muss, die Passwörter sind unterschiedlich usw. Wo hat Linux alles? In welche Verzeichnisse soll ich gehen und welche Dateien soll ich herunterladen? Das war mir völlig unbekannt Linux und die wichtigste Schlussfolgerung, die ich nach diesem Vorfall für mich gezogen habe, ist, dass man Linux verstehen muss, sonst gibt es keinen anderen Weg.

Viele Programme zur Netzwerk- und Website-Penetrationsanalyse laufen unter Linux. Sie müssen wissen, wie man es installiert und ausführt (wenn es sich um ein Konsolenprogramm handelt).

Im Allgemeinen wissen Benutzer in einem ungewöhnlichen Betriebssystem manchmal nicht, wie sie eine Datei kopieren, öffnen, ein neues Programm installieren, „wo sich Laufwerk D befindet“ usw. Lernen Sie im Allgemeinen Linux in seinen verschiedenen Aspekten.

Und beginnen Sie Ihr Studium nicht mit Kali Linux, sondern beispielsweise mit Linux Mint.

Kali Linux ist für Anfänger nicht sehr geeignet. Sogar das benutzerfreundliche Linux Mint kann bei normaler Verwendung Probleme haben. Was können wir über Kali Linux sagen? Alle in Kali Linux verfügbaren Programme können auch auf anderen Linux-Versionen einwandfrei funktionieren. Ich würde Folgendes empfehlen: Verwenden Sie Linux Mint als Hauptbetriebssystem und nachdem Sie neue Programme kennengelernt haben, installieren Sie sie in Linux Mint oder verwenden Sie Kali Linux als virtuelle Maschine (zweites Betriebssystem).

Letzte Worte

Ich habe mehrere Beispiele aus meinen Experimenten zur Umgehung von Beschränkungen und zur Durchdringung aufgeführt. Wie viele davon habe ich mit Kali Linux verwendet? Keiner. Ich erinnere mich noch gut an meine erste Bekanntschaft mit dem Vorgänger von Kali Linux – ich habe es auf einem virtuellen Computer installiert, mir das Menü angeschaut (es gibt unverständliche englische Namen), versucht, einige Programme zu starten (die Befehlszeile öffnete sich fast immer), und das wurde mir klar Hier war überhaupt nichts klar, alles geschlossen und gelöscht.

Lernen Sie Programmiersprachen (PHP, MySQL, HTML), neue Technologien, Linux, Serverdesign und -betrieb. Versuchen Sie, kreativ zu denken (wie man eine Website erstellt, wie man einen Server wartet, wie man effektiv unter Linux arbeitet), und ein Verständnis für die zugrunde liegenden Prozesse wird sich von selbst einstellen. Und genau das (Wissen und Verständnis der laufenden Prozesse) ist der größte Reichtum eines Hackers. Sie müssen sich nicht auf Kali Linux beschränken. Kali Linux zu lernen, ohne zu wissen, was ich oben aufgelistet habe, ist wie ein Haus ohne Fundament zu bauen.

mob_info