Menu Close

Computer Forensik (Vorlesung 8)

Heute bearbeiten wir die erste Übung und besprechen deren Ergebnisse.

Skript-AnfangÜbung 1 – Seite 1
Skript-EndeÜbung 1 – Seite 1

Grundlagen

For \( i \in \mathbb{N}_0 \) let bi denote the i-th byte in a byte string. You copy the bytes b100 b101 ... b1000. How many bytes do you process? What is the answer in the general case bn bn+1 … bm with \( n,m \in \mathbb{N}_0, n \leq m \)?

  1. Fallbezogener Ansatz: 1000 – 100 + 1 = 901
  2. Generischer Ansatz: bm – bn + 1

In computer science you are often confronted with a different organisation of multi-byte values. Two common ways to order the bytes are big-endian and little-endian. Give a definition of both types of endianness.

Bei Big-Endian wird das höchstwertige Byte zuerst gespeichert, das heißt an der kleinsten Speicheradresse. Allgemein bedeutet der Begriff, dass bei zusammengesetzten Daten die größtwertige (höchstrangige) Komponente zuerst genannt wird.

Bei Little-Endian wird dagegen das kleinstwertige Byte an der Anfangsadresse gespeichert bzw. die kleinstwertige Komponente zuerst genannt. Die FAT-Dateisysteme speichern Informationen in Little-Endian.https://de.wikipedia.org/wiki/Byte-Reihenfolge

Datenträgeranalyse

The following Hexdump shows two entries of a partition table within the master boot record. Answer the questions regarding the type, starting LBA address and size of the partitions.

[...]\n00001ce: 0000 0119 83fe 3f1e d920 0600 8678 0100 ......?.. ...x..\n00001de: 0000 010b 85fe 3f18 4bb2 0200 8e6e 0300 ......?.K....n..
[...]
EintragTyp (0x04)Start LBA (0x08)Größe (0x0C)
00001ce0x83 = Linux Native0x000620d9 = 401.6250x00017886 = 96.390 Blöcke
00001de0x85 = Linux Extended Partition Chain0x0002b24b = 176.7150x00036e8e = 224.910 Blöcke

Please draw a graphical outline of the partition layout given by the mmls output.

	Slot	 Start	 	End 		Length 		Description\n00:	Meta	 0000000000 	0000000000 	0000000001 	Primary Table (#0)\n01:	-----	 0000000000 	0000000062 	0000000063 	Unallocated\n02:	00:00	 0000000063 	0000144584 	0000144522 	DOS FAT16 (0x06)\n03:	-----	 0000144585 	0000176777 	0000032193 	Unallocated\n04:	Meta	 0000176715 	0000401624 	0000224910 	Win95 Extended (0x0F)\n05:	Meta	 0000176715 	0000176715 	0000000001 	Extended Table (#1)\n06:	01:00	 0000176778 	0000289169 	0000112392 	NTFS (0x07)\n07:	Meta	 0000289170 	0000401624 	0000112455 	DOS Extended (0x05)\n08:	Meta	 0000289170 	0000289170 	0000000001 	Extended Table (#2)\n09:	-----	 0000289170 	0000289232 	0000000063 	Unallocated\n10:	02:00	 0000289233 	0000401624 	0000112392 	Win95 FAT32 (0x0B)\n11:	00:01	 0000401625 	0000498014 	0000096390 	NTFS (0x07)\n12:	-----	 0000498015 	0000511743 	0000013729 	Unallocated

Nutzung von dd

Copy the first 1000 bytes of vorlesung_forensik_ss15_kap00_inhalt.pdf to the file lecture-start.dd. Use a hex dump viewer to show the correctness of your command.

An dieser Stelle testen wir zwei unterschiedliche Argumentkombinationen, um die Bytes zu kopieren. Die erste Variante arbeitet mit der Blockgröße 1000 Byte und führt diesen Schritt einmal durch. Die zweite Variante arbeitet mit der Blockgröße 1 Byte und kopiert eintausend einzelne Bytes.

$ dd if=vorlesung_forensik_ss15_kap00_inhalt.pdf of=lecture-start.dd bs=1000 count=1\n1+0 Datensätze ein\n1+0 Datensätze aus\n1000 Bytes (1,0 kB) kopiert, 0,000191813 s, 5,2 MB/s
		
$ dd if=vorlesung_forensik_ss15_kap00_inhalt.pdf of=lecture-start2.dd bs=1 count=1000\n1000+0 Datensätze ein\n1000+0 Datensätze aus\n1000 Bytes (1,0 kB) kopiert, 0,00156365 s, 640 kB/s

Wir berechnen die Hashwerte der beiden Dateien, um die Gleichheit zu bestätigen. Wir sehen also, dass es verschiedene Kombinationen gibt, die klug gewählt werden müssen, um Aufgaben einfach und präzise zu erledigen.

$ sha256sum lecture-start2.dd lecture-start.dd \n6e420928cf5917e0837462cd8c18e8b71b7d3a00b3649a0c0c9b03cc76664bfa  lecture-start2.dd\n6e420928cf5917e0837462cd8c18e8b71b7d3a00b3649a0c0c9b03cc76664bfa  lecture-start.dd

Beide Dateien sind somit identisch. Rückwirkend können wir nun sagen, dass die erste Variante deutlich schneller erledigt wurde. Schlussendlich geben wir noch den Hexdump mittels xxd aus.

$ xxd lecture-start.dd \n0000000: 2550 4446 2d31 2e35 0a25 d0d4 c5d8 0a33  %PDF-1.5.%.....3\n0000010: 3720 3020 6f62 6a20 3c3c 0a2f 4c65 6e67  7 0 obj <<./Leng\n0000020: 7468 2035 3937 2020 2020 2020 200a 2f46  th 597       ./F\n0000030: 696c 7465 7220 2f46 6c61 7465 4465 636f  ilter /FlateDeco\n0000040: 6465 0a3e 3e0a 7374 7265 616d 0a78 dac5  de.>>.stream.x..

[...]

Copy the final 1024 bytes of vorlesung_forensik_ss15_kap00_inhalt.pdf to the file lecture-end.dd. Use a hex dump viewer to show the correctness of your command.

Wir können die letzten 1024 Byte adressieren, indem wir 1024 von der Dateigröße subtrahieren und dann 1 addieren: skip=2277751-1024+1.

$ dd if=vorlesung_forensik_ss15_kap00_inhalt.pdf of=lecture-end.dd bs=1 skip=2276728 count=1024\n1023+0 Datensätze ein\n1023+0 Datensätze aus\n1023 Bytes (1,0 kB) kopiert, 0,00317633 s, 322 kB/s

$ xxd lecture-end.dd \n0000000: 3643 4230 3744 3037 3536 3344 4345 3438  6CB07D07563DCE48\n0000010: 3342 3839 4435 3536 453e 5d0a 2f4c 656e  3B89D556E>]./Len\n0000020: 6774 6820 3930 3320 2020 2020 2020 0a2f  gth 903       ./\n0000030: 4669 6c74 6572 202f 466c 6174 6544 6563  Filter /FlateDec

[...]
\n00003b0: 7732 0efa f599 8049 9882 6998 8159 9883  w2.....I..i..Y..\n00003c0: 7958 8045 a8c3 9227 b77e 691e f19d 87f6  yX.E...'.~i.....\n00003d0: 1fe1 9ac9 d30a 656e 6473 7472 6561 6d0a  ......endstream.\n00003e0: 656e 646f 626a 0a73 7461 7274 7872 6566  endobj.startxref\n00003f0: 0a32 3237 3635 3931 0a25 2545 4f46 0a    .2276591.%%EOF.

Vergleichen wir diese Ausgabe mit dem Hexdump der Datei, so finden wir auch hier %%EOF. am Ende der Datei wieder.

You have an image of a small partition denoted by image.dd. Its size is 100 MByte. You want to hide the file picture.jpg in the image, starting at offset 1 MByte of the image. The rest of the image remains unmodified.

Wir kopieren das Bild mittels dd in das Image hinein. Wir erzeugen durch seek=1 den gewünschten Offset im Output-File. Das Flag verwendete Flag notrunc wird in der folgenden Teilaufgabe beschrieben.

dd if=picture.jpg of=image.dd bs=1M seek=1 conv=notrunc

Please enumerate conversion flags of dd, which are reasonable to be used within the securing phase of a forensic investigation.

  1. notrunc: Wird beim Überschreiben von Bytes benötigt, damit das Ende des Output-Files nicht abgeschnitten wird
  2. noerror: Bei einem Lesefehler wird der Prozess nicht unterbrochen
  3. sync: Füllt die Ausgabe mit Nullen auf, wenn ein Fehler auftritt (notwendig beim Einsatz von notrunc)

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index