25C3: Eindrücke
25C3: Cisco IOS attack and defense
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
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. 🙂
25C3: SWF and the Malware Tragedy
Flash ist inzwischen ein beliebter Loader für Malware und andere Schadprogramme, da Flash eine Reihe von Sicherheitslücken enthält. Fukami von SektorEins ist vermutlich einer der besten Flash-Experten die es bei uns gibt. BeF ist der Autor von erlswf. Die Analyse von Flash ist nicht trivial, weil Flash mit Obfuscation-Techniken gesichert werden kann.
Javascript kann via ExternalInterface.call() geladen werden. Darüber sind eine Vielzahl von Angriffen möglich. Erlswf prüft Flash-Dateien und kann typische Probleme wie ungültige Komprimierung oder unbekannte Opcodes herausfiltern. Dazu muss man das SWF-Format kennen.
SWF ist ein Containerformat und besteht aus einem Header, einem File Attribute Tag, diversen Daten-Tags und einem End Tag. Die Daten-Tags können Aktionen (DoAction, …) Mediadaten (Bilder, Filme), etc. enthalten. Dabei unterscheiden sich die Tags bei ActiveScript2 und 3 grundlegend. doAction aus AS2 besteht aus einem Header, vielen Actions und einem EndAction Tag. doABC besteht aus einem Opcode und Optionen. Flash 9 unterstützt außerdem die Funktion loadBytes, mit der eine Bytefolge gelesen, on the fly verändert und interpretiert werden kann.
Zur Analyse von Flash-Dateien gibt es keine brauchbaren dynamischen Tools wie Sandboxen, die den Flash-Lauf analysieren. In der Praxis beschränkt man sich zur Zeit daher auf die statische Analyse der Flash-Dateien. Dabei ist die Obfuscation natürlich störend. Ein Großteil des Vortrags beschäftigt sich mit den Möglichkeiten, Flash zu analysieren und Obfuscation aufzudecken. Insgesamt eine coole umfangreiche Arbeit aber wiedermal etwas, das für mich keine besondere Relevanz hat.
25C3: DECT
In der Agenda stehen nur Ralf-Philipp Weinmann, Andreas Schuler, Erik Tews, auf der Bühne saßen sie jedoch zu viert und erklären uns, wie DECT funktioniert. Für diesen Vortrag habe ich mich kurzfristig entschlossen. Leider ist auf ihrer Webseite deDECTed.org noch nichts online.
Vorläufer von DECT sind CT1(+) und CT2. CT1 und CT1+ darf ab 01.01.2009 nicht mehr verwendet werden, da die Frequenzen für GSM reserviert sind. DECT wird praktisch überall verwendet, in Schnurlostelefonen, Wireless ISDN, Babyfon, Notrufen, Türöffnungssystemen, schnurlosen EC-Kartenleser und sogar Verkehrsleitsysteme (u.a. von Siemens). Vermutlich gibt es über 30 Millionen DECT-Endgeräte in Deutschland.
Typische Kürzel:
- FP – Fixed Part (Basisstation)
- PP – Portable Part (Handgerät)
- RFPI – Radio Fixed Part Identity (Identifikationsnummer)
- IPUI – International Portable Users identity (Nummer des eingewählten Geräts)
- DSC – DECT Standard Cipher (geheim)
- DSAA – DECT Standard Authentication Algorithm (geheim)
- UAK – User Authentication Key
DECT ist standardisiert im ETSI Standard 300175, verwendet GFSK Modulation und nutzt in Europa die Frequenz 1880-1900 MHz. Das DECT-Protokoll mit A- und B-Feld erinnert ein wenig an ISDN und den D- und B-Kanal. Das Telefon sendet nicht im Idle-Mode (keine Funkaktivität!), synchronisiert sich mit der Basisstation und initiiert die Verschlüsselung. Bei einem Gespräch wird der aktuell beste Kanal (wenig Rauschen, keine Aktivität) verwendet.
Sniffen ist nicht so einfach, da die Stationen nicht synchronisiert sind. Viele Pakete enthalten keine Adressen, die Zuordnung ist daher nur über Kanal und Slot möglich, das durch die fehlende Synchronisation erschwert wird. Außerdem ist nicht bekannt, in welchem Kanal und Slot ein Endgerät anfängt zu senden. Zum Descrambling der Pakete muss zusätzlich die Framenummer bekannt sein, ein Problem wenn Frames verloren gehen.
- USRP DECT Sniffer, kann alle Pakete aller Kanäle sniffen jedoch nicht senden. Insbesondere ist das Time-Multiplexing ein Problem. Kosten ca. 1000 Euro.
- ComOnAir II DECT Sniffer, als Basisstation für SIP gedacht. Kosten ca. 23 Euro. Kommt jedoch nur mit Windows-Treiber. Linux-Treiber Entwicklung ist knifflig, da der Baseband-Chip ein spezieller DECT-Chip ist, der nirgendwo sonst verwendet wird.
- ComOnAir III Karte ist etwas größer, hat eine LED, kann zerlegt werden. Kernchip ist ein SC14421.
Wenn keine Verschlüsselung aktiv ist, kann man DECT ganz einfach mitsniffen und damit Gespräche abhören und aufzeichnen. Dafür genügen Standard-DECT-Geräte. Wenn Verschlüsselung aktiv ist, dann wird es etwas komplizierter. Man muss eine Basisstation simulieren und mit dem Telefon unverschlüsselt kommunizieren. Die Gespräche relayed man dann an die eigentliche Basisstation. Das funktioniert, weil sich das Netzwerk nicht am Endgerät authentisieren muss. Das erinnert mich an die IMSI-Catcher im GSM-Netz, die machen das ganz genauso. Ein klassischer Man-in-the-Middle Angriff mit Rouge Basestation.
DECT setzt einen geheimen Algorithmus zur Verschlüsselung ein, DSAA. Praktisch besteht das aus vier Algorithmen, A11, A12, A21 und A22, die reverse engineered wurden. Das ist schon sehr cool 🙂 Die Details führe ich hier nicht auf, die kann man später sicher noch nachlesen. Die Cryptanalysis hat mehrere Schwächen im Algorithmus gezeigt, insbesondere für rundenreduzierte Versionen des Cassable-Algorithmus, die volle Version ist jedoch noch nicht gebrochen. Die Cryptanalysis wird im Detail auf der CT-RSA 2009 vorgestellt, Source Code in Java und C ebenfalls.
Ein weiterer Angriffspunkt sind die verwendeten Zufallszahlengeneratoren, die in allen untersuchten Geräten schlecht waren. Hier bietet sich ein weiterer Ansatz, die Verschlüsselung zu brechen
25C3: Analyzing RFID Security
RFID verbreitet sich rapide in unserem Leben und ermöglicht (noch theoretisch) die Komplette Überwachung der Menschen im täglichen Leben.
Der Vortrag von Henryk Plötz und Karsten Nohl stellt die aktuellen Angriffe auf RFID inkl. aktuellen Informationen zu Mifare vor.
- Proxy/Relay Attack, der Angreifer klinkt sich quasi wie bei einem Man-in-the-Middle Angriff ein. Man kann dann die Datenübertragung manipulieren.
- Emulation Attack, man simuliert mit komplexerer Elektronik, ein RFID-Tag zu sein, am besten ein anderer 🙂 Das funktioniert besonders gut bei Zugangskontrollsystemen.
- Replay, bei dem man aufgefangene Signale einfach identisch wieder abspielt. Das klappt natürlich nur, wenn keine Krypto mit Zufallszahlen (Nonces) im Spiel ist. Insbesondere Mifare Classic hat hier ein Problem, weil die „Zufallszahlen“ vorhersagbar sind.
- Brute Force Key Search, oft nicht möglich wenn das über die Karte erfolgen muss, mit vielen Algorithmen aber möglich, wenn man die Algorithmen in FPGAs implementiert da die Schlüssellänge oft recht kurz ist. Eine Folge der „Security by Obscurity“ und den geheimen Algorithmen. Rainbowtables sind ebenfalls denkbar.
- Algebraische Angriffe, dabei wird die Rückgabe ausgewertet um geeignete neue Anfragen zu finden, die auf den Schlüssel zurück schließen lassen. Sogenannte „Guess-and-Determine“ Angriffe. Ein Tool zur Auswertung ist beispielsweise MiniSAT.
Weitere Karten mit schwacher Crypto sind
- Mifare Classic, Hitag2
- Legic Cards
- einige Atmel Cards
RFID Tools:
- TI EVM, kann für Fuzzing verwendet werden
- OpenPCD, Multi-Protocol RFID Reader
- OpenPICC, RFID Emulator
Ganz neu gibt es den OpenPICC2, der ganz coole neue Funktionen mitbringt.
25C3: An introduction to new stream cipher designs
Die Präsentation von Tor Bjorstadt (wie kriegt man eigentlich so einen norwegischen Strich durch das o?) lieferte einen aktuellen Überblick der Fortschritte in der Stream Cipher Entwicklung.
Die bisherigen verwendeten Verfahren sind alle nicht mehr so ganz taufrisch:
- E0: wird in Bluetooth verwendet … broken
- A5/1, A5/2: wird in GSM verwendet … broken
- Mifare Classic: in den RFID-Karten … broken
- Keeloq: häufig in Garagentoröffnern … broken
- EU Nessie 2000-2003: … alle 6 Verfahren mit Lücken
- RC4: in Webbrowsern, WEP und WPA … zeigt deutliche Schwächen
Aktuell bleibt uns nur AES-CTR als verlässliches Verfahren.
Die EU hat deshalb einen neuen Wettbewerb, eSTREAM (ENCRYPT Stream Cipher project), gestartet bei dem nicht nur ein Algorithmus sondern eine Auswahl an Algorithmen für die sichere Implementierung entwickelt werden sollten. Dabei gibt es ein Profil 1 zur möglichst performanten Implementierung in Software und ein Profil 2 zur möglichst ressourcenschonenden Implementierung in Chipkarten. Für jedes Profil sollten vier Algorithmen zur Auswahl gestellt werden. 24 Algorithmen wurden eingereicht, etwa die Hälfte wurde im Laufe des Wettbewerbs gebrochen.
Algorithmen in Profil 1: HC-128, Rabbit, Salsa20/12, SOSEMANUK
Die Details der Algorithmen kann man in der begleitenden Doku von Tor nachlesen. Ein paar Highlights:
- HC ist nach dem Entwickler „Hongyun’s Cipher“ benannt und der einzige Algorithmus mit S-Boxen.
- Salsa20/12 ist von D. J. Bernstein und verwendet 12 von 20 spezifizierten Runden. Der Algorithmus mit allen 20 Runden ist Salsa20/20. Eine Weiterentwicklung ist ChaCha.
- SOSEMANUK bedeutet in einigen Sprachen Snowsnake (Schneeschlange), weil der Algorithmus Anleihen der Algorithmen Snow und Serpent verwendet. Er ist der komplizierteste Algorithmus und wurde daher auch als Frankencypher bezeichnet.
Im Hardware Profil gibt es die Algorithmen: Grain, MICKEY, Trivium
- Grain ist der kleinste Algorithmus und lässt sich in etwa 1300 NANDs implementieren.
- MICKEY steht für Mutually Irregular Clocking KEYstream generator … harhar
Ein vierter Algorithmus, F-FCSR-H wurde gebrochen, Angriff sind in Realtime durchführbar, der Algorithmus wurde folglich zurückgezogen. Das zeigt, dass neue Algorithmen nicht automatisch sicherer sein müssen.
Fazit:Im Zweifel ist AES-CTR noch die beste Methode
Außerdem läuft gerade die NIST SHA-3 Hash Function Competition.
Aktueller Stand: 64 Submissions, 51 akzeptiert, 17 gebrochen 🙂
Das Thema bleibt spannend.
25C3: Soviet Unterzoegersdorf
Sowjet-Unterzögersdorf ist die letzte sowjetische Enklave auf österreichischem Boden. Wer nicht weiß wo das liegt, hier ist eine Karte:
Für die letzten aufrechten Kommunisten ist das Leben nach dem Zusammenbruch der Sowjetunion nicht leichter geworden. Sogar die Farbe von den Schildern der Freundschaft blättert ab:
Die Unterzögersdorfer haben sich deshalb mit neuen Technologien vertraut gemacht und ein Computerspiel entwickelt, das ihre Situation darstellt:
mit Screenshot:
Und Johannes Grenzfurtner, der Chef von Monochrom kann endlich wieder entspannt in die Zukunft blicken:
Nachtrag:
Johannes, wenn Du die Fotos willst, schreib ne Mail oder einen Kommentar. Ich warte auf die Beta!
25C3: Tricks: makes you smile
Eines muss man den Italienern lassen, sie haben schon immer unkonventionelle Ideen gehabt.
- Netphun: ICMP redirect (13 attacks that works)
- Tools: hping, scapy, irpas, icmp_redirect, netwag
- Netphun: ICMP PMTU DoS
- hat keine praktische Relevanz
- Blind SQL Injection: Mappable method cause blind hurts too
- Tools: Charmap
- Diverse andere Sachen aber wenig, das mich noch interessiert hat
Die meisten Sachen wurden nur ganz kurz angesprochen, ich schätze mal man muss in seinem Blog nachlesen um die Details zu bekommen.
25C3: Banking Malware 101
Thorsten Holz ist dem einen oder anderen bereits durch seine Arbeit für das deutsche Honeynet Project bekannt. Außerdem beschäftigt er sich seit geraumer Zeit mit Botnetzen und Schadprogrammen.
Klar, auf die üblichen Phishing-Mails fällt praktisch niemand mehr herein. Vielleicht noch ein paar trottelige Ebay-Nutzer, aber generell ist das nicht mehr State-of-the-Art. Die Angreifer verwenden daher Schadprogramme wie Viren, um Zugriff auf Zugangsdaten wie Ebay oder Online-Banken zu bekommen. Diese Viren enthalten einen Keylogger, der die ausgespäten Daten zu einem Server im Internet, der Dropzone schickt. Meist ist die Dropzone auch ein gehackter Rechner. Schadprogramme werden häufig mittels Social Engineering verbreitet, beispielsweise durch E-Mails mit dringend zu öffnendem Attachment. Aktuelle Trojaner sind beispielsweise Nethel/Limbo und ZeuS/Wsnpoem/Zbot.
Nethel/Limbo verwendet sogenannte Browser Helper Objects, Plugins für den Internet Explorer und klaut Zugangsdaten, Passwörter und Cookies. ZeuS verwendet keine BHO sondern injiziert sich direkt in Windows-Systemprozesse. Er kann außerdem HTML-Code in Webseiten injizieren, z.B. zusätzliche Formularfelder für die SSN oder CC-Nummer. Und er stiehlt sogar Zertifikate. Details zu ZeuS findet man bei reconstructer.org.
Dropzones entdeckt man am besten mit Honeypots, die von einem Angreifer übernommen werden können und genau beobachtet werden. Dann analysiert man, welche Netzwerkverbindungen vom Honeypot aufgebaut werden. Typische Honeypots sind Capture-HPC, HoneyClient, phoneyc. Alternativ kann man in einem Honeypot auch auf Spamattachments klicken und schauen was passiert. Dabei versucht man das typische Verhalten von Menschen automatisiert zu simulieren, das heißt den Browser starten, Webseiten ansurfen, Credentials eingeben, usw. Dazu wurde ein SimUser basierend auf AutoIT mit 17 Verhaltenstemplates entwickelt. Schadprogramme können auch mit CWSandbox analysiert werden.
Ziele von Zeus in Deutschland sind hauptsächlich Volks- und Raiffeisenbanken und Fiducia, international praktisch alle größeren und kleineren Banken. Der Zugang zu einem Bankaccount ist zwischen 10 und 1000 USD wert, Kreditkarten nur noch 0,40-20 USD und Identitäten nur noch 1-9 USD.
Mein Geschäftsmodell wäre ja jetzt, die Dropzones zu finden, zu hacken und die dort hinterlegten Daten weiterzuverkaufen. Dazu muss man weder Viren programmieren noch macht man sich selbst groß die Finger schmutzig. Aber Thorsten hat die Daten leider schon alle an AusCERT gemeldet. 😉