Difference between revisions of "OpenChaos/Malware Linux"

From C4 Wiki
Jump to: navigation, search
(added category)
(add category)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Folien unter http://www.mmweg.rwth-aachen.de/~thorsten.holz/summerschool/malware-unix.pdf
+
Folien des OpenChaos unter [[Image:Openchaos-malware-unix.pdf]]
  
 
==runtime kernel patching==
 
==runtime kernel patching==
* /dev/kmem - raw i/o capability needed from kernel
+
* kmalloc fuer rootkit  code
+
Die Techniken wird im zugehörigen [http://phrack.org/phrack/58/p58-0x07 Phrack-Artikel] beschrieben
* suckit aendert pointer auf syscall in der IDT
 
  
==hide modules by==
+
* /dev/kmem - Capability SYS_RAWIO wird benötigt für Zugriff, ausserdem +rw
* delete module from module list (adore) by changing syscall table
+
* Fünf Schritte:
* modify vfs (adore-ng)
+
** Suche in /dev/kmem nach der Adresse der sys-call-table und Position von kmalloc()
* parasitic module infection (adore-ng optional), changes the module file
+
** Ersetze Position von "ungebrauchtem" sys-call mit Adresse von kmalloc()
* runtime-kernel patching  (suckit) (copy der syscall table ...idt)
+
** Call kmalloc() um Kernelspeicher zu reservieren
* static kernel patching - im kernel image code ablegen
+
** Kopiere code vom rootkit in freien Speicherbereich
 +
** Modifiziere sys-call-table wieder und Aufruf des codes
 +
* SucKIT ändert pointer auf sys-call-table in der IDT
 +
 
 +
== Verstecken von Modulen==
 +
* Löschen des Moduls aus der Modulliste: Ändern des Pointers aus der linked list (adore)  
 +
 
 +
cleaner.c:
 +
int init_module()
 +
{
 +
    if (__this_module.next)
 +
            __this_module.next = __this_module.next->next;
 +
    return 0;
 +
}
 +
 
 +
 
 +
* Verändern des Virtual Filesystems (VFS) (adore-ng)
 +
* "parasitic module infection" (adore-ng - optional)
 +
Verändern eines anderen Moduls, sehr ähnlich zu Virus
 +
 
 +
Die Technik wird im zugehörigen [http://phrack.org/phrack/61/p61-0x0a_Infecting_Loadable_Kernel_Modules.txt Phrack-Artikel] beschrieben
 +
 
 +
* "runtime-kernel patching" (suckit) (copy der syscall table ...IDT)
 +
* "static kernel patching" - im Kernelimage code ablegen
 +
Die Technik wird im zugehörigen [http://www.phrack.org/phrack/60/p60-0x08.txt Phrack-Artikel] beschrieben
  
 
==Sebek==
 
==Sebek==
* baut sk_buff struct und schickt sie an device
+
* baut sk_buff struct und schickt sie an Device
 +
* stealth communication
 +
* vielleicht in rootkit einbauen?
  
 
==Virus==
 
==Virus==
Line 21: Line 46:
  
 
==rootkit hunter==
 
==rootkit hunter==
* chkrootkit
+
* [http://www.chkrootkit.org chkrootkit]
* tiger  
+
* [http://rootkit.nl rkhunter]
 +
* [http://www.nongnu.org/tiger/ tiger]
  
 
==grsec==
 
==grsec==
* grsec, trusted path execution, benutzer koennen keine programme ausfuehren die sie schreiben koennen
+
* grsec, trusted path execution, benutzer können keine programme ausführen, die sie schreiben können
  
 
==Antivirus Virus Linux==
 
==Antivirus Virus Linux==
Line 32: Line 58:
 
* hb-antivir
 
* hb-antivir
  
 
+
[[Category:OpenChaos]][[Category:Events]][[Category:Code]]
 
 
[[Category:OpenChaos]][[Category::Events]]
 

Latest revision as of 19:09, 14 October 2005

Folien des OpenChaos unter File:Openchaos-malware-unix.pdf

runtime kernel patching

Die Techniken wird im zugehörigen Phrack-Artikel beschrieben
  • /dev/kmem - Capability SYS_RAWIO wird benötigt für Zugriff, ausserdem +rw
  • Fünf Schritte:
    • Suche in /dev/kmem nach der Adresse der sys-call-table und Position von kmalloc()
    • Ersetze Position von "ungebrauchtem" sys-call mit Adresse von kmalloc()
    • Call kmalloc() um Kernelspeicher zu reservieren
    • Kopiere code vom rootkit in freien Speicherbereich
    • Modifiziere sys-call-table wieder und Aufruf des codes
  • SucKIT ändert pointer auf sys-call-table in der IDT

Verstecken von Modulen

  • Löschen des Moduls aus der Modulliste: Ändern des Pointers aus der linked list (adore)
cleaner.c:
int init_module()
{
    if (__this_module.next)
            __this_module.next = __this_module.next->next;
    return 0;
}


  • Verändern des Virtual Filesystems (VFS) (adore-ng)
  • "parasitic module infection" (adore-ng - optional)
Verändern eines anderen Moduls, sehr ähnlich zu Virus
Die Technik wird im zugehörigen Phrack-Artikel beschrieben
  • "runtime-kernel patching" (suckit) (copy der syscall table ...IDT)
  • "static kernel patching" - im Kernelimage code ablegen
Die Technik wird im zugehörigen Phrack-Artikel beschrieben

Sebek

  • baut sk_buff struct und schickt sie an Device
  • stealth communication
  • vielleicht in rootkit einbauen?

Virus

  • ELF header infection
  • RST.B Virus

rootkit hunter

grsec

  • grsec, trusted path execution, benutzer können keine programme ausführen, die sie schreiben können

Antivirus Virus Linux

  • f-prot
  • clamav
  • hb-antivir