20C3 – Tag 3

Der Windows (In)security Vortrag drehte sich im Prinzip um Angriffe, die von der Windows-Architektur begünstigt werden. Hilfreich ist dabei, dass Windows ein nachrichtengesteuertes System ist und Techniken wie DDE, OLE, COM und diverse Abarten davon zur Verfügung stellt.

Es wurde der bekannte WM_TIMER Angriff erläutert, neu war für mich die Idee, den Code über die Nachricht WM_SETTEXT zu injezieren. Man kann damit den Code in jedes sichtbare und unsichtbare Control injezieren, dieser wird dann mit dem Function-Pointer der an WM_TIMER übergeben wird, angesprungen.

Als praktische Anwendung für diese Angriffe eignen sich personal firewalls hervorragend, da sie einem höheren Security Context laufen, als die User-Space Applikationen und es damit möglich ist, den gewünschten Code im Kontext der Firewall auszuführen.

DDE ist seit Windows 2.0 eine komfortablere Möglichkeit u.a. mit Window-Messages umzugehen, OLE ist der objekt-orientierte Oberbau des ganzen, OLE Automation ist der Autopilot für Hacker.
Man muss also nicht mehr wie wild Windows-Messages durch die Gegend schicken, sondern bemüht Methoden wie dde_execute (?). Das ganze lässt sich natürlich auch aus der Ferne auslösen, schliesslich gibt es die bombensichere RPC-Schnittstelle in Windows 😉

Eine nette Möglichkeit in einem mit Policies „abgesicherten“ Windows eine Shell zu bekommen wurde auch noch erläutert: einfach in $APPLIKATION ein OLE-Objekt „cmd.exe“ einfügen. Damit umgeht man sämtliche Policies…

Die weiteren Vorträge habe ich mir dann geklemmt, Bug Hunting war zu voll, Biological Weapons etwas langweilig und bis zum Vortrag von Jörg war es mir zu lang. Ich bin dann abgehauen und habe mein Schlafdefizit nachgeholt 🙂

20C3 – Tag 2

Im ersten Votrag erklärte Andrew „bunnie“ Huang das Hacken der X-Box Hardware. Es wurde detailliert auf die Schutzmechanismen der X-Box und deren Schwächen eingegangen.

So war z.B. im Flash-Rom ein Fake-Bootsector untergebracht, der nie angesprungen wurde, sondern lediglich zur Verwirrung des Angreifers beitragen soll. Nachdem klar wurde, dass der Inhalt des Flash-ROMs (X-Box Kernel) durch Verschlüsselung und Prüfsummen geschützt ist, wurden andere Möglichkeiten für Angriffe gesucht, u.A. wurde eine X-Box komplett von ihren Chips ‚befreit‘, die Northbridge wurde geöffnet und unter dem Mikroskop studiert.

Der erfolgreiche Ansatz war Bus-Sniffing, also die Datenleitungen auf der Platine abzuhören, um so die unverschlüsselten Datenströme lesen zu können. Andrew hat dafür die Leiterbahnen mit Sandpapier freigelegt und ein Interface für seinen Logic-Analyzer gebaut:

Ausgenutzt wurde schliesslich eine Schwäche des verwendeten Hash-Algorithmus, bei diesem können vier bestimmte Bits gekippt werden, ohne dass sich der Hashwert ändert. Damit war es möglich einen veränderten Public-Key einzuschleusen, der trotzdem dem Hash entsprach, mit diesen Key kann dann eigener Code (z.B. ein Linux Bootloader) signiert werden.

Der zweite Teil des Vortrages befasste sich mit der Installation von Linux auf der X-Box. Es wurden die verschiedenen Exploits und der MechInstaller vorgestellt, mit dem auch unbedarfte User Linux auf ihrer X-Box installieren können.

Ein großes Problem ist, dass die Exploits leicht für die Erstellung von Raubkopien benutzt werden können, womit das xbox-Linux Projekt natürlich nichts zu tun haben möchte. Selbst die Quellcodes der Exploits und des MechInstallers wurden nicht veräffentlicht und waren nur wenigen eingeweihten Personen zugänglich. Nachdem Michael Steil diesen Fakt ausführlich betont hatte, fiel der USB-Stick mit den Sourcen ‚zufällig‘ ins Publikum… 😉

Zum Abschluss gab es eine Demonstration des MechInstallers und natürlich Linux auf der X-Box:

Im Wettbewerb „Homöomorphe Endmontage“ sollten die Teilnehmer ein Legomodell zusammenbauen, ohne Plastiktüte zu öffnen. Den angestrengten Gesichtern nach zu urteilen ist es ein Heidenspaß 😉

Aus dem PGP-Usersguide wurden alle Leute rausgeschmissen, die keinen Computer dabei hatten, weil es ein richtiger Workshop zum Mitmachen sei. Da mein Notebook zu dem Zeitpunkt nicht mal XFree86 installiert hatte, war an gpg nicht zu denken und deshalb habe ich mich zu Herrn Tauss gesetzt und seine Gedanken zur Maschinenlesbaren Regierung gelauscht.

Soweit war der Vortrag nicht besonders interssant, natürlich ist die Bundesregierung an der Informationsfreiheit interessiert, aber der zugrundeliegende Beamtenapparat scheint noch nicht willig zu sein, dieses Projekt mitzutragen.
Nett war noch die Tatsache, dass Joerg Tauss die Aufkleber „Aus hygienischen Gründen wird diese Toilette videoüberwacht“ gekauft hat und auch schon weiss, wo er diese anbringen wird. Ich hoffe auf einen kleinen Aufruhr im Bundetag 😉

In Practical Win32 and unicode exploitation (der Vortrag bekommt den Preis für die besten Folien 😉 ging es im wesentlichen um die Problematik, dass injezierter Code durch die automatische Umwandlung auf Windows-Plattformen in Unicode unerwünschte 0x00en oder sonstigen Strunz enthält. Diese Tatsache kann man jedoch bewusst ausnutzen und die 0x00en zum Code machen oder die entsprechenden Translation tables benutzen, in denen keine Nullen erzeugt werden (OEM z.B.)
Nebenbei wurde noch erklärt wie man den Structured Excption Handler (SEH) von Windows überschreibt um selbst produzierte Exceptions (versehentliche Zugriffe auf nicht gemappte Speicherseiten) abzufangen (Der SEH ruft normalerweise Dr. Watson). Mit diesem Trick kann man die gesamten 4 GB Speicher nach dem eigentlichen Shellcode scannen um ihn dann zur Ausführung zu bringen.

FX von phenoelit hat zu diesem Zweck ein Plugin für seinen Debugger und ein Perlscript geschrieben, dass die Erstellung von „Unicode-kompatiblen“ Windows-Exploits sehr vereinfacht. 2004 wird garantiert ein spannendes Jahr der Viren und Würmer…

20C3 – Tag 1


Der Congress beginnt für mich mit den Worten „Du Schatz, es ist schon um 9…“. Shit – verschlafen 🙁 Ich bin dann 10:20 am BCC, wo mich eine riesiege Schlange erwartet, der Grund warum ich eigentlich früh aufstehen wollte.


Nach 45 Minuten habe ich mein Ticket und kann mich erstmal umsehen. Das BCC hat schon seinen Charme, besonders die Lampen an der Decke 😉


Der grosse Saal sieht etwas klein aus, es passen vielleicht die Hälfte der Leute rein, die sonst im HAKP unterkommen. Neben dem Hackcenter sind die Haecksen, Engel, der Workshop-Raum und die Lockpicker untergebracht. Das Hackcenter selbst ist auch nicht besonders groß, es geht aber erstaunlich gesittet zu. Kein Wunder, es gibt kaum kabelgebundenes Netzwerk, das WLAN röchelt auch in den letzten Zügen.

Im NOC-Preview gibt es die erste Überraschung, für feste IPs im WLAN ist IPSec Pflicht, ausserdem funktioniert das WLAN mit ‚Anmeldung‘.
Das größte Problem ist zur Zeit DHCP im WLAN. Die Leases gibt es über 150 Sekunden, selten jedoch bekommt man brauchbare Geschwindigkeiten, mitunter schläft apt-get bei 500 Bytes / Sekunde ein.


Die Amateurfunkeinführung hat auf die rechtlichen Grundlagen des ganzen hingewiesen.

In Bits und Bytes verschieben wollte der Vortragende die Zuhörer für den Selbstbau digitaler Schaltungen begeistern, es war mehr eine Einführung und hat nur grundlegende Stichpunkte für den Einstieg vermittelt. Trotzdem war es brechend voll.


Der nächste Vortrag ist dann Der Missbrauch von Java, HTTP und XML in dem ein leidgeplagter Entwickler über den Irrsinn der Software-Entwicklung im Mobildfunkbereich berichtet. Man hat in dem Vortrag den Eindruck bekommen, dass die Mobilfunkbranche ein chaotischer, Buzzword-verseuchter Drecksladen ist. Bestes Zitat: ‚Java wird schneller langsamer als Computer schneller werden‘.

Die Hauptanklagepunkte sind, dass XML als Datenspeicher für alles herhalten muss (hauptsache XML), dass XML als Hierarchische Datenbank missbraucht wird, mittels „XML over HTTP“ alle Daten transportiert werden (juchu – noch eine Schicht) und dass XML als Heilmittel gegen alle Probleme des Software-Engineerings gepriesen wird, was zu Konstrukten wie „XML als Zwischenschicht zwischen Datenbank und Applikation“ führt.

Jede neue Software wird in Java geschrieben, weil es die „Schlipsträger“ poppig finden, scheiss auf die Performance, die Hardware wird’s schon richten. Der Begriff der Klopapierprogrammierung hat es mit besonders angetan, er steht für Wrappende Wrapper wrappen Wrapper die wrappen oder so ähnlich, also zig Schalen um vorhandene Bibliotheken.
Weil Java als Lehrsprache verwendet wird, ist sie scheinbar die Lösung aller Probleme. Beim Lernen wird strukturierte Programmierung trainiert („Hello world“), statt sofort Objekt-orientiertes Denken zu vermitteln.

Ein schönes Beispiel war die Story über einen Handy-Provider, der eine eingehende SMS via HTTP auf seinen Server weitergeleitet bekommen möchte. (Bedingung nur nachts und maximal eine SMS pro Sekunde, wegen der Systemlast…. har har har). Als Erfolg oder Mißerfolg gab es keine ordentliche HTTP-Response, sondern ein HTTP-Redirect auf eine wildfremde Adresse mit angehängtem success=Y …

Der nächste Vortrag „Antennen selbst bauen“ war ziemlich schlampig, es lief im Prinzip darauf hinaus, dass die Vortragenden Antennen-Bausätze zur Verfügung stellen werden, weil sie Zugriff auf genaue CNC-Maschinen haben. Diese Bausätze werden dann über die CCC-Strukturen verkauft.


„Sniffen für Fortgeschrittene“ war eine Einführung in tcpdump und ethereal, nicht unbedingt neues, aber trotzdem eine gute Zusammenfassung der Sniffing-Möglichkeiten. Herr C. hat auch gleich losgesnifft und tatsächlich einen Idioten gefunden, der über ungesichertes POP3 seine Mails abruft…


Mein letzter Vortrag war eine Einführung in Python, sehr interessant, obwohl die Sprache den dreckigen Charme von PHP hat. Die Garbage-Collection in Python ist um einiges eleganter als in Java, nicht mehr benötigte Objekte werden z.B. sofort gelöscht (Java GC räumt erst auf , wenn der Speicher wirklich voll ist).

Danach habe ich noch ein bisschen Blinkenlights angekuckt und bin dann nach hause gefahren.

Guten Tach

Hui ui ui, unser Internetz geht wieder. Pünktlich am Freitag abend war es kaputt und nur durch den heldenhaften Einsatz von Karsten (Täterätää) ist es gelungen … (hier könnte Ihre dramatische Version der Geschichte stehen).

Weil Weihnachten ist, kann ich ja verraten, dass am 10.3. The Gathering in der Berliner Passionskirche eine Akkustik-Session spielen 🙂 Mich als größter Gathering-Fan der Welt entzückt das recht heftig.

Im Januar/Februar spielen ebenfalls Anathema:
Jan. 24 – Matrix – Bochum, GER;
Jan. 25 – Knaack – Berlin, GER;
Jan. 28 – Alte Spinnerei – Glauchau, GER;
Feb. 02 – Hirsch – Nurnberg, GER;
Feb. 03 – Colos Saal – Aschaffenburg, GER;
Feb. 04 – Substage – Karlsruhe, GER;
Feb. 05 – Backstage – Munich, GER;

Six Feet Under sind mit den Kollegen von Criminal und Fleshcrawl unterwegs:
26.02. D ESSEN @ ZECHE CARL,
28.02. D MÜNSTER(breitefeld-dieburg) @ LIVE ARENA,
29.02. D ENGELSDORF @ HELLRAISER,
02.03. D BERLIN @ HALFORD,
03.03. D HAMBURG @ MARKTHALLE

Ich hüpfe am Wochenende auf dem 20C3 rum, der Fahrplan klingt vielversprechend, vielleicht sieht man sich ja…

Linux auf moderner Hardware (P4 mit HT, Asus P4P800)

Eine Kurzanleitung wie man sein Linux für neue Hardware fit macht…

Zunächst auf der alten Hardware booten, einen Pentium-Kernel compilieren und diesen booten. Ansonsten kann es passieren, dass ein Pentium 4 mit einem für AMD Athlon compilierten Kernel eine Panic bekommt.

Wenn der Pentium-Kernel bootet, wird die neue Hardware eingebaut, und der ‚richtige‘ Kernel compiliert. Als CPU wird Pentium 4 eingestellt (CONFIG_MPENTIUM4=y), wenn Hyperthreading gewünscht ist, muss ACPI einschalten werden (CONFIG_ACPI=y). Wer nur Hyperthreading aber den ganzen ACPI Schnickschnack nicht braucht, setzt die Option CONFIG_ACPI_HT_ONLY=y.
Nach dem Booten dieses Kernels sollte cat /proc/cpuinfo zwei logische CPUs anzeigen.

Asus bietet für den Gigabit-LAN Onboardchip von 3com auf seiner Webseite einen Treiber an. Nach dem Download und auspacken des Archives, kann das enthaltene .tar.gz-File extrahieren und im Sourcen-Verzeichnis make anwerfen. Ein ‚insmod 3c2000.o‘ lädt das Modul, es erkennt auch das angeschlossene Kabel und die Verbindungsparameter korrekt.
Leider ist bis auf ein einfaches Ping ab diesem Punkt nicht viel mehr rauszuholen. DHCP funktioniert zwar, aber TCP-IP Verbindungen zu anderen Rechnern funktionieren nicht, DNS ist auch nicht verfügbar.

Weil das ziemlicher Mumpitz ist und ich erstmal keine Idee weiter habe, schreibe ich den Artikel morgen weiter… 😉

Blinkenlights reloaded

Juppi, es gibt dieses Jahr wieder Blinkenlights am Alex 🙂 Vom 22.12. bis zum 04.01. ist die Blinkenlights-Installation im Haus des Lehrers wieder aktiv, dieses Mal mit der Acarde-Technik, es können also Graustufenfilme gezeigt werden. (via Tim).

Dreckstag (vorsicht: Explizite Lyrik)

Heute war der abgefuckteste Tag des Jahres 🙁 VauWeh ruft an und sagt, dass wegen eines defekten Magnetschalters (?) der Bremskraftverstärker ausgetauscht werden muss, Kostenpunkt 400 Euro. Ich habe dach einigem Hin- und Her abgelehnt. Die Inspektion hat dann ’nur‘ noch 560 Euro gekostet.

Jetzt nagt das schlechte Gewissen, ob ich nicht um meiner Sicherheit willen … Das Problem ist, dass niemand mir sagen kann (oder will) was genau kaputt ist, warum man den Schalter nicht einzeln tauschen kann und in wie weit das die Fahrsicherheit beeinflusst.
Bei VauWeh heisst es, dass sie den Tausch sehr empfehlen, auf die Frage ‚Kann ich auch mit diesem Fehler noch sicher Bremsen ?‘ ernte ich vielsagende Blicke, träges Schulterzucken und ‚Wir empfehlen es ihnen wirklich‘. Bei ATU will auch niemand eine konkrete Aussage am Telefon machen, „…wenn es nur das ESP betrifft, was aber nur in Grenzfällen eingeschaltet wird … aber dazu kann ich nichts sagen.“. Oh mann.
Was ich mir zusammenreimen konnte: falls der Bremskraftverstärker ausfällt, ist das Bremspedal hart, ich muss ziemlich treten. Meine Bremse ist aber butterweich und verzögert sehr gut, lediglich eine Lampe ging bisher (in 12 Monaten) drei mal an. Im Handbuch steht, das ist die ESP-Lampe, wenn sie dauerhaft leuchtet -> ab in die Werkstatt. Werkstatt hat am Telefon gesagt, das ist nicht schlimm, wir kucken bei der nächsten Inspektion rein.
Heute war Inspektion -> siehe oben.
Kennt sich jemand mit Autos aus ? Ich haben einen 4er Golf, Benziner 1.4l und möchte gerne wissen, was dieser ominöse Magnetschalter schaltet.
Ich (Computer-Futzi) weiss jetzt so ungefähr wie sich Nicht-Nerds fühlen wenn irgendwas nicht funktioniert.

Hm und wegen teurer Reparaturen heule ich rum ? Ach ja – da wäre noch die Kleinigkeit, dass Wegert zwei Dias von mir verschlampt hat. So ein Drecksladen, die Bilder waren wirklich gut, deswegen wollte ich ja schön große Abzüge davon machen. Und was macht dieser A*B*G*E*F*U*C*K*T*E %!#*§-Laden ? „Hoppla, Ihre Dias sind irgendwie verloren gegangen, im Labor weiss keiner von nichts…“ ich könnte kotzen und Wände anbrüllen 🙁

Spenden für SelfHTML

Das SelfHTML-Projekt braucht einen neuen Server, der über Spenden finanziert werden soll.
Ich denke kaum jemand ist um diese erstklassige Lektüre herumgekommen, es ist schon seit Jahren auch für mich die erste Referenz in allen Fragen zu HTML und CSS. Also Leute, Hand aufs Herz: überlegt mal, was Euch die gesparte Zeit und die nicht gekauften Fachbücher wert sind und überweist diesen Betrag an die Betreiber (via heise).

wenn alte Tattergreise auf die Kacke hauen wollen…

Shit Happens. Es sei noch nicht klar, ob der Unfall die Aufnahmen verzögere oder in die Reality-TV-Show eingearbeitet werden könne, sagte eine MTV-Sprecherin.
Können wir mit er 9-11-01 Reality Show auf MTV rechnen ? Genug Videos davon gibt es ja.

So kann man es auch ausdrücken

Aus einem Kundennewsletter: „Wir haben uns entschlossen, Kundeninformationen nur noch im HTML-Format zu erstellen, da die Textversionen zu unübersichtlich sind und ohnehin nur sehr selten gelesen werden.“
Sagen Sie es doch frei heraus, dass Sie zu inkompetent sind …

Bluejacking in Theorie und Praxis

Die SunNetwork Conference kann man getrost als die größte Spielwiese für Bluejacking ansehen. Ich hätte nie gedacht, wie viele Leute Bluetooth an ihrem Telefon aktivieren (das mag aber auch an der hohen Headset-Dichte gelegen haben).
Auf der Keynote-Session waren durchschnittlich zwischen 10 und 20 Geräten in Rechweite:


Das Vollnerven anderer Leute gestaltet sich dann so: Man erstellt eine Notiz oder einen Telefonbucheintrag mit der gewünschten Botschaft und sendet sie per Bluetooth an die erreichbaren Geräte in der Umgebung. Das sorgt für wunde Finger bei entsprechend hoher Geräteanzahl in der Nachbarschaft…
Nicht alle Geräte nehmen vorbehaltlos Verbindungen an, es ist aber schwer herauszufinden, welche Geräte sich hinter den Beschreibungen verbergen, so lange die User nicht einen aussagekräftigen Namen vergeben (viele benutzen aber den Gerätenamen). Ich habe oft Geräte gefunden, die als name ‚unknown‘ tragen, wahrscheinlich waren einige davon Headsets, zumal diese eher selten Verbindungen annahmen.
Das ‚Opfer‘ bekommt dann die Notiz direkt auf das Telefon gebeamt:


Das klingt jetzt nach Spielkram und Nerv-Faktor, ich bitte aber mal zu bedenken, was passiert, wenn man mit einem Bluetooth-Dongle und einem Subnotebook bewaffnet eine solche Veranstaltung besucht. Das Suchen nach Geräten und das Versenden von Nachrichten kann man sehr schön automatisieren, auf einer IT-Veranstaltung fällt ein Notebook mehr oder weniger auch nicht auf.
Ich denk …. „Wichtige Warnung der Messeleitung: das Tafelwasser enthält LSD!“. … nein, das denke ich besser nicht zu Ende 😉
Auf der Heimfahrt habe ich „routinemäßig“ nach Geräten gesucht und sogar eins gefunden. Der arme Mitreisende musste dann meine merkwürdigen Botschaften ertragen…

Bahn fahren macht wieder Spaß =:-)

Nachtrag: es scheint echt von den Geräten abhängig zu sein, wie die Nachricht beim Opfer ankommt. Die ’sicherste‘ Methode ist es, einen Telefonbucheintrag zu senden, da dieser garantiert auf dem Display des Opfers erscheint. Notizen von T610 zu T610 z.B. werden einfach im Hintergrund gespeichert – wenn der Nutzer also nicht danach sucht, sieht er die Nachricht ggf. nicht.

Rumsfeld und die sexuelle Quadratur des Kreises

„Berichte, die sagen, dass etwas nicht passiert ist, finde ich immer interessant, denn wie wir wissen, gibt es Bekanntes, das bekannt ist. Es gibt Dinge, von denen wir wissen, dass wir sie wissen. Wir wissen auch, dass es bekanntermaßen Unbekanntes gibt. Das heißt, wir wissen, dass es Dinge gibt, die wir nicht wissen. Aber es gibt auch Unbekanntes, das unbekannt ist – das, wovon wir nicht wissen, dass wir es nicht wissen.“

Dafür gab es natürlich einen Preis. Es ist mir unverständlich was manche Leute ungestraft vom Stapel lassen können, Ich habe es meist auf meine mangelnden Englischkenntnisse geschoben, wenn ich Phrasen dieses Kalibers nicht verstanden habe (Warum hat Ari Fleischer nix gewonnen btw. ?), wahrscheinlich sollte ich mehr Bullshit-Bingo spielen…

g!zmo erblickt das Licht der Welt

Das Webseitenframework g!zmo steht für einen öffentlichen Betatest zum Download bereit. Die primäre Funktion ‚Weblog‘ kann modular erweitert werden, das Template-System erlaubt extrem flexible Designs. Geplant ist die Integration eines Wikis (!), hirarchische Kategorien (=Baumstrukur) und vieles mehr.
Für Sunlog 2.2 Benutzer steht ein Exportscript bereit um alte Weblogeinträge samt Kommentare in g!zmo zu importieren. Wir freuen uns auf eine rege Beteiligung.