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