Основы Python для хакеров, часть 3: создание инструмента для взлома FTP-паролей

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
Это третья часть моей серии статей о скриптах на Python. Если вы не читали предыдущие две статьи, вернитесь к Части 1 (Введение) и Части 2 (Создание инструмента для захвата баннеров), прежде чем продолжить.

Как я уже упоминал в предыдущих уроках, Python, пожалуй, самый распространённый язык программирования для хакеров. В первую очередь, это связано с наличием в нём ряда встроенных модулей и библиотек, которые значительно упрощают и ускоряют выполнение многих задач, с которыми приходится сталкиваться хакерам.

6a4a49_aeea219c2e8244e89e1aa3c58378ed71~mv2.jpg


В этом руководстве я хочу предоставить вам дополнительную базовую информацию о Python, а затем создать взломщик паролей для FTP-сервера, используя некоторые из вещей, которые мы изучили в этих трех модулях.

Словари

В Python словари действуют подобно ассоциативным массивам в других языках. Мы используем их, когда хотим сохранить список элементов и присвоить им метку. Это может быть, например, привязка идентификаторов пользователей к именам или привязка известных уязвимостей к определённому хосту.

Словари содержат неупорядоченные пары — ключ и значение, — где ключи должны быть уникальными. Как и списки, о которых я говорил в предыдущем уроке, словари итерируемы. Это означает, что мы можем перебирать их с помощью управляющей структуры, например, оператора for , присваивая каждый элемент словаря переменной, пока не достигнем конца словаря. Среди прочего, эту структуру можно использовать для создания взломщика паролей, где мы перебираем все пароли в словаре, пока один из них не сработает или не достигнем конца. Словари обеспечивают быстрый поиск.

Для создания словаря синтаксис выглядит следующим образом:

dict = {ключ1:значение1, ключ2:значение2, ключ3:значение3…}

Контрольные заявления


Как и в любом языке программирования или скриптинга, нам часто требуется, чтобы наш код принимал решения. В Python существует несколько способов управления ходом выполнения скрипта. Например, мы можем задать условный оператор: если это …, то тоиначе сделай то .

Давайте рассмотрим некоторые из этих структур в Python.

если:

Структура if в Python похожа на конструкцию if…then в BASH. Синтаксис выглядит следующим образом:

6a4a49_7ef9c97567594ccfa338702053f9b0db~mv2.png


Блок управления в Python должен иметь отступ.

если…иначе:

Структура if..else в Python похожа на if…then..else в BASH . Синтаксис выглядит следующим образом:

6a4a49_371b9f6e25e5448b989491213d7c55f7~mv2.png


Например, здесь у нас есть фрагмент кода, который проверяет значение идентификатора пользователя. Если оно равно 0 (пользователь root в Linux всегда имеет UID 0), то мы выводим сообщение «Вы — пользователь root». В противном случае, если это любое другое значение, мы выводим сообщение «Вы не являетесь пользователем root».

6a4a49_352773826a51455ca9321625fc04c555~mv2.png


Петли

Циклы — ещё одна очень полезная структура в Python. Наиболее часто используются два из них: while и for .

пока:

Оператор while вычисляет логическое выражение (результат — «истина» или «ложь») и продолжает выполнение, пока выражение остаётся истинным. Например, мы могли бы создать фрагмент кода, который выводит каждое число от 1 до 10, а затем выходит из цикла.

6a4a49_ce4c4d7b58b149b58f76ef3da37b2037~mv2.png


для:

Цикл for присваивает значения из списка, строки или другой итерируемой структуры, например, словаря, индексной переменной при каждом проходе цикла. Например, мы можем использовать цикл for для перебора паролей, как в нашем скрипте ниже.

6a4a49_c35cf936786c4bf78e758116bba209de~mv2.png


Создание взломщика паролей FTP

Теперь, когда у нас за плечами три урока по Python, давайте создадим простой взломщик паролей FTP на Python, используя полученные знания. В данном случае давайте воспользуемся сложной интегрированной средой разработки (IDE). Хорошая IDE может значительно ускорить написание кода и облегчить
отладку.

Мой фаворит — PyCharm. Вы можете бесплатно скачать общедоступную версию по адресу https://www.jetbrains.com/pycharm/download/#section=linux .

Введите этот код ниже в PyCharm.

6a4a49_a7403035b8914d9cba9f2b45670201fb~mv2.png


Давайте теперь проанализируем, что мы здесь сделали.

В строке 3 мы импортировали модуль ftplib для использования нашим взломщиком FTP.

В строке 6 мы спрашиваем у пользователя, какой IP-адрес он хочет попытаться взломать, и эти данные помещаются в переменную с именем «сервер».

В строке 12 мы спрашиваем пользователя, пароль какого пользователя он хочет попытаться взломать, и помещаем эти данные в переменную «имя пользователя».

В строке 18 мы запрашиваем у пользователя путь и имя файла списка паролей и помещаем его в переменную с именем «passwordlist».

В строке 23 мы начинаем блок try/except. Этот блок попытается выполнить некоторый код, и если он завершится неудачей или возникнет ошибка, он прервётся и перейдёт к блоку except ниже.

В строке 25 мы начинаем циклическую структуру «with». Эта циклическая структура продолжается до тех пор, пока условие после неё остаётся истинным. В данном случае мы используем функцию open для открытия списка паролей, и этот цикл будет продолжаться до тех пор, пока файл открыт или не будет достигнут конец файла.

В строке 27 мы начинаем цикл for, который будет перебирать каждый пароль и удалять все начальные и конечные пробелы с помощью функции strip.

В строке 30 мы подходим к сути взлома пароля. Сначала мы подключаемся к FTP-серверу.

ftp=ftplib.FTP(сервер)

Затем мы начинаем блок try/except, чтобы попробовать каждое слово пароля для имени пользователя, введенного пользователем выше.

ftp.login(имя пользователя, слово)

Если имя пользователя и пароль создают успешное соединение, выводится сообщение «Success!» с паролем, и соединение закрывается. В случае неудачи соединение переходит к следующему условию except.

Теперь, чтобы протестировать наш код, попробуйте запустить (зелёная кнопка над рабочей областью) этот взломщик паролей FTP на FTP-сервере в Metasploitable 2, используя учётную запись «msfadmin». Вы должны увидеть следующий вывод.

6a4a49_12557c87c6d04b95870af3c8887353db~mv2.png


Когда пароль будет найден и FTP-сервер успешно подключен, выводится сообщение: «Успех! Вы подключились к FTP-серверу. Пароль: <password>».

Возвращайтесь, мои начинающие хакеры, поскольку мы продолжаем развивать наши навыки написания скриптов до уровня профессионального хакера!
 
Назад
Сверху Снизу