Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Как‑то раз мы проводили разведку по пулу из ~9000 IP-адресов крупной российской IT-компании и нашли заброшенный домен и работающий на нем сервис. Он оказался уязвимым, и вскоре мы смогли захватить веб‑сервер и проникнуть во внутреннюю сеть предприятия. Как это было сделано, я расскажу в этой статье. Pentest Award
Этот текст получил пятое место на премии Pentest Award 2024 в категории «Пробив web». Награждение ежегодно проводит компания Awilix.
Для поиска старых и забытых ресурсов мы использовали технику Passive DNS. Данные мы взяли из VirusTotal: написали небольшой скрипт, который отправлял запросы к API с IP-адресами из нашего пула. Это позволило собрать множество интересных доменов, большинство из которых входили в наш скоуп. Так и нашелся тот самый «забытый» веб‑сервис, который впоследствии оказался уязвимым.
Домен был непростой, что‑то вроде web1.smth.smth.companyname.com
. Там был развернут самописный сервис мониторинга веб‑приложений, на который, судя по логам, последний раз заходили около месяца назад. Доступ к нему мы получили с помощью дефолтных учетных данных (admin:admin
), создали отдельную учетку администратора для дальнейшего тестирования и, конечно же, как настоящие этичные хакеры, оповестили отдел ИБ заказчика об уязвимости.
На следующий день ИБ‑отдел закрыл ресурс, хотя мы просили дать возможность продолжать тестирование. Ребята из отдела ИБ объяснили решение тем, что «там нет ничего интересного».
Однако я опустил один момент: перед тем как сообщать об уязвимости, мы спарсили все учетные данные пользователей (для проектных целей и дальнейшего тестирования), которые хранились в открытом виде прямо в разметке HTML. Естественно, среди них были и учетки администраторов.
Кусочек списка пользователей
Пароль
Полученные учетки мы применили на других ресурсах компании, половина пользователей действительно существовала, но пароли давным‑давно сменены.
Спустя две недели работы над остальным скоупом я параллельно занимался разведкой и работой с вебом. В какой‑то момент я взял наш прошлый хост — *.smth.smth.companyname.com
, закинул на перебор в gobuster и… вуаля! Нашелся тот же самый ресурс, но уже с другим алиасом — пусть он будет называться vulnerable.smth.smth.companyname.com
.
Здесь уже не было дефолтных учетных данных админа, как раньше, поэтому нам и пригодилась учетка администратора из дампа ресурса web1.smth.smth.companyname.com
.
Получаем доступ, ковыряем приложение и находим возможности для самых разных SQL-инъекций. Нам удалось реализовать error-based SQLi, blind (time-based) SQLi, а также мы могли читать локальные файлы с помощью встроенной функции MS SQL — OpenRowset
(она позволяет обращаться к локальным файлам).
Это было вечером, а к поздней ночи я докрутил инъекцию в MS SQL до Out-of-Band.
Полезная нагрузка для эксплуатации OOB
Источник: xakep.ru