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