{"id":89,"date":"2006-08-17T00:57:35","date_gmt":"2006-08-16T23:57:35","guid":{"rendered":"http:\/\/security-planet.de\/?p=81"},"modified":"2006-08-17T00:57:35","modified_gmt":"2006-08-16T23:57:35","slug":"der-schutz-hinter-service-password-encryption","status":"publish","type":"post","link":"https:\/\/cyber-fi.net\/index.php\/2006\/08\/17\/der-schutz-hinter-service-password-encryption\/","title":{"rendered":"Der Schutz hinter &#8220;service password-encryption&#8221; im Cisco IOS"},"content":{"rendered":"<p>In den Cisco-Kursen zeigt sich oft, da\u00df die verschiedenen Typen der Password-Verschl\u00fcsselung durcheinandergebracht werden. Dieser Beitrag geht dabei im speziellen auf den Typ 7 ein, der durch &#8220;service password-encryption&#8221; erreicht wird.<!--more--><br \/>\nDie heute gebr\u00e4uchlichen Password-Typen im IOS sind 0, 5, 6 und 7:<\/p>\n<p><strong>Typ 0:<\/strong><br \/>\ngibt an, da\u00df es sich um ein unverschl\u00fcsseltes Passwort handelt. Mit dem Typ 0 wird auch das Plain-Text-Password eingegeben.<\/p>\n<p><strong>Typ 5:<\/strong><br \/>\nDieser Typ bezeichnet kryptografisch gesicherte Passw\u00f6rter. Diese werden durch MD5-Hash-Verfahren berechnet und k\u00f6nnen nicht zur\u00fcckgerechnet werden. Verwendet werden sie z.B. beim <em>enable secret<\/em> oder <em>username &#8230; secret<\/em>:<\/p>\n<pre class=\"code\"><code>\nki-router(config)#enable secret ?\n 0      Specifies an UNENCRYPTED password will follow\n 5      Specifies an ENCRYPTED secret will follow\n LINE   The UNENCRYPTED (cleartext) 'enable' secret\n\nki-router(config)#username test secret ?\n 0     Specifies an UNENCRYPTED secret will follow\n 5     Specifies a HIDDEN secret will follow\n LINE  The UNENCRYPTED (cleartext) user secret\n<\/code><\/pre>\n<p>Bei letzterem ist zu beachten, da\u00df diese Form nicht f\u00fcr ppp-chap verwendet werden kann, da der Router dabei das Klartext-Kennwort wissen mu\u00df.<\/p>\n<p>Eine Beispiel-Implementierung in Python um diese Passw\u00f6rter zu generieren ist <a href=\"http:\/\/www.sabren.net\/code\/python\/crypt\/md5crypt.py\" target=\"_blank\" title=\"IOS Typ5 Password Implementierung in Python \" rel=\"noopener noreferrer\">hier<\/a> zu finden.<\/p>\n<p><strong>Typ 6:<\/strong><br \/>\nDieser Typ kommt  z.B. bei der Verschl\u00fcsselung von Pre-Shared-Keys bei IPSec zum Einsatz:<\/p>\n<pre class=\"code\"><code>\nki-router(config)#crypto isakmp key ?\n 0  Specifies an UNENCRYPTED password will follow\n 6  Specifies an ENCRYPTED password will follow\n<\/code><\/pre>\n<p>Diese Passw\u00f6rter werden durch eine AES-Verschl\u00fcsselung gebildet.<\/p>\n<p><strong>Typ 7:<\/strong><br \/>\nDies ist der Typ, der durch  <em>service password-encryption<\/em> zusammen mit &#8220;normalen&#8221; Passw\u00f6rtern (enable password, username &#8230; password, Line-Passw\u00f6rter) gebildet wird:<\/p>\n<pre class=\"code\"><code>\nki-router(config)#enable password ?\n 0      Specifies an UNENCRYPTED password will follow\n 7      Specifies a HIDDEN password will follow\n LINE   The UNENCRYPTED (cleartext) 'enable' password\n\nki-router(config)#username test password ?\n 0     Specifies an UNENCRYPTED password will follow\n 7     Specifies a HIDDEN password will follow\n LINE  The UNENCRYPTED (cleartext) user password\n<\/code><\/pre>\n<p>Der Algorithmus, der hinter dieser Methode steht, ist zum einen trivial, zum anderen kann das Passwort zur\u00fcckgerechnet werden. Desweiteren kann von der L\u00e4nge des verschl\u00fcsselten Passwortes auf die L\u00e4nge des Klartext-Passwort geschlossen werden:<\/p>\n<pre class=\"code\"><code>\nki-router(config)#enable password c\nki-router(config)#do sh run | i enable password\nenable password 7 0508\nki-router(config)#enable password ci\nki-router(config)#do sh run | i enable password\nenable password 7 045802\nki-router(config)#enable password cis\nki-router(config)#do sh run | i enable password\nenable password 7 13061E01\nki-router(config)#enable password cisc\nki-router(config)#do sh run | i enable password\nenable password 7 0822455D0A\nki-router(config)#enable password cisco\nki-router(config)#do sh run | i enable password\nenable password 7 14141B180F0B\nki-router(config)#\n<\/code><\/pre>\n<p>Man kann sehr sch\u00f6n erkennen, da\u00df dieser Typ immer einen &#8220;Startwert&#8221; von zwei Zeichen hat und sich das verschl\u00fcsselte Password mit jedem Buchstaben um zwei Hex-Zeichen verl\u00e4ngert.<\/p>\n<p><strong>In einem Beispiel soll das folgende Typ 7-verschl\u00fcsselte Password zur\u00fcckgerechnet werden:<\/strong><\/p>\n<pre class=\"code\"><code>enable password 7 14141B180F0B<\/code><\/pre>\n<p>Das Typ7-Password ist  12 Zeichen lang, das Klartext-Password mu\u00df also (12-2)\/2=5 Zeichen lang sein.<\/p>\n<p><strong>Zerlegung des Type7-Passwords:<\/strong><br \/>\nDas Password wird in Bl\u00f6cke \u00e0 zwei Zeichen zerlegt:<\/p>\n<pre class=\"code\"><code>\n<strong>14<\/strong> - der XOR-Offset\n<strong>14<\/strong> - das erste Zeichen\n<strong>1B<\/strong> - das zweite Zeichen\n<strong>18<\/strong> - das dritte Zeichen\n<strong>0F<\/strong> - das vierte Zeichen\n<strong>0B<\/strong> - das f\u00fcnfte Zeichen\n<\/code><\/pre>\n<p><strong>Ermittlung der XOR-Werte: <\/strong><br \/>\nDie Entschl\u00fcsselung enth\u00e4lt eine Reihe von xor-Operationen (exclusiv oder). Diese werden mit Werten der folgenden (im IOS vorgegebenen) xor-Tabelle ausgef\u00fchrt:<\/p>\n<pre class=\"code\"><code>\n0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,\n0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,\n0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53,\n0x55, 0x42, 0x73, 0x67, 0x76, 0x63, 0x61, 0x36,\n0x39, 0x38, 0x33, 0x34, 0x6e, 0x63, 0x78, 0x76,\n0x39, 0x38, 0x37, 0x33, 0x32, 0x35, 0x34, 0x6b,\n0x3b, 0x66, 0x67, 0x38, 0x37\n<\/code><\/pre>\n<p>Die erste Zahl im Typ7-Password ist 14, an der 15. Stelle (die Z\u00e4hlweise beginnt bei 0) beginnen die 5 xor-Werte: 0x77, 0x72, 0x6b, 0x6c, 0x64<\/p>\n<p><strong>Ermittlung des ersten Zeichens des Passwords:<\/strong><br \/>\nDie n\u00e4chsten zwei Zeichen nach dem XOR-Startwert sind 14.<\/p>\n<p>Diese Zahl wird per exklusiv-oder mit dem ersten xor-Wert (0x77) verkn\u00fcpft:<\/p>\n<pre class=\"code\"><code>0x14 xor 0x77 =  0x63<\/code><\/pre>\n<p>0x63 entspricht in der ASCII-Tabelle dem &#8220;c&#8221;.<\/p>\n<p><strong>Ermittlung des zweiten Zeichens des Passwords:<\/strong><br \/>\nDie n\u00e4chsten zwei Zeichen sind 1b. Diese Zahl wird mit dem zweiten xor-Wert (0x72) verkn\u00fcpft:<\/p>\n<pre class=\"code\"><code>0x1b xor 0x72 = 0x69<\/code><\/pre>\n<p>0x69 entspricht in der ASCII-Tabelle dem &#8220;i&#8221;.<\/p>\n<p><strong>Ermittlung des dritten Zeichens des Passwords:<\/strong><br \/>\nDie n\u00e4chsten zwei Zeichen sind 18. Diese Zahl wird mit dem dritten xor-Wert (0x6b) verkn\u00fcpft:<\/p>\n<pre class=\"code\"><code>0x18 xor 0x6b = 0x73<\/code><\/pre>\n<p>0x73 entspricht in der ASCII-Tabelle dem &#8220;s&#8221;.<\/p>\n<p><strong>Ermittlung des vierten Zeichens des Passwords:<\/strong><br \/>\nDie n\u00e4chsten zwei Zeichen sind 0f. Diese Zahl wird mit dem vierten xor-Wert (0x6c) verkn\u00fcpft:<\/p>\n<pre class=\"code\"><code>0x0f xor 0x6c = 0x63<\/code><\/pre>\n<p>0x63 entspricht in der ASCII-Tabelle dem &#8220;c&#8221;.<\/p>\n<p><strong>Ermittlung des f\u00fcnften Zeichens des Passwords:<\/strong><br \/>\nDie n\u00e4chsten zwei Zeichen sind 0b. Diese Zahl wird mit dem f\u00fcnften xor-Wert (0x64) verkn\u00fcpft:<\/p>\n<pre class=\"code\"><code>0x0b xor 0x64 = 0x6f<\/code><\/pre>\n<p>0x6F entspricht in der ASCII-Tabelle dem &#8220;o&#8221;.<\/p>\n<p><strong><em>Damit ist das Klartext-Password &#8220;cisco&#8221; ermittelt.<\/em><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In den Cisco-Kursen zeigt sich oft, da\u00df die verschiedenen Typen der Password-Verschl\u00fcsselung durcheinandergebracht werden. Dieser Beitrag geht dabei im speziellen auf den Typ 7 ein, der durch &#8220;service password-encryption&#8221; erreicht wird.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"twitterCardType":"","cardImageID":0,"cardImage":"","cardTitle":"","cardDesc":"","cardImageAlt":"","cardPlayer":"","cardPlayerWidth":0,"cardPlayerHeight":0,"cardPlayerStream":"","cardPlayerCodec":"","footnotes":""},"categories":[5,7],"tags":[307,458],"class_list":["post-89","post","type-post","status-publish","format-standard","hentry","category-cisco","category-cisco-security","tag-ios","tag-passworter"],"_links":{"self":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts\/89","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/comments?post=89"}],"version-history":[{"count":0,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts\/89\/revisions"}],"wp:attachment":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/media?parent=89"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/categories?post=89"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/tags?post=89"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}