Ebfe's Anti-B00TKIT Projekt

Juli 9, 2010

Links/Bilder/Downloads

Filed under: Allgemein, News — ebfes @ 7:04 pm

Jemand findet es lustig, meinen Hostern hübsche Abuse-Mails zu schicken. Und diese lassen anscheinend einfach ein Script durchlaufen:

url = extract_hoster_url(abuse_mail)
user_name = get_username_from_url(url)
ban_user(user_name)

nach dem Motto: eine Abuse-Mail wird schon nicht umsonst geschickt worden sein 🙄
Anders kann ich mir nicht erklären, warum innerhalb der letzten 3 Wochen 3 Hoster und anschließend (gestern) NIC.DE.VU alle Accounts sperren ließen. Bei den Hostern war die Begründung „illegale Inhalte“ (gut, ein bisschen länger und ausführlicher, lief aber darauf hinaus) – obwohl ich nach dem ersten Abuse alle Inhalte, die als grenzwertig angesehen werden konnten, entfernt habe und praktisch nur noch dieses Projekt hosten ließ. Bei NIC.DE.VU gab es keine Rückmeldung.

Wärend der Hoster-Abuse noch halb so wild wäre (einfach neuen suchen und den alten Inhalt hochladen) müssen bei einer Domainänderung die ganzen Links korrigiert werden. Und darauf habe ich ehrlich gesagt inzwischen keine Lust. Hauptartikel (Version 0.85) wurde aber angepasst. Der Link auf „HowTo“ geht zwar jetzt nicht – der Inhalt ist (und war) allerdings in der ZIP Datei selbst. Das ZIP-Archiv wird erstmal bei MAIL.RU gehostet. Wer die älteren Antibootkitversionen haben möchte, kann sich erstmal gerne per Email melden. Ich werde mal schauen, ob ich das Projekt mal auf Bitbucket oder ähnliches verlagern kann.

Kurzfassung: alle Hoster sowie Domain wurden aufgrund von „illegalen Inhalten“ gesperrt. Der Dank dafür geht an den unbekannten elitären Abuse-H4ck3r.

März 27, 2010

Anti BOOTKIT v 0.8.5

Filed under: AntiBootkit, Releases — Schlagwörter: , , , — ebfes @ 3:16 pm

So, alte ToDo Liste abgearbeitet:

Update:
release Version 0.85 (27.03.2010)

  • CRC wurde entfernt (macht keinen Sinn neben SHA1)
  • automatische Hashprüfung (auf der CD gespeicherte Hashs werden mit den Ermittelten verglichen). Erfordert eine benutzerangepasste CD.
  • automatisches Hochfahren nach einer festgelegten Zeit von einer vordefinierten Festplatte. Erfordert eine benutzerangepasste CD.
  • Konfigurationstools, um ohne Programmierkenntnisse solche benuterangepasste CDs zu erstellen ;).

Eine Schritt-für-Schritt Anleitung zum basteln einer eigenen BootCD, die automatisch die Integrität der Festplatten-MBRs prüft und anschließend das System von einer festgelegten Festplatte startet:
http://ebfe.de.vu/antibootkit/howto
sollte verständlicher sein, als das bisherige Kauderwelsch.
die neue Version:
http://ebfe.de.vu/antibootkit/release085.zip

Neues To-Do:
– erstmal die technische Doku updaten (ist für Leute interessant, die mit den Sourcen spielen wollen 😉 )
– dann eventuell Konfigurationstools mit einer GUI versehen, damit Windowsanwender nicht gleich geschockt werden *g*
– „extended“ Version herausbringen, die kompletten 63 Sektoren prüft (sicher ist sicher – vor allem gegen zukünftige anti-anti bootkits 😉 )

Ein paar Screenshots:
„Default“ ISO/Img

Benutzerdefiniert (automatische Prüfung/Boot):

Bootvorgang wird unterbrochen, falls die Hashes nicht stimmen:

gespeicherte Hashes werden mit angezeigt (nicht übereinstimmende in rot)

Dumpansicht ist immer noch möglich 😉

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

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

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.

Erstelle kostenlos eine Website oder ein Blog auf WordPress.com.