{"id":6585,"date":"2026-02-20T06:59:44","date_gmt":"2026-02-20T05:59:44","guid":{"rendered":"https:\/\/gerber.ag\/?p=6585"},"modified":"2026-02-20T07:07:15","modified_gmt":"2026-02-20T06:07:15","slug":"die-bemerkenswerte-unhoflichkeit-der-modernen-firmware-oder-wie-man-ein-bios-hoflich-belugt","status":"publish","type":"post","link":"https:\/\/gerber.ag\/?p=6585","title":{"rendered":"Die bemerkenswerte Unh\u00f6flichkeit der modernen Firmware (oder: Wie man ein BIOS h\u00f6flich bel\u00fcgt)"},"content":{"rendered":"\n<p>Es ist eine allgemein untersch\u00e4tzte Tatsache, dass Siliziumchips eine ausgepr\u00e4gte Pers\u00f6nlichkeit besitzen. Besonders Mainboards der Business-Klasse neigen zu einer Art von hochn\u00e4siger Arroganz, die normalerweise nur in sehr exklusiven Londoner Clubs oder bei der Anmeldung eines Kraftfahrzeugs anzutreffen ist. Mein Fujitsu S9010 ist hierbei keine Ausnahme. Er besitzt ein BIOS, das nicht nur strikt nach Regeln spielt, sondern diese Regeln wahrscheinlich selbst in Leder gebunden und mit goldenen Siegeln versehen hat.<\/p>\n\n\n\n<p>Das Problem war denkbar einfach, aber dennoch von einer existenziellen Schwere: Ich wollte OPNsense installieren. OPNsense ist ein wunderbar vern\u00fcnftiges System, das nichts weiter m\u00f6chte, als Pakete zu schubsen und f\u00fcr Sicherheit zu sorgen. Doch das BIOS des S9010 sah das anders. Es blickte auf den frisch geschriebenen Bootloader auf der SSD herab, r\u00fcmpfte die virtuelle Nase und tat so, als w\u00e4re dort absolut gar nichts zu sehen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Die Vermessung der Unh\u00f6flichkeit<\/h3>\n\n\n\n<p>Bevor man jedoch damit beginnt, Dateien mit der Subtilit\u00e4t eines Abrissunternehmers von A nach B zu kopieren, sollte man sich vergewissern, dass man \u00fcberhaupt das richtige Stockwerk im Blick hat. Da wir am Anfang nicht wissen, wie das System unsere Festplatte getauft hat, bitten wir es um eine komplette Aufstellung aller Anwesenden:<\/p>\n\n\n\n<p>&lt;code&gt;gpart show&lt;\/code&gt;<\/p>\n\n\n\n<p>Dies liefert eine Liste, die so trocken und sachlich ist wie die Steuererkl\u00e4rung eines Buchhalters. Man sucht dort in der Spalte ganz rechts nach dem Eintrag, der stolz das K\u00fcrzel&nbsp;<code>efi<\/code>&nbsp;tr\u00e4gt (oft unter dem Decknamen&nbsp;<code>ada0p1<\/code>&nbsp;oder&nbsp;<code>da0p1<\/code>). Nur wer wei\u00df, wie die Haust\u00fcr genau hei\u00dft, kann auch den falschen Namen auf das Klingelschild kleben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Die Kunst der digitalen Tarnung<\/h3>\n\n\n\n<p>Die L\u00f6sung war so simpel wie perfide. Wir nutzen die Shell \u2013 diesen dunklen Ort, an dem man dem Computer direkt ins Gehirn fl\u00fcstert \u2013 und f\u00fchren eine kleine Maskerade auf. Wir nehmen den ehrlichen, hart arbeitenden OPNsense-Loader und verstecken ihn in einem Kleiderschrank, auf dem mit gro\u00dfen, leuchtenden Buchstaben \u201eEIGENTUM VON MICROSOFT\u201c steht.<\/p>\n\n\n\n<p>Zuerst verschafften wir uns Zugriff auf die heiligen Hallen der EFI-Partition (achtet darauf, den Namen zu nutzen, den euch der Befehl oben verraten hat, hier beispielhaft&nbsp;<code>ada0p1<\/code>):<\/p>\n\n\n\n<p>&lt;code&gt;mount -t msdosfs \/dev\/ada0p1 \/mnt&lt;\/code&gt;<\/p>\n\n\n\n<p>Dann erschufen wir einen Pfad, den jedes noch so voreingenommene BIOS als \u201eStandard\u201c betrachten muss, quasi die universelle Uniform f\u00fcr Bootloader:<\/p>\n\n\n\n<p>&lt;code&gt;mkdir -p \/mnt\/EFI\/BOOT&lt;\/code&gt;<\/p>\n\n\n\n<p>&lt;code&gt;cp \/mnt\/EFI\/freebsd\/loader.efi \/mnt\/EFI\/BOOT\/BOOTX64.EFI&lt;\/code&gt;<\/p>\n\n\n\n<p>Doch der eigentliche Geniestreich, der Moment, in dem wir dem Fujitsu-Board erz\u00e4hlten, dass wir gerade ein sehr teures Betriebssystem mit Fenstern im Namen installieren, war dieser:<\/p>\n\n\n\n<p>&lt;code&gt;mkdir -p \/mnt\/EFI\/Microsoft\/Boot&lt;\/code&gt;<\/p>\n\n\n\n<p>&lt;code&gt;cp \/mnt\/EFI\/freebsd\/loader.efi \/mnt\/EFI\/Microsoft\/Boot\/bootmgfw.efi&lt;\/code&gt;<\/p>\n\n\n\n<p>Wir haben also den OPNsense-Loader genommen und ihn als&nbsp;<code>bootmgfw.efi<\/code>&nbsp;verkleidet \u2013 das digitale \u00c4quivalent dazu, sich einen falschen Schnurrbart anzukleben und mit verstellter Stimme zu behaupten, man sei der Klempner.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Das Ergebnis<\/h3>\n\n\n\n<p>Nach einem beherzten L\u00f6sen der Verbindung und einem Neustart geschah das Wunder:<\/p>\n\n\n\n<p>&lt;code&gt;umount \/mnt&lt;\/code&gt;<\/p>\n\n\n\n<p>&lt;code&gt;reboot&lt;\/code&gt;<\/p>\n\n\n\n<p>Das BIOS sah den Pfad zu Microsoft, lehnte sich zufrieden in seinem Schaltkreis-Sessel zur\u00fcck und dachte: \u201eAh, endlich wieder normale Leute im Haus.\u201c Es lud den Code ohne weitere Fragen. Sekunden sp\u00e4ter begr\u00fc\u00dfte mich OPNsense. Die Hardware ist gl\u00fccklich, weil sie glaubt, sie h\u00e4tte ihren Willen bekommen. Ich bin gl\u00fccklich, weil ich eine funktionierende Firewall habe. Und irgendwo tief im Inneren des S9010 schlummern nun ein paar Zeilen Code, die sich den digitalen Ast lachen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es ist eine allgemein untersch\u00e4tzte Tatsache, dass Siliziumchips eine ausgepr\u00e4gte Pers\u00f6nlichkeit besitzen. Besonders Mainboards der Business-Klasse neigen zu einer Art von hochn\u00e4siger\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6585","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/gerber.ag\/index.php?rest_route=\/wp\/v2\/posts\/6585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gerber.ag\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gerber.ag\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gerber.ag\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gerber.ag\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6585"}],"version-history":[{"count":4,"href":"https:\/\/gerber.ag\/index.php?rest_route=\/wp\/v2\/posts\/6585\/revisions"}],"predecessor-version":[{"id":6590,"href":"https:\/\/gerber.ag\/index.php?rest_route=\/wp\/v2\/posts\/6585\/revisions\/6590"}],"wp:attachment":[{"href":"https:\/\/gerber.ag\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gerber.ag\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gerber.ag\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}