Прогуливаясь по периметру в поисках новых точек входа, нередко натыкаешься на так называемые билд-серверы. Такие штуки нужны для обеспечения непрерывной интеграции — это довольно удобная практика при разработке больших проектов, когда над разными частями работают разные команды.
Если в двух словах, то эти билд-серверы автоматизируют целый ряд рутинных задач (сборка, тестирование кода перед коммитами, инспекция кода и так далее). Попасть в такую систему для пентестера равносильно нехилому такому джекпоту: внутри чаще всего поджидают исходники проектов компании плюс все коммиты, доступы к репозиториям, параметры сборки проектов, списки разработчиков и много чего еще полезного.
Ну все, довольно скучать, переходим к делу. Я хочу рассказать об уязвимости в популярном билд-сервере TeamCity от компании JetBrains. Бaг довольно банален, однако очень опасен последствиями, потому что позволяет получить доступ в систему.
Дело вот в чем. С сервером можно работать через браузер. Авторизация осуществляется с помощью обычной пары логин:пароль. Также присутствует возможность регистрации пользователей. Однако, когда администратор в настройках отключает свободную регистрацию в системе, недоступной становится только сама форма регистрации. А экшен, который непосредственно создает пользователя, эту настройку не проверяет.
Для регистрации пользователя нам нужно отправить POST-запрос на скрипт registerUserSubmit.html
, который содержит email, имя пользователя, публичный ключ и два раза пароль в зашифрованном виде. Ключ уникален для каждого посещения, и им же шифруется пароль перед отправкой. Его можно найти, посмотрев исходный код страницы авторизации например. Ищи скрытый input с именем publicKey.
Чтобы тебе не заморачиваться со всей этой мишурой, я написал небольшой JS-скрипт, который все сделает за тебя. Вот gist. Тебе нужно только скопировать код, открыть страницу авторизации TeamCity, открыть консоль разработчика (для Хрома и Файрфокса — хоткей F12), вставить код и нажать Enter. Если баг присутствует, то тебя зарегистрирует, авторизует и переадресует на домашнюю страницу системы. Дальше начинай шерстить ее на предмет нужной тебе информации. Например, я советую сразу же заглянуть в раздел Projects. С большой долей вероятности там ты найдешь список актуальных проектов. А щелкнув на Artifacts, скорее всего, и их исходники.
Этот баг актуален для всех версий TeamCity вплоть до 9.0.2. На данный момент самая последняя версия 9.1.6, но, как я успел заметить, никто не спешит обновляться. И во время тестов мне попадались такие динозавры, как 7.1. В любом случае, проверить на наличие уязвимости — дело одной минуты.
Такжe хочу упомянуть о том, что часто сервер TeamCity доступен с внешки. Попробуй побрутить поддомены и виртуальные хосты. Чаще всего это tc, ci, teamcity, tcity, ci-tc.
На этом все, удачных аудитов.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…
View Comments
Спасибо. Прояснились для меня некоторые моменты.