Tag Archiv für Hacking

Bypassing the Boot-Lock on my ThinkPad

– OR: How I used a floppy disk to pwn a security system –

I recently got a Lenovo ThinkPad T430 from my employer. My first thought after I saw that it was running Windows XP was “Can I make it run Linux?”. Luckily we weren’t forbidden to boot another OS than the stock one on it. Admittedly, they didn’t explicitly allow us to do it either. To be accurate, they didn’t say a single thing on what we are supposed to do with these computers. So I can’t be wrong if I don’t change anything on the system, can I?

Anyways, to the fun part! Officially, the notebook has two Windows-systems on it. One for use in the company and one for “private” use. The BIOS is password protected and booting from any device other than the internal hard drive has been disabled. Since I am definitely not allowed to modify the hardware on this computer, I didn’t even start thinking about swapping the hard drive or similar things. Instead, I focused on the software. One thing immediately caught my eye, they are using a program called “eXtended FDisk” to select the OS on boot.

The used bootmanager: eXtended FDisk

The used bootmanager: eXtended FDisk

Apart from the fact that this is a beta version, I noticed the little text on the bottom saying “F1/F2: Disk A:”. Sounds like we might be able to boot using a Floppy, and sure we are. So I grabbed my USB floppy drive and one of my old DOS disks and threw it in. A few seconds later I had MS-DOS running on my laptop. Quickly I remembered that running MS-DOS on that machine wasn’t my goal and I continued pursuing my actual target. Since booting Linux from a floppy disk (if even possible) isn’t much fun, I somehow needed to boot an OS from a drive other than A. For the time being, I went the obvious path and used that I am able to execute code using a floppy disk. This code may also be another bootloader. After a few tries, I settled with Plop (plpbt).

I plugged in my USB flash drive with Ubuntu Linux on it, inserted the Plop-disk into my FDD and restarted the computer. And there it was: A boot option for the flash drive.

Plop Bootmanager

Plop Bootmanager

For some reason, I was getting a blank screen when trying to boot the MBR of my flash drive using Plop. However, this can be circumvented by pressing “q” in the main menu and selecting the partition manually. In my case it was HDB Partition 2.

HDD/Partition selector

Just select the correct drive and partition…

Just ignore the warning regarding that the bootsector is the MBR if it appears and press “Y” (or “Z” in case you have German keyboard layout).

Ignore the warning

Simply ignore the warning and press Y.

Shortly after and to conclude the exercise for now, I had this on my screen:

Finally got Linux to boot!

Finally got Linux to boot!

Final thoughts
I successfully completed what I wanted to do. It might be a bit convoluted and having to use a floppy disk isn’t the fastest and quietest way to boot a computer, but for using this machine at home, it’s all right.

However, this security hole did not have to be in the system since eXtended FDisk supports password protection for the boot-from-floppy option. Also, as a infosec person, I would never recommend deploying software in beta status on “production devices”. Maybe they just thought “Ah, who even has floppy drives these days?! We don’t need to care about this!”

One path which I did not pursue at all is trying to reconfigure eXtended FDisk. This should also be possible and we would not need a floppy drive at all. The sweet thing about the FDD-solution is that it can not be traced at all whereas the other solutions require changes to the installed system.

Nachtrag: SMC7904 WBRB von Pollin

Wie die regelmäßigen Leser meines Blogs bereits wissen, hatte ich mir vor einigen Wochen den SMC7904 WLAN-Router bei Pollin bestellt. Verkauft wird er für nur 5€, jedoch ohne Funktionsgarantie. Das erste Gerät, das ich bestellt hatte, war somit auch prompt defekt. Die Details findet ihr in meinem ersten Beitrag.

In meiner letzten Bestellung habe ich mir nochmals einen Router bestellt. Auch dieser war defekt, zeigte jedoch einen anderen Fehler.
Er startete direkt in den Recovery-Modus, welcher beim anderen Router noch per RESET-Knopf ausgelöst werden musste. Sonst war jedoch das selbe Verhalten zu beobachten. Der wichtige Unterschied zum ersten SMC lag jedoch darin, dass ich ein Firmware-Update von der Website des Herstellers einspielen konnte. Daraufhin startete er auch wieder. Man konnte sich am Router anmelden und ihn konfigurieren. Das WLAN-Netz wurde ebenfalls von allen anderen Computern erkannt. Sobald man aber eine Verbindung herstellen wollte, brach das System den Vorgang sofort wieder ab. Unter Linux erhielt ich die folgende Fehlermeldung:
wlan0: direct probe to xx:xx:xx:xx:xx:xx timed out
Nach einigen Versuchen das Problem über Software-Einstellungen zu beheben, entschloss ich mich den Fehler an der Hardware zu suchen. An dieser Stelle sei noch erwähnt, dass der Router auch über Telnet konfiguriert werden kann. Der Benutzername ist “admin” und das Passwort ist “smcadmin”, vollkommen egal ob der Benutzer das Kennwort geändert hat.
[-> facepalm]

Telnet auf dem SMC7904

Telnet auf dem SMC7904

Zum Testen habe ich als erstes die WLAN-Karte mit der des ersten Routers ersetzt und siehe da: Man konnte plötzlich eine Verbindung herstellen. Daraufhin musste ich ausschließlich noch die beiden Antennen umlöten und das Gerät funktionierte wieder tadellos.
Ich hatte also Glück. Bei einem Router war das Mainboard defekt, bei dem Anderen nur die WLAN-Karte. Ganz wertlos ist der defekte Router jedoch auch nicht, da der integrierte Switch noch funktionsfähig ist.

Zusammenfassend habe ich für die 10€ einen funktionierenden WLAN-Router und einen 4-Port Switch erhalten.

Noch ein paar Anmerkungen zum Schluss:

  • Der WLAN-Chip unterstützt nur offene, mit WEP oder WPA geschützte Netzte.
  • Die Geräte sind gebraucht. Zumindest die, die ich erhalten habe.
  • Pollin verkauft unterschiedliche Modelle. Ich erhielt einen SMC7904WBRB und einen SMC7904WBRA
  • Wie oben erwähnt ist der Passwortschutz ineffektiv.
  • Das System ist meines Wissens nach kein Linux. Für Hacker ist die Kiste also weniger zu gebrauchen.

SMC7904 WBRB von Pollin

SMC7904 bei Pollin

Pollin verkauft zur Zeit den SMC7904WBRB WLAN Router mit der Anmerkung “Ungeprüfte Retourenware mit meist nur geringen oder gar keinen Mängeln. Keine Funktionsgarantie!

Beim Preis von 4,95€ musste ich einfach zuschlagen… und prompt hatte ich ein defektes Gerät. Da ich es nicht geschafft habe, den Router wieder zum Leben zu erwecken, gibt es in diesem Beitrag die Problembeschreibung und meine Lösungsversuche sowie ein paar technische Details. Vielleicht hilft es jemandem, der das selbe Gerät hat.

Das Problem

Nach dem Einstecken leuchtet die Power-LED, alle anderen LEDs sind dunkel. Steckt man ein Netzwerkkabel ein, so blinkt die entsprechende LED, jedoch kann keine Verbindung aufgebaut werden. DHCP funktioniert nicht, über die fixe IP 192.168.2.1 kann der Router auch nicht angesprochen werden.

Reset nicht möglich

Drücken der RESET-Taste, egal wie lang und wann hat keinen Effekt.

Firmware update / Neuinstallation nicht möglich

Drückt man die RESET-Taste beim Einschalten des Routers, so erreicht man unter der IP 192.168.2.1 den Bootloader des SMC. Dieser lehnt jedoch jegliches Firmware-Image mit der Meldung “incorrect firmware image” ab.

Hardware-Fehler

Nach einigem Suchen stellte ich fest, dass drei Widerstände auf der Platine des SMC defekt waren (siehe Bild). Einer der Widerstände (R370) war sogar verbrannt. Die beiden anderen Widerstände (R371, R372) konnten beide dem LAN-Port #4 zugeordnet werden. Diese Beobachtungen legen einen Defekt durch Blitzschlag oder ein defektes / falsches Gerät an Port #4 nahe. Da ein Ersetzen der Widerstände das Problem nicht behob, wurde wahrscheinlich auch der Flash-Chip beschädigt. Dabei blieb der Bootsektor unbeschädigt.

Technische Daten

  • CPU: TNETD7300 (AR7: 32 Bit MIPS-CPU @160 MHz, 10/100MBits Ethernet)
  • RAM: IC42S81600-7T (2M x 16Bit x 4 Banks -> 128MBit)
  • ROM: ES29LV160DB-80RTG: 16MBit Boot Sector Flash Memory
  • Switch: 88E6060 6-Port Ethernet Switch
  • WLAN: Texas Instruments MiniPCI-Karte ACX111

Bilder

Anbei noch ein paar hochauflösende Bilder der Hauptplatine. (1200dpi Download)

Siehe auch: Nachtrag: SMC7904 WBRB von Pollin