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
  • 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 C unter linux gebaut

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
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”

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

mini Präsentation
Makefile
Hello World
sys_read hook
stdin hook
terminal hook
getdents hook
Zusammenfassung, etc, siehe Links → “Linux kernel reference rootkit”

 
mehrvortraegewagen/rootkitworkshop.txt · Last modified: 2011/03/12 17:55 by corny