Использование Paramiko для брута SSH на Python

Paramiko Python брут SSH

Paramiko — это реализация протокола SSHv1 и SSHv2 на Python. В статье покажу, как использовать Paramiko для брута SSH на Python.

Еще по теме: SSH с использованием Paramiko на Python

Что такое Paramiko

Paramiko — это модуль, написанный на Python, который поддерживает протоколы SSHv1 и SSHv2, позволяя создавать клиентов и устанавливать соединения с SSH-серверами.

Среди основных преимуществ модуля paramiko можно выделить следующее:

  • Инкапсулирует сложности, связанные с выполнением автоматизированных сценариев для SSH-серверов, в удобной и простой для понимания форме.
  • Поддерживает протокол SSHv2 через модули pycrypto и cryptography для реализации операций с шифрованием открытых и закрытых ключей.
  • Аутентификация по открытому ключу, аутентификацию по паролю и создание SSH-туннелей.
  • Позволяет писать надежные SSH-клиенты с тем же функционалом, что и другие SSH-клиенты, такие как PuTTY или клиент OpenSSH.
  • Поддерживает безопасную передачу файлов с использованием протокола SFTP.

Поскольку SSHv1 небезопасен, его использование не рекомендуется из-за различных обнаруженных уязвимостей. На сегодняшний день SSHv2 — рекомендуемая версия, поскольку она поддерживает новые алгоритмы шифрования.

Для работы Paramiko, для всех операций шифрования, небходимы библиотеки pycrypto и cryptography, которые позволяет создавать локальные, удаленные и динамические зашифрованные туннели.

Установка Paramiko

Можете установить paramiko из репозитория PiP Python:

Можно установить его в версии Python 3.4+, и есть некоторые зависимости, которые должны быть установлены в вашей системе, такие как модули pycrypto и cryptography, в зависимости от того, какую версию вы собираетесь установить. Эти библиотеки обеспечивают для SSH криптографические алгоритмы низкого уровня на основе C.

Статья в образовательных целях, для обучения этичных хакеров. Несанкционированный брут SSH является незаконным и рассматривается как уголовное преступление. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.

Использование Paramiko для брута SSH

Мы можем реализовать метод, который принимает два файла в качестве входных данных (users.txt и passwords.txt) и с помощью брута пытается проверить все возможные комбинации пользователей и паролей.

Обратите внимание, что если мы получаем ошибку соединения, у нас есть блок исключений, где мы можем выполнять различные задачи обработки ошибок, в зависимости от того, была ли ошибка соединения из-за ошибки аутентификации ( paramiko.AuthenticationException) или ошибки соединения с сервером ( socket.error).

Файлы, связанные с именами пользователей и паролями, представляют собой простые текстовые файлы, которые содержат распространенные имена пользователей и пароли по умолчанию для баз данных и операционных систем. Примеры таких файлов можно найти на fuzzdb.

Следующий скрипт выполнит атаку брутфорс SSH с использованием словаря пользователей и паролей.

В этом коде мы реализуем метод с именем brute_force_ssh(), который пытается установить соединение с SSH-сервером для каждой комбинации пользователь-пароль.

Также в этом методе мы используем инструкцию paramiko.util.log_to_file('paramiko.log') для сохранения всей активности, которую paramiko регистрирует при выполнении скрипта:

В этом коде мы выполняем брут, где вызываем метод brute_force_ssh() и итерируемся по комбинациям пользователей и паролей.

При выполнении скрипта мы будем видеть, как он тестирует различные комбинации имени пользователя и пароля, пока не проверит все комбинации, которые у нас есть в файлах, или не найдет правильные учетные данные.

Брут SSH Paramiko

Далее, для подключения к SSH-серверу, можно использовать модуль Pysftp.

ПОЛЕЗНЫЕ ССЫЛКИ:

Ban32
Добавить комментарий