Jul 10 14

Ich habe mich gerade etwas mit den verschiedenen Typen der Password-Verschlüsselung des Cisco IOS auseinander gesetzt und möchte im folgenden die verschieden Typen kurz darstellen, sowie an einem kleinen Rechenbeispiel zeigen wie „sicher“ so ein Type 7 Passwort wirklich ist.

Typ 0:
besagt, dass es sich hierbei um ein unverschlüsseltes Passwort handelt. Mit dem Typ 0 wird auch das Plain-Text-Password eingegeben.

Typ 5:
hierbei handelt es sich um ein kryptografisch gesichertes Passwort. Dieses wird durch ein MD5-Hash-Verfahren berechnet und kann ich wieder zurückgerechnet werden. Im Cisco IOS kommt dies z.B. beim enable secret oder username xxx secret zum Einsatz.

Ein kurzer Blick ins IOS:

test-router(config)#enable secret ?
0      Specifies an UNENCRYPTED password will follow
5      Specifies an ENCRYPTED secret will follow
LINE   The UNENCRYPTED (cleartext) ‚enable‘ secret

test-router(config)#username test secret ?
0     Specifies an UNENCRYPTED secret will follow
5     Specifies a HIDDEN secret will follow
LINE  The UNENCRYPTED (cleartext) user secret

Typ 6:
Dieser Typ kommt z.B. bei der Verschlüsselung von Pre-Shared-Keys bei IPSec zum Einsatz:

test-router(config)#crypto isakmp key ?
0  Specifies an UNENCRYPTED password will follow
6  Specifies an ENCRYPTED password will follow

Diese Passwörter werden durch eine AES-Verschlüsselung gebildet.

Typ 7:
Dieser Type wird durch service password-encryption zusammen mit “normalen” Passwörtern (enable password, username … password, Line-Passwörter) gebildet:

test-router(config)#enable password ?
0      Specifies an UNENCRYPTED password will follow
7      Specifies a HIDDEN password will follow
LINE   The UNENCRYPTED (cleartext) ‚enable‘ password

test-router(config)#username d45id password ?
0     Specifies an UNENCRYPTED password will follow
7     Specifies a HIDDEN password will follow
LINE  The UNENCRYPTED (cleartext) user password

Der Algorithmus, der hinter dieser Verschlüsselungsmethode steht ist sehr trivial und lässt sich dazu auch noch sehr leicht zurück rechnen. Des weiteren kann von der Länge des verschüsselten Passwortes die Länge des Klartext-Passwortes festgestellt werden:

test-router(config)#enable password c
test-router(config)#do sh run | i enable password
enable password 7 0508
test-router(config)#enable password ci
test-router(config)#do sh run | i enable password
enable password 7 045802
test-router(config)#enable password cis
test-router(config)#do sh run | i enable password
enable password 7 13061E01
test-router(config)#enable password cisc
test-router(config)#do sh run | i enable password
enable password 7 0822455D0A
test-router(config)#enable password cisco
test-router(config)#do sh run | i enable password
enable password 7 14141B180F0B
test-router(config)#

Hier lässt sich sehr schon feststellen, dass dieser Typ ein minimale Länge von zwei Zeichen besitzt und sich das verschlüsselte Paswort mit jeden weiteren Zeichen um zwei Hex-Zeichen verlängert.

Daraus folgt:

(„Länge des verschlüsselten Passwort“ – 2 ) / 2 = „Länges des Klartext-Passwort“

In einem kleinen Rechenbeispiel möchte ich darstellen, wie sich das Passwort zurück rechnen lässt:

enable password 7 111D0C0D18081E58

Das Typ7-Password ist 16 Zeichen lang, das Klartext-Password muß also (16-2)/2=7 Zeichen lang sein.

Zerlegung des Type7-Passwords:
Das Password wird in Blöcke à zwei Zeichen zerlegt:

11 – XOR-Offset
1D – das erste Zeichen
0C – das zweite Zeichen
0D – das dritte Zeichen
18 – das vierte Zeichen
08 – das fünfte Zeichen
1E – das sechste Zeichen
58 – das siebte Zeichen

Ermittlung der XOR-Werte:
Die Entschlüsselung enthält eine Reihe von xor-Operationen. Diese werden mit Werten der im IOS vorgegebenen xor-Tabelle ausgeführt:

0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,
0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,
0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53,
0x55, 0x42, 0x73, 0x67, 0x76, 0x63, 0x61, 0x36,
0x39, 0x38, 0x33, 0x34, 0x6e, 0x63, 0x78, 0x76,
0x39, 0x38, 0x37, 0x33, 0x32, 0x35, 0x34, 0x6b,
0x3b, 0x66, 0x67, 0x38, 0x37

Die erste Zahl im Typ7-Password ist 11, an der 12. Stelle beginnen die 7 xor-Werte: 0×69, 0×79, 0×65, 0×77, 0×72, 0x6b, 0x6c

Ermittlung des Passwortes:
Nun verknüpfen wir diese Werte fleißig miteinander und lesen das Hex-Ergebnis in einer ASCII-Tabelle ab um so das Passwort zu erlagen:

0x1D xor 0x69 = 0x74
0x0C xor 0x79 = 0x75
0x0D xor 0x65 = 0x65
0x18 xor 0x77 = 0x6F
0x08 xor 0x72 = 0x7A
0x1E xor 0x6b = 0x75
0x58 xor 0x6c = 0x34

0x74 = t
0x75 = u
0x68 = h
0x6F = o
0x7A = z
0x75 = u
0x34 = 4

Damit ist das Klartext-Password “tuhozu4” ermittelt.

written by d45id \\ tags: , , , , , , , , ,