Freitag, 22. Januar 2010

klaute's HackStick (v0b00000010)

Lange ist es her das ich über den Stick geschrieben habe, es hat sich auch nicht all zu viel getan.

Die Firmware hat ein paar neue Features bekommen und wurde, gerade was die Performance und Speichernutzung angeht, optimiert.

Eine wesentliche Änderung ist eine kleine Platine die auf den Stick gesteckt wird und die Pegelwandlung von den +5V des AVR's auf die bipolaren Spannungen einer RS232 Schnittstelle angleicht.

Oder kurz und einfach gesagt, ich habe einen MAX232 angeschlossen ;-)

Im Moment arbeite ich an dem Fuzzer und demnächst wird der ATMega8-16PU (8kB flash) durch einen ATMega168-20 ersetzt, wodurch sich der Flashspeicher verdoppelt und die Taktfrequenz von 16MHz auf 20MHz erhöht. Der neue Mikrocontroller sollte ein gutes Stück weniger mit der USB-Verbindung ausgelastet sein als vorher und zudem steht das doppelte an Flash zur Verfügung. Allerdings ist die Firmware mittlerweile ~8 kB groß, was mich auf die Idee zum wechseln gebracht hatte... ;)

Shakes & Fidget Browsergame

Wer jetzt denkt ich stelle hier ein Browsergame vor, irrt sich. Ganz davor drücken möchte ich mich dennoch nicht. Shakes & Fidget ist eine Online Comic Bilderserie über zwei Figuren die sich humorvoll und planlos ihren Weg durch World of Warcraft kämpfen. Mehr dazu hier. - http://www.shakes-and-fidget.com

Seit einer ganzen Weile gibt es zu dieser Web Comic-Reihe auch ein Browsergame. Da ich aber nicht die Zeit habe das Spiel zu spielen, geht es mir wie auch in vielen anderen Spielen, ich müsste Cheaten, oder mir zumindest einen Weg finden mit selbst den Zeitverlust zu mindern.

Nach ein paar Stunden Entwicklungszeit könnte man ja fast einen Java-Client für die Konsole schreiben, der das Spiel automatisch und wesentlich effizienter spielt als man das als Mensch könnte. Wenn das nicht verboten wäre... ;-)

Das Spiel basiert übrigens auf Flash und kommuniziert(e) plain text über eine unverschlüsselte Socketverbindung mit dem Server.

Vor ein paar Tagen wurde jedoch ein Update des Flash-Clients online gestellt, in dem die Verbindung zum Server auf HTTP umgestellt wurde. Verbessert wurde dadurch nichts merklich, nur das die Bilder noch langsamer geladen werden als vorher.

Aber zum Glück habe ich diesen Bot nicht geschrieben sonst würde das Reverse Engineering schon wieder von vorne losgehen... :D

Dienstag, 12. Januar 2010

GarbageBot v0.4

Wie auf dem Bild zu sehen ist besitzt der Roboter nun 2 weitere LED's, die über denen liegen, welche ich bereits in meinem letzten Blogeintrag über den Bot beschrieben hatte.

Diese beiden neuen LED's können gemeinsam vom AVR-Controller ein-/ausgeschaltet werden und dienen als zusätzliche Lichtquelle um die Reflexionen auf Hindernissen zu erhöhen.

Sie werden jedoch nur bei Nacht oder dämmernden Lichtverhältnissen benötigt, da die Empfindlichkeit der ursprünglichen normalen, roten LED's leider nicht ausreichend hoch gewesen ist um auch bei Nacht sinnvolle Messintervalle realisieren zu können.

Diese normalen LED's wurden jedoch mittlerweile durch ultra-helle rote ersetzt, welche im Vergleich zu den Vorgängern eine viel höhere Empfindlichkeit ausweisen.

Die Firmware besitzt nun auch einen rudimentären Autopiloten und einen Programm-Modus in dem der GarbageBot über die IR Fernbedienung frei konfiguriert/gesteuert werden kann. Ist der Auto-Pilot aktiv, wird die Umgebung im Alleingang "erkundet". Da die Messungen der LED's jedoch noch nicht ganz fehlerfrei ist, sind Kollisionen quasi an der Tagesordnung...

Freitag, 27. November 2009

EZ430-Chronos/Tools die man bedingungslos besitzen muss...

Wer wie ich schon immer eine program-
mierbare Uhr besitzen wollte, am 12. Dezember 2009 ist es soweit.

Texas
Instruments präsentiert die EZ430-Chronos.


Hier noch ein paar Google Video-Ergebnisse.

Donnerstag, 12. November 2009

GarbageBot v0.3

Kurzes Update zum GarbageBot... Die Firmware wurde überarbeitet und ist nun in der lage die neu angebrachten LED's als Sensoren abzufragen. Unter dem Link wird gezeigt wie man mittels Mikrocontroller, LED's als lichtempfindlichen Sensor (wie z.B einen Fotowiderstand) verwenden kann. Diese Technik bzw. diese Eigenschaft von LED's wird oft in Reaktivlichtern beim Geocaching verwendet.
Das ganze ist in meinem Roboter zwar noch nicht ganz ausgereift, aber mit ein paar weiteren Stunden Arbeit wird der kleine Roboter sicher irgendwann vor einer Wand anhalten, oder sogar einer Lichtquelle folgen...

Beim mechanischen Aufbau des GarbageBot hat sich auch etwas getan. Die Halterungen für die LED's sind dazu gekommen das Gestell ist insgesamt stabiler geworden. Die Hauptplatine ist nun abnehmbar, ohne den Lötkolben auspacken zu müssen. Was noch fehlt im Moment ist eine bessere "Bereifung" der Motorwellen und eine ISP-Schnittstelle für den µC.

Hier noch ein 2tes Bild von vorne.
Und ein Video im dunklen mit den neuen LED-Sensoren/Beleuchtung...

Montag, 26. Oktober 2009

Garbage Bot

Dieses mal geht es um einen kleinen Roboter, der im Moment noch mehr einem ferngesteuertem Fahrzeug gleicht als einem autonomen Automaten. Es fehlen auch noch verschiedene Sensoren die eine autonome Fahrt durch das Wohnzimmer erst ermöglichen würden.
Der Grundstein dafür ist jedoch gesetzt. Der AVR-Controller erzeugt 2 Software-PWM-Signale um die Drehzahl der beiden Motoren unabhängig voneinander regeln zu können. RC5-Signale von handelsüblichen IR-Fernbedienungen werden empfangen, dekodiert und ausgewertet. Es ist hiermit möglich den Roboter mittels der Tasten 0-9 sowie die Ch+ und Ch- zu steuern.

Der Roboter besteht im Moment aus den folgenden Bauteilen:

  • 2 Stück Lochrasterplatine
  • ca. 40 cm 1,5 mm² Kupferdraht für das Gestell
  • Einfacher Kippschalter
  • 4-Adriges Flachbandkabel
  • mehrere LED's
  • Spannungsregler 7805
  • 3x 100 µF Kondensatoren
  • 1x 100 µF Elko
  • 1x 4,7 µF Elko
  • 3x 220 Ω Widerstände
  • 16 MHz Quarz
  • TSOP1738 Photo Modul
  • 12V NiMH Akkupack


Das folgende Video zeigt den Roboter in Aktion...

Montag, 12. Oktober 2009

klaute's HackStick

Eigentlich wollte ich erst darüber schreiben sobald er fertig ist, allerdings hat sich das ganze als ein recht anspruchsvolles und vor allem zeit intensives Projekt entpuppt.
Es geht um meinen USB HackStick an dem ich nun schon seit Anfang April mehr oder weniger regelmäßig arbeite. Die Idee so ein Tool zu entwickeln kam während einem Gespräch auf einem treffen der LUUG-HN. Es ging im Laufe dieses Gesprächs zunächst um die Sicherheit bzw. Angreifbarkeit von Modulen im Linux-Kernel.
Die Idee war zunächst, sich dabei die Module im Linux-Kernel heraus zu picken, welche seit mehr als 12 Monaten nicht mehr "gefixt" wurden, um sie gründlich auf etwaige sicherheitskritische Probleme zu untersuchen. Besonders auffällig wurden uns, nach kurzer Suche, die Module für den Parallel- und USB.-Port Da jedoch die Parallelports am aussterben waren bzw. bereits ausgestorben sind wanderte der Fokus schnell auf die USB Schnittstelle. Es kam also die Frage auf ob der USB-Stack von außen, also per USB-Device , angreifbar ist. Um dies herauszufinden könnte man nun den Code des USB-Stack durchgehen und daraufhin dann ein Device für den daraus resultierenden Exploit ggf. herzustellen. Oder man dreht das ganze um, baut erst die Hardware und lässt diese gezielt den USB-Stack auf Lücken untersuchen (Fuzzing).

Der HackStick ist also ein Device welches dazu verwendet werden, kann händisch oder automatisch, per TTY direkt den USB-Stack zu penetrieren.

Was die Hardware für den HackStick angeht, sie ist recht simpel gehalten. Im groben besteht diese aus einem Atmel AVR-Mikrocontroller mit 16 MHz Taktung, ein paar Widerständen, LED's zur Statusanzeige und verschiedenen Schnittstellen. Die Software/Firmware auf dem Stick beinhaltet einmal einen USB Stack für HID Devices (V USB) und ein TTY welches auf das per RS232 zugegriffen werden kann. Die Firmware ist größtenteils in C geschrieben. Je nachdem welche Funktionen in der Firmware aktiviert wurden kann der Stick direkt per USB (USBASP kompatibel) oder per ISP programmiert werden. Da in der aktuellen Version noch kein TreiberIC für RS232 enthalten ist muss noch eine Treiberplatine an den Stick angeschlossen werden um auf das TTY zugreifen zu können. Der Stick ist momentan in den letzten Schritten, um mit dem Fuzzing effektiv starten zu können.

Um eine grobe Vorstellung zu bekommen wie das ganze Live aussieht hier noch ein paar Videos...
Das erste der beiden folgenden Videos zeigt einen Teil der Grundfunktionen des TTY sowie der entsprechenden Syslog ausgaben. Das zweite wie mit dem HackStick ein USB GamePad nachgebildet wird.








PowerMgr: Mein selbst gebautes Energie- und Smart-Home-System

PowerMgr: Mein selbst gebautes Energie- und Smart-Home-System PowerMgr ist mein eigenes Home-Energy-Management-System. Es verbindet Photov...