Strings Beispiele: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 119: Zeile 119:
 
         system("/bin/sh");
 
         system("/bin/sh");
 
     }
 
     }
     printf("%s\n", a);:q!:
+
     printf("%s\n", a);
 
     return 0;
 
     return 0;
 
}
 
}
Zeile 125: Zeile 125:
 
</pre>
 
</pre>
 
*gcc forensic-tool.c -o forensic-tool.bin
 
*gcc forensic-tool.c -o forensic-tool.bin
 
  
 
== Aufgaben – Programm ==
 
== Aufgaben – Programm ==

Version vom 9. Februar 2026, 17:18 Uhr

strings – Praktische Nutzung in der IT-Forensik

Ziel

Dieses Kapitel zeigt den praktischen Einsatz des Linux-Werkzeugs strings in der IT-Forensik. Alle Beispiele sind lokal reproduzierbar und basieren auf selbst erzeugten Dateien. Es werden keine externen Samples oder Malware benötigt.

Werkzeug

  • strings
  • file
  • grep
  • gcc

Szenario 1 – Analyse eines verdächtigen Programms

Datei erzeugen

Die Beispieldatei wird lokal erzeugt und simuliert ein Programm mit hartkodierten Artefakten.

  • cat > sample1.c <<'EOF'
#include <stdio.h>
#include <stdlib.h>

int main() {
    printf("Connecting to http://evil.example.com\n");
    printf("user=admin password=secret123\n");
    system("/bin/sh");
    return 0;
}
EOF
  • gcc sample1.c -o sample1.bin

Wo liegt die Datei

  • ls -l sample1.bin

Erste Einordnung der Datei

  • file sample1.bin

Strings extrahieren

  • strings sample1.bin

Zielgerichtete Auswertung

Netzwerkindikatoren
  • strings sample1.bin | grep -Ei 'http|https|ftp'
Zugangsdaten
  • strings sample1.bin | grep -Ei 'user|pass|password'
Systempfade und Shells
  • strings sample1.bin | grep -Ei '/bin/|/etc/'

Forensische Bewertung

  • Das Programm enthält Klartext-Zugangsdaten
  • Es nutzt eine Shell (/bin/sh)
  • Es verweist auf ein externes Netzwerkziel
  • Das Programm wurde nicht ausgeführt

Szenario 2 – Analyse eines Datenträger-Images

Image erzeugen

Es wird ein simuliertes USB-Image mit Klartextartefakten erstellt.

  • dd if=/dev/zero of=usb.dd bs=1M count=5

Strings auf dem Image

  • strings usb.dd

Typische Filter

Mailadressen
  • strings usb.dd | grep '@'
URLs
  • strings usb.dd | grep -Ei 'http|https'

Forensische Bewertung

  • Auch in scheinbar leeren Images finden sich Klartextdaten
  • Gelöschte oder überschrieben geglaubte Inhalte können sichtbar bleiben

Grenzen von strings

  • Keine Zeitstempel
  • Kein Beweis für Ausführung
  • Kein Kontext
  • Nur Hinweisquelle

Typische Einsatzphase

  • Triage
  • Erstbewertung
  • Hypothesenbildung
  • Vorbereitung weiterführender Analyse

Aufgaben

Zusatz – Untersuchungsobjekt Programm

Datei erzeugen

  • cat > forensic-tool.c <<'EOF'
#include <stdio.h>
#include <stdlib.h>

int main() {
    char *a = "Tool version 2.7.4";
    char *b = "build host: ci-runner-03";
    char *c = "build path: /srv/builds/forensic/";
    char *d = "config=/etc/forensic/tool.conf";
    char *e = "log=/var/log/forensic/tool-debug.log";
    char *f = "POST /collector HTTP/1.1";
    char *g = "Host: stats.internal.corp";
    char *h = "X-Auth: Zm9yZW5zaWM6c2VydmljZQ==";
    char *i = "debug shell available";
    if (getenv("FORENSIC_DEBUG")) {
        system("/bin/sh");
    }
    printf("%s\n", a);
    return 0;
}
EOF
  • gcc forensic-tool.c -o forensic-tool.bin

Aufgaben – Programm

Untersuchung
  • Identifiziere Hinweise auf Herkunft und Entwicklungsumgebung.
  • Leite mögliche Kommunikationsziele ab.
  • Bewerte, ob das Programm für den Einsatz auf Produktivsystemen geeignet ist.
  • Benenne Risiken, die sich allein aus den gefundenen Artefakten ergeben.

Zusatz – Untersuchungsobjekt USB-Memory-Stick

Aufgaben – USB-Stick

Untersuchung
  • Ordne die gefundenen Artefakte möglichen Nutzungsszenarien zu.
  • Unterscheide zwischen administrativen und sensiblen Inhalten.
  • Entscheide, welche Funde sofort eskaliert werden müssten.
  • Leite sinnvolle nächste forensische Schritte ab.