====== Rootkit Workshop ====== Rootkit Workshop im Jahr 2011 Wann: März, Freitag der 11.03.2011 Startzeit: 18:00 **pünktlich** Dauer: Warnung! Was wird lange dauern! Lange Lange Nacht!! Vortragender: corny ===== Was ist das Ziel? ===== * Fun & Profit * Etwas über rootkits lernen und selbst eines schreiben * Etwas tiefer in die Untiefen der Kernkomponenten des Linux Kernel eintauchen * Viel über Betriebssysteme und deren Internals lernen * Ein besseres Verständnis über den Kernel entwickeln * primär für Linux 2.6.26 gedacht, Wissen lässt sich auch auf andere Kernelversionen und Windows übertragen * "Schutzmechanismen" gegen rootkits beurtielen können, Anzeichen für rootkits auf dem eigenen System erkennen lernen * Workshop auch für Leute die nur etwas über Betriebssysteme oder Systemnahe Programmierung lernen wollen ausgelegt. ===== Was ist nicht Ziel? ===== * Es ist nicht Ziel zu lernen wie mal 3vi1l Hax0o0o0o0rt. Dafür gibt es Literatur * http://koeln.ccc.de/ablage/artikel/sk-howto.xml * Wir werden kein super stealth rootkit für den fertigen in-the-wild Einsatz schreiben, werden aber lernen wie es möglich wäre und wie man rootkits erkennen kann ===== Welches Vorwissen wird benötigt? ===== * C * Grundwissen über Linux und Unix * Einige Grundlagen über Betriebssysteme wären nicht schlecht * Optional: x86 Assembler und Wissen über die x86 Architektur. Wir werden mit einem "Hello World" Kernel Modul anfangen. **Oder** (für Leute die nicht Programmieren wollen/können): * Ein großes Interesse theoretisches Wissen über die oben genannten Punkte zu erlernen * Einmal "Hello World" in [[http://de.wikipedia.org/wiki/C_%28Programmiersprache%29|C]] unter linux gebaut * Howto für Ubuntu: http://wiki.ubuntuusers.de/GCC ===== Was soll ich mitnehmen? ===== In Virtualbox oder einem anderen Hypervisor: System: debian lenny 5.0.7 (Desktop Environment nicht notwendig, nur das Base System) http://cdimage.debian.org/cdimage/archive/5.0.8/i386/iso-cd/debian-508-i386-netinst.iso \\ sha1: 5465970b000ce9421c81ae6f1818b83c38aa2d92 debian-508-i386-netinst.iso \\ [[http://www.debian.org/releases/lenny/debian-installer/ | debian lenny Seite mit mehr downloadmöglichkeiten]]\\ Alternativ: https://brezn.muc.ccc.de/~corny/debian-508-i386-netinst.iso Benötigte Pakete: aptitude install linux-source-2.6.26 linux-headers-2.6 build-essential bzw. linux-headers-2.6.26-2-686 Oder Spaß am Zuschauen ohne selbst zu Programmieren Oder persönlichen Programmierknecht Yeah, wir werden ausschließlich auf debian lenny arbeiten, obwohl vor kurzem gesqueezed wurde. In einer VM zu arbeiten empfiehlt sich, denn um zu zitieren "Yes, you can brick your hardware" ==== Links ==== Linux source code browser: \\ http://lxr.linux.no/#linux+v2.6.26.8/ Linux device drivers: \\ http://lwn.net/Kernel/LDD3/ Linux kernel module howto: \\ http://tldp.org/LDP/lkmpg/2.6/html/index.html Linux kernel reference rootkit: \\ https://brezn.muc.ccc.de/~corny/rootkit.tar.gz Linux 2.6 api changes: \\ http://lwn.net/Articles/2.6-kernel-api/ ==== Literatur==== Understanding the Linux Kernel 3rd Edition (covers 2.6) By Daniel P. Bovet, Marco Cesati Publisher: O'Reilly Media Released: October 2000 Pages: 704 === Ergebnisse, Log vom 11.03.2011 === [[https://brezn.muc.ccc.de/~corny/rootkit_praesent.pdf | mini Präsentation]] \\ [[http://tldp.org/LDP/lkmpg/2.6/html/x181.html | Makefile]] \\ [[http://pastebin.com/gmdR6AKt | Hello World ]] \\ [[http://pastebin.com/80m37ZFR | sys_read hook ]] \\ [[http://pastebin.com/MRyrL6rV | stdin hook ]] \\ [[http://pastebin.com/XGnSTAVx | terminal hook ]] \\ [[http://pastebin.com/hnSyLebi | getdents hook ]] \\ Zusammenfassung, etc, siehe Links -> "Linux kernel reference rootkit"