bk99.de entertain the web since 1997

Linux als Interpreter gedacht

Zusammenfassung

Astrid untersucht Malware, die per kexec Linux ersetzt, und deutet den Kernel als Interpreter ausführbarer Formate. Das untersuchte Skript enthält rund 20 Megabyte Base64-Daten.

Ideen

  • Ein Shellskript bettet Kernel und initramfs als Base64-Daten ein.
  • kexec startet einen neuen Kernel ohne Firmware-Neustart.
  • Ein minimales initramfs kann seine Umgebung vollständig selbst bestimmen.
  • Shebangs weisen dem Kernel einen Interpreter für Textprogramme zu.
  • Dynamische ELF-Dateien benennen ebenfalls einen Interpreter: den Laufzeit-Linker.
  • Aus Kernelsicht sind Shellskripte und ELF-Dateien Varianten derselben Ausführungsentscheidung.

Einsichten

  • Ausführbarkeit entsteht durch Protokolle zwischen Dateiformat, Kernel und Interpreter.
  • Bootmechanismen können zugleich nützliche Adminwerkzeuge und mächtige Angriffspfade bilden.
  • Vertraute Systemgrenzen verschwimmen, sobald Code seine eigene Laufzeitumgebung ersetzt.

Fakten

  • Das extrahierte Archiv enthält einen Linux-Kernel und ein init-Shellskript.
  • kexec kann Kernel und initramfs laden und anschließend direkt ausführen.
  • Der ELF-Header kann den dynamischen Linker als Programminterpreter festlegen.

Empfehlungen

  • Analysiere verdächtige Bootartefakte ausschließlich isoliert und ohne produktive Berechtigungen.
  • Beschränke kexec auf Systeme und Rollen, die diese Funktion benötigen.
  • Prüfe bei Ausführungsfehlern Dateiformat, Shebang und dynamischen Linker getrennt.

Referenzen

Originalartikel lesen

Im Webarchiv suchen