Kapitel 3:
Einführung in Kali Linux

Seien wir einmal ehrlich: Ein Hacker ganz ohne Linux-Kenntnisse ist kein richtiger Hacker! Und seien wir noch mal ehrlich: Viele interessierte Leser, Power-User wie auch Admins, sind häufig Windows-orientiert und können mit Linux nur wenig anfangen. Okay, und wo wir schon mal dabei sind, setzen wir aus purer Ehrlichkeit noch einen drauf: Nein, wir werden Sie hier nicht zum Linux-Experten ausbilden!

Was wir Ihnen an dieser Stelle jedoch anbieten möchten, ist ein kurzer Workshop mit einigen essenziellen Informationen, die notwendig sind, um mit Kali Linux zu arbeiten. Hier erfahren Sie insbesondere Folgendes:

Kali Linux ist trotz der wachsenden Konkurrenz die wichtigste Plattform für die meisten Hacker und Penetration-Tester. Das Ziel dieses Kapitels ist es, Sie mit dieser Arbeitsumgebung etwas vertrauter zu machen. Im weiteren Verlauf dieses Buches werden wir immer wieder auf diese Grundlagen zurückgreifen und Ihnen an passender Stelle weitere Kniffe und Tricks zeigen, wie Sie das immer wieder benötigte Linux-Terminal effektiver nutzen können.

3.1   Ein erster Rundgang

Vorab noch ein Hinweis zur Beachtung:

Wichtig: Kali Linux wird intensiv weiterentwickelt!

Die Abbildungen sind zu einem bestimmten Zeitpunkt entstanden. Da die Entwicklung von Kali Linux nicht stehen bleibt, kann es sein, dass sich die Optik und Funktionalität der gezeigten Komponenten zu dem Zeitpunkt, da Sie dieses Buch lesen, vereinzelt verändert haben und Sie einige Schritt-für-Schritt-Anweisungen anpassen müssen. Dies gilt nicht nur für dieses Kapitel, sondern für das gesamte Buch. Bitte haben Sie dafür Verständnis und versuchen Sie in diesem Fall, das Gezeigte sinngemäß anzuwenden.

Genug der Vorrede: Jetzt geht es ab in die Praxis, machen Sie mit! Starten Sie nun bitte Ihre Kali-VM und melden Sie sich an. Haben Sie Kali regulär installiert, nutzen Sie dafür bitte Ihren während der Installation angelegten Benutzeraccount. Falls Sie eines der vorgefertigten Images als VM eingebunden haben oder eine Live-Version nutzen, ist der Benutzername kali und das Passwort ebenfalls kali.

3.1.1   Überblick über den Desktop

Nach der Anmeldung finden Sie eine sehr aufgeräumte Arbeitsfläche vor. In der Standard-Installation steckt die Desktop-Umgebung Xfce dahinter, eine der großen grafischen Umgebungen unter Linux. Wie ihre Alternative GNOME orientiert sie sich eher an der Optik von macOS und steht damit im Kontrast zum KDE-Desktop, der sich eher an Windows orientiert.

Für Windows-Umsteiger: Im Gegensatz zu Windows bietet Linux verschiedene Desktop-Umgebungen an, die die grafische Oberfläche unterschiedlich darstellen und auch verschiedene Features mitbringen. Diese Umgebungen stellen neben den Menüs, Fenstern etc. insbesondere auch diverse Verwaltungsprogramme zur Verfügung, wie z.B. Dateimanager, einen Papierkorb etc. Auch unter Kali Linux sind verschiedene Desktopumgebungen verfügbar.

Hinweis: Neue Desktop-Umgebung Xfce

Xfce hat GNOME ab der Kali-Version 2019.4 als Standard-Desktop abgelöst. Die offizielle Begründung hierfür ist, dass Xfce schlanker ist und weniger Ressourcen verbraucht als GNOME. Das ist zweifelsohne richtig und es ermöglicht, Kali auch weniger leistungsstarker Hardware zu installieren. Vermutlich hängt der Wechsel jedoch auch damit zusammen, dass der Maintainer von GNOME das Offensive-Security-Team verlassen hat. Xfce ist einfacher aufgebaut und stellt weniger Features als GNOME bereit, sodass Benutzer, die an den alten Desktop gewöhnt sind, sich zunächst einmal ein wenig umstellen müssen. Aber das ist grundsätzlich kein Problem. Die eigentliche Funktionalität von Kali inklusive aller Hacking-Tools wurde beibehalten.

Kommen wir also zur Sache: Der Desktop enthält einige wichtige Elemente, die wir uns im Folgenden ein wenig genauer anschauen wollen.

Schaltflächen oben links

Zunächst betrachten wir den Bereich links in der Leiste, engl. »Panel« genannt. Sie entspricht der Taskleiste in Windows und befindet sich standardmäßig oben.

Ganz links befindet sich das Startmenü in Form eines Symbols mit dem Kali-Drachen. Wir kommen später darauf zurück. Betrachten wir zunächst die anderen Symbole und deren Bedeutung (siehe Abbildung 3.1).

Durch Klick auf das Symbol Desktop Anzeigen können Sie alle geöffneten Fenster minimieren und dadurch den Desktop anzeigen lassen. Ein weiterer Klick auf das Symbol stellt die Fenster wieder her. Dies funktioniert analog zu Windows.

Rechts daneben findet sich das Menü für das Persönliche Verzeichnis. Wie auch unter Windows haben Benutzer eines Linux-Systems ein persönliches Verzeichnis, auch »Home-Verzeichnis« genannt. Es untergliedert sich in weitere Unterverzeichnisse, wie Desktop, Documents etc. Sie können es wahlweise im Dateimanager oder im Terminalfenster öffnen. Klicken Sie dazu auf die Schaltfläche und wählen Sie aus dem Drop-down-Menü die gewünschte Aktion aus.

Das nächste Symbol repräsentiert einen einfachen Editor namens Mousepad. Er ist das Pendant zu Notepad unter Windows, allerdings leistungsfähiger. Ein Editor ist ein nützliches, kleines Tool, z.B. um Notizen zu machen oder Text oder Code zu speichern. Das Symbol rechts daneben steht für den integrierten Web-Browser Firefox.

[Bild]

Abb. 3.1: Der linke Bereich der Leiste

Das Terminal öffnet eine Eingabeaufforderung, die in Fachkreisen auch als »CLI« (für Command Line Interface) oder einfach als »Kommandozeile« bezeichnet wird. Hier spielt ein Hauptteil der Musik unter Linux allgemein, und auch für uns ist die Kommandozeile, also das Terminalfenster, der wichtigste Arbeitsort. Seit Kali 2021.3 kann hier über den Auswahlpfeil rechts daneben auch ein Root-Terminal ausgewählt werden, das die direkte Arbeit als Benutzer root ermöglicht. Zudem ist seit Kali 2023.1 mittlerweile auch die Microsoft Powershell integriert. Dadurch wird eine plattformübergreifende Shell bereitgestellt, die ähnlich leistungsstark wie die Linux-Shells ist.

Die letzten vier Schaltflächen symbolisieren den jeweiligen virtuellen Desktop (zu Deutsch: Arbeitsfläche). Im reellen Leben wünscht man sich im Büro manchmal auch einen weiteren Arbeitstisch, da der Platz oft nicht ausreicht. Was dort allerdings oft ein Problem wird, lässt sich virtuell sehr einfach lösen. Standardmäßig stellt Kali vier Desktops zur Verfügung, die über die dazugehörige Schaltfläche aktiviert werden können. Via Rechtsklick auf eine der Desktop-Schaltflächen können die Eigenschaften der Arbeitsflächen und deren Anzahl konfiguriert werden. So können Sie sich Ihre Umgebung flexibel einrichten.

Der Desktop

Wie auch unter Windows finden Sie einige Default-Symbole auf dem Desktop. Hierzu gehören der Papierkorb, dessen Funktion mehr oder minder identisch ist wie bei Windows und daher nicht erklärt werden muss. Darunter haben Sie zwei Shortcut-Symbole, die den Dateimanager öffnen. Über Dateisystem gelangen Sie direkt zum Wurzelverzeichnis, also der obersten Ebene des Dateisystems (/). Mehr dazu in Abschnitt 3.2.4. Über Persönlicher Ordner zeigt Ihnen der Dateimanager eben jenen an – also Ihr Home-Verzeichnis.

[Bild]

Abb. 3.2: Der Desktop-Bereich

Sie können auf alle Elemente mit der rechten Maustaste klicken und damit das Kontextmenü aufrufen. Klicken Sie auf eine freie Fläche des Desktops, finden Sie Optionen zur Erstellung einer Verknüpfung (hier Starter genannt), von Dokumenten und Ordnern sowie zur Konfiguration von Eigenschaften des Desktops. Auch hier dürften sich Windows-affine Benutzer grundsätzlich schnell zurechtfinden.

Schaltflächen oben rechts

In der Leiste finden sich auf der rechten Seite diverse Symbole, die Systemfunktionen bereitstellen. Abbildung 3.3 zeigt sie in der Übersicht.

[Bild]

Abb. 3.3: Die rechte Seite der Deskbar

Gehen wir auch hier wieder die Funktionen kurz durch: Zunächst sehen wir die Prozessorauslastung. Über die Schaltfläche Netzwerkstatus können Sie sich via Rechtsklick und Auswahl von Verbindungsinformationen einen Überblick über die IP-Konfiguration verschaffen. Über den Menüpunkt Verbindungen bearbeiten gelangen Sie zu den Konfigurationsoptionen, die wir später in diesem Kapitel in Abschnitt 3.3 beschreiben werden.

Die Soundeinstellungen sind ebenso selbsterklärend wie die Benachrichtigungseinstellungen des Systems. Die Energieverwaltung ermöglicht es Ihnen, unter anderem den Energiesparmodus und den automatischen Sperrbildschirm zu konfigurieren und ggf. zu deaktivieren. Während es in der Praxis sehr sinnvoll ist, den Desktop nach einer bestimmten Zeit automatisch sperren zu lassen, kann das in einer Laborumgebung recht lästig sein. Passen Sie das also nach Bedarf an.

Über Datum und Uhrzeit können Sie sich über einen Linksklick eine Kalenderübersicht anzeigen lassen. Via Rechtsklick gelangen Sie zu den Eigenschaften der Uhr und können die Zeitzone einstellen. Auch das Anzeigeformat kann hier eingestellt werden.

Möchten Sie den Bildschirm sperren, können Sie das über die Schaltfläche mit dem Schloss-Symbol tun. Die Funktionen Abmelden, Ausschalten und Neustart sind über die Schaltfläche ganz rechts zu erreichen. Das sich öffnende Dialogfeld bietet auch noch weitere Aktionen an, wie Ruhezustand oder Benutzer wechseln.

3.1.2   Das Startmenü

Kommen wir nun zu dem vielsagenden Symbol mit dem Kali-Drachen ganz links. Hier verbirgt sich das Startmenü, wie Abbildung 3.4 zeigt.

[Bild]

Abb. 3.4: Das Startmenü

Und hier sind sie: Die kleinen und größeren Schätzchen des Hackers und Penetrationstesters. Hier finden sich buchstäblich Hunderte von einschlägigen Hacking-Tools – alles, was das Herz begehrt! Dies ist auch das Herz von Kali Linux.

Tatsächlich verstecken sich hier die Hacking- und Forensik-Tools, die Kali Linux von Hause aus mitbringt. Wir werden im Laufe dieses Buches auf diverse Tools eingehen und ihre Verwendung erläutern, aber auch andere, externe Programme zur Sicherheitsanalyse integrieren und vorstellen.

Falls Sie jedoch glauben, dass hinter diesen Menüpunkten mit ihren ansprechenden Symbolen grundsätzlich hübsche grafische Oberflächen auf Sie warten, die Sie nur mit ein paar Klicks bedienen müssen, so müssen wir Sie – bis auf wenige Ausnahmen – leider enttäuschen! Die meisten Hacking-Tools sind kommandozeilenbasiert. Klicken Sie zum Beispiel auf 01 – Informationsbeschaffung|nmap, so öffnet sich nur ein Terminalfenster, das die Hilfe zum Portscanner Nmap aufruft (vgl. Abbildung 3.5).

[Bild]

Abb. 3.5: Die Nmap-Hilfe nach Aufruf von Nmap aus dem Startmenü

Dies können Sie nutzen, um sich einen Überblick über die benötigten Optionen zu verschaffen und im Anschluss Nmap nach Ihren Wünschen einzusetzen – aber nix mit schön gestalteter Oberfläche an dieser Stelle ...

Hinweis: Anwendung ist nicht gleich Anwendung

Welche Applikation sich in welcher Form öffnet, wenn Sie ein Tool im Menü auswählen, hängt ganz von dem Tool selbst ab. Für einige Tools, z.B. Metasploit, sind unter Umständen sogar noch einige Vorarbeiten notwendig, um sie effektiv verwenden zu können. Wir werden Ihnen zu gegebener Zeit alle notwendigen Schritte zeigen, um ein Programm optimal einzusetzen.

Sie sehen also, dass wir bei der Arbeit mit Kali Linux nicht um die Kommandozeile herumkommen. Je eher Sie sich damit abfinden, dass das Hacking zu einem erheblichen Teil über Terminalfenster und textbasierte Befehle (und Ausgaben!) stattfindet, desto eher können wir uns darauf konzentrieren, Ihre Fähigkeiten in diesem Kern-Bereich aufzubauen und zu entwickeln.

Tipp: Interaktive Shell-Umgebungen beenden

Klicken Sie auf ein Symbol, hinter dem sich ein Kommandozeilen-Tool versteckt, öffnet sich ein Terminalfenster. Natürlich können Sie die Terminal-Anwendung über das X-Symbol in der Titelleiste schließen. Sie können jedoch das Terminalfenster (oder genauer: die dort laufende Shell) auch durch Eingabe von exit schließen. Mit diesem Befehl kommen Sie häufig auch aus interaktiven Shells diverser Tools heraus. Probieren Sie alternativ quit, wenn exit nicht funktioniert.

Noch ein kurzer Hinweis zum Startmenü: In vielen Fällen gibt es Untermenüs, die Sie durch Klick auf das Dreieck vor dem Menüpunkt aufklappen können, wie in Abbildung 3.6 gezeigt.

[Bild]

Abb. 3.6: Untermenüs im Startmenü

Weiterhin sollten Sie beachten, dass die Menüebenen manchmal länger sind als am Bildschirm angezeigt. Es wird dann ggf. ein unauffälliger Scrollbalken rechts angezeigt. Alternativ können Sie sich über das Mausrad in der betreffenden Spalte hoch- und runterbewegen.

3.1.3   Der Dateimanager

Öffnen Sie das Dateisystem über den Desktop oder Ihren persönlichen Ordner, so wird die entsprechende Ordnerstruktur mithilfe des Dateimanagersnamens Thunar von Xfce angezeigt. Öffnen Sie doch einmal Ihren persönlichen Ordner. Sie landen in einem Verzeichnis mit dem Namen /home/<benutzername>/, wie Ihnen die Adresszeile zeigt, wenn Sie dort hineinklicken. Dies ist das Home-Verzeichnis des aktuell angemeldeten Benutzers.

Hier scheint sich nur eine Handvoll Objekte zu befinden – doch der Schein trügt: Aktivieren Sie die Anzeige der versteckten Dateien über den Menüpunkt Ansicht und der entsprechenden Option Verborgene Dateien anzeigen und staunen Sie! Wie in Abbildung 3.7 zu sehen, verstecken sich noch diverse weitere Dateien und sogar ganze Verzeichnisse in unserem Home-Verzeichnis.

[Bild]

Abb. 3.7: Es befinden sich zahlreiche versteckte Dateien im Home-Verzeichnis.

Wenn Sie genau hinschauen, bemerken Sie, dass alle nun zusätzlich angezeigten Dateien und Verzeichnisse mit einem Punkt beginnen – das ist für Linux das Signal: »Versteckte Datei, nicht anzeigen!« Prinzipiell genauso funktioniert das auch in Windows, wobei hier statt einem vorangestellten Punkt ein Attribut in den Dateieigenschaften gesetzt wird. Über Dateisystem im Navigationsbereich (links) in der Sektion Geräte gelangen Sie in die obere Ebene des Dateisystems. Dies ist die Root-Ebene. Sie wird durch / gekennzeichnet und bildet den obersten Punkt des Linux-Dateisystems.

[Bild]

Abb. 3.8: Die Root-Ebene

Moment Mal: Root-Ebene? War root nicht der Systemadministrator eines Linux-Systems? Um was geht es hier genau?

Vorsicht: Verwechslungsgefahr! Root ist nicht gleich root ...

Die oberste Ebene des Linux-Dateisystems wird als Root-Ebene bezeichnet, da engl. Root = Wurzel. Leider wird aus historischen Gründen der Administrator auf einem Linux-System auch als root bezeichnet. Und um das Ganze noch verwirrender zu machen, lautet der Pfad für das Home-Verzeichnis des Administrators /root. Die Home-Verzeichnisse aller anderen User befinden sich unter /home/<Benutzername>, wie Sie ja eingangs gesehen haben. Wir kommen gleich noch auf root und die Benutzer zurück.

Bleiben wir zunächst bei der Sache: Sie können mit dem Dateimanager ähnlich arbeiten wie mit dem Windows-Explorer. Wählen Sie Ansicht|Seitenleiste|Baumansicht, um sich links die hierarchische Struktur des Verzeichnisbaums anzeigen zu lassen. Im Menü Ansicht können Sie auch die Anzeige im Hauptfenster anpassen. In Abbildung 3.9 haben wir die Listenansicht aktiviert und den Inhalt von /etc anzeigen lassen.

[Bild]

Abb. 3.9: Baumstruktur mit Detailansicht

Wenn Sie möchten, können Sie ein Verzeichnis (wie z.B. /etc) auch direkt oben in der Adressleiste eingeben, um dorthin zu wechseln. Die Verwendung des Dateimanagers ist einfach und intuitiv zu erlernen.

Im Übrigen ist es bei einer Pfadangabe meistens egal, ob Sie /etc oder /etc/ schreiben. Das System fügt den Slash ggf. hinzu.

3.1.4   Systemeinstellungen und -Tools

Auch wenn Sie vielleicht zunächst mit den Standardeinstellungen auskommen, werden Sie früher oder später einige Anpassungen an Ihrem Kali Linux vornehmen wollen – sei es die Desktop-Darstellung, die Energieverwaltung oder Ähnliches. Im vorigen Kapitel haben wir Ihnen im Rahmen der Installation von Kali Linux schon gezeigt, wie Sie die Sprache und die Keyboard-Einstellungen ändern können.

Bildschirmauflösung

Nutzen Sie eine virtuelle Maschine mit VirtualBox und sind die Gasterweiterungen installiert, so können Sie das Fenster der VM auf die gewünschten Maße aufziehen und sind maximal flexibel. Andererseits gibt es auch die Möglichkeit, die Bildschirmauflösung manuell festzulegen. Dazu gehen Sie im Startmenü auf den Menüpunkt Einstellungen und wählen Anzeige aus. Hier können Sie die Auflösung und andere Parameter konfigurieren. Sind die Gasterweiterungen nicht installiert, so sind die Auflösungsoptionen unter Umständen stark eingeschränkt.

Optik und Verhalten anpassen

Das Startmenü enthält unter Einstellungen diverse Apps zur Konfiguration der Optik und des Verhaltens der Desktop-Oberfläche. Falls Sie sich schon gefragt haben, warum die Fenster in den Abbildungen hier im Buch teilweise mit hellem Hintergrund daherkommen, wo sie doch standardmäßig dunkel sind, dann finden Sie die Lösung in der App Erscheinungsbild. Hier haben wir Kali-Light gewählt, der Standard ist Kali-Dark. Auch wenn Kali-Dark vielleicht etwas stylisher ist, so ist Schwarz auf Weiß für den Buchdruck besser geeignet. Schauen Sie sich ruhig ein wenig in den Einstellungen um. Sie werden feststellen, dass Xfce sehr individuell gestaltet werden kann. Auch das Terminal kann detailliert angepasst werden. Das von uns genutzte Farbschema BlackOnLightYellow wird jedoch nicht in den globalen Einstellungen konfiguriert, sondern unter Datei|Einstellungen direkt im Menü des Terminalfensters.

Tipp: Bestätigung notwendig?

Je nach Konfigurationstool ist unter Xfce das Bestätigen der Änderungen über die Schaltfläche Apply bzw. OK notwendig oder auch nicht. In einigen Fällen reicht die Änderung der Einstellung, und sie wird spätestens nach dem Schließen des Konfigurationsdialogs sofort übernommen. Achten Sie aber darauf, dass viele der Konfigurationstools eine fixe Größe haben und unter Umständen länger sind als der angezeigte Bildschirminhalt. Das bedeutet, dass die Schaltflächen zur Bestätigung evtl. unten nicht zu sehen sind. In diesem Fall ist eine Anpassung des sichtbaren Bereichs bzw. der Auflösung notwendig.

Falls Sie an dieser Stelle die Konfiguration der Netzwerkschnittstellen als Teil der Systemkonfiguration vermissen, verweisen wir Sie auf Abschnitt 3.3. Dort gehen wir detailliert auf dieses Thema ein. Zunächst wollen wir Sie jedoch ein wenig mit der Kommandozeile von Linux vertraut machen.

3.2   Workshop: Die wichtigsten Linux-Befehle

Wer sich mit Linux bereits grundlegend auskennt, wird an dieser Stelle vermutlich nicht mehr viel lernen können. Für alle Leser, die bisher noch keine oder nur wenig Berührung mit Linux hatten, gilt es jedoch, jetzt aufzupassen! Nur mit einem soliden Grundverständnis für die Linux-Shell ist es möglich, sinnvoll mit Kali Linux oder anderen Linux-Plattformen zu arbeiten.

Hinweis: Grafische Oberflächen und Kommandozeilen

Um es an dieser Stelle klarzustellen: Wir selbst sind begeisterte Fans von guten grafischen Oberflächen und wissen deren Vorteile durchaus zu schätzen! Aber um ehrlich zu sein, spielt Linux seine ganze Stärke oftmals erst auf der Kommandozeile aus. Viele Befehle sind aus gutem Grund kommandozeilenbasiert und haben keine grafische Oberfläche, da die Komplexität nur sehr schwer in Menüs und grafischen Oberflächen abzubilden ist.

Während Windows-User (zu Recht!) eine schöne, grafische Oberfläche von einem Programm erwarten, sind Linux-User hier oft ganz anders gepolt: In der Regel sind die richtig interessanten Features unter der Oberfläche auf der Kommandozeile versteckt. Und dies gilt natürlich erst recht für eine auf Sicherheit spezialisierte Linux-Distribution wie Kali Linux.

Wo wir Sie also nun derartig motiviert haben, sich mit der Kommandozeile auseinanderzusetzen, legen wir auch gleich los.

3.2.1   Orientierung und Benutzerwechsel

Legen wir los: Öffnen Sie ein Terminalfenster, um die nachfolgenden Erläuterungen direkt nachzuvollziehen. Das Fenster zeigt die Kommandozeile, wie in Abbildung 3.10 dargestellt.

[Bild]

Abb. 3.10: Die Kommandozeile im Terminalfenster

Der Prompt zeigt Ihnen, in welchem User-Kontext (hier: eric), auf welchem System (hier: kali) und in welchem Verzeichnis (~) Sie arbeiten. Die Tilde (~) steht für das eigene Home-Verzeichnis. Mit pwd (für print working directory) können Sie dies überprüfen. Wir befinden uns in /home/eric, da wir in diesem Beispiel als Benutzer eric angemeldet sind. Mit ls (für list) zeigen Sie den Inhalt dieses Verzeichnisses an (vgl. Abbildung 3.11).

[Bild]

Abb. 3.11: Das Home-Verzeichnis

Die Ausgabe ist farblich codiert. Dabei steht z.B. Blau für ein Verzeichnis, Grün für ausführbare Dateien und die Standard-Schriftfarbe (hier: schwarz) für normale Dateien. Der Befehl ls hat zwei wichtige Optionen:

Sie können Optionen in vielen Linux-Befehlen auch direkt kombinieren, wie das folgende Beispiel zeigt:

[Bild]

Abb. 3.12: Die ausführliche Ausgabe von ls mit Zusatzinformationen inklusive versteckte Dateien

Werfen wir kurz einen Blick auf den Eintrag für die (versteckte) Datei .zshrc, die benutzerspezifische Einstellungen zum Verhalten der Z-Shell (also der Standard-Shell für Kali Linux) enthält, wie z.B. die Darstellung der Farben oder das Erscheinungsbild des Prompts. Ihren Eintrag können Sie direkt anzeigen lassen, wie Abbildung 3.13 zeigt.

[Bild]

Abb. 3.13: Der Eintrag für .bashrc

Die erste Spalte (von links) zeigt den Dateityp an. Ein d steht hier z.B. für Verzeichnis (Directory), während das Minus () für eine normale Datei steht. Die nächsten neun Spalten geben die Rechte für den Besitzer, die zugeordnete Gruppe und alle anderen an, wie Abbildung 3.14 zeigt.

[Bild]

Abb. 3.14: Das Linux-Rechtesystem kennt drei Berechtigungsstufen.

Jeweils drei Zeichen sind hierfür reserviert, die immer an derselben Stelle stehen, wenn das Recht gesetzt ist:

Im Fall rwxr-xr-x hätte der Besitzer also das Recht lesen/schreiben/ausführen (rwx), während die Gruppe und alle anderen nur lesen/ausführen (r-x) haben. Für die Datei .zshrc bedeutet dies, dass der Besitzer lesen und schreiben darf, während alle anderen die Datei nur lesen dürfen (rw-r--r--).

Wer jetzt über die Z-Shell (Zsh) gestolpert ist: Seit Kali 2020.4 hat die Z-Shell (Zsh) die Linux-Standard-Shell Bash als Default-Shell abgelöst. Auf anderen Linux-Distributionen ist jedoch nach wie vor die Bash vorherrschend.

Vorsicht: Das Ausführen-Recht bestimmt – nicht die Dateiendung!

Ob eine Datei ausführbar ist oder nicht, entscheidet nur das x an der entsprechenden Stelle. Im Gegensatz zu Windows entscheiden nicht die Dateiendungen über den Dateityp – auch wenn es bei Linux ähnliche Konventionen gibt. Für eine normale Textdatei, die nicht gerade ein ausführbares Skript enthält, ergibt das Setzen des Ausführungsrechts natürlich keinen Sinn. Andererseits müssen Sie sicherstellen, dass Skripts oder ein ausführbares Programm immer das Ausführungsrecht (x) für die gewünschte Benutzergruppe (Besitzer, Gruppe bzw. alle anderen) haben, damit das Skript oder Programm auch ausgeführt werden darf.

Das Bereitstellen von Skripts sollten wir uns – zumindest in den Grundzügen – einmal genauer anschauen, da zum professionellen Hacking und Penetration Testing früher oder später auch das eine oder andere selbst geschriebene Skript gehört! Lassen Sie uns also im Folgenden einige Grundsteine legen, die Sie im späteren Verlauf Ihrer Studien sicherlich nützlich finden werden.

3.2.2   Von Skripts und Dateiberechtigungen

Stellen Sie durch Eingabe von cd (ohne weitere Parameter) sicher, dass Sie sich in Ihrem Home-Verzeichnis befinden. Durch Eingabe von nano skript.sh erstellen Sie eine neue Textdatei namens skript.sh im aktuellen Verzeichnis und es öffnet sich der Editor nano.

[Bild]

Abb. 3.15: Der beliebte Editor nano

Bitte geben Sie nun die in Abbildung 3.15 gezeigten Zeilen ein. Wir erstellen damit ein kleines Shell-Skript, das »Hallo Welt« im Terminal ausgibt. In der ersten Zeile definieren wir mit #!/bin/sh den Interpreter (hier die Standard-Shell des Systems), mit der das Skript interpretiert werden soll. Sie heißt »Shebang-Zeile«.

Haben Sie die Zeilen eingegeben, können Sie mit Strg+O und anschließender Bestätigung des Dateinamens die Datei speichern. Mit Strg+X verlassen Sie den Editor. In Abbildung 3.15 sehen Sie unten die Hilfe zur Bedienung des Editors, wobei das Dach (^) für Strg steht. Den Verzeichniseintrag der erstellten Datei betrachten wir folgendermaßen:

eric@kali:~# ls -l skript.sh
-rw-r--r-- 1 eric eric 53 Jun 14 11:41 skript.sh

Lassen Sie sich nicht irritieren: Der Prompt wird hier in der klassischen Art dargestellt, das spielt aber inhaltlich aber keine Rolle. Betrachten Sie die Berechtigungen. Bisher ist maximal Lesen und Schreiben für den Besitzer erlaubt. Derzeit können Sie das Skript nicht starten.

Um dieses Skript nun ausführbar zu machen, müssen wir die Berechtigungen ändern und das Recht x hinzufügen. Hierzu gibt es verschiedene Möglichkeiten. Die einfachste Form, die uns an dieser Stelle genügen soll, ist folgender Befehl:

eric@kali:~# chmod +x skript.sh 

Dies fügt allen drei Berechtigungsgruppen das Ausführen-Recht hinzu.

Hinweis: chmod mit Buchstaben oder Ziffern

Viele Admins nutzen den Befehl chmod 755 <Skriptdatei>. Dies bewirkt in den meisten Fällen dasselbe. Die Ziffern ergeben sich dabei aus den Wertigkeiten der Rechte für die jeweiligen Spalten (rwx = 4+2+1). Für Benutzer, Gruppe und Welt ergibt sich damit jeweils ein Wert zwischen 0 und 7. 755 steht also für rwxr-xr-x.

Die Datei wird nun auch in Grün angezeigt, wie die erneute Eingabe von ls -l skript.sh zeigt. Sie starten das Skript aus dem gleichen Verzeichnis, indem Sie »./« davor schreiben, wie nachfolgend gezeigt:

eric@kali:~# ./skript.sh
Hallo Welt

Dabei steht der Punkt in der Pfadangabe für das aktuelle Verzeichnis, sodass die angegebene Skript-Datei im aktuellen Verzeichnis gesucht wird. Während bei Windows in der Eingabeaufforderung das jeweils aktuelle Verzeichnis mit in der Pfad-Variablen enthalten ist, müssen wir bei Linux in der Regel den Pfad zum Skript angeben. Dabei hat auch Linux eine Pfad-Variable, deren Inhalt wir uns folgendermaßen anschauen können. Die folgende Ausgabe ist verkürzt:

eric@kali:~# echo $PATH
/usr/local/bin:/usr/bin:/bin/:usr/local/games:/usr/games

Jeder Pfad ist von anderen durch einen Doppelpunkt getrennt. Alle Skripts und Programme, die sich in einem der angegebenen Verzeichnisse befinden, können direkt ohne Pfadangabe aufgerufen werden. Der Befehl ls z.B. befindet sich unter /bin und ist nichts anderes als ein Programm, das die entsprechende Funktion »Anzeigen des Verzeichnisinhalts« implementiert. Die meisten Linux-Befehle sind solche Programme, die z.B. entweder in /bin, /sbin, /usr/local/bin, /usr/local/sbin oder /usr/bin gespeichert sind und – dank der PATH-Variablen – von überall ohne Angabe des Pfads aufgerufen werden können.

Als aufmerksamer Leser werden Sie jetzt vielleicht irritiert sein: Einige der oben genannten Pfade sind nicht in der Pfadvariable enthalten. Haben Sie bitte noch einen kleinen Moment Geduld, wir kommen direkt im nächsten Abschnitt darauf zurück und klären dies auf. Zunächst liegt uns noch der folgende Hinweis am Herzen.

Tipp: Lernen Sie programmieren!

Es wird vermutlich nicht allzu lange dauern, bis Sie feststellen, dass vieles unter Linux über Skripts, also kurze Programme, die in sogenannten »Skriptsprachen« geschrieben sind, geregelt ist. Hierzu zählen z.B. Shell-Skript (Bash/Zsh), aber auch Python, Ruby oder Perl.

Erfahrungsgemäß ist es sehr nützlich, sich einige Grundkenntnisse in verschiedenen Programmiersprachen anzueignen, da auch viele Exploits, also Angriffe auf bekannte Schwachstellen, als Code-Fragmente zur Verfügung gestellt werden und oftmals an die Situation angepasst werden müssen. Ein Beispiel dafür lernen Sie in Kapitel 27 Buffer-Overflow-Angriffe kennen.

Mit soliden Grundkenntnissen in der Programmierung ist es Ihnen möglich, ein fortgeschrittenes Level zu erreichen und in die Profi-Liga der Hacker und Penetrationstester aufzusteigen. Aber falls Sie bisher noch nicht programmiert haben, machen Sie sich jetzt deswegen keine Sorgen, immer ein Schritt nach dem anderen. Sie können dieses Wissen schrittweise auf- und ausbauen. In diesem Buch setzen wir keine Programmierkenntnisse voraus.

3.2.3   Arbeiten mit Root-Rechten

In älteren Kali-Versionen war der Standardbenutzer immer der Superuser root. Er ermöglicht den Zugriff auf alle Systemressourcen und darf auf einem Linux-System buchstäblich alles. Root ist damit in seinen Rechten noch weitreichender ausgestattet als der Administrator-Account unter Windows.

Wie bei vielen anderen Distributionen schon länger gängig, wurde bei dem Versionssprung zu Kali Linux 2020.1 auch das Sudo-Konzept eingeführt. Danach ist der Superuser root aus Sicherheitsgründen nicht mehr als Login-User verfügbar. Stattdessen wird bei der Installation ein nicht-privilegierter Benutzer angelegt, mit dem der Anwender standardmäßig arbeitet. Im Beispiel in diesem Kapitel ist das der Benutzer eric, bei vorkonfektionierten Kali-Systemen ist das kali mit gleichlautendem Passwort, wir hatten das bereits früher thematisiert.

Dieser Paradigmenwechsel schafft allerdings auch eine Menge Probleme. Viele Programme laufen nur mit Root-Rechten. Andere (insbesondere grafische) Anwendungen benötigen jedoch die Umgebung eines normalen Benutzers und sind nicht bereit, mit dem Benutzer root gestartet zu werden. Damit müssen wir in einigen Szenarien den Benutzer wechseln. Wie Sie das bewerkstelligen, zeigen wir Ihnen in diesem Abschnitt.

Den Befehl sudo nutzen

Wenn nur ein nicht-privilegierter Benutzer auf dem System bereitsteht, wie lässt sich dann das System administrieren? Die Antwort lautet: sudo. Wird der Befehl sudo einem anderen Befehl vorangestellt, so wird dieser mit Root-Rechten ausgeführt. Die Voraussetzung hierfür ist jedoch, dass der nicht-privilegierte Benutzer, der diesen Befehl ausführt, Mitglied der Gruppe sudo ist.

Aus Platzgründen sind die nachfolgenden Screenshots mit einem Standard-Prompt erstellt worden. Inhaltlich ändert sich jedoch nichts.

Schauen wir uns das also kurz an: Die Datei /etc/group enthält die Benutzergruppen des Systems. Der Befehl grep ermöglicht die Suche nach einem Begriff unter Angabe der Suchdatei(en). Werfen Sie mit grep und einem entsprechenden Suchfilter doch mal einen kurzen Blick in die oben angegebene Datei. Abbildung 3.16 zeigt, wie es geht und dass der Benutzer eric der betreffenden Gruppe zugeordnet ist.

[Bild]

Abb. 3.16: Der Eintrag für die Gruppe sudo in /etc/group

Hinter dem Gruppennamen folgen durch Doppelpunkt getrennt ein x als Platzhalter für ein etwaiges Gruppenpasswort sowie die Gruppen-ID (hier: 27) und anschließend (ggf. durch Komma getrennt) alle Benutzer, die dieser Gruppe zugeordnet sind. Jeder Benutzer, der dieser Gruppe angehört, darf also den Befehl sudo nutzen und damit administrative Befehl ausführen. Betrachten Sie das Beispiel aus Abbildung 3.17, in dem der Benutzer eric den Befehl apt update ausführen möchte. Dies gelingt erst mit sudo und nachdem er sein Passwort eingegeben hat, um sich zu authentisieren.

[Bild]

Abb. 3.17: Administrationsbefehle erfordern sudo

Der Befehl apt update wird mit sudo im Kontext von root ausgeführt. Sie müssen sudo vor jeden Befehl setzen, der administrative Rechte erfordert. Allerdings werden Sie für einige Minuten nach der ersten Verwendung des Befehls nicht erneut nach dem Passwort gefragt. Möchten Sie generell nicht mehr nach dem Passwort gefragt werden, können Sie folgenden Befehl nutzen:

sudo dpkg-reconfigure kali-grant-root 

Hier können Sie einstellen, dass die Privilegien-Eskalation mit sudo ohne Passwort möglich ist. Nach einer erneuten Anmeldung mit Ihrem Benutzer werden Sie nicht mehr nach einem Passwort gefragt. Das hebelt allerdings auch den Sicherheitsmechanismus von sudo weitgehend aus.

Eine Root-Shell erzeugen

Nun ist es oft lästig, ständig den Befehl sudo vor einen anderen Befehl zu setzen. Daher können Sie auch eine sogenannte »Root-Shell« öffnen, um dauerhaft im Kontext von root zu arbeiten. Hierzu gibt es zwei Befehle, die gleich wirken:

sudo su - 

oder

sudo -i 

Beide haben zur Folge, dass eine Shell, also die CLI-Arbeitsumgebung, im Kontext von root geöffnet wird. Dabei werden die Umgebungsvariablen für den jeweiligen Benutzer geladen und die Shell-Konfiguration angepasst. In Abbildung 3.18 können Sie erkennen, dass die PATH-Variable angepasst wurde und z.B. ein direkter Pfad zum Home-Verzeichnis von root hinzugekommen ist. Dafür muss root auf den komfortablen Start der Games verzichten, da diese nun nicht mehr im Pfad liegen. Er wird es verkraften ...

[Bild]

Abb. 3.18: Mit sudo -i zu root

Der neue Prompt zeigt an, dass die Shell nun im Kontext von root läuft. Auch die Raute am Prompt-Ende (#) ist ein gutes Indiz für Root-Rechte in der Shell. Weiterhin können Sie erkennen, dass apt update nun auch ohne sudo aufgerufen werden kann. Möchten Sie die Root-Shell beenden, geben Sie exit ein und gelangen so wieder in die Shell Ihres nicht-privilegierten Benutzers zurück.

Tipp: Root-Terminal direkt starten

Seit Kali 2021.3 können Sie optional auch direkt ein Root-Terminal starten, indem Sie über den Pfeil rechts neben dem Terminalsymbol in der Leiste das Root-Terminal auswählen. Es wird als rotes Symbol dargestellt. Grundsätzlich ist die Arbeit mit root nicht ungefährlich, weil auch potenziell gefährliche Systembefehle, die root absetzt, sofort ausgeführt werden. So können z.B. mit einem einzigen Befehl problemlos ganze Verzeichnisbäume gelöscht werden, und im Gegensatz zu Windows verfügt Linux auf der Kommandozeile über keinen Papierkorb und keine Undo-Funktion. Trotzdem ist es oft einfacher, mit root zu arbeiten, um sich das ständige sudo vor jedem Administrationsbefehl zu ersparen.

[Bild]

Abb. 3.19: Das Root-Terminal starten

Wir gehen in diesem Buch grundsätzlich davon aus, dass Sie im Terminal als root arbeiten. Falls es notwendig ist, den nicht-privilegierten Benutzer zu verwenden, weisen wir Sie an der entsprechenden Stelle darauf hin. Ansonsten sollten Sie darauf achten, in welchem Kontext Sie sich befinden. Funktioniert ein Befehl nicht oder startet eine Anwendung nicht, prüfen Sie, ob Sie sich im richtigen Kontext befinden und ggf. sudo nutzen müssen.

3.2.4   Das Dateisystem und die Pfade

Lassen Sie uns nun einen kleinen Rundgang durch das Linux-System machen. Die drei wichtigsten Befehle hierzu sind cd, ls und pwd. Mit cd / gelangen Sie in das Root-Verzeichnis (/), also ganz nach oben im Dateisystem-Baum. Hier befinden sich diverse Verzeichnisse (vgl. Abbildung 3.20).

[Bild]

Abb. 3.20: Das Root-Verzeichnis bzw. die Wurzel des Dateisystems (/)

Gehen wir die wichtigsten kurz durch. Bitte wechseln Sie jeweils in das beschriebene Verzeichnis und betrachten Sie den Inhalt, um sich ein Bild zu machen. Nutzen Sie hierzu den Befehl cd folgendermaßen:

Hinweis: Relative und absolute Pfadangaben

Was heißt hier »absolut« und »relativ«? Beginnt eine Pfadangabe mit /, ist sie absolut (z.B. cd /media/cdrom). Egal, wo Sie sich gerade befinden, der Pfad ist vollständig definiert. Im Gegensatz dazu beginnen relative Pfadangaben ohne führenden Slash (/) und beziehen sich auf den Weg ausgehend vom aktuellen Verzeichnis. Mit cd ../bin wechseln Sie aus dem aktuellen Verzeichnis (wo immer das auch ist) eine Ebene höher und von dort aus in das (Unter-)Verzeichnis bin. Dieses muss dort natürlich existieren.

Nachfolgend nun also einige wichtige Verzeichnisse Ihres Kali-Linux-Systems:

Wichtig: Das Dateisystem verstehen lernen

Schauen Sie sich diese Verzeichnisse unbedingt einmal in Ruhe an, um ein wenig Gefühl für die Umgebung zu bekommen. Einige Verzeichnisse werden Sie im Laufe Ihrer Studien und Ihrer Tätigkeit als Ethical Hacker häufig besuchen.

3.2.5   Dateien und Verzeichnisse erstellen, kopieren, löschen etc.

Wenn Sie mit der Kommandozeile unter Linux arbeiten möchten, sind einige Grundkenntnisse hinsichtlich der Dateiverwaltung recht nützlich. Nachfolgend spielen wir ein wenig mit Dateien und Verzeichnissen, um Ihnen die Arbeit mit den dazu notwendigen Befehlen näherzubringen. Machen Sie mit:

Wechseln Sie in Ihr Home-Verzeichnis /root. Erstellen Sie mit nano gulugulu.txt die gleichnamige Datei und schreiben Sie ein paar Zeilen hinein – der Inhalt ist irrelevant. Schließen Sie nano anschließend wieder. Erstellen Sie ein neues Verzeichnis /root/MyDocs folgendermaßen:

root@kali:~# mkdir /root/MyDocs 

Kopieren Sie nun die Datei gulugulu.txt in dieses Verzeichnis:

root@kali:~#  cp /root/gulugulu.txt /root/MyDocs/gulugulu.txt 

Wir nutzen hier die absoluten Pfadangaben. Sie könnten hierfür auch cp gulugulu.txt MyDocs schreiben, wenn Sie sich im Home-Verzeichnis befinden. Linux erkennt, dass MyDocs ein Unterverzeichnis ist, und kopiert die angegebene Datei gulugulu.txt in dieses Verzeichnis.

Vergewissern Sie sich, dass die Datei dort liegt:

root@kali:~# ls MyDocs 

Der Befehl ls erkennt ebenfalls, dass MyDocs ein Unterverzeichnis ist, und zeigt dessen Inhalt an. Benennen Sie die (Original-)Datei /root/gulugulu.txt in gulugulu.old um:

root@kali:~# mv gulugulu.txt gulugulu.old 

Beachten Sie auch hier, dass Sie sich in ~ (also dem Home-Verzeichnis) befinden müssen, um diesen Befehl ohne absolute Pfadangaben nutzen zu können. Vergewissern Sie sich zunächst mit ls, dass die Datei jetzt gulugulu.old heißt. Löschen Sie nun diese Datei:

root@kali:~# rm gulugulu.old 

Mit ls sehen Sie, dass die Datei tatsächlich weg ist. Ein leeres Verzeichnis können Sie mit rmdir löschen. Doch rmdir MyDocs schlägt mit folgender Meldung fehl:

rmdir: konnte "MyDocs/" nicht entfernen: Das Verzeichnis ist nicht leer 

Sie können dieses Verzeichnis samt Inhalt löschen, indem Sie den Befehl rm rekursiv (-r) einsetzen:

root@kali:~# rm -r MyDocs 

Dies löscht das angegebene Verzeichnis. Seien Sie jedoch damit vorsichtig – es gibt bei Linux auf der Kommandozeile keinen Papierkorb und keine Undo-Funktion! Was geschehen ist, ist geschehen!

Aufgabe: Verzeichnisse aufräumen

Spätestens jetzt wissen Sie, wie Sie auf einem Linux-System Ordnung schaffen können, indem Sie nicht mehr benötigte Dateien löschen. Erinnern Sie sich noch an unser Skript skript.sh aus Abschnitt 3.2.2? Für diese Datei haben wir keine Verwendung mehr. Testen Sie Ihre neuen Linux-Skills: Wechseln Sie in Ihr Home-Verzeichnis und räumen Sie etwas auf.

3.2.6   Dateien anzeigen

Egal, ob Skripts oder README-Dateien: Viele Dateien sind textbasiert und können im Terminal betrachtet werden. Das kleine Programm cat zeigt den kompletten Inhalt einer Datei an. Dabei kommt cat nicht etwa von dem süßen Schmusetierchen, sondern von »concatenate«, englisch für zusammenfügen. Und obwohl cat z.B. zwei Dateien zusammenfügen kann, wird es in vielen Fällen doch nur als simples Ausgabeprogramm für Textdateien genutzt. Üben wir das gleich einmal und lassen uns die Liste mit lokalen Benutzern ausgeben. Diese befinden sich in der Datei /etc/passwd:

root@kali:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
[...]

Listing 3.1: Inhalt der Datei /etc/passwd (verkürzte Darstellung)

Am Anfang jeder Zeile stehen die User. Bis auf root und kali, bzw. dem bei der Installation angelegten User, sind anfangs alle anderen Einträge System-User, um die wir uns nur in speziellen Fällen kümmern müssen. Haben Sie eigene Benutzer eingerichtet, werden diese in der Datei am Ende angefügt. Wichtig ist jedoch, dass cat die Ausgabe auf einen Schlag durchführt und wir ggf. über den Scrollbalken des Terminalfensters zurückgehen müssen, um den Anfang der Ausgabe zu sehen.

Tipp: Programmausführung abbrechen

Sollten Sie cat einmal versehentlich ohne Angabe einer Datei aufrufen, so wartet das Programm auf eine Eingabe (die natürlich nicht erfolgt). Genau wie die meisten anderen kommandozeilenbasierenden Programme können Sie cat über die Tasten-Kombination Strg+C abbrechen.

Um einen längeren, textbasierten Inhalt seitenweise auszugeben, dient der Befehl less. Hierbei handelt es sich um einen sogenannten »Pager«, mit dessen Hilfe Sie sich innerhalb der Ausgabe einer Datei bewegen können. Er wird prinzipiell genauso wie cat aufgerufen, also in diesem Fall less /etc/passwd. Nachdem er eine Seite ausgegeben hat, wartet er, dass Sie entweder mit den Cursortasten (hoch und runter) weitergehen oder mit Leertaste eine ganze Seite weiterblättern. Dass die Ausgabe noch weitergeht, sehen Sie in der letzten Zeile:

[Bild]

Abb. 3.21: less wechselt in einen interaktiven Modus.

Während Sie durch die Ausgabe blättern, wird in der letzten Zeile ein Doppelpunkt (:) angezeigt. Das Dateiende erkennen Sie an (END). Durch Drücken von q können Sie die Pager-Ausgabe verlassen und gelangen zum Prompt zurück. Der Pager less ist ein nützliches, kleines Tool, das Sie sehr bald zu schätzen wissen werden, wenn Sie mit Linux arbeiten.

3.2.7   Dateien finden und durchsuchen

Immer wieder werden Sie vor der Herausforderung stehen, sich orientieren zu müssen:

Hierzu gibt es eine Reihe von nützlichen Befehlen, die wir Ihnen im Folgenden einmal kurz vorstellen möchten.

which

Wir beginnen mit etwas ganz leicht Verdaulichem. Sie erinnern sich an den Befehl ls? In welchem Verzeichnis lag er doch gleich? Dies verrät Ihnen der Befehl which:

root@kali:~# which ls
/usr/bin/ls

Der Befehl ls liegt also in /usr/bin. Versuchen wir which für cd:

root@kali:~# which cd
root@kali:~#

Keine Ausgabe bedeutet in diesem Fall, dass which nicht erfolgreich war. Hintergrund hierzu ist, dass cd einer der in der Shell eingebauten (built-in) Befehle ist. Hierzu gehört z.B. auch help.

Dies ist jedoch die Ausnahme, die allermeisten Befehle sind als eigenständige Programme in Verzeichnissen abgelegt. Zu den wichtigsten zählen /usr/bin und /usr/sbin. Die Verzeichnisse /bin und /sbin sind symbolische Verlinkungen auf die gerade genannten. Sie sind alle auch in der PATH-Variablen enthalten.

locate

Während which nur für Befehle funktioniert, können Sie mit locate jede beliebige Datei im Dateisystem finden, die die angegebene Zeichenfolge im Namen enthält. Suchen wir z.B. nach Dateien, die »ssh« im Namen haben, sieht die Suche folgendermaßen aus:

root@kali:~# locate ssh 

Die Ausgabe der Liste ist sehr lang. Sie wird noch länger, wenn Sie Groß- und Kleinschreibung ignorieren wollen und die Option -i hinzufügen. Für die Suche greift locate auf eine Datenbank zurück. Um diese (z.B. nach der Installation neuer Software) zu aktualisieren, nutzen Sie den Befehl updatedb. Er benötigt Root-Rechte und empfiehlt sich auch bei der erstmaligen Nutzung von locate, um den aktuellen Stand sicherzustellen.

grep

Den Befehl grep haben wir Ihnen bereits kurz vorgestellt. Möchten wir im obigen Beispiel insbesondere die Konfigurationsdateien von SSH betrachten, beschränken wir die Suche auf das Verzeichnis /etc. Hierzu können Sie den Befehl grep einsetzen, den wir direkt an den ersten Befehl ansetzen. Betrachten Sie die folgende Befehlsverkettung. Kleiner Hinweis: Das Dach (^) erzeugen Sie in der Kommandozeile durch ^+Leertaste:

root@kali:~# locate -i ssh | grep ^/etc 

Was passiert hier? Zunächst wird die Ausgabe des Befehls locate in eine sogenannte »Pipe« (der senkrechte Strich) umgeleitet. Dabei handelt es sich um einen virtuellen Kanal, der zwei Befehle miteinander verbindet und die Ausgabe des ersten Befehls als Eingabe des nachfolgenden Befehls bereitstellt.

Auf der anderen Seite der Pipe wartet grep und verarbeitet die Ausgabe von locate weiter. Mit grep können Sie nach Ihren Bedürfnissen Filter setzen. Dieser lautet im Beispiel ^/etc. Damit werden alle Zeilen angezeigt, die mit /etc beginnen (dafür sorgt das Dach: ^). Mit -i können wir auch grep mitteilen, dass die Groß- und Kleinschreibung ignoriert werden soll (ist in diesem Beispiel zwar nicht nötig, schadet aber auch nicht). Im Ergebnis wird die Ausgabe deutlich und auf das Wesentliche gekürzt:

root@kali:~# locate -i ssh | grep ^/etc
/etc/ssh
/etc/X11/Xsession.d/90x11-common_ssh-agent
/etc/default/ssh
/etc/init/ssh.conf
/etc/init/ssh.override
/etc/init.d/ssh
[...]
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
/etc/ssh/sshd_config
/etc/ufw/applications.d/openssh-server
/etc/xdg/autostart/gnome-keyring-ssh.desktop
[...]

Listing 3.2: Die Ausgabe von locate wird mit grep gefiltert.

So können Sie grep also nutzen, um die Ausgabe von Befehlen zu filtern. Doch grep kann insbesondere auch den Inhalt von Dateien durchsuchen. Nehmen wir an dieser Stelle einmal an, Sie möchten die Konfigurationsdatei für den SSH-Server identifizieren. Sie wissen, dass es ein Feature namens »X11Forwarding« gibt, das in dieser Form in der Datei genannt wird. Was Sie also tun müssen, ist, alle Dateien im Verzeichnis /etc inklusive Unterverzeichnisse nach dieser Zeichenkette zu durchsuchen. Hierzu nutzen Sie grep folgendermaßen:

root@kali:~# grep -ri x11forwarding /etc/
/etc/ssh/sshd_config:X11Forwarding yes
/etc/ssh/sshd_config:# X11Forwarding no

Mit der Option -r durchsuchen wir Verzeichnisse rekursiv, also inklusive aller Unterverzeichnisse. In diesem Fall spielte die Option -i übrigens eine Rolle, da wir zwar nach dem Begriff in Kleinbuchstaben suchen, dessen exakte Schreibweise aber entweder nicht kennen oder der Einfachheit halber nicht berücksichtigen möchten. Im Ergebnis findet grep genau eine Datei /etc/ssh/sshd_config, die die Zeile X11Forwarding aufweist, in diesem Fall sogar zwei Mal, inklusive einer Kommentarzeile, die mit # beginnt.

Und tatsächlich ist dies die gesuchte Konfigurationsdatei. Woher Sie das wissen können? Das zeigen wir Ihnen gleich im nächsten Abschnitt.

3.2.8   Die Man-Pages: Hilfe zur Selbsthilfe

Die Man-Pages sind die Standard-Dokumentationen unter Linux. Dabei steht »man« für »Manual«, also Handbuch, und manifestiert sich in dem kleinen, gleichlautenden Befehl man. Die meisten Linux-Programme, Tools und Bibliotheken bringen diverse Man-Pages mit. Dies sind Hilfe-Seiten, in denen Sie sich einen Überblick über die Funktion eines Programms oder einer Datei verschaffen können. Hier werden die Syntax, verfügbare Optionen, verwendete Konfigurationsdateien und die Verwendung des Programms erläutert.

Hier dazu gleich ein praktisches Beispiel. Geben Sie folgenden Befehl ein:

man sshd_config 

Angezeigt wird die Man-Page von sshd_config:

[Bild]

Abb. 3.22: Die Man-Page zu sshd_config

Gleich aus dem Namenseintrag wird ersichtlich, dass es sich um die Konfigurationsdatei für den SSH-Daemon handelt. Dahinter verbirgt sich nichts anderes als die Server-Komponente von SSH. Wie zu erkennen, ist der Name des Daemons sshd. Auch hierfür existiert ein Eintrag, den Sie mit man sshd aufrufen können. Dazu beenden Sie zuvor mit q die aktuelle Man-Page.

Natürlich existiert nicht für jede Datei unter Linux eine Man-Page – nur für die wichtigsten Konfigurationsdateien finden Sie entsprechende Einträge. Dafür können Sie allerdings mit ziemlicher Sicherheit davon ausgehen, dass die allermeisten Befehle eine Man-Page mitbringen.

Hinweis: Man-Pages dienen der kurzen Übersicht

Falls Sie vorhaben, Linux mithilfe der Man-Pages zu erlernen, werden Sie vermutlich recht schnell frustriert aufgeben – Man-Pages sind nicht dazu gedacht, Ihnen die Details der Anwendung eines Programms oder einer Konfigurationsdatei zu erläutern. Sie dienen zur Übersicht und zur Recherche nach bestimmten Parametern oder Optionen. Möchten Sie Linux-Befehle grundsätzlich verstehen und anwenden lernen, sollten Sie auf Tutorials im Internet oder andere Quellen zurückgreifen. Je routinierter Sie jedoch in der Arbeit mit Ihrem Linux-System werden, desto häufiger wird Ihnen ein kurzer Blick in die Man-Page eines Befehls oder einer Komponente die gesuchten Informationen liefern können.

3.2.9   Dienste starten und überprüfen

Bleiben wir noch einmal kurz bei unserem SSH-Beispiel. SSH, die Secure Shell, ist ein äußerst nützliches Werkzeug zur Remote-Administration von Linux-Systemen. Es ist sehr wahrscheinlich, dass Sie früher oder später ebenfalls die Vorteile von SSH nutzen möchten und Ihr Kali Linux oder andere Linux-Systeme »remote« administrieren (oder hacken) wollen. Zudem kommen Sie in den praktischen Beispielen der folgenden Kapitel häufiger in die Situation, SSH anzuwenden.

Zunächst müssen wir sicherstellen, dass der SSH-Daemon sshd läuft. Mit dem Befehl ps -ef lassen Sie sich alle derzeitig laufenden Dienste auf Ihrem System anzeigen. Testen Sie es aus!

Da die Ausgabe teilweise sehr lang sein kann, nutzen wir erneut grep zum Filtern:

root@kali:~# ps -ef | grep sshd
root 1576 1561 0 16:17 pts/1 00:00:00 grep sshd

Die einzige Ausgabezeile oben bezieht sich auf die Ausführung des Befehls grep selbst – aber vom SSH-Daemon ist zunächst weit und breit keine Spur. Mithilfe des Befehls systemctl können wir Dienste verwalten. Der Befehl erfordert Root-Rechte, muss also ggf. mit sudo aufgerufen werden. Die Syntax lautet folgendermaßen:

systemctl <start|stop|restart|reload|status> <Dienstname> 

Die meisten Dienste haben traditionell ein sogenanntes »Init-Skript« zum Verwalten des Dienstprozesses. Meistens ist der Dienstname leicht zu erraten, jedoch nicht immer. Wie der Name des gesuchten Dienstes konkret lautet, finden wir meistens heraus, indem wir das Verzeichnis mit den Init-Skripts, /etc/init.d, betrachten und einmal scharf hinschauen:

[Bild]

Abb. 3.23: Viel Auswahl zu ssh ist nicht vorhanden ...

Es ist demnach zu vermuten, dass der SSH-Dienst den Namen ssh hat. Möchten wir also den SSH-Dienst starten, lautet der Befehl folgendermaßen:

systemctl start ssh 

Der Befehl wird stillschweigend ausgeführt. Keine Ausgabe ist bei Linux meistens eine gute Ausgabe. Eine erneute Suche in der Prozessliste zeigt den Daemon nun an:

root@kali:~# ps -ef | grep -i sshd
root 1524 1 0 15:47 ? 00:00:00 /usr/sbin/sshd -D
root 1576 1561 0 16:17 pts/1 00:00:00 grep sshd

Sie können dies auch in der Übersicht der gebundenen Ports sehen. Hierzu nutzen wir den Befehl netstat in der Form wie in Abbildung 3.24:

[Bild]

Abb. 3.24: Der SSH-Daemon bindet sich an TCP-Ports.

Wie zu sehen, taucht sshd in der Liste der gebundenen Ports auf. Die Optionen werden nachfolgend kurz erklärt:

Eine moderne Alternative zum Befehl netstat ist ss. Dieser kurze (in Deutschland leider wegen der beiden Buchstaben negativ konnotierte) Befehl kann mit denselben Parametern aufgerufen werden wie netstat.

Aufgabe: Mit SSH eine Remote-Session aufbauen

Da der SSH-Serverprozess nun auf Ihrem Kali Linux gestartet ist, können Sie sich mit einem SSH-Client Ihrer Wahl (z.B. dem frei verfügbaren PuTTY) mit Kali über das Netzwerk von einem anderen Computer verbinden. Dazu steht Ihnen, wie bei der lokalen Anmeldung, der Benutzer kali bzw. der von Ihnen während der Installation erstellte Benutzer zur Verfügung. Testen Sie dies an dieser Stelle einmal aus.

Zur Diensteverwaltung sollten Sie im Hinterkopf behalten, dass der Systemstart-Prozess vor einiger Zeit von SysVinit auf Systemd umgestellt wurde. Früher wurden die Dienste mit dem Befehl service gesteuert. Die oben angesprochenen Init-Skripts sind oft nur noch aus Kompatibilitätsgründen vorhanden, mittlerweile werden die Dienste über Systemd etwas anders gestartet. Um den Status eines Dienstes, wie z.B. SSH zu überprüfen, können Sie den folgenden Befehl eingeben, wie in Abbildung 3.25 gezeigt:

[Bild]

Abb. 3.25: Den Status eines Dienstes prüfen

Damit wollen wir unseren Linux-Rundgang im Rahmen des Workshops erst einmal beenden. Im weiteren Verlauf werden wir an einigen Stellen noch weitere Befehle einführen, doch mit den hier gezeigten Grundlagen sollten Sie erst einmal mit Ihrem Kali Linux zurechtkommen.

3.3   Die Netzwerk-Konfiguration anzeigen und anpassen

Nutzen Sie Kali Linux in verschiedenen Umgebungen, so müssen Sie die Konfiguration der Netzwerk-Schnittstelle (standardmäßig eth0) in vielen Fällen anpassen. Im Folgenden zeigen wir Ihnen die kommandozeilenbasierte Methode der Schnittstellenverwaltung. Etwas weiter unten erfahren Sie, wie Sie menübasiert arbeiten können.

3.3.1   IP-Adresse anzeigen

Die derzeitige IP-Konfiguration sehen Sie mit ifconfig:

[Bild]

Abb. 3.26: ifconfig zeigt die Schnittstellen-Konfiguration.

Insbesondere die IPv4- und IPv6-Adressen gehen aus der Ausgabe hervor. Ein alternativer Befehl hierzu ist ip addr show bzw. einfach nur ip a.

3.3.2   Routing-Tabelle anzeigen

Mit netstat -nr lassen Sie sich die IPv4-Routing-Tabelle, und damit auch das Default-Gateway (Ziel: 0.0.0.0), anzeigen (siehe Abbildung 3.27).

[Bild]

Abb. 3.27: Die Kernel-Routing-Tabelle

Dabei stehen die Optionen -n für numerisch (ohne Namensauflösung) und -r für die Routing-Tabelle. Den Befehl netstat haben Sie ja bereits kennengelernt, er ist sehr flexibel einsetzbar. Eine Alternative zur Anzeige der Routing-Tabelle ist ip route show (für IPv4) und ip -6 route show (für IPv6). Die Darstellung der Ausgabe weicht etwas ab und ist nicht ganz so übersichtlich. Beide Befehle lassen sich wieder abkürzen durch ip r bzw. ip -6 r.

3.3.3   DNS-Server anzeigen

Mit cat /etc/resolv.conf können Sie sich die DNS-Server-Konfiguration anzeigen lassen, wie Abbildung 3.28 zeigt.

[Bild]

Abb. 3.28: Die Liste der Nameserver

Sie könnten die hier eingetragenen Werte mittels nano /etc/resolv.conf überschreiben, dies ist jedoch nicht empfehlenswert. Wie die Kommentarzeile anzeigt, werden die Einträge von einer Komponente namens NetworkManager erzeugt. Dieser ist in der GUI integriert und sollte für die Verwaltung der Schnittstellen und IP-Konfiguration verwendet werden. Traditionell existiert eine Datei /etc/network/interfaces, über die die Schnittstellen konfiguriert werden können. Enthält diese Datei Konfigurationseinstellungen, so überschreiben sie die Einstellungen des NetworkManagers. Wir beschränken uns an dieser Stelle auf die bevorzugte grafische Methode.

3.3.4   Konfiguration der Schnittstellen

Zur Konfiguration einer Schnittstelle gelangen Sie entweder über das Startmenü unter den Einstellungen, indem Sie Erweiterte Netzwerkkonfiguration auswählen. Alternativ rechtsklicken Sie auf das Netzwerksymbol in der Leiste oben und wählen Verbindungen bearbeiten aus dem Kontextmenü aus. Es öffnet sich in jedem Fall die App Netzwerkverbindungen, in der Sie die zu konfigurierende Schnittstelle via Doppelklick zur Bearbeitung öffnen. Alternativ können Sie auch die Schnittstelle markieren und auf das Bearbeitungssymbol klicken, wie in Abbildung 3.29 gezeigt.

[Bild]

Abb. 3.29: Die Netzwerk-Konfiguration in den Einstellungen

Nun können Sie im Register IPv4-Einstellungen die Konfiguration anpassen.

Das Dialogfenster ist weitgehend selbsterklärend. Für eine feste IP-Konfiguration ändern Sie die Methode von Automatisch (DHCP) auf Manuell und tragen die Werte über die Schaltfläche Hinzufügen ein, sinngemäß wie in Abbildung 3.30 gezeigt. Mehrere DNS-Server-Adressen trennen Sie mit Komma. Es empfiehlt sich, in unserer Laborumgebung IPv6 zu deaktivieren, hierzu wechseln Sie in den Reiter IPv6-Einstellungen und wählen als Methode Deaktiviert.

[Bild]

Abb. 3.30: Manuelle Netzwerk-Konfiguration in der GUI

Haben Sie die Änderungen vorgenommen, klicken Sie auf Speichern. Wichtig ist jedoch, dass Sie die betreffende Schnittstelle manuell re-initialisieren müssen, um die Änderungen zu übernehmen. Dazu rechtsklicken Sie erneut auf das Netzwerksymbol in der Leiste und entfernen das Häkchen vor Netzwerk aktivieren, wie in Abbildung 3.31 gezeigt. Im Anschluss aktivieren Sie das Netzwerk erneut durch Setzen des Häkchens. Die unter Umständen gezeigte Warnmeldung, dass das Netzwerk getrennt wurde, ist irreführend und kann ignoriert werden.

[Bild]

Abb. 3.31: Die Änderungen werden erst nach einem Schnittstellen-Reset aktiv.

Rechtsklicken Sie erneut auf das Netzwerksymbol und wählen Verbindungsinformationen, können Sie die aktuelle Konfiguration betrachten. Alternativ nutzen Sie die Befehle ip oder ifconfig, netstat -nr sowie cat /etc/resolv.conf, um die Konfiguration zu überprüfen.

3.4   Software-Installation und -Update

Auch wenn bei einer Standard-Installation von Kali Linux die meisten Tools und Programme bereits vorinstalliert sind, kommt es hin und wieder doch vor, dass Sie noch ein Programmpaket benötigen, das nachinstalliert werden muss. Zudem sollten Sie Ihr System stets auf dem aktuellen Stand halten. Der einfachste Weg hierzu ist der folgende Befehl:

apt update && apt dist-upgrade 

Damit werden durch apt update die aktuellen Paketlisten gelesen und mit dem lokalen Stand synchronisiert und über die Befehlsverknüpfung && anschließend mit apt dist-upgrade aktualisiert. Im Unterschied zum einfachen apt-get upgrade geht apt-get dist-upgrade etwas weiter und versucht, spezielle Abhängigkeiten intelligent aufzulösen. Meistens ist das die bessere Wahl.

Hinweis: apt oder apt-get?

Wer schon länger mit Debian-Systemen arbeitet, kennt apt-get. Es wird nach wie vor unterstützt und kann verwendet werden. Das Tool apt ist eine Weiterentwicklung und eine Art Frontend zu apt-get und apt-cache. Es zeigt u.a. den Installationsprozess mit einem Fortschrittsbalken an und ist damit etwas benutzerfreundlicher.

3.4.1   Die Paketlisten aktualisieren

Vor jeder Software-Installation sollten Sie die Paketlisten aktualisieren. Dies geschieht mit dem bereits bekannten Befehl apt update. Anschließend erfolgt dann die Installation der gewünschten Software, wie im nachfolgenden Abschnitt beschrieben.

Bei Kali Linux kommt es allerdings vor, dass es bei der Paketlisten-Aktualisierung Fehlermeldungen hagelt. In diesem Fall finden Sie (sinngemäß) Zeilen der folgenden Art:

The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <devel@kali.org> 

Dies liegt daran, dass Kali ein Rolling-Release-System nutzt und daher die Repositorys regelmäßig mit der neuen Kali-Version aktualisiert. In entsprechenden Abständen werden dann auch neue GPG-Schlüssel erstellt, die dazu dienen, die Respository-Quelle zu authentisieren. Die Signaturen sind mithilfe der veralteten Schlüssel nicht zu validieren und führen zu obigen Fehlermeldungen. Hier hilft aktuell (Mitte 2023) noch folgender Befehl (es handelt sich um ein großes Oh, keine Null):

wget -q -O - https://archive.kali.org/archive-key.asc  | sudo tee /etc/apt/trusted.gpg.d/myrepo.asc 

Damit laden Sie den aktuellen Archiv-Schlüssel herunter und integrieren diesen in den lokalen GPG-Schlüsselbund. Im Anschluss sollte apt-get update wieder ohne Fehler funktionieren.

3.4.2   Installation von Software-Paketen

Kommen wir noch einmal kurz zu gezielten Updates. Möchten Sie ein bestimmtes Paket updaten, so können Sie dieses einfach mit dem folgenden Befehl erneut installieren:

apt install <Paketname> 

Das Debian-Paketmanagement, das auch in Kali Linux arbeitet, erkennt, dass es eine aktuellere Version eines Pakets gibt, und installiert das Update.

Noch nicht installierte Pakete können Sie über apt install <Paketname> installieren, wie in Abbildung 3.32 am Beispiel des IRC-Clients Hexchat gezeigt.

[Bild]

Abb. 3.32: Software-Installation mithilfe von apt-get

Wie in der Abbildung zu sehen, werden Abhängigkeiten automatisch aufgelöst und Sie müssen die Installation manuell bestätigen, wobei auch Enter reicht, da J die Default-Option ist. Letzteres können Sie über die Option -y im Befehl apt automatisieren. Ansonsten läuft der Installationsprozess in der Regel problemlos durch. Anschließend können Sie auf das Programm Hexchat über das Terminal zugreifen, indem Sie schlicht hexchat eingeben. Die Verwendung wollen wir hier nicht vertiefen.

3.4.3   Software suchen

Meistens ist es tatsächlich so einfach – aber natürlich nicht immer. Wissen Sie z.B. nicht genau, wie ein Paket heißt, so können Sie über apt search oder apt-cache search nach einem Begriff suchen. Nehmen wir an, Sie suchen nach einem Web-Proxy und haben den Namen des Serverdienstes vergessen. Dann könnte Ihre Suche wie in Abbildung 3.33 gezeigt aussehen.

[Bild]

Abb. 3.33: Suche nach Software

Anhand der Beschreibung erkennen Sie, dass squid das gewünschte Paket ist, das Sie im nächsten Schritt installieren können. Alle anderen damit zusammenhängenden Pakete werden bei Bedarf automatisch mitinstalliert.

3.4.4   Entfernen von Software-Paketen

So einfach wie die Installation ist auch das Entfernen von Software-Paketen. Hierzu nutzen Sie den folgenden Befehl, wenn Sie nur das Paket selbst, nicht jedoch die Konfiguration einer Software (in der Regel unterhalb von /etc/) entfernen möchten:

apt remove <Paket> 

Installieren Sie das betreffende Paket zu einem späteren Zeitpunkt erneut, so können Sie auch wieder auf die alte Konfiguration zurückgreifen und müssen diese nicht erneut erstellen. Möchten Sie jedoch alles, was mit dem Paket bzw. der Software zusammenhängt, restlos entfernen, nutzen Sie den folgenden Befehl:

apt purge <Paket> 

Dies umfasst auch die Konfigurationsdateien einer Software. Beachten Sie, dass im Rahmen der Abhängigkeitsauflösung installierte Pakete nicht automatisch mit deinstalliert werden. Versuchen Sie andererseits, Pakete zu deinstallieren, von denen andere Pakete abhängig sind, so werden Sie gewarnt und müssen die Deinstallation explizit bestätigen. Meistens ist das dann aber keine gute Idee ...

3.5   Zusammenfassung und Prüfungstipps

Werfen wir einen Blick zurück: Was haben Sie gelernt, wo stehen Sie und wie geht es weiter?

3.5.1   Zusammenfassung und Weiterführendes

Kali Linux ist unsere wichtigste Plattform, von der wir im Laufe dieses Buches die meisten Hacking-Aktionen durchführen werden. Für alte Linux-Hasen gab es in diesem Kapitel sicher nicht allzu viel Neues zu lernen. Aber gerade für die nicht so versierten Linux-Benutzer dürfte dieses Kapitel vorab eines der wichtigsten gewesen sein und das Fundament für ihre weitere Arbeit mit Kali Linux darstellen. Nur wenn Sie die Plattform Ihrer Hacking-Tools verstehen, können Sie damit effektiv in der Praxis arbeiten.

Daher haben wir Ihnen in diesem Kapitel eine grundlegende Einführung sowohl in Kali Linux als auch ganz allgemein in die Verwendung eines Linux-Systems angeboten. Je nach Vorkenntnissen haben Sie hoffentlich einige nützliche Informationen mitnehmen können, die Sie in Ihrer zukünftigen Arbeit mit Kali Linux unterstützen.

Sie haben nun die grundlegende Arbeit mit Kali Linux kennengelernt und wissen, wie Sie sowohl mit den menübasierten Elementen der grafischen Oberfläche als auch im Terminal mit der Kommandozeile arbeiten können. Sie haben diverse grundlegende Linux-Befehle kennengelernt, die Sie im Laufe Ihrer Arbeit als Penetration-Tester noch häufig zum Einsatz bringen werden.

Aber damit ist das Ende der Fahnenstange noch nicht erreicht. Bei Bedarf werden Sie in diesem Buch weitere Tools bzw. Linux-Befehle kennenlernen, mit denen Sie die gestellten Aufgaben erledigen können. Dies umfasst ggf. auch das eine oder andere kleine Skript. Aber keine Sorge, wir halten es zweckmäßig und sachdienlich.

3.5.2   CEH-Prüfungstipps

Der CEH erwartet keine expliziten Linux-Kenntnisse von Ihnen, auch kein explizites Wissen über Kali, Parrot OS oder eine andere Linux-Distribution. Es ist aber möglich, dass vereinzelt Kommandozeilenbefehle interpretiert werden müssen. Dies sollte nach der Lektüre dieses Kapitels für Sie kein Problem mehr darstellen. Nachfolgend können Sie jedoch noch einmal Ihre Kenntnisse überprüfen.

3.5.3   Fragen zur CEH-Prüfungsvorbereitung

Testen Sie Ihre Linux-Kenntnisse! Wie viel haben Sie mitgenommen aus diesem Kapitel? Die Lösungen zu den Fragen finden Sie in Anhang A.

  1. Wie werden versteckte Dateien unter Linux gekennzeichnet?

    1. Das X-Recht kennzeichnet die Datei als versteckt.

    2. Ein Punkt vor dem Dateinamen kennzeichnet die Datei als versteckt.

    3. Versteckte Dateien werden durch ein Attribut gekennzeichnet.

    4. Linux zeigt grundsätzlich alle Dateien an und kennt keine versteckten Dateien.

  2. Mit welchem Befehl gelangen Sie als nicht-privilegierter User aus dem Verzeichnis /usr/bin/ nach /etc/init.d/?

    1. cd /usr/bin

    2. cd ../etc/init.d

    3. cd ../../etc/init.d

    4. cd ~/../etc/init.d

    5. cd /usr/../etc/init.d

  3. Wie sieht die sogenannte »Shebang-Zeile« konkret aus, um die Shell als Interpreter für das nachfolgende Skript zu bestimmen?

    1. /bin/sh

    2. #/bin/sh

    3. #!/bin/sh

    4. !#/bin/sh

  4. Mit welchem Befehl wird das Skript test.sh mit dem Ausführen-Recht versehen?

    1. ls -l +x test.sh

    2. chgrp +x test.sh

    3. chown +x test.sh

    4. chmod +x test.sh

  5. Mit welchem Befehl können Sie sich unter Linux keine Informationen zur Netzwerk-Konfiguration anzeigen lassen?

    1. ifconfig

    2. ip addr show

    3. ipconfig

    4. netstat –nr