 Dass wir hier sind, viele Leute sehen einen sehr großen Unterschied, da drin Metasploit zu benutzen, zu hacken und andere automatisierte Exploit-Tools zu arbeiten. Aber es ist immer noch eine Möglichkeit, ein System sehr einfach und sehr schnell zu analysieren. Gestern und heute haben wir über Software geredet, über Hardware-Wähler geredet. Die Metasploit möchte es vereinfachen und diese Vulnerabilities zu analysieren und zu aufstehenden Geräten. Manchmal ist es einfach nur darum, das richtige Werkzeug zu haben. Und hier, um jetzt das richtige Werkzeug zu zeigen, sind Julian und Grendolé. Einen herzlichen Applaus. Vielen Dank. Guten Abend alle zusammen. Es sind viele hier. Es ist eine große Beraschung für uns. Ich habe ein bisschen viel Stress. Lass uns einfach mal anfangen. Mit dieser Präsentation über Hardsprite versuchen wir das Ziel von dem Projekt zu zeigen. Das Ziel, das wir erreichen wollten. Wir hoffen, dass wir es erreichen werden. Wir werden die Präsentation mit einer Live-Demo beenden. Und ja, wir leben mögen es gefährlich zu leben. Also, wir fangen aber mit einer kurzen Einführung an über uns. Ich bin ein Pentester im Software-Produkten. Und darum bin ich ein Teil von der GUI von Hardware-Metersploit. Und ich arbeite mit Julian dran. Julian ist ein Elektroniker. Und auch ein Pentester. Und er ist erst für die selber machen von Elektronik. Weil es sehr billig ist und weil es sehr gut funktioniert. Und für Hardware-Metersploit arbeite ich an der Hardware. Und ich versuche, die Platine zu entwickeln. Und den Code für den Microcontroller und den VHTL für das FPGA zu schreiben. Ich hoffe, Sie verstehen, was ein Feldprogrammierbarer Gate Array ist. Das folgende Effekt wird benutzt. Der Schönstelle zwischen Hardware und Software-Sicherheit ist sehr groß. Und wir können nicht wirklich darüber diskutieren. Weil wir lesen viel mehr über die Sicherheit von Software, die jeden Tag repariert wird. Im Gegensatz zu Hardware. Und wir denken, dass ein Teil davon ist, dass Hardware nur ein Weg ist, die Software zu benutzen. Die Hardware ist in der Regel ein Weg, an die Software zu kommen. Und das ist sehr wichtig für das, was im Moment passiert. Ich werde da ein paar Sachen, die Sie gehört haben. Sie haben wahrscheinlich von den Internet auf Dinge gehört. Und die Dinge, über die wir reden, sind Hardware-Produkte. Das sind Dinge von einem einfacher, intelligenten Kühlschrank oder einem. Die gewisse Geräte kontrollieren, die Temperatur kontrollieren. Das ist wichtig, warum Sie vor jedem Gerät smart schreiben müssen, wenn es ein Internet auf Things-Gerät sein könnte. Und das geht nicht nur um Computer. Die Frage, die wir uns stellen, ist, die Sicherheitsmäßig ist Hardware die neue Software. Wir werden viele Produkte uns anschauen. Viele elektronische Produkte, die sich mit einem Netzwerk verbinden. Und wir müssen die Sicherheit von denen uns anschauen und analysieren. Und um die Sicherheit von Software anzuschauen, haben wir sehr viele Werkzeuge. Es gibt große Services, große Hilfen. Wenn man sie mit den Hardware-Komponenten vergleicht, dann sieht man, dass dort viel weniger Lösungen vorhanden sind implementiert wurden. Und es dauert viel Zeit vom Entwickler. Einer unserer Kleinen hat sich gefragt, nachdem man ein Out-of-Report von seinem Produkt gezählt hat, habt ihr geschafft, meine Firma zu bekommen. Das war sehr einfach. Wir haben den selben Weg, den Sie benutzt haben, die Firma drauf zu tun. Ja, das stimmt. Und grundlegend. Wie funktioniert Hardware gegen den Moment? Also, jetzt nehmen wir uns vor, wir haben ein Ding vor uns, ein Objekt und ein elektronisches Produkt. Und wir wollen schauen, die Daten, die da drauf gespeichert sind, auslesen. Also, der erste Schritt ist, wir versuchen das Produkt zu öffnen. Manche versuchen dagegen zu schützen, dass das Produkt wirklich schwer als öffnbar ist. Aber das ist nicht wirklich die beste Lösung. Wenn jemand wirklich das Produkt öffnen möchte, wird er das können. Der wird dann nicht nur zurückbauen, wie das funktionsfähig zu machen, aber sie können es auseinandernehmen. Der zweite Schritt, Fingerprinting. Wenn man das Produkt öffnen kann, dann kann man wahrscheinlich eine Platina drin finden. Und da sind viele Komponenten drauf. Und dann muss man nur die ganzen Datenblätter von den einzelnen Dokumenten durchlesen und die Interessanten finden. Und dieser Schritt bedeutet einfach, dass man viele Datenblätter lesen muss. Und wenn man herausgefunden hat, wo interessante Komponenten sind, Microcontroller oder Fastchips, dann kann man die benutzen. Und dann gibt es zwei Möglichkeiten, das zu machen. Man kann die Komponenten ablöten und in einem anderen Gerät sie benutzen. Oder man kann sich direkt mit dem Werkzeug, das man benutzt, mit der Komponente verbinden. Und dort dann eine Analyse durchführen. Und dann, wenn dann mit dem Chip verbunden ist, dann kann man versuchen auf der Lese- und Schreibreportoperation durchzuführen. Und wenn man die Daten hat, dann versucht man herauszufinden, was der Prozess macht, um herauszufinden, wo da irgendwelche Fehler drin sind, und diese auszunutzen. Das ist unser Grund, das Ziel. Das ist, alle Daten runterzuholen. Das ist, was wir wirklich machen wollen. Darüber hinaus wollen wir auch noch den vierten Schritt machen. Wir wollen, dass es einfach ist. Und die ganzen Daten, die wir haben, soll jemand, der Datenblätter sieht oder der eine oder zwei Kabel dranlutet. Der soll in der Lage sein, das machen zu können. Also das Ziel ist, diese Brücke zu erstellen zwischen der Hardware und der Software. Und in den meisten Fällen wird ein Software-Pentester wissen, wie die Software funktioniert. Aber wenn man ihm eine Hardware gibt, dann ist es teilweise komplizierter. Und das Ziel ist, heutzutage ist es, ein Werkzeug zu erstellen, das diese Brücke darstellt, um einen einfachen Methode hat, dieselben Daten runterzulesen, wie ein Software-Pentester sie auch hätte. Also ich vorher gesagt habe, ich arbeite nicht viel mit Hardwarezeug und ich sollte in der Lage sein. Und jetzt kann ich jetzt auch mit Silikonenkomponenten arbeiten. Silikonenkomponenten. Und das ist häufig nur eine Frage der Dokumentation. Und man muss einzigst mal über Elektronik wissen, wie man diese Dokumentation findet. Also, warte mal. Warum möchte man diese Daten haben? Ein bisschen eine dumme Frage, aber weil da natürlich sind viele interessante Informationen in einem Arbeitsspeicher. Eine Microcontroller, man kann den Passwörter vielleicht darin finden. Ich verlinne es in der Stickin-Out, unter dem Computer, unter dem Post-It, den Passwort, unter der Tastatur. Und man kann das File-System und die Firmware finden. Also die Software, die darauf läuft, die Details hier drauf sind. Und manchmal kann man auch nur wissen, das Ding, was man da gerade gekauft hat. Vielleicht auch was das macht. Also wie kommt man eine elektronische Komponente kommunizieren? Man braucht einen von diesen Bussen. Also hier sind die, eine nicht komplette Liste von den Bussen. Wir haben den SPI und der ITC und JTAG. Und je mehr Büsse unterstützt werden, desto mehr können wir mit unterschiedlichen elektronischen Komponenten kommunizieren. Und das ist, dass unser Werkzeug machen möchte. So, vielleicht fragen Sie sich, dass ich weiß ein paar Werkzeuge, die existieren und die können dasselbe machen. Und einige Leute fragen uns diese Frage. Und wir haben einen kleinen Überblick über die existierende Werkzeuge gemacht. Zum Beispiel der Bus-Pirate oder der JTAG-Auditor. Wir sind auch gute Werkzeuge und wir benutzen sie auch. Aber weil wir sie benutzen, wissen wir, was sie können, aber auch was sie nicht können. Und wir haben uns, sie uns angeschaut und haben uns davon inspirieren lassen. Zum Beispiel haben wir den Parallel-Bus. Also die Parallel-Speicher. Und wir fokussieren hauptsächlich an Modularität unserer. Die meisten sind auf Microcontroller basiert, aber wir benutzen auf einem FPGA und da kann ein Fahrer die L-Software drauf laufen, um die Funktionalität zu verbessern. Wenn ein neuer Verbindungsbus veröffentlicht wird, dann können wir das potenzielle zufügen. Hier seht ihr eine kleine Kommunikationsfolie, wie Herzbleut mit der Hardware interagiert. Wir starten mit dem Eingabe-Ausgabe-Level. Das GUI, welches mit Ruby entwickelt wurde. Das Interface kommuniziert mit der API. Und Herzbleut ist dann mit USB 2.0 zum Computer verbunden. Und dann kann Herzbleut den Microcontroller benutzen, um mit dem FPGA zu kommunizieren über den SPI-Bass. Und dann macht das FPGA die große Arbeit. Das ist die Komponente, die mit allen Busen arbeiten kann. Mit den kooperativen Bassen kann das FPGA nun sprechen und so mit der Ziel-Hardware kommunizieren. Ihr seht die möglichen Interaktionen, Lesen schreiben und Kommandos ausführen. Und ja, was ihr halt möchtet. Wenn ihr ein entsprechendes Modul in FPGA programmiert, dann könnt ihr auch mit anderen neuen Dingen kommunizieren, die es erst noch nicht geht. Wenn ihr VHDL könnt, dann werdet ihr halt neue Hardsploit-Module erstellen können selber. Und das in der FPGA alle haben. So, ein Prototyp. Wir haben den Prototyp erstellt. Wir haben eine kleine Firma. Darum ist das Ganze etwas low-budget. Für unseren ersten Prototypen haben wir einfach ein PCB gekauft. Hier seht ihr Ducktype und ein Lochraster-Platine. Und wir haben versucht mit Lötpaste auf das PCB, also mit einer Schablonen, die soll die Lötpaste auf das PCB gebracht. Und danach muss man das Ganze, also den FPGA oder Mikrocontroller und so weiter, manuell platzieren. Und so könnt ihr euer eigenes Board produzieren. Das benutzt etwas Genauigkeit. Das FPGA zum Beispiel hat 64 Pins, die sehr nahe beieinander sind. Es sind 44, Entschuldigung für das. Also der zweite Schritt ist, man hat die Komponenten mit, zum Beispiel, einer Pinzette platziert und der Lötpaste. Dann kann man diesen leicht modifizierten Ofen benutzen, um die Lötpaste zu schmelzen. Also ja, hier ist es ein klassischer Ofen, also wie ihr auf dem Bild seht, halt. Also es ist nicht perfekt, aber es funktioniert. Aber beim letzten Schritt muss ihr dann die Türe öffnen und gut öffnen. Das nennt man Riflaulöten. Das ist die erste Version, also erste Vorversion des Prototyps. Wir haben in Green Goblin genannt, unser grosses Baby. Es hat 64 GPI aus, also Input, General Purpose Input, Output. An Weihnachten hat Julian den Prozess etwas optimiert. Mit etwas mehr Budget haben wir ein effizienteres Tool gekauft, eine Schablone, welche die Lötpaste automatisch auftragen kann, wenn ich das richtig verstanden habe. Eine Pick- und Place-Maschine, welche die Komponenten automatisch platzieren kann. Also das ist jetzt zum Beispiel auch viel einfacher, wenn man halt 64 LEDs platzieren will, dann geht das jetzt viel einfacher. Auch haben wir jetzt einen richtigen neuen Riflaulöten. Also es funktioniert jetzt ziemlich gut für unsere Hardware. Der Resultat ist die schlussendliche Version des BORS, das PCBs. Es ist natürlich kleiner. Wir haben 64 GPI aus, wie bereits gesagt. Es ist eine Idee für jeden Pin. Damit kann man sich mit der Zielhardware verbinden, zwischen 3,3 und 5 Volt. Wir brauchen einen Zyklon 2-FPGA für die Kommunikation. Und wir haben auch Schutzschaltungen, zum Beispiel gegen erste, also elektrostatische Entladungen. Wir sehen, das Ganze sieht etwas grösser als euer USB-Stick. Aber ja, ich lege es mal hier vor die Kamera, damit ihr es seht. Es ist nicht so groß, aber. Wie ist das Ganze jetzt organisiert? Was kann Harzploid? Man kann die Harzploid mit der Zielhardware verbinden. Dann könnt ihr in Harzploid eine Eliste von Komponenten erstellen. Zum Beispiel halt nach Komponenten suchen, sie selber erstellen. Dann habt ihr einen Kommando Befehlsteil, mit dem ihr Befehle geben könnt an die Hardware. Und einen Interaktionsmodul, wo ihr die Buslisten zum Beispiel findet, also die Liste von Busen, mit denen man sprechen kann. Und das GUI habe ich die QT Library benutzt, mit Ruby. Und dann habe ich das in drei Teile unterteilt. Zum Beispiel ein Chip-Management, das eure Komponenten managen kann. Dann ein Bedienungsmanagement und ein Befehlmanager, der Befehle erstellt. Das ist relativ klassisch. Und das sieht ungefähr so aus. Das ist ein Beispiel, in der Mitte des ersten Fensters, das geöffnet wird, wenn man den Export startet. Wir haben ein Tabelle mit den Komponenten. Der aktuelle Chip, wenn man den speziellen Chip arbeitet, wird er in den Baum auftauchen, der linken Seite. Wir haben mehrere Optionen, zum Beispiel Serial. Man kann die Komponenten editieren, um eine neue Version davon zu erstellen. Und dann gibt es auch eine Option, mit der man managen kann. Dann kann man die ganzen Busse, die damit kompatibel sind, sich anschauen. Der Komponent benutzt zum Beispiel ein I2C-Bus, ein I2C-C oder I2C-Bus. Man kann die Einstellungen zu diesem Bus benutzen im Commandermenü. Dann kann man auch Einstellungen importieren oder exportieren. Auf der rechten Seite sieht man, wie es aussieht, wenn man ein neues Komponent erstellt. Die ganzen Informationen, über das Komponent sammelt, über die Spannung, den Hersteller, den Datum. Und diese ganzen Informationen, die benötigt werden, um in der Datenblatt der Komponente zu finden. Der letzte Teil ist den Pin-Dable. Wir haben für diesen Komponenten acht Pins, und wir benutzen nur Pins vier und fünf und sechs. Wir können sehen, dass das über I2C funktioniert und wir können das Signal über den Busse, über diese Pins, anlegen. Okay, der wichtige Teil ist, dass zusammen das Wiring-Modul, da kann man das Ziel zu Hardsprite verbinden. Und ich sehe keine Farben, und ich mag es nicht, das Blaue und das Grosane Kabel zu machen. Wir benutzen Buchstaben, ne, LEDs. Und hier ist das Datenblatt-Idee, und wenn man das exploit geschrieben hat, dann kann man die LEDs benutzen. Und es zeigt eine Idee, eine Repräsentation des Komponenten, da hat man die Pin-Nummern fünf und sechs in diesem Fall. Und wenn man jetzt was anschließen möchte, dann muss man nur darauf klicken. Und wenn man darauf klickt auf diese Pins, wird automatisch die LEDs anschalten, die entsprechenden LEDs auf dem Board anschalten, dass man weiß, wo man diesen Pin anschließen muss. Für jeden Pin hat man eine LED, die man anzeigen kann, um zu zeigen, wo man diese Kabel anschließen muss. Ich weiß nicht, ob man vielleicht bei anderen was anderes nehmen möchte. Teilweise ist es sehr langweilig, die richtigen Punkte zu finden. Und manchmal ist es sehr kompliziert. Wenn man dann den Chip mit Mozi verbinden muss, weil man keine Ahnung hat, warum, wir versuchen diesen Schritt so einfach für möglich zu machen. Okay, jetzt möchte ich das überspringen. Wir werden das später sehen. So, die API, die Programmierstätestelle, kann ganz frei benutzen. Wenn man nicht unsere GUI benutzen möchte, dann muss man das auch nicht. Man kann seine eigene Oberfläche erstellen und die API mit den eigenen Programmen benutzen. Es ist offen relativ gut dokumentiert. Also macht es einfach. Okay, was ist jetzt schon vorhanden? Wir können mit Parallelbussen arbeiten, wir haben einen Happy Wire, wir können den iSqaC-Bus benutzen, wir können den SBI-Bus benutzen. Wir arbeiten mit dem SWD, mit Jetec. Und wir können auch 64 GPIOs benutzen für verschiedene Bitbanging-Modelle. Und was wir für eine Zukunft machen wollen, zum Beispiel die Komponenten und Command-Sharing-Plattform, bei Software kann man die ganzen Webseite haben, wo die ganzen Code-Beispiele vorhanden sind. Man kann sie runterladen und den Werkzeugen wie Metasploit benutzen. Ich möchte genau dasselbe für Harzploit haben, dass man die Komponenten herunterladen kann mit diesen Befehlen und die automatisch in dem eigenen Software integriert. Wir wollen UART-Modular haben, das 232 und SPI-Sniffing und kabellose Kommunikation, z.B. WLAN, Nordic. Metasploit-Integration auf, natürlich. Ein Modul bei Metasploit startet und mein Harzploit damit benutzt. Daran arbeiten wir schon. Jetec. Pinout Finder, das ist eine Sache, die wir benutzen wollen. Wenn die Live-Demo ein bisschen ponatisch sein könnte, zeigen wir einen sehr klaren Fall mit Harzploit. Lass uns das mal vorstellen. Wir haben eine Tür, die elektronische Türsystem benutzt. Bei meinem Pincode, den wir eingeben, ist eine ABCD, die so viel Buchstaben in die Kombination richtig ist. Dann geht die Tür auf und wenn die Kombination falsch ist, beblickt sie zu. Wir öffnen sie und finden diese Platine. Wir sehen die Platine. Es gibt vier Knöpfe, ein BCD und schauen wir uns an, was da drauf ist. Wir sehen ein SPI-Speicherchip, zwei SQL-Speicherchips und einen Niagara Controller und können beschließen für eine Online- oder Offline-Analyse machen. Wir wollen die Komponenten ablöten oder wir wollen sie direkt mit Kabel verbinden. Das können sich jeder selber aussuchen. Das ist das Szenario. Wir öffnen Harzploit. Wir erstellen den Komponenten. Wir connecten den Komponenten mit Harzploit. Wir ändern die Einstellungen für die Komponenten. Wir schlagen die Firma runter von den Speicherchips. Wir schauen, was wir damit machen können. Okay, also zuerst können wir mit dem SQL-Sea-Bass... Nein, das ist nicht das. Okay, dann starten wir Harzploit. Der erste Schritt ist Fingerprint, also Komponente suchen und glaubt mir, auf dem Board habt ihr einen Speicher irgendwo. Wir sparten mal damit und in Flagranti haben wir zwei Speicher erwischt. Und ihr seht jetzt, also jetzt müsst ihr herausfinden, welches Protokoll benutzen, um den Speicher anzusprechen. Dazu klickt ihr einfach zuerst auf dieses entsprechende Memory-Bau-Teil im Harzploit und habt ihr eine Funktion, um den Bass zu scannen. Danach habt ihr eine Liste mit allen möglichen Adressen. Also das ist sehr interessant, weil wir jetzt einfach mit zwei Klicks sehr viele Informationen erhalten haben, wie viel Speicher wir zum Beispiel verfügbar haben. Findet ihr auch irgendwo auf dem Board, aber so müsst ihr nicht durch alle Datenblätter graben, sondern ihr findet das viel schneller. Ja, vielleicht könnt ihr halt einige Leitungen noch weglassen oder sagt euch, dass ihr noch Leitungen mehr braucht. Für die Demonstration haben wir gesagt, dass es A2 und A3 ist. Die Daten sind an dem Speicher, glaubt mir. Wenn ihr das herunterladen wollt, dann macht ihr das Datenblatt. Mit der Größe des Speichers zum Beispiel, wo genau das ihr lesen müsst, welche Parameter ihr übernimmt, ist zu kompliziert. Das braucht man jetzt nicht mehr. Man kriegt einfach auch lokalen Export und weil ihr könnt das selber ersetzen. So, dies ist nun ein Dump, also ein voller, die ganze Formel binär heruntergeladen. Jetzt kriegt man einfach auf das Pfeil und jetzt kann man das mit dem preferierten Hex-Editor-Tool anschauen. Für die Demo ist es jetzt FF. Oh, was ist das? Ein Passwort! Oh! Ja, das ist wahr im wahren Leben, kann das hervorkommen. Da könnt ihr High Credaten, wie das einfach offen finden in der Formel. Ja, das ist jetzt für die Demo halt. Und jetzt könnt ihr dieses Passwort benutzen, um die Türe zu öffnen. Das Ziel danach ist zum Beispiel, dass wir das Passwort ändern konnten und am besten noch online. Ja, erster Schritt, wir prüfen mal, ob dieses Passwort tatsächlich das richtige Passwort ist, ACDB. Also, jetzt probier noch mal. Es tut immer noch nicht. Wo ist das Board? Nein, es ist nicht so einfach. So, das Passwort ist ACDB. ACDB-Tour. Und ja, natürlich geht jetzt die Türe auf. Ja, es ist eine Demo, natürlich ist es einfach. Aber ja, jetzt werden wir das Passwort ändern und das Ganze nochmals versuchen. Also, ja, wir können jetzt zum Beispiel das Passwort auch ganz wegnehmen und damit Denial of Service machen. Wenn ihr irgendetwas da einfügt, dass man gar nicht tippen kann mit dem verfügbaren Keyboard, dann könnt ihr das ganze Ding denial of service attackieren. Um das Passwort zu ändern, könnt ihr jetzt den ganzen Inhalt auslesen, ändern mit eurer preferierten Software und das Ganze dann wieder hochladen. Ja, vielleicht können wir auch etwas Kleines machen, also nur ein Teil des Memories verändern, wo man nur diese vier Charakters halt ändern kann mit einem eigenen Kommando. Also, ja, jetzt haben wir halt ein Handvoll Kommandos vorbereitet für unsere Demo heute. Also, heute können wir das Passwort mit diesem Befehl da ändern. So, damit ihr halt auch seht, wie das mit diesen Kommandos funktioniert. Ein Kommando ist einfach ein Name und die Bytes, die ihr da in diesem Arei seht. Und alle diese Komponenten haben wir im Datenblatt. Also, jetzt wollen wir das Passwort ändern. Wenn das Kommando schon erstellt wurde, müssen wir es jetzt einfach nur noch ausführen. Ihr seht, ja, jetzt kommt ein Acknowledge zurück und um sicher zu sein, dass wir das Passwort tatsächlich geändert haben, lesen wir es jetzt auch mal aus und verifizieren, ob es tatsächlich geändert ist. So, Replays ersetzen. Vollständiger Export, okay. Ja, es ist nicht ganz am Anfang, okay, da. Da sehen wir, dass das Passwort geändert wurde. Der nächste Schritt ist ausführen, ob das Passwort jetzt tatsächlich funktioniert. Jetzt gehen wir da wieder zurück auf das Board und benutzen jetzt BBCC. BBCC, okay. Natürlich. Also, das Ziel ist, ja, mit ein paar Kommandos, mit ein paar Klicks, könnt ihr das halt an der Hardware rumhacken und das erleichtert die ganze Sache halt sehr. Ihr könnt halt eure eigenen Skript schreiben, das könnt ihr natürlich auch schon jetzt, aber jetzt im Hardsploit ist es einfach zwei Klicks und das ist natürlich, ja, ich denke, das ist ziemlich cool. Einfach mit zwei Klicks, mal rasch was anpassen. Ja, ich denke, das ist okay für diese Art von Speichern. Wir machen jetzt eine Demo mit dem SPI-Protokoll, wenn ihr, ja. So, das nächste... Ah, jetzt machen wir das mal alles zu, damit es sicher keine Probleme gibt. Ich werde ein weiteres Kabel anschließen und das ist erst mal gesehen, einfach, ich glaube, das ist in Ordnung. Der erste Schritt ist derselbe, wir ändern die Kabel um sich jetzt zu stellen, dass alles in Ordnung richtig ist. Der erste Schritt ist derselbe, wenn man zwei Kabel hat, dann ist es sehr einfach, die Kabel reinzustecken. Wir haben fünf Kabel jetzt. Das ist nicht sehr kompliziert, aber nicht einfach, aber auch nicht kompliziert. Muss ich jetzt sein? Wir prüfen wir die ganz einfach nochmal. Wenn man jetzt dahin klickt, soll man die Kamera haben. Ich weiß nicht, ob Sie das sehen können. Hier haben wir die Pins, wir klicken drauf und hier sieht man, dass dieser Pin hier angeschossen werden muss. Und da muss man das einfach für die anderen Pins genauso durchführen. Und dann funktioniert das. Wir können es aber gerade nochmal testen. Ja, ist schön, alles zu funktionieren. Ja, lass uns weiter anschauen. Wir haben genau diese Empfehle. Das PI ersetzen, exportieren. Wir sehen, dass es im Hintergrund gezeigt wird. Es zeigt, ja, es ist viel fertig. Und dann kann man sich das öffnen. Oh, schon wieder ein Passwort. Also, dies wird am Anfang der Datei. Wir können die nochmal ausprobieren. Das ist sicher zu sein. Aber bevor wir da etwas ändern können, das ist im Endeffekt genau dasselbe. Ich möchte euch zeigen, dass es funktioniert. Jetzt muss man den Befehl zeigen. Für das PI, wenn man ein Flash-Trip hat oder so was, dann muss man ein Write-Enable und senden. Und dafür muss man einfach hier klicken, das Schreiben enablen, bevor man schreiben kann. Und zuerst ermöglichen wir das Schreiben. Das ist hier in der Tabelle. Und jetzt können wir auf das Speichership schreiben. Das ist das Bit, um das zu ändern. Wir haben die Informationen auf dem Datenblatt. Verändern wir die? Okay. Wir sehen, dass wir hier in der Tabelle sind. Das ist der Buchstab B. Um sicher zu gehen, lesen wir nochmal. Perfekt. Es funktioniert auch. Es ist genau dasselbe. Man kann das auch ausprobieren. Es ist jetzt wieder dasselbe. Man versucht, 6 Beats zu lesen oder 10 Beats zu lesen. Dann kann man ein eigenes Befehl erschaffen. Es ist sehr einfach, wenn man das häufig benutzen muss. Okay. Der nächste Schritt. Wir haben einen Michael Controller. Vielleicht können wir die Firmware von ihm herunterladen. Wir kennen alle das SDWR-Protokoll. Und es ist ähnlich so JTAC, aber für ARM-Prozessoren. Es ist leicht abgeändert. Das Protokoll ist sehr gut dokumentiert. Und für das JTAC-SWD muss man das Komponente nicht erstellen. Es ist ein einfaches Menü. Es heißt 4 Optionen. Detect, Export, Import, Export und Löschen. Zuerst müssen wir schauen, ob alles richtig angeschlossen ist. Da verglichen wir auf Detect. Und im Hintergrund die Firmware geladen. Da wird das ausgeführt. Und wir haben hier einige Informationen. Im Moment sind das einfach nur SDWG, Modul für Hardsprite. Im Moment haben wir ein Ziel hier. Später kann man die Komponenten denen auslesen. Wenn man das Datenblatt über den Chip liest, braucht man nur diese Information, diese Adresse mit dieser Größe lesen. Man kann die Größe direkt vom Microcontroller lesen. Also super. Es ist automatisch ein automatisches Werkzeug, weil das Protokoll benutzt und das sind die ganzen Informationen, die benötigt werden, um den Flash auszulesen. Wenn man nur Jetec anschließt und sich jetzt stellen, dass alle Kabel richtig sind und danach die Daten impartiert oder herunterladen, dann haben wir die Daten herunterladen und das wie zuvor. Wir suchen einen Detail aus Firmware.bin Yup Der drunter Okay Wieder, hier haben wir die die Firmware auf dem elektronischen Schloss. Ohne eine lesen Bewachung dieses Schloss und wenn wir die auslesen können auch in Read Only dann ist er vom Microcontroller. Aber meistens kann man die Firmware einfach so auslesen. Aber bei Open OCD ist es ein sehr gutes Werkzeug und brauchen wir einfach ein Framework, wo die ganzen Werkzeuge zusammenarbeiten und dafür haben wir Hardplay exportiert. Wir wollen ein Werkzeug mit zwei Klicks für SQC und ein SQC für SWD Ich bin ein Expert für Hardware Hacking und ich brauche und ich muss nicht meine Zeit damit verbringen nur eine Brücke zwischen der Hardware und der Software zu erstellen und jetzt mit den wenigen Minuten kann ich den ganzen Computer in den Inhalt auslesen jetzt kann ich mich darauf konzentrieren was dort passiert und dafür haben wir dieses Werkzeug erstellt Wir benutzen das inzwischen täglich Wir haben einen String hier unten für in dem Serialkommunikation und können das in den Inhalt lesen und eine Hintertür einbauen wenn man das möchte eine Firmware danach modifizieren möchte Wir haben eine Check-Summe-Kontrolle Es ist kein Sicherheitsfeature kein Problem für uns Wir löschen die ganzen Firmware-Inhalt und wir lesen nochmal und schreiben die Firmware erneut wieder drauf um zu zeigen, dass man die Firmware runter und hochladen kann auf dem Ziel mit ein paar wenigen Klicks Also wir löschen den Inhalt ist das sicher? Ja, wir sind uns sicher was uns das einfach machen Okay Wenn wir jetzt das Passort eingeben möchte mit der Tür dann wird das einfach nicht funktionieren Wir können wenn wir das zeigen Hunter Wenn ich jetzt irgendwo drauf drücke dann passiert nichts kein Licht natürlich, die Firmware fehlt das weiß ich nicht was es machen soll und jetzt importieren wir die Firmware wieder und gleich sollten wir die Firmware wie wir behalten ändern den Namen einfach den auswählen Okay Hotspot schreibt die Firmware schauen wir mal ob es jetzt funktioniert sieht man das nicht wieder also es ist alles perfekt es schreiben funktioniert mit M1 einmal klicken oder Teilen in 2 Sekunden noch ein sehr viel Spaß damit haben hier ist ein sehr bekannte Router ein längstes Router links ist benutzt zum Beispiel man schaut das Öffnet ist man schaut was da an Quaker in Sachen drin ist dann sieht ein Speichership wie man es benutzt und es ist immer gleich aufgebaut man löstet es ab man löstet es auf der eigenen Platine wieder auf man kann da eine eigene Platine erstellen das Problem ist es ist sehr klein es ist ein bisschen schwer da die Körbe dran zu löten es ist in die Körbe etwas schwer dran wenn man gerade eine eigene Platine macht dann kann man einfach diese benutzen als elektronischer Ingenieur es ist nicht kompliziert so eine Platine zu machen aber für einige Hobbyisten oder Leute die es einfach nicht dicht darüber ausgehalten die können einfach schon einen fanden Suckit benutzen ohne der irgendwie daran löten zu messen jetzt dass sie verstehen warum wir es 64 Pins haben weil beim Parallelbus braucht man viele viele Verbände an und wenn du dieses Kabel verbinden wollen wenn sie Hartzbold benutzen für jedes einzelne Kabel das wird immer sagen sehr interessant wenn man ungefähr 60 oder 64 Kabel verbinden möchte im Konten den Inhalt herunterladen das genanen Prozess den wir früher gesehen haben und ich glaube das ist ein T-Firmware keine Ahnung wie die da draufgekommen ist also wir werden es jetzt mal vorführen aber es ist im Endeffekt genau gleich heute ist kein Reverse Engineering Talk und darum erklären wir das jetzt nicht es ist nicht wirklich die Firmware sondern das Squatch FS nur das File System wir mussten jetzt wieder neue Mountain aber das ist relativ einfach das ist offene Firmware nicht so nicht interessant sich das anzuschauen das ist hauptsächlich zum Testen das ist auch ein Demo sind wir fertig und wenn Sie jetzt noch mehr darüber erfahren wollen über das Projekt und das Folgen wollen dann können Sie auf die Webseite gehen wenn Sie noch Fragen haben dann stehen wir für die Scam zur Verfügung ja, vielen Dank für die wunderbare, interessanten Vorträge die Demogods waren bei uns viele Left Demo Zeit und sind ja irgendwelche Fragen in dem Publikum ja, ich sehe eine Frage da drüben besser zu Mikrofonen gehen und ja 64 Input Bits kann man auch eine externe Uhr an der Netzspamper-Adelbus zu machen und das dann auf dem PCB mit dem internen Klop für Parallel brauchen Sie brauchst du Asynchron-Modus also muss man den Klok nicht unbedingt verbinden aber wenn du willst dann kannst du auch eine eigene Form her schreiben und den Klok von deinem System benutzen dann musst du aber den Klok halt herausführen, so dass man ihn vom FPGA generieren kann also einfacher gesagt, es ist im Allgemeinen einfach Asynchron und man generiert die Adresse und das funktioniert ganz gut welche Klokrates können wir das benutzen welche Geschwindigkeiten vom FPGA es gibt noch keine Beispiele dafür aber es geht um die Verzögerung wie lange die Signale von einer 8B brauchen bitte verlassen Sie den Raum leise weil wir wirklich den Raum jetzt schon verlassen müssen es gibt eine Frage aus dem Internet ja, hier hinten haben Sie etwas darüber zu sagen über die Unterschiede zwischen Hotspot und eventuell in einem anderen FPGA-Entwicklungskid zum Beispiel im Zeitgrund-Starter-Kid mit einem Erweiterungssport wir haben das selbe FPGA also ja wenn man meine Firma hineinsteckt dann verhält es sich gleich, ja aber vergesst nicht, man muss das FPGA programmieren, dafür kann man Blaster zum Beispiel benutzen oder ein externes Werkzeugtool hier brauchen wir nun einen Mikrocontroller der das externe Memory speichert, also den Bitstream in den externen Speicher schreibt wir haben so eine große Brücke zwischen dem FPGA und dem Rest und so mit dem GUI also wir haben das GUI die API und dann die Kommunikation mit dem Mikrocontroller und dann das Ganze kommuniziert zum FPGA und im FPGA ja, da haben wir zwei Module den Herzblattkern der die Kommunikation mit dem Mikrocontroller managet und jetzt haben wir ein Modul also wenn du zum Beispiel SPI brauchst dann weil es einfach eine SPI Statemaschine aus FIFO First First Out Speicher dann reicht das und dann macht der Core, also HerzblattCore und dann das Ganze wieder also ja man kriegt eine Reihe von Daten in Ruby schlussendlich und ja, eine FIFO und VHDL und eigentlich können Sie machen, was Sie wollen ja, es ist wahr, man kann das DemoBoard benutzen und ja, man muss es halt man hat nicht den ganzen Prozess hey, die nächste Frage da drüben von der Seite ich habe keine Fragen ich habe keine Platinen das Schematischen zu sehen, werden Sie die veröffentlichen? Ein Moment reden wir nur darüber wir wissen noch nicht also das GUI ist offen man kann es benutzen und man kann auch die API benutzen auch die ist offen und jetzt kann man ja, halt eine kleine Zellecode benutzen um mit der SPI zu reden und die nächste Zeile ist zum Beispiel ein Daten runterladen also mit zwei Zeilen Rubycode mit dem Schemaß im Moment ist es nicht offene Hardware aber vielleicht anwühren das eine zweite Frage ist ein großes Projekt für eine Community weil Sie können wahrscheinlich nicht die ganzen Sachen implementieren ja, natürlich also das Ziel von Harzploit ist eine Datenbank zu erstellen, wie bei Metasploit und ihr seht, wir sind nur fünf und ja, das ist jetzt für die Demo aber wir haben ein Problem weil wenn man ein Experte ist dann ist es nicht so kompliziert ein dieses Target anzuschließen dass es alle Leute benutzen können mit zwei Klicks aber im richtigen Leben ja, der nächste Schritt wäre jetzt eine Community zu erstellen, aber das reicht nicht da haben Sie recht wir müssen Hardwaremodule haben und dafür versuchen wir das die Schemaß zu ändern um ja, ich hoffe die Frage ist damit gearbeitet sehr lange beantwortet wir brauchen eine Community um die Komponenten zu teilen, die Sie erstellt haben also jemand der nicht weiß, wie man mit einer spezifischen Komponente umgehen muss der könnte diese Komponente dann online finden, runterladen ins Harzploit laden und ja, kannst dann einfacher für den im Moment ist es eher ein für intern ja, ihr seid hier so also es scheint daran interessiert also vielleicht können wir das ganze ändern, ja und das ganze ist halt auch noch immer in Entwicklung und es ist alles noch nicht so ganz sicher, wie es weitergeht, wir denken natürlich könnten wir vielleicht das mit euch zusammen machen ist der Frage noch eine Frage aus dem Internet die Internet hat keinen Sound ja, okay wenn Sie bekannten Limitationen von Harzploit schon reden, gibt es irgendwelche Komponenten und Produkte, die noch nie benutzt werden können oder wir niemals schwierig werden können dass die Grenze ist die 7 Latents alles was da rüber ist, kann man bearbeiten dann ein anderes Problem ist das interne Memory vom Cyclone 2 es ist das kompliziert die Frage so allgemein zu beantworten weil ja, das Harzploit ist ein Framework ein vielseitiges Framework und das Limit ist ja diese Nanosekunden darunter geht nicht und im Moment sind wir nicht limitiert vom FPGA mit den Features die wir haben also ja diese Frage von hier vorne ich denke die Zeit das größte ist immer noch den Chip die Datenplätze finden und den Chip zu das ist wunderbar eine Plattform das zu teilen ein Zwischenschritt ist wie weit seid ihr wie groß ist eure internalen Datenbank die im Moment jetzt gerade habt wenn ihr das jetzt bekommt veröffentlicht oder verkaufen würdet ohne diese Plattform zu haben also was wir in der Datenbank schon haben sind die also die Komponenten mit denen wir arbeiten, die sind da drin und wir können also wir haben Komponenten für jeden Bass und halt wie auch Kommando, wie sagen wir Befehle damit die Leute damit arbeiten kommen als Beispiel Code quasi und ja ihr könnt natürlich voll Dumps und Export von Formen machen, das ist alles voll automatisch ihr müsst einfach sagen wie groß eure Memory ist Herr Speicher ist also wenn ihr 64 Kilobytes Speicher habt und so weiter dann ist das eigentlich dasselbe wir werden in anderen Größen ihr müsst einfach die Größe ändern und die Größe das steht meistens im Datenblatt also man muss wenig anpassen es wäre vielleicht eine gute Idee um mit das Erben von Chips die man bereits hat und so also man kann eine existierte Komponente als Vorlage benutzen für Neue ihr macht zwei weitere Fragen bitte kann man die Erstellung das Erkennen von JTAC und Serialinterface zu benutzen und an welchen Punkten das Paket, den man sich andeuten muss ja es ist ein sehr guter Beitrag und SWG SWG sind wir meistens auf dem Board und so weiter also ja es ist wahr in diesem Beispiel wissen wir was unsere Zielhardware ist also darum ist es einfach wir müssen SWG benutzen aber ja wir haben einfach zwei Leitungen und man muss halt das Datenblatt lesen und finden wo man die Clock findet vom SWG und so den Pin auf dem Board findet und für Herzbleut können wir also die Frage war ja wie kann man SWG zum Zielhardware verbinden und ja funktioniert das wie bei JTAC also wenn wir jetzt annehmen dass sie ein Board haben ohne also ohne Beschriftung und nichts wie wir es dann gehen könnte es das können könnte es das automatisch erkennen nein im Moment kann es das nicht man sonst funktioniert das halt nicht aber ja es ist ein FGA und man könnte natürlich einen Algorithmus kreieren im FGA der das Brutforce eigentlich herausfinden könnte das ist sicher auch einer der nächsten Schritte die wir implementieren möchten Autodetektion von wo ist mein HP angeschlossen aber es ist das ursprüngliche Ziel das ursprüngliche Ziel ist das Framework mit dem man jetzt arbeiten kann und wir möchten jetzt alle guten Tools mit diesem Framework zusammenfassen vielen Dank für die Fragen die Speaker werden vielleicht draußen für die Tür warten für weitere Fragen aber ich bitte ich denke Sie können Sie nochmal einen großen Applaus geben und dann wir sehen uns in der nächsten Video und dann wir sehen uns in der nächsten Video und dann