Ebfe's Anti-B00TKIT Projekt

Januar 25, 2010

FASM Portierung/Rewrite

Filed under: News — ebfes @ 2:50 pm

Tja, kaum veröffentlicht, muss schon alles überarbeitet werden 🙂

Gründe: zu viel Code-Ballast. Funktioniert nicht auf einem Test-Laptop. Keine Ahnung wo der genaue Fehler liegt – nur ein paar Vermutungen. Außerdem: mehr als die Hälfte des Codes ist nur für die hübsche CUI da. Fragwürdige Features mit magerer Implementierung.

Außerdem: ich bin MASMler. Nur ist MASM für ein solches Projekt kaum geeignet – stattdessen musste NASM herhalten. Und dieser Assembler  sagt mir gar nicht zu – gewohnte Features von MASM (z.B anonyme Labels) müssen mir Macros realisiert werden, STRUCTs bzw. Äquivalente sind recht zickig und insgesammt kann ich mich mit damit immer noch nicht so wirklich anfreunden. FASM scheint auf den zweiten Blick deutlich angenehmer. Das heißt: jetzt die Gelegenheit nutzen, FASM Portierung bzw. Rewrite machen und KISS Prinzip umsetzen.

Aktuelle „Fehler“:

  • multidrive Unterstützung – wer hat schon mehr als 3-4 Festplatten im Rechner? Tatsächlich haben gut 1/3 des Codes nur mit der Anzeige der Laufwerke bzw. der Möglichkeit, dass es mehr als 6 Laufwerke sein könnten zu tun.
  • HexDump – sieht hübsch aus, nützlich bei der Entwicklung zur Fehlerkontrolle – jedoch muss ca. 1/3 des Codes dafür sorgen, dass es angezeigt wird (da man für 512 Bytes 32 Zeilen a 16 Bytes für die „übliche“ HexDump Darstellung braucht, müssen eine Scrollfunktion/Zeilencounter usw. implementiert werden). Braucht in der Praxis kaum jemand – wenn, dann als „Extended“ Loader umsetzen (bei Bedarf Code nachladen) oder gar als Extra-Loader. Nicht umsonst haben Lilo/Grub/TrueCrypt Loader minimale CUI.
  • Lesen von Tastatur, Reboot/Shutdown/Booten von Festplatte sollten zuverlässiger werden

ToDo v0.4:

  • simple CUI (Liste mit Platten+Hashes) umsetzen
  • Grundfunktionen sollten korrekt sein, möglichst BIOS Bugs berücksichtigen
  • eine sichere Hashfunktion implementieren
Advertisements

Anti B00TKIT v0.3

Filed under: Releases — Schlagwörter: , , — ebfes @ 1:38 pm

Bootloader/Bootdisk, der MBRs=MasterBootRecord der Festplatten ausliest, deren jeweilige CRC16 (CRC-CCITT (0xFFFF)) und BSDSums anzeigt und von der ausgewählten Platte „weiterbooten“ kann.

Sinn:
die MBR enthält üblicherweise einen Bootloader, der das eigentliche Betriebssystem lädt.
Bootkits überschreiben diese Sequenz mit dem eigenen Code. So kann dieser schon vor dem Betriebssystem geladen werden. Üblicherweise hooken Bootkits zusätzlich „Lowlevel“ Lese/Schreibfunktionen – versucht das Betriebssystem bzw. ein AV Programm MBR auszulesen, bekommen sie nur den hübschen Backup der früheren Daten, nicht jedoch die reale MBR zu sehen. Damit können auch jegliche Sicherheitsmechanismen ausgehebelt werden ( berühmtes Bsp: http://www.heise.de/newsticker/meldung/B…859.html). Kurz: man kann ein infiziertes System „von sich selbst aus“ nicht erkennen.

Man kann allerdings von CD booten und sich die MBR anschauen/die Checksums prüfen ;). Was ist aber der Unterschied zu einem modifizierten Knoppix&Co?
Ganz einfach: 2 Sectoren == 1024 Byte großer Loader bootet nunmal sehr schnell. D.h Bootsequenz im Bios einstellen und immer von CD booten – kurzer Blick auf Prüfsummen und „weiterbooten“ sollte auf jedenfall sehr viel flotter gehen als mit einer „schwergewichtigen“ LiveCD ;).

How-To: auf CD/Diskette (falls jemand noch sowas hat 😉 ) oder USB schreiben und im BIOS die Bootsequenz so umstellen, dass zuerst von diesem Medium gebootet wird. Falls alles glatt läuft, sollte eine Liste mit Festplatten + Checksummen sowie einem Dump angezeigt werden.

Screenshot: anti-bootkit 0.3

Tasten:
ESC oder ’s‘ – für Shutdown
BACKSPACE oder ‚r‘ – für Reboot
ENTER oder ‚b‘ – booten vom ausgewählten Laufwerk

Bild_hoch(PageUp) oder ‚c‘ – Hochscrollen im Dump-Fenster
Bild_runter(PageDown) oder ‚v‘ – Herunterscrollen im Dump-Fenster
Pfeiltaste_hoch oder ‚d‘ – Plattenauswahl
Pfeiltaste_runter oder ‚f‘ – Plattenauswahl

Schaut etwas verwirrend aus, sollte aber größtenteils intuitiv sein:
1. Hauptfunktionen werden im Menu angezeigt (jeweiliger Buchstabe highlighted)
2. Festplattenmenü wird über Pfeiltasten und ENTER gesteuert
3. nur die Hex-Dump Ansicht wird mit Bild_hoch/runter Tasten gescrollt.

Vornweg:
Software wurde für den Eigengebrauch geschrieben.
Es weden grundsäztlich nur „Leseoperationen“ verwendet.

Trotzdem: ich übernehme keine Verantwortung für irgendwelche
Schäden sowie kein Support für irgendwas (bei mir läuft’s 😉 – und über
„Ferndiagnose“ kommt man bei diesen Sachen nicht weit – daher will ich
gar nicht erst anfangen zu supporten).

Inhalt:
—————————-
Fertige Images:
boot.iso – zum brennen auf CD
mbrcheck.img – auf USB,Diskette, Festplatte oder „selbstständig“ auf CD brennbares Image.
mbrcheck.realsize.img – dasselbe wie oben, nur nicht auf 1.44MB aufgefüllt, sondern bei 1024Byte gelassen 😉

—————————-
Source:
mbrcheck.asm und defines.inc
—————————-
Makes:
makefile (für Linux-Make) oder make.bat (Win), benötigt NASM.
Erstellt ein fertiges Image.

makecd.bat (Win), benötigt: mkisofs.exe (z.B von hier: http://www.heise.de/ct/…),
erstellt aus dem Image eine bootbare ISO. Alternativ kann man unter Win die übliche
Brennsoftware verwenden, IMG Datei auswählen und die Option „bootbar“ suchen.
Ich gehe davon aus, dass Linuxuser in der Lage sind makecd.bat zu lesen 😉
—————————-

Sonderedition ( mbrcheck v0.3.0-1337.zip ): *ich konnt’s mir nicht verkneifen :)*

Screenshot von Anti-Bootkit 1337 Version

Download:
Anti Bootkit 0.3
Anti Bootkit 0.3.1337

Ini_blog

Filed under: Allgemein — ebfes @ 1:08 pm

So, ist zwar kein SourceForge, passt aber für meine Zwecke irgendwie besser 🙂

  • übersichtlich
  • „fertiges“ Design (muss mich net mit eigener Webseite herumärgern)
  • Kommentere möglich
  • usw.

Sollte das Projekt mal wirklich ausreifen, kann man sich überlegen eigene Seite&Co einzurichten.
Bis dahin gilt: KISS Prinzip.

Bloggen auf WordPress.com.