Ebfe's Anti-B00TKIT Projekt

Februar 6, 2010

Anti B00TKIT v0.6

Filed under: Releases — ebfes @ 11:54 pm

Tja, gleich ein Versionssprung auf 0.6. Portierung/Rewrite nach FASM abgeschlossen. Die GUI wurde komplett überarbeitet (Dumpfenster ist nun „getrennt“, Statusleiste mit Tipps/Meldungen ist hinzugekommen, sollte nun deutlich benutzerfreundlicher sien) und SHA1 Checksummenbldung wurde umgesetzt. Der Code ist um das ~4 fache gewachsen. Deutlich bessere Modularität, Fehlerprüfungen und Status/Fehlermeldungen sowie Fallbacks für die meisten Funktionen wurden umgesetzt. Nun läuft es auf allen getesteten Rechnern UND ist halbwegs lesbar 🙂
Download: antibootkitv0.6.zip

                █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
                █  ▄███████▄ ▄████████▄  ▄███████▄  ▄███████▄ █
                █ █▓▓▓▓▓▓▓▒█ █▓▓▓▓▓▓▓▓█ █▓▓▓▓▓▓▓▒█ █▓▓▓▓▓▓▓▒█ █
                █ █▓▓▓▓▓▓▒▒█ █▓▓▓  ▓▓▓█ █▓▓▓▓▓▓▒▒█ █▓▓▓▓▓▓▒▒█ █
                █ █▓▓█▀▀▀▀▀▀ █▓▓▓ ▓ ▓▒█ █▓▓█▀▀▀▀▀▀ █▓▓█▀▀▀▀▀▀ █
                █ █▓▒█ ▓▒░   █▓▒▒   ▒▒█ █▓▒█ ▓▒░   █▓▒█ ▓▒░   █
                █ █▒▒█▄▄▄    █▒▒▒  ▒▒▒█ █▒▒█▄▄▄    █▒▒█▄▄▄    █
                █ █▒▒▒▒▒█    █▒▒▒▒▒▒▒█  █▒▒▒▒▒█    █▒▒▒▒▒█    █
                █ █▒▒█▀▀▀    █▒▒▒  ▒▒▒█ █▒▒█▀▀▀    █▒▒█▀▀▀    █
                █ █▒▒█ ▓▒░   █▒▒▒   ▒▒█ █▒▒█ ▓▓▒ █ █▒▒█ ▓▒░   █
                █ █▒▒█▄▄▄▄▄▄ █▒▒▒ ░ ▒▒█ █▒▒█ ▓▒▒ █ █▒▒█▄▄▄▄▄▄ █
                █ █▒░░░░░░▒█ █▒░░  ▒░░█ █▒░█ ▓▒░ █ █▒░░░░░░▒█ █
                █ █░░░░░░▒▒█ █░░░░░░░░█ █░░█ ▒▒░ █ █░░░░░░▒▒█ █
                █ ▀████████▀ ▀████████▀ ████ ▒░░ █ ▀████████▀ █
                █ ▄▄▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄███▄▄▄▄▄▄▄▄▄▄ █
                █ █▓▒░▓▓████▒▓███▓▓▒▒▓▓▒▒▓███▓▓▒▒▒▒░░▒▓██▓▓██ █
                █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
                                                  ebfe@inbox.ru
─   ──  ─── ──────────────────────────────────────────────────────── ───  ──   ─

                            .::P:R:E:S:E:N:T:S::.
─   ──  ─── ──────────────────────────────────────────────────────── ───  ──   ─

Anti B00TKIT v0.6

Was ist Anti B00TKIT? Ein Bootloader/eine Bootdisk. Damit kann man den Rechner hochfahren, die Master Boot Record Einträge der Festplatten auslesen, deren CRC-16 und SHA1 Prüfsummen anzeigen und von der ausgewählten Festplatte weiterbooten. Sinn? Der Master Boot Record enthält üblicherweise die Partitionstabelle und einen Bootloader (zumindest auf einer der Festplatten), der das eigentliche Betriebs- system lädt. Siehe dazu den Wikipediaeintrag. Bootkits überschreiben diese Sequenz mit dem eigenen Code. So kann dieser schon vor dem Betriebssystem geladen werden und damit jeglichen Schutz ausgebeln. Zu- sätzlich hooken Bootkits oft die "Lowlevel" Lese/Schreibfunktionen des Systems. Versucht nun das Betriebssystem oder ein Anti-Virus Programm den MBR auszulesen, bekommen es nur den hübschen Backup der früheren Daten, nicht jedoch den realen MBR zu sehen. Damit können auch jegliche Sicherheitsmechanismen ausgehebelt werden. Ein be- rühmtes Beispiel wäre: http://www.heise.de/newsticker/meldung/B.859.html Kurz: durch ein Bootkit infiziertes System kann die eigene Infektion nicht wirk- lich zuverlässig erkennen. Man kann allerdings von CD booten, sich die MBRs anschauen sowie die Prüfsummen vergleichen - mit dem Anti B00TKIT. Da dieser (idealerweise) auf einer CD oder einem schreibgeschützen Medium liegt und als erstes ausgeführt wird, kann er auch nicht manipuliert werden oder falsche Daten untergeschoben bekommen. Warum nicht gleich eine LiveCD mit Linux oder Antivir Software nehmen? Ganz einfach: 5 Sektoren (2.30KB) großer Loader des Anti B00TKITs ist praktisch sofort, ohne merkbare Verzögerung, geladen. Wie lange würde eine LiveCD booten? Das heißt: Bootsequenz im BIOS so einstellen, dass immer von CD mit Anti B00TKIT hochgefahren wird. Ein kurzer Blick auf die Prüfsummen und "weiterbooten" sollte auf jedenfall sehr viel flotter gehen als mit einer "schwergewichtigen" LiveCD und damit für den täglichen Einsatz deutlich geeigneter 😉 How-To BOOT.ISO bzw. ANTIBOOTKIT.IMG 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 und Prüfsummen angezeigt werden: Nun kann man sich die Prüfsummen notieren um diese dann bei Bedarf (z.B nächsten Boot) vergleichen zu können. Besonders Neugierige können sich auch den Hexdump anzeigen lassen: Steuerung Die Steuerung sollte größtenteils selbsterklärend sein. Im Hauptmodus: Pfeiltasten hoch/runter - Festplatte auswählen ENTER - von ausgewählten Festplatte booten R - Reboot S - Shutdown D - Dump anzeigen Im Hexdumpmodus: Pfeiltasten rechts/links - Festplatte auswählen ENTER - von der ausgewählten Festplatte booten Pfeiltasten hoch/runter - Dumpfenster scrollen R - Reboot S - Shutdown D - Dump ausblenden (zum Hauptmodus wechseln) Anmerkung: Das Herunterfahren wird durch die APM Schnittstelle realisiert. Aus verständ- lichen Gründen wird es in der nächsten Zeit keine ACPI Umsetzung geben ;). Inhalt des Archivs Fertige Images: boot.iso - zum brennen auf CD antibootkit.img - auf USB-Stick, Diskette, Festplatte oder "selbst- ständig" auf CD brennbares Image Source: antibootkit.asm - Hauptprogramm user.config - hier kann der Benutzer einzelne Sachen konfigurieren (erstmal nur die CUI Farben) \includes\cui.inc - CUI/Anzeigefunktionen \includes\defines.inc - globale Definitionen/Structurdokumentation \includes\pow_mgmt.inc - Funktionen zum Herunterfahren/Neustarten \includes\sha1.inc - SHA1 Implementierung Makes: make.bat - assembliert Source zu einem fertigen Image, benötigt FASM. Muss allerdings vor der Nutzung noch angepasst werden (Pfad zum FASM Ordner setzen) makecd.bat - erstellt aus dem Image eine bootbare ISO. benötigt: mkisofs.exe (http://www.heise.de/ct/ftp/06/03/202/), Alternativ kann man unter Win die übliche Brenn- software verwenden, IMG Datei auswählen und die Op- tion "bootbar" suchen. Ich gehe davon aus, dass die Linuxuser in der Lage sind makecd.bat zu lesen 😉 Anmerkung: Assemblieren per Hand geht durch simples 'fasm antibootkit.asm' 🙂 To Do Geplant ist als nächstes: Eine Automatisierung - Benutzer soll die ermittelten Festplattenprüfsummen im Anti-Bootkit speichern können und diese sollen dann automatisch beim Start geprüft werden. Wenn alles stimmt, wird direkt von der vorher festgelegten Festplatte gebootet. Schlusswort Diese Software wurde für den Eigengebrauch geschrieben. Es werden grundsäztlich nur Leseoperationen verwendet. Trotzdem: ich übernehme keine Verantwortung für irgendwelche Schäden sowie keinerlei Support für irgendwas. PS: ich konnte es mir nicht verkneifen, eine elitäre Version beizulegen *g*

Download: antibootkitv0.6.zip

Advertisements

7 Kommentare »

  1. Hi ich habe mir dein Image angeschaut und finde es sehr gu,nun hatte ich den gedanken wie wäre es wen es möglich wäre die Prüfsummen Automatisch vergleichen zulassen indem man diese z.b beim ersten start speichern kann,wen man z.b von USB Bootet auf dem USB Stick oder Diskette.Beim nächsten stark kann man dann Prüffsumme mit der gespeicherten vergleichen.

    Ist nur ein gedanke aber was hälste davon?

    Kommentar von ButterFlyBot — Februar 17, 2010 @ 8:29 am

  2. Ja, die Automatisierung steht auf der ToDo Liste 😉
    Allerdings ohne automatische Speicherung der Summen (dies wäre afaik ohnehin nur bei USB Sticks möglich, die eine Festplatte emulieren. Sonst ist der Aufwand zu groß: USB Erkennung, Dateisystemuntestützung usw.).

    Ich denke da an sowas:
    Erster Boot: der Benutzer schreibt die Prüfsummen auf, die ihn interessieren (müssen ja nicht alle Platten sein – nur Bootbare/mit OS drauf). Dann erstellt er sein eigenes Image (Eigenassemblierung oder Builder).
    Von nun an werden beim Booten diese Prüfsummen verglichen und bei Nichtübereinstimmung gemeldet.

    Zudem tendiere ich den Nutzer eine „Defaultbootplatte“ und ein Timeout festlegen zu lassen – der Bootvorgang wird dann automatisch fortgesetzt, sofern alle Summen übereinstimmen.

    Der Vorteil ist halt, dass das Ganze „fest“ im Image verankert und bei CDs nicht mehr manipulierbar ist. Nachteil ist natürlich dass man eventuell das Image 2x brennen muss (entfällt bei USB Stick 😉 )

    Kommentar von ebfes — Februar 17, 2010 @ 12:14 pm

    • Das klingt sehr gut.

      Kommentar von ButterFlyBot — Februar 17, 2010 @ 12:43 pm

  3. Hallo, vorab: vielen Dank für die Bereitstellung!
    Habe jedoch ein Problem damit: Cd ist kein Problem, jedoch versuche ich seit 2 Tagen das ganze auf einem USB-Stick ans laufen zu bekommen – einziges Ergebnis ist, beim Starten kommt ‚Datenträger entfernen / Neustart‘. Benötige offenbar ein wenig Nachhilfe….

    Kommentar von Frank — März 8, 2010 @ 7:51 am

  4. Hi, bei den USB Sticks kommt es auf das Modell an. So weit ich weiß, unterstützt USB erstmal keine „bootfähigkeit“. D.h der Stick selbst muss entweder eine Festplatte oder ein CDRom Laufwerk emulieren. Falls Du Linux&Co verwendest, wäre wohl diese Anleitung interessant:
    http://wiki.ubuntuusers.de/live-usb
    bei Windows wäre sowas passend:
    http://www.weethet.nl/english/hardware_bootfromusbstick.php
    (nur eben statt der sector.bin die beigelegte IMG Datei nutzen).

    Kommentar von ebfes — März 8, 2010 @ 9:39 am

    • Hi, das Problem besteht ja nicht darin, den Stick booten zu lassen (im DOS-Modus), sondern was ich dann in der autoexec starte (die aus 1337 startet ja nichts, die andere img bekomme ich nicht geöffnet/emuliert), antibootkit.asm startet nicht aus der autoexec

      Kommentar von Frank — März 8, 2010 @ 9:55 am

  5. Ähm, DOS ist schon ein Betriebssystem 😉
    Antibootkit ist weder eine DOS-Exe noch sonstige ausführbare Datei (für kein Betriebssysem). Das heißt, man kann es nicht von DOS aus starten – und man braucht es auch nicht, da es alle Funktionen zum Starten (inklusive Bootsektor) mitbringt. Daher ist es auch direkt als ISO und IMG (=Binärdatei) veröffentlicht worden.

    Du musst also die Imagedatei direkt auf den Stick schreiben.
    Wie gesagt, simpler ist es eine CD zu brennen. Dafür ist es auch primär gedacht (da eine CD nachträglich nicht mehr manipuliert werden kann). Hab‘ zurzeit auch keinen Stick zum Ausprobieren da.

    Kommentar von ebfes — März 8, 2010 @ 7:25 pm


RSS feed for comments on this post. TrackBack URI

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Bloggen auf WordPress.com.

%d Bloggern gefällt das: