28. Dezember 2009

26C3: Lightning Talks Day 2

Category: CCC,Hacking — Christian @ 15:14

Wenn schon nichts anderes spannendes dabei ist (nein, der GoogleLunarXPrice interessiert mich nicht wirklich) und ich den Tag sowieso im Büro verbringe, kann ich die Zeit auch nutzen, kurz in die Lightning-Talks hineinzutunen. Für mich scheinen die spannenden Themen dieses Jahr sowieso in den Kurzvorträgen angesprochen zu werden. Die folgende Liste ist nicht vollständig, ich habe nur notiert, was ich persönlich interessiert.

  • Hacking the Government
    Über den Nutzen staatlich produzierter und öffentlich verfügbarer Daten und ihrer Auswertung, weil die staatlichen Webseiten unter aller Sau sind. Das Problem sind die Formate der Daten, ihre Lizenzen und die Art der Veröffentlichung.
    Link: http://opendata.hackday.net/
    Termin: 24. und 25. April 2010 in Berlin
  • Mifare Classic Universal toolKit (MFCUK)
    Ein OpenSource Toolkit für Angriffe gegen die Mifare Classic Chipkarte. Das Toolkit implementiert den DarkSide Angriff und kann ein Mifare Classic SoftTag emulieren.
    Link: http://code.google.com/p/tk-libnfc-crapto1/
  • sta.li – Static Linux
    Eine Linux-Distribution mit statisch gelinkten Tools. Nur das notwendigste. Keine Bibliotheken, Vermeidung von Libc (das wird Ulrich Drepper nicht gefallen) und keine Kernelmodule.
    Link: http://suckless.org
  • GPF Crypto Stick
    OpenPGP SmartCard on a stick. Das ist in etwas so etwas wie ein Aladdin eToken nur mit einer OpenSource Hardware und offenen Schnittstellen. Damit ist die Kompatibilität mit Linux und Co. weitgehend gewährleistet. Die Version 1 enthält nur die Smartcard und kostet 38,- Euro, die Version 2 wird auch Flash-Speicher enthalten und in einem Alugehäuse erscheinen. Mal sehen, was der kostet.
    Link: http://www.privacyfoundation.de/crypto_stick/
  • Free Rainbow Tables
  • OWASP Favicon
    Mit Hilfe des bei vielen Softwarepaketen enthaltenen Favicons lässt sich z.B. das verwendete CMS enumerieren. Für Nmap gibt es ein Script, das die Favicons ausliest und die Hashes verwendet um die Software und ggf. Version zu bestimmen. Das ist mal eine lustige Enumeration-Idee.
    Link: http://www.owasp.org/index.php/Category:OWASP_Favicon_Database_Project
  • Apache + Slowloris = FAIL
    Es geht um einen Apache Bug der nicht gefixt wird aber für einen DoS-Angriff geeignet ist. Erklärung, Details und Tools hinter dem Link.
    Link: http://ha.ckers.org/slowloris/
27. Dezember 2009

26C3: cat /proc/sys/net/ipv4/fuckups

Category: CCC,Hacking — Christian @ 23:45

Agenda:

  • Getting into the network
  • Bypassing internal packet filters
  • Poisoning the Cache

Aus der Agenda hört sich das ein wenig wie „How to own the network“ an. Das Problem ist aber schon einmal, wie kommt man auf einen internen Server, wenn man nicht gerade einen 0-Day Bug hat den man dafür verschwenden will. Ok, man kann es mit Client-side Attacks versuchen, aber die Zuverlässigkeit ist halt nicht zwingend gegeben. Das klingt bei gezielten Angriffen leichter als es ist. Das philosophieren über Exploits und Information Gathering mit Emoticons in MSN ist zwar nett, bringt uns aber in der Praxis nicht weiter. Wie viele Leute in den Unternehmen verwenden denn wirklich MSN auf Linux? Geschweige denn, dass man für die verwendete Software dann tatsächlich einen Fehler mit einem exploitable Bug findet.

Egal. Der nächste Schritt ist, den internen Paketfilter zu umgehen. Die Idee geht wie folgt: Um einen Sicherheitsmechanismus in Layer n zu umgehen, muss man Layer n-1 angreifen. Um also einen IP-Paketfilter (Layer 3) zu umgehen, muss man den Devicetreiber in Layer 2 attackieren. Beispielsweise indem man an der MTU rumfummelt, dafür bieten sich in Gigabit-Ethernet Jumbo-Frames an. Wenn der Empfänger mit Jumbo-Frames nicht umgehen kann, besteht die Möglichkeit eines Buffer Overflows. Wenn man Glück hat findet man einen Bug im e1000 Linux Ethernet-Treiber der noch nicht gefixt ist.

Jetzt geht es an den Squid-Cache. Squid cached nicht nur Webseiten sondern auch DNS. Und von Dan Kaminsky wissen wir, dass DNS eine komplizierte Sache ist. Da gibt es diverse Probleme mit Sequenznummern und zufälligen Ports. Nur leider verwendet Squid immer noch den gleichen (zwar zufälligen aber solange der Cache läuft statischen) Port für alle DNS-Anfragen. Und der lässt sich herausfinden. Dafür verwendet Fabs einen recht coolen Trick der das Verhalten von Hide-NAT ausnutzt. Jetzt fehlt nur noch die richtige Transaction-ID um falsche DNS-Einträge in den Cache zu bringen. Und da könnte uns helfen, dass wir bereits Antworten in die Reply-Queue bringen können, bevor der Squid eine Frage stellt. Wenn die Queue nicht zu klein wäre. Wir müssen also verhindern, dass der echte DNS-Server die Antwort bekommt, um von innen eine passende Antwort zu spoofen. Dafür nutzt man ggf. wieder einen Fehler im Devicetreiber aus, dessen Details im Vortrag zu finden sind.

In Summe hatte ich mir zwar unter dem Vortrag was anderes vorgestellt, die Ideen in den von Fabs vorgestellten Exploits sind jedoch für mich ganz brauchbar. Da kann man noch mehr daraus machen. Und zumindest kann man sich darauf verlassen, dass Fabs Vorträge noch etwas Neues bringen und ab und zu sogar noch zum Lachen sind.

Schade ist nur, dass die Video-Streams des CCC von so furchtbar schlechter Qualität sind.

26C3: UBILD – Pictures and Non-Pictures

Category: CCC,Politik,Recht — Christian @ 22:01

Das Fotografieren und Filmen im öffentlichen Raum ist (sofern man Persönlichkeitsrechte beachtet) in Deutschland nicht verboten. Es sei denn, die Policy ist bar jeder Rechtsgrundlage anderer Meinung und erfindet eine theoretische Gefahr durch einen potentiellen Angriff durch das Fotografieren.

Christoph Faulhaber hat das ausprobiert und wurde prompt aus den USA ausgewiesen.

Denn wenn der Behördenapparat die Sicherheit gefährdet sieht, sind die Grundrechte in der Praxis nichts mehr wert. Grundlegende Bildung wie das Zitat von Benjamin Franklin gehört in Deutschland nunmal nicht zur Staatsbürgerkunde.

26C3: GSM: SRSLY?

Category: CCC,Hacking — Christian @ 21:22

Seit Jahren ist bekannt, dass die in GSM verwendete Verschlüsselung nicht besonders gut ist. Es gibt diverse Angriffe durch schlechte Implementierung (Teile des Schlüssels bestehen aus 0-Bits), die Möglichkeit zu Sniffen durch Man-in-the-Middle Angriffe (IMSI-Catcher) und natürlich seit 1994 bekannte Probleme mit der eingesetzten A5-Verschlüsselung. A5/1 gilt seit 1997 in akademischen Kreisen als gebrochen. Seit spätestens 2008 gibt es Rainbow Tables die jedoch nicht veröffentlicht wurden. Einer der Gründe mag sein, dass es genug Wege gibt, die Verschlüsselung zu umgehen.

GSM funktioniert wie folgt. Die Basis-Station sendet einen Beacon, das Mobilgerät antwortet mit der IMSI (vgl. dem Usernamen, der in Zukunft durch die TMSI ersetzt wird). Benötigt wird dazu der MCC (Mobile Country Code) und der MNC (Mobile Network Code). Sobald ein Mobilgerät die richtige MCC/MNC-Kombination findet, bucht es sich bei der stärksten Basisstation ein. Um einen IMSI-Catcher zu bauen braucht man nur noch ein wenig Hardware. Empfohlen wird OpenBTS ein USRP und eine 52 MHz-Clock. Allerdings ist die Nutzung in Deutschland illegal.

Um die Verschlüsselung zu Brechen haben Karsten und Co eine Menge Leute geholfen, Rainbow Tables zu berechnen. Besonders hilfreich waren Nvidia-Grafikkarten mit CUDA. Ich will jetzt aber nicht auf die Krypto-Details eingehen.

Das Hauptproblem mit GSM ist, dass es keine Lösung für die Zukunft gibt. A5/3 ist ebenfalls schon akademisch gebrochen, ein neuer Algorithmus ist aktuell nicht in Sicht. Mehr auf Reflextor.com.

26C3: Streaming

Category: CCC — Christian @ 21:15

Der Videostream ist unter aller Sau. Dafür, dass Fefe die Klappe weit über den schlechten Stream von Wikipedia aufgerissen hat, soll sich der CCC mal kräftig an die eigene Nase fassen. Das Motto „Dragons everywhere“ lässt sich vermutlich am besten mit „gemeinsam in die Röhre gucken“ übersetzen. Die Liste der Known Problems im Stream ist übrigens die einzige gepflegte Seite im Congress-Wiki.

Ach ja. Wenn ich lese, dass die Tickets vor der Keynote schon ausverkauft waren und sich am Vortag schon lange Schlangen gebildet haben, wie stellt sich der CCC das in den kommenden Jahren mit Leuten vor die erst am 27.12. von auswärts anreisen können? Reservierungen braucht es ja angeblich nicht, dafür stehen die, die von weiter her kommen dann vor verschlossenen Türen? Wird das in den kommenden Jahren eine „nur für Berliner“-Veranstaltung?

Mein Eindruck ist ja langsam, dass der Congress seine besten Zeiten hinter sich hat.

Update:

Haha, jetzt sind die ganzen angeblich gelösten Known Problems aus dem Wiki gelöscht worden, vermutlich damit das besser aussieht. Ist beim CCC ja inzwischen wie bei Wikipedia.

Update Day 2:

Der Stream läuft immer noch nicht stabil. Sobald beliebte Vorträge stattfinden, kriegt man vielleicht 10 Sekunden zusammenhängende Übertragung, der Rest hängt. Lieber CCC, das ist echt schlechteste Qualität wenn ich Euer Wikipedia-Genöle der letzten Monate anschaue.

26C3: Exposing Crypto Bugs through reverse engineering

Category: CCC,Hacking — Christian @ 19:21

Philippe Oechslin ist bekannt durch seine Crypto-Arbeit über Rainbowtables, darum konnte man sich von diesem Vortrag viel erwarten.  Allerdings habe ich die ersten 10 Minuten leider verpasst.

Eine Demo zeigte, wie schlecht Verschlüsselung regelmäßig implementiert ist. Die Software (den Namen nannte er nicht) implementiert drei Passwörter, eins zum Zugriff auf den privaten Bereich, eins zum Zugriff auf den öffentlichen Bereich und ein Panikpasswort zum Löschen der Verschlüsselungskeys. Die Passwörter sind hintereinander in einem Control Block angeordnet. Wenn man nun die Reihenfolge der Passwörter im Control Block austauscht, kann man mit dem Panikpasswort den privaten Bereich entschlüsseln.

Die nicht mehr angebotene Software von DataBecker „PrivateSafe“ ist ein anderes lustiges Programm. Es gibt zwar ein Passwort, jedes Zeichen im Passwort wird aber nur für ein einfaches logisches Shift verwendet um eine Prüfsumme zu erzeugen die dann verifiziert wird. Aus diesem Shift lässt sich einmal die Länge des Passworts ermitteln, außerdem kann man aus der Bitfolge für jedes Zeichen ermitteln, ob es als letztes Bit eine 0 oder 1 hat. Damit lässt sich der Suchraum massiv einschränken. Im Ergebnis können über eine triviale Analyse die Passwortkandidaten gefunden werden, ohne die komplexe Blowfish-Berechnung zu nutzen. Mit den Passwörtern die auf die Prüfsumme passen probiert man dann den eigentlichen Algorithmus aus. Blowfish hat ein langsames Keysetup, darum kann man direkt nur ca. 25.000 Passwörter pro Sekunde ausprobieren. Mit der Schwachstelle lässt sich das Passwort über 15.000x schneller brechen (2,5 Stunden statt 1,7 Jahre).

Eine weitere Schwachstelle liegt in der Nutzung von Passwörtern ohne Salt. Dadurch lassen sich Rainbowtables berechnen, die das spätere Cracken von Verschlüsselungssystemen stark beschleunigen.

Fazit: Crypto ist schwer korrekt zu implementieren. Deshalb OpenSource, da ist die Implementierung verifizierbar.

26. Dezember 2009

26C3: Agenda

Category: CCC — Christian @ 19:34

Dieses Jahr habe ich kurzfristig beschlossen, nicht nach Berlin zu fahren sondern mir die Vorträge im Stream anzugucken. Hauptgrund ist, dass ich zum einen nur wenige Vorträge gefunden habe die mich interessieren. Die ganzen Politikthemen, in der Agenda mit Society oder Community beschrieben finde ich generell nicht so interessant, außerdem denke ich, politisch ausreichend gut informiert zu sein.

Im Ergebnis blieben dann folgende Vorträge übrig, die mich wirklich interessieren:

Dazu kommt, dass ich am 30.12. Besuch bekomme und mit ein paar sehr guten Freunden Sylvester feiern will, also habe ich mir die Fahrt dieses Jahr ausnahmsweise mal gespart. Falls jemand Zeit und Lust hat, mir ein gedrucktes Exemplar der Proceedings mitzubringen würde ich mich aber sehr freuen.

29. Dezember 2008

25C3: Eindrücke

Category: CCC — Christian @ 23:07

25C3 BCC

25C3 Schäuble

25C3 Telefon

25C3: Cisco IOS attack and defense

Category: CCC — Christian @ 22:53

FX von Phenoelit ist einer der wenigen, die sich mit Cisco IOS beschäftigen und Sicherheitslücken gefunden sowie Exploits geschrieben haben. Cisco hat den größten Marktanteil und ist relativ schwierig zu hacken, im Gegensatz beispielsweise zu Juniper, deren JunOS weitgehend auf FreeBSD basiert. Natürlich ist Cisco deshalb auch für Hacker interessant. Router und Switches sind auch interessant, weil man damit die komplette Netzwerkinfrastruktur übernehmen kann. Man IST dann das Netzwerk.

  • IOS-Geräte sind lange in Betrieb und werden selten aktualisiert
  • IOS-Geräte werden immer komplexer mit immer mehr Software, die Angriffsoberfläche wird größer
  • Es gibt diverse Backdoored IOS Images die unbedarfte Admins aus dem Internet runterladen

Im Gegenzug sind Angriffe gegen IOS sehr komplex und schwierig. Ein Angreifer möchte einen zuverlässigen Halt im netzwerk erhalten und nicht schnell wieder rausfliegen. Allerdings sind inzwischen gute Windows Exploits mit Rootkit ebenfalls in der Preisklasse von 40.000 USD, daher lohnt es sich laut FX langsam, insbesondere für Agencies, andere Systeme ins Visir zu nehmen.

Die Angriffe lassen sich in verschiedene Klassen aufteilen:

  • Functionality attacks
    • weak passwords
    • weak SNMP communities
    • posting the configuration in Internet forums
  • Access check vulnerabilities
    • Ciscos HTTP Level 16++ vulnerability (alt)
    • SNMPv3 HMAC verification vulnerability (Buffer Overflow von 2008: memcmp(MyHMAC, PackHMAC, PackHMAC_len);)
    • Debianized SSH Keys
  • Queuing Bugs
    • Denial of Service
  • Router Service Vulnerabilities
    • diverse Phenoelit-Exploits

Erfolgreiche Angriffe können auf verschiedenen Wegen erkannt werden:

  • SNMP, Syslog
  • Configuration Monitoring/Polling
  • Router Monitoring
  • Traffic Monitoring

Beweise einer Kompromittierung sind schwierig zu erhalten, die beste Möglichkeit ist Core Dumps zu analysieren. Dabei hilft die Defaulteinstellung von Cisco, Core Dumps zuschreiben und zu rebooten (was relativ häufig bei Fehlern vorkommt). FX hat deshalb einen Cisco Core Dump Analyzer mit umfangreichen Funktionen geschrieben. Zur Zeit ist das vermutlich das beste Tool zur Analyse von Cisco Coredumps, das verfügbar ist. Auf die Funktionen will ich im Detail hier jedoch nicht eingehen.

FX erklärte dann im Detail, welche Möglichkeiten es gibt, IOS-Exploits zu schreiben und verläßliche Exploits zu konstruieren, da es etwa 100.000 verschiedene IOS-Images gibt, von denen vielleicht noch 19.000 von Cisco supported werden. Das ist elend kompliziert und ich bin sicher, ich werde in absehbarer Zeit keinen Cisco-Exploit schreiben. Aber ich bin mir sicher, wir werden in Zukunft mehr Arbeiten in diese Richtung sehen. insbesondere, da Cisco angekündigt hat, IOS auf VMware anbieten zu wollen.

Die beste Schutzmaßnahme sind ACLs auf dem Router, die Pakete direkt an den Router gerichtet blockieren.

Sehr nett übrigens, man scannt bei Eggcode im RAM heute nicht mehr nach 0x0E66C0DE sondern nach 0xFEFEB106 (Leetspeek für Fefe-Blog 🙂

25C3: Methods for Understanding Targeted Attacks with Office Documents

Category: CCC — Christian @ 21:22

Targeted Attacks unterscheiden sich von Drive-By Attacks dadurch, dass die Angreifer in der Regel detaillierte Informationen zum angegriffenen Ziel sammeln, z.B. über eingesetzte Sicherheitsprodukte wie Virenscanner. Besonders beliebt sind targeted Attacks im Bereich der Industriespionage. Besonders betroffen ist mit Microsoft der Arbeitgeber von Bruce.

Targeted Attacks in Microsoft Office-Dokumenten sind deshalb geeignet, weil Office zu weit verbreitet ist und viele Leute Microsoft Office-Dokumente gedankenlos austauschen. Außerdem sind sie aufgrund der Komplexität und bescheidenen Dokumentation der Formate trotz inzwischen auf Druck der EU veröffentlichten Spezifikationen schwer zu erkennen. Das Office Binary Format ist  für Parser eine echte Krankheit. Auf Details will ich hier gar nicht eingehen. Microsoft selbst bezeichnet das als „filesystem in a file“. Leider ist das Parsen daher nicht „byteweise“ möglich.

OffVis ist ein Microsoft-Tool, das die interne Struktur eines Office-Dokuments defragmentiert so, dass es leichter zu parsen ist. Ansonsten sieht es mit praktikablen Schutzmaßnahmen von Microsoft eher mau aus, außer dem (teuren) Wechsel zu Office 2007 fällt ihnen leider nichts ein.

Die Schadprogramme sind recht straight-forward. Es gibt einen Exploit, den Payload (irgendeinen Shellcode, meist ein Trojaner-Dropper) und ggf. ein harmlos aussehendes Dokument, damit es dem Betrachter nicht auffällt, was im Hintergrund passiert. Der Exploit basiert meist darauf, die Kontrolle über den EIP zu erlangen, z.B. mit einem klassischen Buffer Overflow. Die Payloads sind meistens verschlüsselt und daher schwerer zu erkennen.

Ein möglicher Ablauf kann wie folgt aussehen:

  • Shellcode decodes itself and runs
  • Builds up list of function pointers
  • Finds itself in memory
  • Read data from specific location in file
  • Extract the trojan and clean the document
  • Restarts application with clean document

Den gleichen Vortrag hat Bruce auch schon auf der Recon 2008 in Montreal und der Black Hat Conference dieses Jahr in Japan gehalten. Dort findet man auch die Slides zur Präsentation. Insgesamt jedoch bringt der Vortrag nur Entwickler von Virenscannern weiter, für den typischen Hacker fehlen natürlich Details und Source Code.

PS: Bruce, if you’ve never seen so much Macs on one place … get used to it. 🙂