Kenoby
Основная задача - разведка через SMB, внедрение через эксплуатацию уязвимостей, эскалация прав через бинарники с SUID правами.
Описание задания можно найти на TryHackme
Сканирование
Проведение разведки с nmap на предмет наличия открытых портов:
Обнаружены открытые порты 80, 111, 22, 21, 445, 139, 42729
Сканируем со стандартными скриптами для определения версий сервисов, ПО и прочей информации:
Получаем сведения о версии
ProFTTPD
сервера.
Проводим enumeration SMB с помощью стандартных nse скриптов:
Работа с SMB
Подключаемся к шаре
получаем файл
log.txt
в котором находим информацию о том, что ранее был сгенерирована пара ключей, очевидно для доступа черезssh
.
Кроме того, получена информация оProFTPD
серверве и обNFS
который работает через 111 порт с помощью RPC.
Дополнительное сканирование NFS
Проводим enumeration NFS:
Получаем информацию о том, что /var смонтирована в NFS.
Поиск и эксплуатация уязвимости ProFTPD
В exploit-db находим уязвимость ProFTPD
модуля mod_copy_module
.
Этот модуль позволяет копировать файлы из одной директории в другую на ProFTPD
сервере без авторизации на самом сервере. Осуществляется это с помощью команд SITE CPFR (источник)
и SITE CPTO (назначение)
.
Так как директория /var
расшарена через NFS
, установим значение SITE SPFR
в ~/.ssh/id_rsa
, а SITE CPTO
в /var/id_rsa
.
Далее монтируем /var
с удаленной машины к себе:
Выставляем права chmod 600 /mnt/id_rsa
и подключаемся к системе:
Находим несвойственный бинарник
/usr/bin/menu
С помощью strings
просматриваем текстовое содержимое /usr/bin/menu
находим то, что она вызывает:
Видно, что вышеуказанные бинарники определены в составе
/usr/bin/menu
без абсолютного пути, следовательно мы можем их подменить.
Делать будем через добавление в PATH
нужной директории, куда поместим нужный payload вместо curl
.
/usr/bin/menu
выбираем пункт с curl
-> получаем root shell