USB-Stick Datenrettung mit Linux

2013-05-16 von Mario

Im ersten Schritt muss das “Laufwerk” gefunden werden, in dem der USB-Stick eingebunden wurde.

$ mount

Als Ergebnis wurde unter anderem folgendes angezeigt:

/dev/sdc1 on /media/E800-F6D1 type vfat

Der USB-Stick wurde unter /dev/sdc1 eingebunden. Der nächste Schritt war es, ein Abbild des Sticks zu erstellen.

$ sudo dd if=/dev/sdc1 of=usb-backup.iso

In diesem Fall war der USB-Stick 4 GB groß. Mit einem neuen Konsolenfenster, wurde die Zeit bis zur Fertigstellung des Imagefiles, durch den watch Befehl überbrückt.

$ watch -n 2 ls -lh

Nachdem das Imagefile fertiggestellt war, kam das sleuthkit zum Einsatz. Der Befehl fls listet alle Dateien und Verzeichnisse in einem forensischen Image auf.

$ fls -f fat -d -p usb-backup.iso
Parameter Beschreibung
-f fstype File system type (use ‘-f list’ for supported types)
-d Display deleted entries only
-p Display full path for each file
-r Recurse on directory entries

 

Folgende Treffer wurden angezeigt:

r/r * 5: Testdaten
r/r * 7: geheim.txt

Der Befehl icat (sleuthkit) kopiert Dateien anhand der Inode.

$ icat -f fat usb-backup.iso 7 > tmp.txt

Die Datei geheim.txt und deren Inhalt konnte wiederhergestellt werden.

 

Kategorie: IT Schlagwörter: , , , , ,

Liste aller USB Geräte anzeigen (unter Linux mit C)

2012-11-13 von Mario

Mit diesem Beispiel können alle angeschlossenen USB-Geräte, unter Linux, ausgelesen werden.

Das Ergebnis sieht wie folgt aus.

Zum Vergleich, die Ausgabe von dem Befehl lsusb.

Damit das Programm auch kompiliert, wird eine Library benötigt.

Installation der USB Library

sudo apt-get install libusb-dev

Compile

gcc find_usb.c -o find_usb.o -lusb

 

Code

#include <stdio.h>
#include <stdlib.h>
#include <usb.h>

int main()
{

    struct usb_bus *bus;
    struct usb_device *dev;

    usb_init();
    usb_find_busses();
    usb_find_devices();

    for (bus = usb_get_busses(); bus; bus = bus->next)
    {

        printf("Bus %s \n", bus->dirname);

        for (dev = bus->devices; dev; dev = dev->next)
        {
            printf("Device %s vid=%04X, pid=%04X\n", dev->filename,    
            dev->descriptor.idVendor, dev->descriptor.idProduct);
        }
    }

    return 0;
}

Viel Spaß damit! :)

Kategorie: IT Schlagwörter: , , , , ,