Код для генерации «секретных» хэшей паролей Cisco?

12

У кого-нибудь есть указатель на код (или только алгоритм), который Cisco использует для генерации своих хэшей паролей для таких вещей, как «включить секрет»?

Я не пытаюсь вломиться во что-либо; Я пытаюсь сгенерировать соответствующую строку «enable secret» с открытым текстом пароля, а не декодировать существующую строку «enable secret» с хешированным паролем. Мне это нужно для автоматического генератора конфигурационных файлов, над которым я работаю ( Netomata Config Generator ).

По сути, мне нужен Cisco-эквивалент команды «htpasswd», используемой для веб-серверов.

Например, когда я помещаю следующую команду с открытым текстом в пароль в конфигурации Cisco:

enable secret foobar

затем, когда я выполняю команду «show config» (при условии, что у меня включено «шифрование пароля службы»), я вижу что-то вроде этого:

enable secret 5 $1$pdQG$0WzLBXV98voWIUEdIiLm11

Я хочу код, который переводит «foobar» в «5 $ 1 $ pdQG $ 0WzLBXV98voWIUEdIiLm11», чтобы я мог генерировать уже хэшированные пароли в своем инструменте генерации конфигурации, вместо того, чтобы помещать пароли в открытом тексте в сгенерированные конфигурации и ждать, пока маршрутизатор генерировать хеш

Я предполагаю, что «5» в хешированном результате является своего рода идентификатором алгоритма хеширования. Если есть другие алгоритмы хеширования, которые Cisco использует или использует в прошлом, то я хотел бы также иметь код для этих алгоритмов.

Брент Чепмен
источник

Ответы:

18

Согласно этому веб-сайту , утилита командной строки OpenSSL обеспечивает необходимую вам функциональность:

$ openssl passwd -1 -salt pdQG -table foobar
foobar  $1$pdQG$0WzLBXV98voWIUEdIiLm11
$

И, по-видимому, в самой библиотеке есть эквивалентная функция.

Я не уверен, требует ли IOS, чтобы вы использовали конкретные значения соли, но технически нет причины, по которой это следует делать, если строка, которую вы указываете в своей команде «enable secret», является действительным дайджестом пароля MD5. Если у вас есть возможность проверить, мне было бы интересно узнать ваши результаты.

Мурали Суриар
источник
11

Cisco, кажется, требует соли с 4 символами. По умолчанию без аргумента « -salt соль » opensslбудет генерироваться соль из 8 символов.

Однако вы можете использовать opensslдля создания Cisco-совместимого хеша «открытый текст» с подходящей случайной 4-символьной солью, однако так:

openssl passwd -salt `openssl rand -base64 3` -1 "cleartext"

Подкоманда « openssl rand -base64 3» генерирует 3 случайных байта и затем кодирует их в формате base64, что дает вам 4 печатных символа (именно то, что вам нужно для Cisco-совместимой соли).

Спасибо Мурали Суриару за ответ (в другом месте на этой странице), который помог мне начать правильный путь к этому решению.

Брент Чепмен
источник
3

5 Полагаю, это относится к тому факту, что это тип 5, в котором используется MD5, что означает, что вам понадобится 300 игровых приставок 3s . Тип 7 легко взломать, и у них даже есть сценарии на веб-сайтах для него. Это может быть лучше спросить на Stackoverflow.

Терри
источник
1
+1 за смешной ответ :) Как ни странно, это также дает мне некоторую надежду, что, может быть, теперь, используя эту статью, я смогу заставить моего босса покупать нам игровые приставки ..
Грег Михан
3

Вот отличная ссылка http://haxcess.com/2008/10/21/cisco-password-recovery/

Суть в том, что хеш разбит на несколько частей

  -> Indicates MD5 algorithm
 |   -> Salt
 |  |     -> Salt + Password Hash
 |  |    |
$1$mERr$RchIrJirmCXltFBZ2l50l/

Вот решение Perl, которое творило чудеса для меня в прошлом. Положите этого ребенка в цикл и дайте ему поработать.

#!/usr/bin/perl
use Crypt::PasswdMD5;
my $hash = unix_md5_crypt('password','salt')
ZnArK
источник
1

«5» означает, что чистый пароль был преобразован в пароль Cisco типа 5. Пароль типа 5 - это алгоритм на основе MD5 (но я не могу сказать вам, как его вычислить, извините). Тип 7, используемый при «включении пароля», является хорошо известным обратимым алгоритмом. «Служба шифрования пароля» просто гарантирует, что пароль не будет храниться в открытом виде (тип 0)

Посмотрите на http://en.wikipedia.org/wiki/Crypt_(Unix)#MD5-based_scheme и удачи :)

РЕДАКТИРОВАТЬ: Вы также можете посмотреть http://www.h4x3d.com/md5-and-crypt-password-generator/ , http://www.koders.com/c/fid530E8983791E1CB2AB90EAA69A68789FA2A83A6D.aspx и http: //www.cryptgenerator .de /

радиус
источник