Во время тестов на проникновение нередко можно встретить конфигурационный файл сетевого устройства Cisco. Это может быть резервная копия конфигурации, найденная где-то на каком-то компьютере в сети. Это может быть вывод журнала консоли (например, из PuTTY), содержащий фрагменты конфигурации Cisco. Или мы можем просто взломать какое-нибудь устройство Cisco, настроенное с учетными данными по умолчанию.
Распространенные типы паролей Cisco
В следующих разделах мы рассмотрим все эти типы паролей в порядке от наименее безопасных (самых простых для взлома) до самых безопасных (сложных для взлома):
Cisco Password | Crackability | Best speed | John the Ripper | Hashcat |
Type 0 | instant | instant | n/a | n/a |
Type 7 | instant | instant | n/a | n/a |
Type 4 | easy | 26.4 million per second | --format=Raw-SHA256 |
-m 5700 |
Type 5 | medium | 1.2 million per second | --format=md5crypt |
-m 500 |
Type 8 | hard | 11.6 thousand per second | --format=pbkdf2-hmac-sha256 |
-m 9200 |
Type 9 | very hard | 1.8 thousand per second | --format=scrypt |
-m 9300 |
Все примеры и измерения скорости в этой статье были произведены на стандартном современном ноутбуке, оснащенном графическим процессором и 4 ядрами процессора.
Пароль Cisco типа 0
Пароль Cisco типа 0 в основном представляет собой открытый текстовый пароль. Нет ни шифрования, ни обфускации. Это самый старый и самый небезопасный метод хранения паролей на устройствах Cisco. Его никогда не следует использовать.
В следующем примере показан пароль типа 0, найденный в конфигурации Cisco:
username admin privilege 15 password 0 P@ssw0rd
Как видите, взламывать и расшифровывать действительно нечего. Мы можем ясно видеть, что пользователь admin имеет пароль P@ssw0rd.
Пароль Cisco типа 7
Этот тип пароля использует шифр Виженера, который по существу представляет собой простое шифрование с заменой алфавита. Алгоритм обратим, поэтому его можно мгновенно расшифровать в простой текст без необходимости взлома.
В следующем примере показан пароль типа 7, найденный в конфигурации Cisco:
username admin privilege 15 password 7 0236244818115F3348
Расшифровка паролей Cisco типа 7
Существует ряд свободно доступных инструментов для расшифровки пароля типа 7. Вот некоторые примеры:
Например, чтобы расшифровать приведенный выше пароль типа 7 с помощью скрипта Ciscot7 Python, просто запустите:
wget https://raw.githubusercontent.com/theevilbit/ciscot7/master/ciscot7.py
python ciscot7.py -d -p 0236244818115F3348
Понятно, что пароль P@ssw0rd.
В Интернете также есть множество расшифровщиков для этого типа пароля. Но мы настоятельно не рекомендуем их использовать, чтобы избежать раскрытия конфиденциальной информации о клиенте (учетных данных) третьим лицам.
Пароль Cisco типа 4
Этот тип пароля был разработан примерно в 2013 году, и первоначальный план состоял в том, чтобы использовать алгоритм PBKDF2 (функция получения ключа на основе пароля, версия 2). Но из-за проблемы с реализацией это каким-то образом оказалось простой итерацией SHA256.
В следующем примере показан пароль типа 4, найденный в конфигурации Cisco:
username admin secret 4 ds4zcEBHQMiiscBff5JmSaUctdI8fVdmGU18HAtxOCw
Расшифровка паролей Cisco типа 4 с помощью John
John the Ripper распознает этот тип пароля как Raw-SHA256. Чтобы взломать его, мы должны сначала преобразовать его в следующий формат, удобный для Джона, и сохранить его в файле:
admin:ds4zcEBHQMiiscBff5JmSaUctdI8fVdmGU18HAtxOCw
Тогда мы можем взломать его вот так, используя словарь, например:
john --format=Raw-SHA256 --wordlist=/usr/share/wordlists/rockyou.txt --fork 4 hashes.txt
Обратите внимание, что поскольку у нас 4 ядра ЦП, мы можем запустить john в 4 экземплярах, используя параметр —fork:
На приведенном выше снимке экрана видно, что средняя скорость составляет около 26,4 миллиона попыток ввода пароля в секунду.
Расшифровка паролей Cisco типа 4 с помощью Hashcat
Hashcat распознает этот тип пароля как хеш-режим 5700. Чтобы взломать его, мы можем продолжать использовать тот же формат, дружественный к Джону. Затем мы можем взломать его, используя словарь, например:
hashcat -m 5700 --username -O -a 0 hashes.txt /usr/share/wordlists/rockyou.txt
Обратите внимание, что с помощью параметра -O (оптимизированные ядра) мы значительно увеличим скорость. Но это также ограничит длину пароля до 31 символа.
На приведенном выше снимке экрана видно, что средняя скорость составляет около 1,14 миллиона попыток ввода пароля в секунду. Кажется, в нашем случае взломать этот хэш с помощью john намного быстрее.
Пароль Cisco типа 5
Этот тип пароля был введен примерно в 1992 году и, по сути, представляет собой тысячную итерацию хэша MD5. Соль имеет длину 4 символа (32 бита). Для современных компьютеров это не так уж сложно и поэтому во многих случаях его можно успешно взломать.
В следующем примере показан пароль типа 5, найденный в конфигурации Cisco:
username admin secret 5 $1$jUfy$2TVVXJ8sy.KO8ZhAKfIHt/
Расшифровка паролей Cisco типа 5 с John
John the Ripper распознает этот тип пароля как md5crypt. Чтобы взломать его, мы должны снова сначала преобразовать его в следующий формат, удобный для Джона, и сохранить его в файле:
admin:$1$jUfy$2TVVXJ8sy.KO8ZhAKfIHt/
Тогда мы можем взломать его вот так, используя словарь, например:
john --format=md5crypt --fork=4 --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
На приведенном выше снимке экрана видно, что средняя скорость составляет около 155 тысяч попыток ввода пароля в секунду.
Расшифровка паролей Cisco типа 5 с помощью Hashcat
Hashcat распознает этот тип пароля как хеш-режим 500. Чтобы взломать его, мы можем продолжать использовать тот же дружественный к Джону формат. Тогда мы можем взломать его вот так, используя словарь, например:
hashcat -m 500 --username -O -a 0 hashes.txt /usr/share/wordlists/rockyou.txt
Обратите внимание, что с помощью параметра -O (оптимизированные ядра) мы значительно увеличим скорость. Но это также ограничит длину пароля до 31 символа.
На приведенном выше снимке экрана видно, что средняя скорость составляет около 1,2 миллиона попыток ввода пароля в секунду. Намного лучше, чем Джон в нашем случае.
Пароль Cisco типа 8
Этот тип пароля является правильной реализацией неудачного типа пароля 4. На этот раз он действительно использует алгоритм PBKDF2 и 10-символьную соль (80 бит). По сути, это 20 000 итераций SHA256, что значительно усложняет взлом по сравнению с предыдущими типами паролей.
В следующем примере показан пароль типа 8, найденный в конфигурации Cisco:
username admin secret 8 $8$dsYGNam3K1SIJO$7nv/35M/qr6t.dVc7UY9zrJDWRVqncHub1PE9UlMQFs
Расшифровка паролей Cisco типа 8 с помощью Джона
Джон Потрошитель распознает этот тип пароля как pbkdf2-hmac-sha256. Чтобы взломать его, мы должны снова сначала преобразовать его в следующий формат, удобный для Джона, и сохранить его в файле:
admin:$8$dsYGNam3K1SIJO$7nv/35M/qr6t.dVc7UY9zrJDWRVqncHub1PE9UlMQFs
Тогда мы можем взломать его вот так, используя словарь, например:
john --format=pbkdf2-hmac-sha256 --fork=4 --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
На приведенном выше снимке экрана видно, что средняя скорость составляет около 1200 попыток ввода пароля в секунду. Немного.
Расшифровка паролей Cisco типа 8 с помощью Hashcat
Hashcat распознает этот тип пароля как хеш-режим 9200. Чтобы взломать его, мы можем продолжать использовать тот же дружественный к Джону формат. Тогда мы можем взломать его вот так, используя словарь, например:
hashcat -m 9200 --username -a 0 hashes.txt /usr/share/wordlists/rockyou.txt
На приведенном выше снимке экрана видно, что средняя скорость составляет около 11 600 попыток ввода пароля в секунду. В нашем случае это определенно быстрее, чем john, но в целом не очень быстро.
Пароль Cisco типа 9
Этот тип пароля использует алгоритм Scrypt. Scrypt был специально разработан, чтобы сделать взлом очень трудным даже на крупномасштабных установках для взлома с большим количеством графических процессоров или аппаратных ASIC. Это связано с тем, что Scrypt требует большого объема памяти для выполнения своей функции.
В следующем примере показан пароль типа 9, найденный в конфигурации Cisco:
username admin secret 9 $9$nhEmQVczB7dqsO$X.HsgL6x1il0RxkOSSvyQYwucySCt7qFm4v7pqCxkKM
Расшифровка паролей Cisco типа 9 с помощью Джона
Джон Потрошитель распознает этот тип пароля как scrypt. Чтобы взломать его, мы должны снова сначала преобразовать его в следующий формат, удобный для Джона, и сохранить его в файле:
admin:$9$nhEmQVczB7dqsO$X.HsgL6x1il0RxkOSSvyQYwucySCt7qFm4v7pqCxkKM
Тогда мы можем взломать его вот так, используя словарь, например:
john --format=scrypt --fork=4 --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
На приведенном выше снимке экрана видно, что средняя скорость составляет около 1400 попыток ввода пароля в секунду. Немного.
Расшифровка паролей Cisco типа 9 с помощью Hashcat
Hashcat распознает этот тип пароля как хеш-режим 9300. Чтобы взломать его, мы можем продолжать использовать тот же дружественный к Джону формат. Тогда мы можем взломать его вот так, используя словарь, например:
hashcat -m 9300 --username -a 0 --force hashes.txt /usr/share/wordlists/rockyou.txt
Обратите внимание, что мы должны предоставить параметр —force, так как хэш-режим 9300 помечен как нестабильный для нашего конкретного устройства.
На приведенном выше снимке экрана видно, что средняя скорость составляет около 1800 попыток ввода пароля в секунду. Тоже немного.
Советы по взлому
Используйте собственные правила KoreLogic
John the Ripper содержит очень полезный набор правил для генерации паролей под названием KoreLogic. Этот набор правил появился на конкурсе DEFCON 2010, и это отличный способ генерировать пароли из шаблонов или когда традиционная атака по словарю терпит неудачу.
Чтобы использовать его, просто создайте словарь с такими шаблонами, например:
infosec
infosecmatter
infosec matter
Сохраните его в файл Patterns.txt. Затем просто запустите john следующим образом:
john --wordlist=patterns.txt --rules=korelogic ...
Цепь Джона Потрошителя с Hashcat
Хотя были предприняты некоторые попытки преобразовать вышеупомянутые правила KoreLogic в Hashcat, результат лишь частичный. К счастью, мы можем объединить John the Ripper с Hashcat, чтобы он полностью использовал правила KoreLogic.
Просто сгенерируйте пароли с помощью John the Ripper на стандартном выходе и загрузите их в Hashcat, используя канал, подобный этому:
john --wordlist=patterns.txt --rules=korelogic --stdout | hashcat ...
Тот же метод можно использовать для любого набора правил, который мы создали в формате john.
Надеюсь, вы сможете взломать несколько хэшей Cisco с помощью этих советов.
Заключение
В этом руководстве мы рассмотрели типы паролей Cisco, которые можно найти в сетевых устройствах на базе Cisco IOS. Мы рассмотрели все распространенные типы паролей Cisco (0, 4, 5, 7, 8 и 9) и предоставили инструкции о том, как их расшифровать или взломать с помощью популярных взломщиков паролей с открытым исходным кодом, таких как John the Ripper или Hashcat.