В качестве результата пришлите ответы на вопросы в личном кабинете студента на сайте netology.ru.
Скачайте и установите на виртуальную машину Metasploitable: https://sourceforge.net/projects/metasploitable/ (если вы это не сделали ещё в ДЗ для предыдущего занятия).
Это типовая ОС для экспериментов в области информационно безопасности, с которой следует начать при анализе уязвимостей.
Сегодня нашей целью будет атака по SSH с использованием логина и пароля.
В Metasploit есть соответствующий auxiliary
Вы можете в нём задавать как файл USERPASS
, который содержит пары логин-пароль, так и по отдельности:
USER_FILE
- логины пользователейPASS_FILE
- пароли пользователей
Можете потренироваться на Metasploitable
, но как вы понимаете, это не особо интересно.
Что же нужно сделать? На нашем сервере с Ubuntu мы с вами поднимем SSH сервер, который и будем брутфорсить.
sudo apt update
sudo apt install openssh-server
Удостоверяемся, что он запущен после установки:
systemctl status sshd
Удостоверяемся, что порт 22 открыт (по умолчанию именно он используется для SSH). Как это делать, вы уже знаете:
Далее, нужно создать пользователя, пароль которого вы и будете подбирать:
sudo adduser hackme
Вас попросят дважды ввести пароль (пароль не отображается в целях безопасности).
Введите один из распространённых паролей.
Удостоверьтесь, что вы можете войти с указанным паролем:
su hackme
# вводите пароль
# если не получаете сообщения su: Authentication Failure, то всё ок
# для выхода:
exit
Теперь у вас появился пользователь hackme
, к которому и нужно подобрать пароль с помощью Metasploit (этот пользователь автоматически получает возможность логиниться по SSH, т.к. таковы дефолтные настройки OpenSSH).
sudo service postgresql start
sudo msfdb init
sudo msfconsole
В консоли Metasploit:
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 10.0.0.1
set USERNAME hackme
Дальнейшие настройки (указание пути к файлу с паролями и запуск) выполняете согласно лекции.
В качестве результата пришлите скриншот работы Metasploit, из которого видно подобранный пароль.
Достаточно часто разработчики и даже системные администраторы не "заморачиваются" вопросами безопасности и используют самые простые механизмы для "защиты" данных.
Вот и в этот раз вышло так же. Системные администраторы, долго не думая, выложили для собственного удобства файл с пользователями, их email и паролями на внутренний HTTP-сервер.
Закрыли они это всё Basic аутентификацией (логин и пароль передаются в заголовке Authorization
в формате Basic base64(login:password)
).
Необходимо с помощью THC Hydra подобрать логин и пароль для скачивания файла.
На сервер с Ubuntu скачиваете файл сервера (для удобства мы упаковали всё в один исполняемый файл)
Далее, в каталоге, куда вы скачали файл:
chmod +x ./server-x64.bin
./server-x64.bin
Данная команда запустит сервер на произвольном порту от 9000 до 9999 (на каком - вы не знаете*).
Важно: при каждом запуске порт будет разный!
Примечание*
Конечно же, вы можете узнать это, посмотрев, какие порты в данный момент используются. Но так не совсем интересно.
Открываете порты на firewall'е с 9000 по 9999:
sudo ufw allow 9000:9999/tcp
sudo ufw allow 9000:9999/udp
Что нужно сделать:
- найти открытые порты (nmap)
- найти порт, на котором работает целевой HTTP сервер (можете попробовать определить тип сервиса с помощью nmap)
- с помощью THC Hydra подобрать логин и пароль (файл находятся по пути
http://<ip адрес сервера>:<номер порта>/users.txt
, обязательно посмотрите через WireShark, какие запросы и как шлются)
Когда вы обнаружите целевой порт, то при заходе на него получите:
Теперь, нужно воспользоваться Hydra в формате:
hydra -L logins.txt -P passwords.txt -s <номер порта> -f 10.0.0.1 http-get /users.txt
Где:
- -L путь к файлу с логинами (по одному на строку, по умолчанию - текущий каталог)
- -P путь к файлу с паролями (по одному на строку, по умолчанию - текущий каталог)
- -f остановка после первого найденного совпадения
- http-get - модуль (можете прочитать справку через
hydra -U http-get
)
Подсказка
В качестве логинов достаточно часто используют root
, Root
, admin
, administrator
, Adm
, adm
, Admin
и подобные.
Пришлите логин, пароль для аутентификации, а также файл со списком пользователей в ЛК студента.