Linux Crashkurs

Transcription

Linux Crashkurs
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Live Hacking
Einheit Linux Crashkurs
Martin G. Wundram
[email protected]
Martin Wundram
Zur AGENDA
Seite: 1
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Agenda
Inhalt dieser Einheit
1. Kurzeinführung Linux
2. Systemüberblick
3. Distributionen
4. Umgang mit der Shell
5. Prozesse
6. Rund um Dateien und das Dateisystem
7. Benutzerverwaltung
8. Netzwerk
9. Editoren
Martin Wundram
Zur AGENDA
Seite: 2
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Kurzeinführung Linux
Linux
●
●
●
Linux, eigentlich GNU/Linux, ist
ein Multiuser-Multiplattform OS,
das den Linux-Kernel verwendet
Basiert auf GNU und ist UNIXähnlich
Nennenswerte Verbreitung seit
1992
●
●
●
Martin Wundram
Der Kernel von Linus Torvalds
wurde unter die GNU-GPL
gestellt
Modulares Open-Source
Betriebssystem
Entwickler und Nutzer in aller Welt
Zur AGENDA
Seite: 3
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Kurzeinführung Linux
Linux ist nicht UNIX
●
●
●
Linux ist jedoch nicht UNIX
UNIX wurde Anfang der 1970er
in den Bell Laboratories von
AT&T entwickelt
BSD entstand an Universitäten
und hat Stück für Stück AT&TCode gegen eigenen getauscht
●
●
●
Martin Wundram
●
Seit den 1990ern:
FreeBSD, OpenBSD,
NetBSD
Basieren auf 386BSD
Eingetragene Marke der Open
Group
Linux Zur
istAGENDA
Unix-artig (Unixoid)
Seite: 4
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Kurzeinführung Linux
Kernel und Plattformen
●
●
●
Den Kernel gibt es aktuell in drei Versionsreihen: 2.2.X, 2.4.X, 2.6.X
Der Kernel wird für verschiedene Hardware-Plattformen z.T. recht
deutlich angepasst
Linux wird eingesetzt in: PCs, Servern, Supercomputern,
Multimedia-Devices, Mobiltelefonen, Routern, Toastern, ...
Martin Wundram
Zur AGENDA
Seite: 5
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Kurzeinführung Linux
GNU und GPL
●
●
●
Martin Wundram
GNU steht für „GNU's Not Unix“
GNU ist der 1983 begonnene
Versuch, ein zu Unix
kompatibles, jedoch komplett
freies Betriebssystem zu
schaffen
Einfach gesprochen: Die Arbeit
war gut, aber es fehlte ein
leistungsfähiger Kernel -> Linux
Zur AGENDA
Seite: 6
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Kurzeinführung Linux
GNU und GPL
●
●
●
GNU General Public License ist
eine von der Free Software
Foundation erarbeitete Lizenz
Hauptsächlich verbreitet in der
zweiten Version, verfügbar in der
dritten
Einfach gesprochen:
●
●
●
Martin Wundram
Die Software darf für jeden
Zweck verwendet werden
Die Software ist kostenlos
Werke, die auf GPL-Software
basieren, dürfen nur als GPL
weiterverbreitet werden
Zur AGENDA
Seite: 7
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Systemüberblick
Das System Linux
●
●
●
Der Kernel ist monolitisch, im wesentlichen in C geschrieben und
stellt, einfach gesprochen, eine Schnittstelle zwischen Hardware
und regulärer Software dar
Der Kernel lädt Hardwaretreiber, verwaltet Prozesse, teilt
Ressourcen ein und stellt diese Prozessen zur Verfügung
Im und um den Kernel herum gibt es Komponenten/Software, die
diverse Betriebssytemfunktionen übernehmen:
●
Dateisystem
●
Netzwerkstack
●
Systemstart
●
Benutzerverwaltung
●
...
Martin Wundram
Zur AGENDA
Seite: 8
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
Einführung
●
●
●
Martin Wundram
Eine Linux-Distribution ist eine
Zusammenstellung des Kernels
mit (meist) freier Software zu
einem
Gesamtsystem/Betriebssystem
Zweck: Distribution mit oder
ohne Gewinnabsicht
Durch die Arbeit der
Distributoren entstanden ernst
zu nehmende, leistungsfähige
Systeme mit z.T. jeweils
verschiedenen Schwerpunkten
Zur AGENDA
Seite: 9
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
Linux Standard Base
●
●
●
●
Untergruppe der Linux Foundation, LSB-Version 1 seit 2001
Ziel: Definition von Standards und Schnittstellen um die
Kompatibilität zwischen den verschiedenen Distributionen zu
verbessern
Ziel2: Einheitliche Schnittstellen für problemloses Installieren von
Software
Maßnahmen: Festlegen einer Verzeichnisstruktur, ...
Martin Wundram
Zur AGENDA
Seite: 10
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
Live-Linux-Distributionen
●
●
●
●
Martin Wundram
Distributionen, die von CD/DVD,
USB-Sticks oder anderen
Medien booten können
Keine Installation auf Festplatte
nötig
Stattdessen werden die
Programme in eine RAM-Disk
kopiert
Distributionen wie Knoppix oder
Ubuntu lassen sich jedoch auch
auf der Festplatte installieren
Zur AGENDA
Seite: 11
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
Knoppix-STD
●
●
●
●
Martin Wundram
Basiert auf Knoppix
Schwerpunkt liegt auf
Penetration Testing
Verfügbar in Version 0.1 seit
2004, seit dem nichts Neues
http://s-t-d.org/
Zur AGENDA
Seite: 12
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
Knoppix-STD
Am Bootprompt direkt die Taste F2 drücken
Bei „boot:“ eingeben: knoppix lang=de screen=1280x1024
Martin Wundram
Zur AGENDA
Seite: 13
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
Knoppix-STD
●
●
DHCP ist aktiv, wenn dennoch keine Verbindung:
Rechte Taste -> Internet -> Connect -> netcard config -> DHCP
broadcast YES
Text-Editor starten:
Rechte Taste -> Apps -> Utilities -> Nedit
●
Virtuelle Desktops
●
Menü
●
Konsole
Martin Wundram
Zur AGENDA
Seite: 14
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
Backtrack
●
●
●
●
Martin Wundram
Ebenfalls eine Live-LinuxDistribution
Startet von DVD, USB
Schwerpunkt auch auf Penetration
Testing und Netzwerk-Testing
2006 hervorgegangen aus Auditor
Security Collection und
Whoppix/Whax
●
Basiert auf Ubuntu
●
http://www.remote-exploit.org
●
http://www.backtrack-linux.org/
Zur AGENDA
Seite: 15
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
Backtrack
●
●
●
●
●
Martin Wundram
Enthält über 300 Tools in 12
Kategorien
Verwendet KDE und fluxbox als
WM/GUI
Bietet Fülle aktueller Programme:
Firefox, Konqueror, MultimediaPlayer, Kolourpaint, Texteditoren
Einstellungsänderungen können
sogar an die CD (wenn
Multisession) angehängt werden!
Wir verwenden: Backtrack 4 Final
Zur AGENDA
Seite: 16
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
BackTrack
Nach dem Starten im Prompt startx eingeben
Martin Wundram
Zur AGENDA
Seite: 17
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
BackTrack
Rechte Taste auf die Flagge -> Keyboard-Layout wählen
(Daneben: Auflösung ändern)
Martin Wundram
Zur AGENDA
Seite: 18
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Distributionen
BackTrack
●
DHCP ist nicht aktiv:
Konsole öffnen -> dhclient eth0
●
Virtuelle Desktops
●
ps auxww |grep dhc
●
kill $pid
●
Menü
●
Konsole
Martin Wundram
Zur AGENDA
Seite: 19
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Umgang mit der Shell
●
Unix-Shells (oder allgemein Shells) sind traditionell eine interaktive
Schnittstelle für den Benutzer eines Computers
●
●
Schnittstelle zwischen Benutzer und
Betriebssystem/Kernel/Programmen
Eingegebene Befehle werden von der Shell interpretiert und
ausgeführt
Z.B. Aufrufen eines Programms, Interaktion mit einem
Programm
Shells bieten durch Shell-Skripte Automatisierungsfunktionen
●
●
●
Die meisten Unixoiden Systeme bieten verschiedene Shells:
●
Bourne Shell (sh), bash, c-shell, Korn-Shell, ...
●
BackTrack und Knoppix-STD: bash
Martin Wundram
Zur AGENDA
Seite: 20
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Umgang mit der Shell
Martin Wundram
Zur AGENDA
Seite: 21
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Umgang mit der Shell
Manpages
●
Unix-Systeme bieten eingebaute Hilfen
●
Eine davon ist das Manpage-System
●
●
●
●
●
●
●
Abkürzung für "Manual Page"
man <genaues suchwort>
man <section> <genaues suchwort>
apropos <teilwort>
Navigation: Pfeiltasten, Leertaste, Taste „q“ zum Verlassen,
/Suchwort zum suchen (Regex, Case-Sensitive)
man man
man bash
Martin Wundram
Zur AGENDA
Seite: 22
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Umgang mit der Shell
Befehle eingeben, wiederholen, ändern
●
history
Liefert die letzten <500 Befehle
Die jeweiligen Befehle können über !Nummer aufgerufen werden
●
Pfeiltaste nach oben holt den/die letzten Befehle zurück
●
Pos1 und Ende funktionieren auch
●
●
Aufgabe:
Wechseln sie mit dem Befehl cd
nacheinander in die Verzeichnisse /var, /var/log, /root, /, /bin
Geben Sie jeweils nach einem Verzeichniswechsel mit dir den
Verzeichnisinhalt aus
Nutzen Sie dabei die Shell-History
Martin Wundram
Zur AGENDA
Seite: 23
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Umgang mit der Shell
Command Completion
●
●
Aufgabe:
Wechseln sie nun in das Verzeichnis /usr/local/bin
Verwenden Sie nun die Tabulator-Taste:
cd /us<TAB>lo<TAB>b<TAB><ENTER>
Martin Wundram
Zur AGENDA
Seite: 24
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Umgang mit der Shell
STDIN, STDOUT, STDERR
●
●
●
●
Die Standarddatenströme werden von Programmen für
Eingabe-/Ausgabe-Zwecke verwendet
Normalerweise sind alle drei Ströme mit der aktuellen Shell verbunden:
●
Eingaben werden also von dieser gelesen
●
Ausgaben in diese geschrieben
●
Fehler ebenfalls in diese geschrieben
Diese Ströme können problemlos „umgelenkt“ werden:
●
dir /var >/root/output.txt
●
less </root/.bash_history (Anmerkung: less mit „q“ verlassen)
●
cd /nonexistent 2>/root/error.txt
> bedeutet: „Datei anlegen, wenn nicht existent, sonst überschreiben“
>> bedeutet: „Datei anlegen, wenn nicht existent, sonst anhängen“
Martin Wundram
Zur AGENDA
Seite: 25
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Umgang mit der Shell
Die Pipe
●
●
Die Ausgabe eines Programms kann leicht zur Eingabe eines weiteren
Programms gemacht werden und dessen Ausgabe wieder zur Eingabe
des Nächsten...
dir -R /var/log |less
dir -R /var/log |grep -v „^$“ |less
Aufgabe
Überprüfen Sie beide Befehle.
Lassen Sie dann den zweiten Befehl nicht per Pipe in less laufen,
sondern schreiben Sie den Output in eine Datei Ihrer Wahl
●
●
Tee ist sehr praktisch, denn es ist ein T-Stück:
... |tee /root/output.txt
Output wird nun in eine Datei geschrieben und auf die Konsole
Aufgabe
Erweitern Sie den letzten Befehl um ein T-Stück mit tee
Martin Wundram
Zur AGENDA
Seite: 26
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Prozesse
Einführung
●
Linux ist ein Multi-User, Multitasking, Multi-Threaded Betriebssystem
●
●
●
●
●
Es können also mehrere Prozesse parallel laufen und diese können
wiederum mehrere Threads (Einfach gesprochen: Nichteigenständige Teilprozesse) verwenden
Es laufen ständig mehrere Systemprozesse und Dienste (Daemons)
Es können mehrere Benutzer an einem System angemeldet sein und
Prozesse starten und aktiv halten
Ein Benutzer kann mehrere Prozesse in einer Shell starten und
verwalten
Ein Prozess kann sogar gestoppt und in den Hintergrund geschoben
werden
Martin Wundram
Zur AGENDA
Seite: 27
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Prozesse
Aktive Prozesse beobachten und beenden
●
Aufgabe
●
●
●
Beobachten Sie mit top das System und seine Prozesse
Rufen Sie mit ps auxww eine ausführliche Momentaufnahme aller
Prozesse ab
Starten Sie nun eine zweite Konsole
Lesen Sie dort die Einführung/DESCRIPTION der Man-Pages zu
top und ps
● Starten Sie nun hier nocheinmal top
Suchen Sie parallel dazu in der ersten Konsole mit ps auxww |grep
top den entsprechenden Prozess, der in der zweiten Konsole aktiv ist
●
●
●
●
Lesen Sie die Man-Page zu kill
Schauen Sie nach der Prozess-ID des Top-Prozesses und beenden
Sie diesen mit kill <ID>
Martin Wundram
Zur AGENDA
Seite: 28
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Prozesse
Prozesse pausieren und im Hintergrund starten
●
Aufgabe
●
Beobachten Sie erneut das System mit top
●
Drücken Sie jetzt <STRG>-Z
●
●
●
●
Sie befinden sich wieder im Shell-Prompt, top wurde angehalten und
wartet im Hintergrund
Die Shell ist jetzt frei für neue Aufgaben (z.B. das Datum abrufen:
date)
Geben Sie nun fg ein. Top erscheint wieder im Vordergrund, der
Prozess wurde fortgesetzt
Starten Sie top nun mit einem angehängten &: top &
●
Der Prozess wurde im Hintergrund gestartet und kann mit fg in
der Vordergrund geholt werden
Martin Wundram
Zur AGENDA
Seite: 29
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Einführung
●
Philosophie: Everything is a file
●
●
Viele Geräte sind als Datei in die Verzeichnisstruktur eingebunden,
so dass man direkt sämtliche Bits einer Festplatte auslesen oder
eine Datei direkt auf den Drucker kopieren kann
dd if=/dev/hda bs=512 count=1
Es gibt unter Linux keine Laufwerke (also kein C:\)
●
Alle Geräte und Verzeichnisse werden in den Filesystem-Baum
eingehängt
Martin Wundram
Zur AGENDA
Seite: 30
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Wichtige Verzeichnisse
●
/: Dies ist die „Wurzel“
●
/root: Hier liegen die persönlichen Dateien des Superusers
●
/bin: Hier liegen benötigte Basis-Programme
●
/etc: Hier befinden sich die meisten Konfigurationsdateien
●
/home: Hier befinden sich Dateien der System-Benutzer
●
/var/log: Hier befinden sich Protokolldateien
●
/usr: Zusätzliche Programme
●
/proc: Statusinformationen des Kernels, angeboten als virtuelle Dateien
●
/dev: Verbindung zu vielen Geräten, z.B. Raw-Zugriff auf Festplatten
●
/root/Desktop: Dateien des Superusers, die auf dem „Desktop“ liegen,
werden hier gespeichert
Martin Wundram
Zur AGENDA
Seite: 31
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Relativ/Absolut und der Pfad
●
Aufgabe:
●
Lassen Sie sich mit cat /var/log/messages den Inhalt der Log-Datei
ausgeben
Der Pfad zur Datei wird hier absolut angegeben
Wechseln Sie nun mit cd in das Verzeichnis /var/log und geben Sie
mit cat ./messages den Inhalt der Datei aus
●
●
Der Pfad zur Datei wird hier relativ zum aktuellen Verzeichnis
angegeben (Der Punkt bezieht sich auf das aktuelle Verzeichnis)
Wechseln Sie nun mit cd ../.. zurück zur Wurzel
●
●
●
.. bezieht sich auf das jeweils übergeordnete Verzeichnis
Martin Wundram
Zur AGENDA
Seite: 32
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Dateien anzeigen/betrachten
●
Aufgabe:
●
Wechseln Sie nun in das Verzeichnis /etc
●
Geben Sie dort mit cat den Inhalt der Datei shells aus
●
Betrachten Sie nun mit less die Datei passwd
●
head -5 passwd gibt die ersten 5 Zeilen von passwd aus
●
tail -1 passwd gibt die letzte Zeile von passwd aus
Martin Wundram
Zur AGENDA
Seite: 33
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
In Dateien suchen
●
Aufgabe:
●
Bleiben Sie im Verzeichnis /etc
●
Suchen Sie nun mit grep -r -i „root“ * nach
●
●
Allen Dateien, auch in Unterverzeichnissen, die wenigstens
einmal das Wort root enthalten. Dies ungeachtet der
Groß-/Kleinschreibung
Die Funde werden folgend ausgegeben:
● Dateiname: Zeile mit Fund
Martin Wundram
Zur AGENDA
Seite: 34
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Nach Dateien suchen
●
Aufgabe:
●
Wechseln Sie in das Wurzelverzeichnis
●
Suchen Sie nun mit find ./ -iname „*http*“ nach
●
●
Allen Dateien, auch in Unterverzeichnissen, die in ihrem
Dateinamen an irgendeiner Stelle http enthalten. Dabei wird nicht
auf Groß-/Kleinschreibung geachtet
find ist ein sehr mächtiges Tool. Die man-Page enthält einen
ausführlichen Überblick
Martin Wundram
Zur AGENDA
Seite: 35
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Den Typ von Dateien untersuchen
●
●
In unixoiden Systemen hat eine eventuelle Dateierweiterung traditionell
keinerlei Bedeutung (.txt, .exe, ...)
Aufgabe:
●
Untersuchen Sie mit dem Tool file den Dateityp von /etc,
/etc/shadow, /var/log/wtmp, /bin/sh und
/usr/doc/unicornscan/docs/latex2man.tgz
Martin Wundram
Zur AGENDA
Seite: 36
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Metainformationen von Dateien
●
●
Dateien gehören, ähnlich wie bei NTFS, einem Benutzer, einer Gruppe
und haben verschiedene Zugriffsrechte
Aufgabe:
●
Überfliegen Sie die Manpages zu chown, chgrp, chmod
●
Geben Sie in der Shell ein: alias dir=“ls -la“
Martin Wundram
Zur AGENDA
Seite: 37
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Symbolische Links auf Dateien
●
In unixoiden Systemen lassen sich sehr einfach Links auf Dateien und
Verzeichnisse anlegen
●
Hard-Links (hier nicht näher betrachtet)
●
Symbolic-Links
●
●
●
●
Eine einfache Verknüpfung auf eine andere Datei oder ein
anderes Verzeichnis
Das Ziel muss dabei nicht existieren
Eine logische Verknüpfung
Aufgabe: Legen Sie einen symbolischen Link an (ln -s Source Ziel)
Martin Wundram
Zur AGENDA
Seite: 38
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Dateien/Verzeichnisse erstellen, verschieben und kopieren
●
Aufgabe:
●
●
Wechseln Sie in das Verzeichnis /root
Erstellen Sie nun mit mkdir das Verzeichnis „Daten“ und wechseln
Sie hinein
●
Erstellen Sie mit touch die Datei file.txt
●
Prüfen Sie die Datei durch Eingabe von ls -la file.txt
●
●
●
Kopieren Sie nun alle Dateien aus /etc in das aktuelle Verzeichnis
(Tipp: cp -r ...)
Verschieben Sie danach mit mv die Datei file.txt eine
Verzeichnisebene höher
Prüfen Sie abschließend mit df -h wie viel Speicher noch zur
Verfügung steht
Martin Wundram
Zur AGENDA
Seite: 39
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Rund um Dateien und das Dateisystem
Dateien und Verzeichnisse packen und entpacken
●
Aufgabe:
●
●
●
Wechseln Sie in das Verzeichnis /root
Erstellen Sie nun eine komprimierte Archiv-Datei, die alle Dateien
aus /root/Daten enthält:
tar -czf Daten.tgz ./Daten
Erstellen Sie nun das Verzeichnis /root/Daten2, verschieben Sie das
Tarball dorthin und entpacken Sie dieses abschließend:
tar -xzvf Daten.tgz
Martin Wundram
Zur AGENDA
Seite: 40
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Benutzerverwaltung
Einführung
●
●
Linux ist, wie Windows und andere Betriebssysteme, ein MehrbenutzerOS
Es wird unterschieden zwischen Superuser („root“) und normalen
Benutzern
●
●
●
Ein Prozess, der dem Benutzer www gehört, darf nicht auf Dateien
zugreifen, die nur von root gelesen werden können. Dieser Prozess
darf natürlich auch nicht direkt auf Ressourcen eines Prozesses von
root zugreifen
Es gibt Gruppen (/etc/groups)
●
●
Zugriffsrechte werden z.B. über die Datei-Flags geregelt
Nur wer in der Gruppe wheel ist, darf z.B. seine Rechte durch
Eingabe des Root-Passworts zu Root erweitern
Linux verwaltet die Benutzer in /etc/passwd und deren Passwörter in
/etc/shadow (xBSD: /etc/passwd und /etc/master.passwd)
Martin Wundram
Zur AGENDA
Seite: 41
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Benutzerverwaltung
Benutzer-Administration
●
Aufgabe:
●
Geben Sie den Inhalt von /etc/passwd und /etc/shadow aus
●
Ändern Sie mit passwd root Ihr Kennwort
●
Prüfen Sie nun die Änderungen in /etc/shadow
●
●
●
Sperren Sie jetzt Ihre Sitzung (K->Lock Session) und entsperren Sie
diese mit dem neuen Kennwort
Schauen Sie mit w nach, wer zurzeit am System angemeldet ist
Prüfen Sie mit last, wer sich in der Vergangenheit am System
angemeldet hat
Martin Wundram
Zur AGENDA
Seite: 42
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Netzwerk
Einführung
●
●
●
Networking ist eine der großen Stärken unixoider Systeme
Distributionen wie BackTrack sind durch ihre Fülle an Netzwerk-Tools hier
besonders leistungsfähig
Aufgabe:
●
Prüfen Sie durch die Datei /etc/resolv.conf über welchen DNS-Server
DNS-Anfragen aufgelöst werden
●
Prüfen Sie mit dem Tool ping, ob dieser Server auch erreichbar ist
●
Rufen Sie nun die ARP-Tabelle Ihrers Rechners ab: arp -a
Martin Wundram
Zur AGENDA
Seite: 43
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Netzwerk
Rundumschlag :o)
●
Aufgabe:
●
Rufen Sie mit netstat -a –protocol inet eine Übersicht über alle
aktiven Verbindungen und offenen Ports ab
●
Starten Sie einen Ping und prüfen Sie nun parallel erneut mit netstat
●
netstat -rn gibt die IP des Standard-Gateways aus
●
●
Fragen Sie mit host www.tronicguard.com die IP-Adresse des
TronicGuard-Webservers ab
Ein traceroute IP_TRONICGUARD_SERVER offenbart Ihnen den
Weg zwischen Ihrem System und dem anderen
●
Wem gehört die Domain tronicguard.com? whois tronicguard.com
●
Wem gehört die IP des TronicGuard Webservers?
Martin Wundram
Zur AGENDA
Seite: 44
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Netzwerk
Rundumschlag :o)
●
Aufgabe:
●
Überprüfen Sie jetzt die Konfiguration der Netzwerkdevices mit
ifconfig -a
●
Deaktivieren Sie das Netzwerkdevice eth0 mit ifconfig eth0 down
●
Nun den DHCP-Client beenden (ps auxww |grep dhcpd -> kill ...)
●
●
Vergeben Sie händisch eine IP-Adresse mit ifconfig eth0
192.168.70.XXX up
Den DHCP-Client jetzt wieder starten mit dhclient eth0
Martin Wundram
Zur AGENDA
Seite: 45
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Netzwerk
Rundumschlag :o)
●
Aufgabe:
●
Überfliegen Sie die Manpage zu ssh
●
Starten Sie Ihren SSH-Server:
sshd-generate
● /usr/sbin/sshd
Loggen Sie sich per SSH in das System Ihres Sitznachbarn ein und
umgekert:
●
●
●
●
ssh user@host
Wählen Sie als user-name root und erfragen sie das
dazugehörige Passwort
Martin Wundram
Zur AGENDA
Seite: 46
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Netzwerk
Rundumschlag :o)
●
tcpdump ist ein sehr leistungsfähiger Netzwerksniffer
●
●
●
Das heisst, mit tcpdump kann der Netzwerktraffic an einem Interface
ausgelesen und in eine Datei (Capture-File) oder auf die Console
geschrieben werden
Hierbei können mächtige Capture-Filter und Anzeige-Filter
angegeben werden
Aufgabe:
●
●
●
Starten Sie tcpdump
Überfliegen Sie parallel die zugehörige Manpage
Beobachten Sie kurz den Output von tcpdump
Martin Wundram
Zur AGENDA
Seite: 47
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Netzwerk
Rundumschlag :o)
●
●
●
nc (Netcat) ist das Schweizer Taschenmesser unter den Netzwerk-Tools
Es kann Netzwerkverbindungen öffnen und Daten schreiben und aus
diesen lesen
Aufgabe:
●
Lesen Sie die Manpage zu nc
●
Computer 1:
nc -l -p 9000
Computer 2:
●
●
nc IP_COMPUTER_1 9000
Schreiben Sie sich nun gegenseitig Nachrichten
●
●
Martin Wundram
Zur AGENDA
Seite: 48
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Netzwerk
Rundumschlag :o)
●
Aufgabe:
●
Computer 1: nc -l -p 9000
●
Computer 2: cat /etc/shadow |nc IP_COMPUTER_1 9000
●
Probieren Sie nun „Stille Post“:
●
●
●
●
Computer 1: nc -l -p 9000
Computer 2:
● nc -l -p 9001 |tee /root/post.txt |nc IP_COMPUTER_1 9000
Computer 3: nc IP_COMPUTER_2 9001
Schreiben Sie an jedem PC Nachrichten. Was passiert? Warum
erscheint auf Computer 2 nicht aller Text? Warum ist nicht aller
Text in post.txt?
Martin Wundram
Zur AGENDA
Seite: 49
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Netzwerk
Rundumschlag :o)
●
Aufgabe:
●
Wechseln Sie in das Verzeichnis /root
●
Erstellen sie dort das Unterverzeichnis Mirror
●
Wechseln Sie in dieses Verzeichnis
●
●
Per wget http://www.tronicguard.com nun die HTML-Start-Seite
herunterladen und anschauen
Verbinden Sie sich nun per FTP mit der IP 192.168.70.51
ftp 192.168.70.51
● Und laden Sie mit dem Befehl get DATEINAME einige Dateien
herunter
Verlassen sie das FTP-Programm mit quit und prüfen Sie die
heruntergeladenen Dateien
●
●
Martin Wundram
Zur AGENDA
Seite: 50
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Editoren
vi – S/M-Werkzeug?
●
Die Urversion des VI und seiner Derivate ist mittlerweile 32 Jahre alt
●
VI ist ein sehr leistungsfähiger konsolenbasierter Text-Editor
●
Nett ausgedrückt: Nicht jedermanns Sache
●
Den Editor wieder verlassen: <ESCAPE>:q!
●
Änderungen speichern: <ESCAPE>:w
●
In den Eingabemodus wechseln: i
●
Diesen wieder verlassen: <ESCAPE>
●
Aufgabe:
●
●
Erstellen Sie mit dem vi eine neue Datei: vi /root/meintext.txt
Schreiben Sie ein paar Zeilen und anschließend speichern und den
Editor verlassen
Martin Wundram
Zur AGENDA
Seite: 51
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Editoren
joe – ein umgänglicherer Editor?
●
Aufgabe:
●
Öffnen Sie mit joe die gleiche Datei: joe /root/meintext.txt
●
Im joe kann man direkt losschreiben
●
Alles Weitere findet sich über die Hilfe: <STRG>-K H
Martin Wundram
Zur AGENDA
Seite: 52
Februar 2010, v1.1
Live Hacking – Einheit 4720 Linux Crashkurs
Editoren
Grafische Editoren
●
Aufgabe:
●
●
Unter K->Editors->Kwrite findet sich ein komfortabel mit der Maus zu
bedienender Text-Editor
Öffnen Sie mit diesem die Datei /root/meintext.txt
Martin Wundram
Zur AGENDA
Seite: 53