Bürger für Glasfaser Support

Normale Version: Backdoor / Sicherheitslücke in aktueller Firmware
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
bei mir geht es nicht! Bei mir horcht kein ssh Agent. Ich habe alles versucht.

Code:
Bootloader Revision    drgldr-hrg1000-1.3.1-RC14
Firmware Revision    drgos-hrg1000-1.12.2-EFT17
Durchaus möglich, daß fl!nk/new/DGF den ssh rausgenommen haben.
War ja auch ein bißchen sehr auffällig.
Hallo,

das ist hier mein erstes Posting und möchte damit alle User grüßen...

(22.02.2015, 13:22)Schimmelreiter schrieb: [ -> ]Durchaus möglich, daß fl!nk/new/DGF den ssh rausgenommen haben.
War ja auch ein bißchen sehr auffällig.

Ich hatte mal vor einiger Zeit regen Kontakt mit der DG - weil ich ähnliches wie der Themenstarter festgestellt hatte - bin dann aber noch ein wenig "weiter" gekommen.

Lobenswert muss ich die DG erwähnen... ich hatte die Auffäligkeit auf einem Donnerstag Nachmittag gemeldet - das Telefonat war sehr interessant. Samstag Nachts wurde die Lücke provisorisch geschlossen und kürzlich mit einer neuen FW.

Daher glaube ich nun, dass ich die Detail veröffentlichen kann, da die Lücke nicht mehr Nutzbar ist.

***********************

Vorwort

Dieses Dokument ist in der Intention erstanden, das Verhalten der Genexis CPE im Netzwerk der Deutschen Glasfaser zu verstehen. In keinem Fall wurde die Absicht verfolgt, dass Netzwerk zu kompromittieren und/oder Daten zu entwenden, zu verändern oder sonst Schaden zuzufügen. Auch wurden bislang keinerlei Informationen an Dritte weitergeleitet. Diese Dokument dient dazu dem Betreiber Bornet bzw Deutsche Glasfaser eine Sicherheitslücke aufzuzeigen.

Warum nun wirklich...

Das ganze fing damit an, dass die DG nur Internetanschlüsse mit IPv4 Carrier Grade NAT zur Verfügung stellt. Dieses bietet leider keinen direkten IP Zugang zu den Gerät aus Richtung des Internet's. Die Einführung von IPv6 durch Dual Stack verschob sich mehrfach und wurde von mir sehnlichst erwartet, damit meine sich zu Hause befindlichen Dienste wieder erreichbar waren.

Nach der Einführung von IPv6 musste ich leider feststellen das ICMPv6 Pakete nicht weitergeleitet wurden und ich nun wissen wollte, was da genau passiert.

Damit fing es an...

Vorweg genommen, was könnte ein Angreifer tun?

Um die Spannung zu nehmen, will ich bereits an dieser Stelle die möglichen, zum Teil bereits getesteten, Angriffsszenarien nennen:

Manipulation jedweder Konfigurationsmöglichkeit des CPE Router's
abhören von VoIP Telefonaten von direkt an der CPE angeschlossenen Telefone über die VoIP Debug Funktion
Identifikation einer CPE anhand dessen Konfiguration (Tel. Nr. in SIP Einstellungen)
WLAN PSK, PIN – hidden command „show wlan usp“
Up- und Download von veränderter Firmware und/oder „second stage“ Bootloader
Manipulation der CWMP (TR-069) Parameter
DNS Manipulation um Datenverkehr umzuleiten
DOS Attacke – permanent „unbrauchbar“ machen einer oder vieler CPE's
eventuell Zugriff auf die bekannten VLAN's an einer CPE
eventuell Angriff auf das Management Netz der DG

Auf einige Punkte werde ich im Laufe des Dokumentes näher eingehen.

Was ist aufgefallen:

Am Anfang konnte ich nur auf das „GUI“ User Webinterface des Routers, welches über die IPv4 Adresse 192.168.1.254 oder der IPv6 Autoconf IP, zugreifen.

Ein Scan dieser IP mit nmap brachte nichts spannendes zu Tage. Leider kann man aus dem LAN heraus die WAN Adressen nicht erreichen, ABER man kann die IPv6 WAN Adresse aus dem Internet erreichen. Dort brachte ein nmap Scan eine Interessante Entdeckung:

xxx@xxx:~$ nmap -6 -Pn 2a00:61e0:xxxx:xxxx::1

Starting Nmap 6.40 ( http://nmap.org ) at 2014-12-31 23:38 CET
Nmap scan report for 2a00:61e0:xxxx:xxxx::1
Host is up (0.011s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE
22/tcp open ssh
5060/tcp closed sip
5061/tcp closed sip-tls
8082/tcp closed blackice-alerts

Nmap done: 1 IP address (1 host up) scanned in 6.16 seconds

Ohh ein offener ssh Port... den schauen wir uns mal genauer an:

xxx@xxx:~$ telnet 2a00:61e0:xxxx:xxxx::1 22
Trying 2a00:61e0:xxxx:xxxx::1...
Connected to 2a00:61e0:xxxx:xxxx::1.
Escape character is '^]'.
SSH-2.0-dropbear_0.51

Dropbear SSH Server... nur ich kam mit keinerlei User oder Kennwort drauf. Ich kam an der Stelle nicht weiter und habe erst mal aufgegeben. Eine Broute Force Attacke hielt ich für wenig Erfolgreich, da ein ISP sicher sichere Kennwörter verwende würde (ggf Radius, LDAP ect)

(Bild fehlt - symbolisch dargestellter Aufbau der CPE)

Der erste Zugriff:

Es war zu erwarten das die in der CPE verbaute CPU eine serielle Schnittstelle besitzt. Nach ein wenig Suche auf der Platine konnte ich sowohl RX wie auch TX der seriellen Schnittstelle finden und diese verwenden.

Nach dem Einschalten der CPE meldete diese sich mit folgender Ausgabe:


DDR Training.............................................................Done

drgboot-hrg1000-1.3.1-RC12 (Jun 12 2012 - 21:49:27)

DRAM: 128 MB
Comcerto Flash Subsystem Initialization
Flash: 32 MB

...Ausgabe gekürzt...

Checking for bootloader images...
0x21EA0000: drgldr-hrg1000-1.3.1-RC14
0x21F20000: drgldr-hrg1000-1.3.1-RC14
Bootloader loaded from 0x21EA0000 to 0x87000000...


drgldr-hrg1000-1.3.1-RC14 (Jun 27 2012 - 17:04:44)

...Ausgabe gekürzt...

Hit any key to stop autoboot: 1 ### 0
### JFFS2 loading '/.boot' to 0x84800000
Scanning JFFS2 FS (press ^C to abort): ##. ## done.
Completed scanning JFFS2 FS
### JFFS2 load complete: 315 bytes loaded to 0x84800000
Image 0 will be be loaded.
-rw-r--r-- 11020468 Tue Sep 30 05:28:10 2014 drgos-hrg1000-1.12.2-EFT17.img
-rw-r--r-- 11022807 Tue Sep 02 03:24:30 2014 drgos-hrg1000-1.12.2-EFT15.img
### JFFS2 loading '/00/drgos-hrg1000-1.12.2-EFT17.img' to 0x84800000
### JFFS2 load complete: 11020468 bytes loaded to 0x84800000
## Booting image at 84800000 ...
Image Name: drgos-hrg1000-1.12.2-EFT17
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 11020404 Bytes = 10.5 MB
Load Address: 80808000
Entry Point: 80808000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
do_bootm()@cmd_bootm.c:433

Starting kernel ...

Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.33.5-drgos-hrg1000-1.12.2-EFT17 (builder@drgbuild) (gcc version 4.1.2) #1 Fri Sep 12 16:12:36 CST 2014

...Ausgabe gekürzt...


Also augenscheinlich wird dort ein Linux Kernel geladen welcher in ein System mit Busybox endet – wobei der hervorgehobene Teil der Ausgabe mein Interesse geweckt hat.

Ich tat diese bei dem nächsten Start und musste feststellen, dass es sich bei dem Bootloader um eine leicht angepasste Version von Uboot handelt.

Daraufhin habe ich mit das Linux System und auch den Bootloader genau angeschauen und bin zu folgenden Erkenntnissen gekommen:

Flash Layout:

0x000000000000-0x000000020000 : "Bootstrap" 128kB
0x000000020000-0x000001ea0000 : "JFFS2" 31232kB
0x000001ea0000-0x000001f20000 : "Bootloader1" 512kB
0x000001f20000-0x000001fa0000 : "Bootloader2" 512kB
0x000001fa0000-0x000001fc0000 : "UniqueParam" 128kB Text (2359Byte)
0x000001fc0000-0x000001fe0000 : "BootloaderCFG" 128kB leer
0x000001fe0000-0x000002000000 : "SharedCFG" 128kB leer

Wobei der Flash im Adressbereich von 0x20000000 bis 0x22000000 gemapt ist. Zuerst habe ich mit „MD“ einen Memory Dump erstellt und diesen gespeichert.

20000000: ea000012 e59ff014 e59ff014 e59ff014 ................
20000010: e59ff014 e59ff014 e59ff014 e59ff014 ................
20000020: 87800120 87800180 878001e0 87800240 ...........@...
20000030: 878002a0 87800300 87800360 12345678 ........`...xV4.
20000040: 87800000 87800000 87811150 87811734 ........P...4...
.
.
.
21ffffe0: ffffffff ffffffff ffffffff ffffffff ................
21fffff0: ffffffff ffffffff ffffffff ffffffff ................

Diesen habe ich mit einem kleinen Konverter in Binärcode umgewandelt und konnte diesen danach aufteilen und einzeln analysieren.

Die Interessanten Teile sind der „JFFS2“ und „UniqueParam“ Bereich. Im JFFS2 Filesystem befinden sich die Firmware Images sowie diverse Konfigurationsdateien:

-rw-r--r-- 1093 Fri Oct 31 15:57:47 2014 hosts
-rw-r--r-- 1288 Tue Nov 04 17:23:48 2014 .ox-user-config
drwxr-xr-x 0 Thu Jan 01 00:01:23 1970 tr069
-rw-r--r-- 2029 Thu Jan 01 00:02:32 1970 .ox-startup-config
-rw-r--r-- 315 Tue Sep 30 05:29:38 2014 .boot
drwxr-xr-x 0 Tue Jul 22 02:23:56 2014 00
drwxr-xr-x 0 Tue Apr 15 08:45:15 2014 01

Da innerhalb der Firmware keinerlei Dateien geändert werden können, müssen alle Konfigurationen und oder sich ändernden Dateien im JFFS2 abgelegt werden. Dabei fällt auch auf, dass keinerlei Logdateien dauerhaft angelegt werden. Die Logdateien im DRGOS werden nur temporär in der Ramdisk abgelegt und bei einem Neustart gelöscht.

In den Ordnern „00“ und „01“ befinden sich die Firmwarefiles, das aktuelle Image sowie die Vorversion.

hrg1000 > ls /00
-rw-r--r-- 11020468 Tue Sep 30 05:28:10 2014 drgos-hrg1000-1.12.2-EFT17.img
hrg1000 > ls /01
-rw-r--r-- 11022807 Tue Sep 02 03:24:30 2014 drgos-hrg1000-1.12.2-EFT15.img

Die Datei hosts enthält die aktuell erkannten „Hosts“ im Netzwerk.

00:c0:b7:xx:xx:xx;apcxxxxxx
00:c0:b7:xx:xx:xx;apcxxxxxx
...

Die Dateien „.ox-user-config“ und „.ox-startup-config“ sind sehr interresant, da sie die allgemeine und User spezifische Konfiguration enthalten.

Wobei die „.ox-startup-config“ vom besonderem Interesse ist (in Auszügen):

...Ausgabe gekürzt...

!username "admin" password "admin"
!username admin access gui
!username "operator" password "operator"
!username operator access cli

...Ausgabe gekürzt...

interface lan
ip nat external-interface vlan320
!ip address 192.168.1.254/24
ipv6 external-interface tunnel1
!ipv6 address auto

interface lan/ethernet1
queue-scheduling mode wrr
vlan member 4093
vlan untagged 4093

interface lan/ethernet2
queue-scheduling mode wrr
vlan member 4093
vlan untagged 4093

interface lan/ethernet3
queue-scheduling mode wrr
vlan member 4093
vlan untagged 4093

interface lan/ethernet4
queue-scheduling mode wrr
vlan member 4093
vlan untagged 4093

interface tunnel1
tunnel mode 6rd
tunnel 6rd interface vlan320

interface vlan1
shutdown
!ip address dhcp
!ipv6 address auto

interface vlan302
service "mgmt"
ip address dhcp

interface vlan320
ip access-group napt-acl in
service "internet-bng"
ip address dhcp

interface vlan4093
downstream
ip nat external-interface vlan320
ipv6 external-interface tunnel1
ipv6 address auto

interface wan
queue-scheduling mode wrr
vlan member 302,320
vlan untagged 4092

...Ausgabe gekürzt...

Die Config als solches sieht einer Cisco Config sehr ähnlich... wobei Inhalte mit vorangestelltem „!“ auskommentiert sein sollten. Hierbei sollte !username operator access cli sicher der deaktivierte Standard-User für den SSH Zugriff sein. Das kann sich ja kein ISP erlauben. Aber dennoch habe ich es probiert:

marco@kvm:~$ ssh operator@2a00:61e0:xxxx:xxxx::1
operator@2a00:61e0:xxxx:xxxx::1's password:

Digital Residential Gateway Operating System (DRGOS)
Copyright © 2009-2014 Genexis B.V. All rights reserved.
DRGOS version: drgos-hrg1000-1.12.2-EFT17
000xxxxxxxxx-000xxxxxxxxxxxxx# show version
Digital Residential Gateway Operating System (DRGOS)
Copyright © 2009-2014 Genexis B.V. All rights reserved.

DRGOS version: drgos-hrg1000-1.12.2-EFT17
Compiled: Fri Sep 12 16:12:36 CST 2014
Source ID: xxxx

000xxxxxxxxx-000xxxxxxxxxxxxx uptime is 3W9h44m48s
Last boot: unknown

Bootloader 1 version: drgldr-hrg1000-1.3.1-RC14 (Jun 27 2012 - 17:04:44) - Active
Bootloader 2 version: drgldr-hrg1000-1.3.1-RC14 (Jun 27 2012 - 17:04:44) - Active
Bootstrap version: drgboot-hrg1000-1.3.1-RC12 (Jun 12 2012 - 21:49:27)

Product name: HRG1054
Product number: xxx
Product revision: 3
Product date: 2014-07-01
Serial number: xxx
Base MAC address: xxx

000xxxxxxxxx-000xxxxxxxxxxxxx#

Owned... würde ich mal sagen... Anscheinend wird der Standard-User „operator“ nicht entfernt bzw dennoch angelegt.

Die CLI von DRGOS ist stark an Cisco iOS angelehnt und wird quasi analog dazu bedient. Ein Bestätigung erhielt ich damit, dass ich ohne Probleme in den ACL's die Freigabe von ICMPv6 erlauben und danach meine IPv6 Host im Lan per Ping erreichen konnte.

**************

vG
Marco
Mit anderen Worten:
Es war tatsächlich möglich, mit dem Benutzernamen "operator" und dem Kennwort "operator" auf die Kommandozeile des Routers zu kommen ...
Hallo,

(13.09.2015, 12:38)Schimmelreiter schrieb: [ -> ]Mit anderen Worten:
Es war tatsächlich möglich, mit dem Benutzernamen "operator" und dem Kennwort "operator" auf die Kommandozeile des Routers zu kommen ...

kurz gesagt - JA... und das auf alle CPE's der DG und das von extern...

Und ja ich lasse deiner Fantasie freien lauf... Möglichkeiten ohne Ende.

Wenn nun einer fragt: "Ja Aber woher weisst die die IPV6 Adresse der Router, das sind ja unendlich viele Möglichkeiten..."

Tja, leider sind die Möglichkeiten nicht so unendlich:

Info:

Jede CPE erhält ein 56er Suffix, das erste 64er Suffix mit ::1 hieraus ist die CPE

Die DG hat ein 32er Suffix erhalten

2a00:61e0:aabb:ccyy::1

aabb:cc => 56er Präfixe = IPV4 Adresses des CPE WAN Interfaces 100.aa.bb.cc

yy => mögliche Anzahl der 64er Präfixe je CPE

Network: 100.66.0.0/17
Broadcast: 100.66.127.255
HostMin: 100.66.0.1
HostMax: 100.66.127.254
Hosts/Net: 32766

Ergo gehen die CPE’s von:

2a00:61e0:4200:0100::1 für 10.66.0.1

bis

2a00:61e0:427f:fe00::1 für 10.6.127.254

Ein Schelm wer böses dabei denkt... ich habe mal die infrage kommenden CPE IP Adressen gescannt (nur den Bereich meines POP) und hatte da so einige Treffer :-)

vG
Marco
Hallo zusammen.

Ich bin gerade mehr durch Zufall auf diesen interessanten thread gestossen und habe mich umgehend mal registiert.

Vorneweg mal ein dickes kudos an Marco aka dg1yiq für das exzellente reverse-engineering der genexsis-Kiste.

Nachdem ich all das gelesen hatte, bin ich mal schnell mit einer externen ipv6-fähigen Kiste über meinen GF-Router hergefallen. Da ist aktuell auf der externen v6-Adresse alles dicht.

Was mich im Zuge dessen allerdings wiederum erschrocken hat, ist die Tatsache, das das "ipv6-forwarding" des Routers, welches ich bspw. gutgläubig für eine schmalspurige Firewall-Konfiguration gehalten hatte, um einzelne Dienste nach aussen zu öffnen, VÖLLIG wirkungslos ist. Alle vermeintlich internen Dienste sind ohne weiteres per ipv6 von aussen erreichbar, hierbei ist es völlig unerheblich, ob die Adressen in dem og. Menü Erwähnung finden, oder nicht.

Ich denke das sollte man auch zeitnah an den Provider addressieren.
Nachtrag:

offenbar müssen die vor dem letzten Update bereits vorh. ipv6-Forwardings explizit gelöscht und neu angelegt werden. Meine Scans sahen auf allen Hosts die jeweils nur für einen host freigegebenen Ports.

Nach Neuanlage der Forwardings verhielt sich die Firewall so wie erwartet. Nur noch die explizit freigegebenen host/port Konfigurationen waren erreichbar.

VG
Backdoor / Sicherheitslücke in aktueller Firmware


Hallo zusammen,

Mit großem Interesse und noch mehr Besorgnis habe ich diesen Thread gelesen.

Nun bin ich leider nicht so sehr netztechnisch versiert wie diejenigen von euch, die all dies aufgedeckt haben. Aber natürlich will auch ich kein Heimnetzwerk haben, dass von außen nahezu schutzlos angreifbar ist. Selbst wenn dazu Kenntnisse notwendig sein mögen, über die nicht jedermann verfügt, ist das kein Vertrauen erweckendes Gefühl.

Es stellt sich nun die Frage, ob
1. DGF (bzw. für meinem Fall: fl!nk) darüber in Kenntnis gesetzt wurde, und
2. was als Reaktion kam (wenn überhaupt...!).


Gibt es bei all dem denn mittlerweile überhaupt eine 'sichere' Mögkichkeit, von außen auf Homenetdevices (NAS, SmartHome, u.ä.) zuzugreifen, oder ist die Aussicht darauf illusorisch bzw sogar naiv??


Habt Dank für eure Antworten.
ich lese hier so vieles warum immer wieder neue Router kaufen
ich selber habe mal einiges Probiert
Fritzbox 7390 mit freetz image einfach genial wenn Bridge Modus

o2box 6431 mit alternativen Software OpenWrt ist möglich

Easybox 803 openWRT siehe Fotos ist nicht einfach aber mach bar
wurd noch mit Externen antennen versehen.

also ich bin ein Kleiner Bastler der vorallem wissen möchte was steckt hinter der Hardware und wo kann man sie verbessern.

genau das habe ich beim Genexis Router auch gemacht.
Externe Antennen das Bringt schonmal was bei dem Wlan Problem.

des Weiteren ist die Software einfach nur mist.
keine Bedienerfreundlichkeit.
obwohl es eine abgeänderte openwert Software ist.
Wurde so so abgespeckt das sie doch wieder sowas von Kunden unfreundlich ist das es eigentlich nicht mehr als Router zu nennen ist.
sage nur Sperrfunktion mit Zeitr angaben, Log protokolle, und das Schlimmste ist das Rechner Hosts in der Sperrliste stehen die schon seit monaten nie mehr online waren.
desweiteren es ist ein USB port verbaut der nicht genutzt werden kann weil er nicht in der Firmware implementiert ist obwohl OpenWrt dieses kann
die dev/ttyUSB0 wird ja erstellt. laut serial Log.

P.S. hatte ich balt vergessen OpenWrt kann iv4ipv6 das selbe macht festeIP.net mit ihrer Box auch.
Seiten: 1 2 3