Shalla Dienstleistungen Produkte Kontakt Login


  Shalla Secure Services KG

   Was tun wenn die Core Utilities kaputt sind?



Manch einer hat es wohl schon erlebt: Ein falscher Befehl und das System kennt die wichtigsten Befehle nicht mehr: ls, cp, mv, ... . Diese Befehle sind Bestandteil des GNU Pakets coreutils.

Im günstigsten Fall kann man die coreutils über ein Update oder ein Backup direkt wieder einspielen. Doch nicht immer hat man diese Möglichkeit. Tatsächlich wird der Umgang mit dem System ohne diese Befehle sehr mühsam. Die Dateien kann man sich in der Regel durch den Shell Befehl "echo" noch anzeigen lassen, doch ohne "cp" wird das Kopieren schwer (tar hilft!). Ohne "mv", "rm", "pwd" und eine Reihe weiterer Befehle funktionieren so manche Update Routinen nicht mehr.
Hier ist es praktisch, wenn man auf einen Satz vorkompilierter coreutils zugreifen kann. Dies ist nicht nur eine Erleichterung, wenn man ein System unbrauchbar gemacht hat, auch bei Systemen, bei denen der Verdacht besteht, dass die Basisbefehle korrumpiert worden sind, ist ein eigener Befehlssatz, auf CD oder USB Stick, sehr nützlich.
Um Einflüsse durch dynamische Bibliotheken und Fremdeinflüsse weitgehend auszuschliessen, sollten die coreutils zu diesem Zweck statisch übersetzt worden sein.

Wer unter Druck ist ("Red nicht lang, ich brauche genau diese binaries"), der mag hier die Version 6.9 der coreutils statisch kompiliert und gelinkt runterladen:

ArchitekturPaketMD5
x86 Linux coreutils-6.9-x86-static 6901ad35d1a2ea2c307ed495d6edd5a3
x86 OpenBSD coreutils-6.9-openbsd-x86-static (stripped) eaaaac2633ad1a8e14655d572dd3439a


Wer lieber seine eigene Version bauen möchte, so wird es gemacht:
  1. Erzeugen des Arbeitsverzeichnisses:

      mkdir /tmp/work
      cd /tmp/work

  2. Download der Orginalquellen von http://www.gnu.org/prep/ftp.html bzw. einem der dort angegeben Mirrors. Zum Beispiel:

      wget http://www.de-mirrors.de/gnuftp/coreutils/coreutils-6.9.tar.gz

    Wer sichergehen gehen möchte, dass er das richtige Paket korrekt erhalten hat, kann die hinterlegte PGP Signatur des Pakets mit der der heruntergeladenen Datei vergleichen.

  3. Auspacken der Quelldaten

      tar xfz coreutils-6.9.tar.gz  

    Auf einigen Systemen kennt der tar Befehl nicht die Option "z" zum automatischen gunzippen des Pakets. In diesem Fall müssen die Quellen in zwei Schritten ausgepackt werden:

      gzip -d coreutils-6.9.tar.gz  
      tar xf coreutils-6.9.tar  


  4. Sicherstellen, dass die CFLAGS den Zusatz "-static" besitzen:

    In bash:
      export CFLAGS="-static -O2 -g"  

    In csh:
      setenv CFLAGS "-static -O2 -g"  

  5. Nun kann man mit configure das Übersetzen vorbereiten.

      cd coreutils-6.9  
      ./configure

    Nur zur Sicherheit sollte man in dem erzeugten Makefile überprüfen, ob wirklich der Zusatz "-static" angenommen worden ist:

      grep CFLAGS Makefile

    Die folgende Antwort sollte zurückkommen:

      CFLAGS = -static -O2 -g


  6. Auf manchen Systemen genügt es nicht, die Programme statisch zu übersetzen, man muss sie auch statisch linken. Zur Sicherheit sollte man daher von vornherein die Quellen mit dem folgenden Befehl übesetzen:

      make LDFLAGS=-static

    Wenn das Übersetzen ohne Abbruch durchläuft, ist man jetzt stolzer Besitzer eines Satzes statisch gebundener Core Utilities, wie man leicht feststellen kann:

      cd src
      ldd wc
      ldd ls
      ldd who
    ...

    Anmerkung:
    Auf einigen System kann das Kompilieren statischer Programme eine grössere Gewaltaktion werden (64bit Solaris auf Sparc, zum Beispiel, sorgt für Unterhaltung).

  7. Abschliessend:

    Mit dem reinen Übersetzen ist es nicht getan. Die Programme sollten auch einwandfrei funktionieren. Also ist Testen angesagt: Liefern die Programme die richtigen Ausgaben zurück? Auch sollte der Aufruf nicht mit in einem Coredump enden. Dies kann passieren! Daher sollte man gründlich testen. Schliesslich möchte man nicht, dass einem diese Programme genau dann im Stich lassen, wenn man sie unbedingt braucht.

    Wenn alles zur Zufriedenheit funktioniert, kann man die statischen Core Utilities auf eine CD brennen oder auf einem USB Stick verewigen (oder jedes andere Speichermedium, das gerade genehm ist).


Flyer:
IT Security Beratung
Netzwerk Analysen
Penetration Testing
Shalla's Blacklists
Profil

Tipps:
Statische coreutils

Referenzen:
Kunden und Partner




  © Shalla Secure Services KG 2015