Universal Radio Hacker


#1

Für jene die gerne mit SDR experimentieren.

Wirklich geniales Tool, einfach zu bedienen und super Analyse Werkzeug.

Mit meinem Hackrf konnte ich sogar den Suzuki meiner Freundin in kurzer Zeit aufsperren.


#2

Cool, muss ich mal ausprobieren. GnuRadio ist ja ziemlich Einsteigerunfreundlich.


#3

Ja, das ist es!

Für UHR braucht es ein installiertes GNU Radio um die verschiedenen SDR ansprechen zu können, mehr jedoch nicht.
Was mir unter GNU Radio immer fehlte, war ein “Terminal” um de-codierte Daten auszugeben.

War immer etwas mühselig. Mit UHR ist das ganz einfach, hier im Bild siehst du unten schon das demodulierte Signal, einfach die Bit Länge messen, eintragen und mit Noise und Center etwas korrigieren bis es stimmt.

Oder hier den Modulator vorbereiten:

Es ist wirklich ein sehr lehrreiches Tool!


#4

Hier noch ein kleines Video.


#5

@roema sehr cool, danke für das Video! Ich wollte eigentlich gstern mit URH rumspielen, bin aber dann doch nicht dazu gekommen.


#6

Wird dir sicher gefallen!

Bei FSK erkennt URH den Frequenz Shift nicht richtig und du musst ihn selbst einstellen.
Meist stehen bei Frequenz 0 / Frequenz 1 die selben Vorzeichen, und es genügt bei Frequenz Null ein Minus davor zu setzen.

Natürlich kannst du den Shift auch im Spectrum messen und anschliessend eintragen.

Was mich verwundert hat: Der Suzuki Swift hat eigentlich Rolling Code, und sollte gegen eine Replay-Attacke geschützt sein. Ich habe 8 Öffnungsvorgänge aufgezeichnet und einer der 8 Codes funktioniert immer.


#7

Das ganze lässt sich natürlich mit einem PIC Kontroller sehr einfach nachbilden.

http://www.waveshare.com/cc1101-rf-board.htm

Ich bin gerade dabei, einen Sniffer zu bauen, der das OOK Signal cloned, den Code am Display anzeigt und natürlich wieder senden kann.

Ebenfalls ist eine Brute Force Routine eingebaut. Herkömmliches Brute Force dauert sehr lange, es gibt jedoch einen Trick der in vielen englischen Tuts beschrieben ist.

Dabei geht es um Shift Register welche viele Empfänger nutzen um die Bitfolge testen. Dabei wird immer nur ein Bit nachgeschoben um den Code zu verifizieren.

Sendet man also 13bit zum Empfänger und der Code vom Tor wäre 12 bit lang wie: 111111000000 dann senden wir [13bit] 0111111000000

Dann testet der Empfänger die ersten 12 bit also 011111100000[0] -> falsch Tor bleibt zu

Jetzt schiebt er das 13 bit ins Register und das 1 fällt raus[0] 111111000000 -> richtig Tor geht auf

Das bedeutet wir haben zwei 12bit Keys mit einem 13bit Key getestet statt mit 24bit.
Überprüft der Empfänger nur einen 8bit Key, so lassen sich mit einem 12bit Key 5 Keys prüfen.

z.B: 11101011 Key
Wir senden 010111101011

Key1----------01011110
Key2-----------10111101
Key3------------01111010
Key4--------------11110101
Key5---------------11101011 -> stimmt

Das ergibt natürlich eine riesen Zeitersparnis und ein 12bit Key kann so in relativ kurzer Zeit erraten werden.

Natürlich gibt es in C eine schöne Routine, die die De_Bruijn sequence errechnet, also alle Möglichkeiten in kürzerster Form…

Info: Die Idee stammt nicht von mir, es gibt diverse Seiten im Netz die diesen Angriff erklären.

Gerne stelle ich die Layouts und das Programm zur Verfügung, wenn es fertig ist.

Lg roema

Nachtrag:

Hier der Python Code Brujin:

def f(a,n):
s=a[-1]*n
while 1:
	for c in a:
		if((s+c)[len(s+c)-n:]in s)<1:
			s+=c
			break
	else:
		break
print s[:1-n]

f("10",12)

Um alle möglichen 12bit Variation abzudecken braucht es 4096 bit. Angenommen wir würden unter URH, im Tab Generator eine fuzz Datei speichern ohne Fuzzing, rein die original Bit Folge…

So finden wir im Ordner eine Datei fuzz.xml und könnten die <message bits= mit unseren generierten Bits ersetzen. Das würde bedeuten, dass wir nach der Preamble unsere 4096 bits senden. Je nach Pause & Bitlänge würde das heißen, wir wären vermutlich unter 10 sec durch.

Das ist nur so ein Gedankegang :wink: ich habe das nicht getestet und übernehme kein Verantwortung wenn bei jemanden von euch in der Nachbarschaft die Tore aufgehen…


#8

Also, für jene die Interesse haben:

Habe gestern die CC1101 bekommen und mal meine Garagentor Sender nachgebaut.
Funktionieren super!

Mit URH kann man die Signale sehr gut vergleichen.
Der CC1101 ist “für mich” etwas kompliziert einzustellen. Das RF Studio von TI nimmt einem zwar sehr viel Arbeit ab, aber es gibt ein paar Dinge auf die man achten muss, sonst kommt nur Raschen :wink:

Jetzt kommt der Feinschliff …

Der PIC 18F45K22 ist etwas gross, war aber gerade im Testboard. Natürlich wird dieser ersetzt durch einen kleineren, 16F873 oder so…

Ich hoffe er ist verständlich!

Lg roema


#9

Hallo,
hab dein SDR Video angeschaut und da ich ein Hotel betreibe wollte dich fragen ob eine möglichkeit besteht Toreinfahrt und Garagentor sowie Jalousine,Dachfenster und das Auto von mein Schwiegervater :grin:mit einer Fernbedienung zu regeln.Leider kenne ich mich nicht so gut bei dieser Materie aber gebe mir mühe !Wenn sie mal zeit hätten würde ich mich für eine Antwort freuen.

freue Ostertage und gruss aus Bonn

Ramon


#10

Hallo Ramon!

Das geht grundsätzlich schon.
Du benötigst dafür jedoch etwas Hardware wie einen HackRF, Linux Computer um die Daten zu sniffen um anschliessend zu analysieren.

Auto wird etwas schwieriger, da die meisten Fahrzeuge soetwas wie “rolling code” verwenden…

Wenn du keine Erfahrung in dieser Materie hast, wird es jedoch etwas schwierig. Es gibt keine fertiges Tool, welches dir die ganze Arbeit abnimmt… :wink:

Gruss Manu


#11

@roema übrigens, danke für deinen Tipp mit URH :slight_smile: Wir (bzw. vor allem @urban) haben damit letzten Montag erfolgreich einen 868 MHz Garagenöffner sniffen können.

Nun suchen wir noch nach einer Möglichkeit, das Ding nachzubauen. Haben noch ein CC1101 Modul rumliegen, ev geht’s damit. (Codierung ist ASK, so wie’s aussieht.)


#12

@danilo gerne!

Habt ihr probiert, ob das gesendete Signal das Tor öffnet? Ja, ist ASK!

Mit einem CC1101 geht das sicher! Ihr müsst wahrscheinlich aber auf das automatische codieren des CC1101 verzichten und das in einem Mikrocontroller übernehmen.

Gerne kann ich euch eine Konfig für den CC1101 erstellen. Ihr erhaltet dann ein Rechtecksignal welches man im Kontroller sehr einfach verarbeiten kann.

Sollte ihr noch Module benötigen, ich habe einige da.

Die “dicken” Balken zeigen sehr schön die Preamble, damit sich der Empfänger synchronisieren kann. Danach kommt vermutlich ein Header, ein Payload und das Schluss Byte…

Ich kann euch gerne helfen.

Lg roema

Nachtrag: Ihr braucht natürlich einen CC1101 für 868MHz, es gibt auch 433MHz. Der CC ist der selbe, aber die Antennenanpassung stimmt nicht…


#13

CC1101 Stichwort:

SmartRF Studio -> CC1101 -> expert Mode -> Continuous TX Mode -> asynchronous serial mode

Nachtrag:

Ich hätte übrigens noch Platinen mit PIC18F442, 2xCC1101 und UART Anschluss da. Mann könnte die 1xCC1101 für 433MHz und einmal für 868MHZ verwenden.

Der PIC hat einen Bootloader und man kann Updates per RS232 einspielen. Eine Anschlussleiste für eine LCD Display ist am Board. Spannungsregler 7805 ist ebenfalls drauf.

Wenn jemand Interesse hat.

Hatte ich gebaut für meinen Reactive Jammer ;-), natürlich nur zu Forschungszwecken!

Hier noch mit einem kleinen Breitbandverstärker um die Kabelverluste zu kompensieren.


#14

Hi Manu,

Danke für deine Antwort! Habe ein Teensy 3.2


#15

Hi @monchichi! Damit wird es nicht gehen. Du brauchst einen SDR der empfangen und senden kann um die Signale zu analysieren und zu testen.