Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pentest_teamcity — Пентест TeamCity с использованием Metasploit | Kitploit
Инструменты/GitHubGitHub/kacperszurek/pentest_teamcity
Фреймворки для эксплойтовГенерация полезной нагрузкиЭксплуатация веб-приложенийПост-эксплуатацияТестирование на ПроникновениеRed Teaming
GitHubkacperszurek/pentest_teamcity

pentest_teamcity

Пентест TeamCity с использованием Metasploit

Репозиторий
458138 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Pentest TeamCity using Metasploit

TL;DR: Получение паролей из JetBrains IDE (например, IntelliJ или PyCharm) и использование этих учётных данных на TeamCity Continuous Integration Server для получения сессии meterpreter на сервере и агентах сборки с помощью metasploit от Kacper Szurek.

Модуль Jetbrains.rb

Оболочка на сервере

Оболочка на агентах

Оболочка на агентах Windows

Комментарий JetBrains

Это комментарий от вендора (команда JetBrains TeamCity) от Yegor Yarko:

Большая часть содержания статьи описывает, как злоумышленники могут злоупотребить TeamCity, если им обоснованно предоставлены соответствующие разрешения. Например, пользователь с ролью System Administrator (даёт полный контроль над сервером) может установить вредоносный плагин TeamCity или получить токен для доступа "суперпользователя" к серверу. Также пользователь с ролью Project Administrator может выполнить произвольный код на агенте или извлечь сохранённые пароли доступа к репозиториям. Такое поведение является частью функциональности, предоставляемой TeamCity как продуктом. Эти соображения описаны в соответствующем разделе документации TeamCity.

Описанные проблемы указывают на то, насколько опасным может быть предоставление высоких привилегий злоумышленнику. Администраторам сервера TeamCity следует регулярно проверять разрешения пользователей, чтобы не предоставлять потенциально вредоносным пользователям никаких разрешений, которые они могут использовать во зло; также проверять разрешения гостевого пользователя, если он включён. Другой момент — не оставлять свои терминалы без присмотра, будучи авторизованными с нетривиальными разрешениями.

Однако в статье отмечены две реальные проблемы безопасности: одна связана с публикацией вредоносного артефакта сборки и просмотром его в браузере администратором, а другая — с повышением разрешения на запуск пользовательской сборки до выполнения произвольного кода на агенте TeamCity. Вторая проблема имеет лишь незначительное влияние на большинство установок TeamCity, поскольку те, у кого есть такое разрешение, обычно уже имеют возможность выполнять любой код на агенте.

Тем не менее, мы собираемся решить указанные проблемы в одном из ближайших релизов TeamCity и благодарим вас за то, что обратили на них наше внимание.

Введение

Предположим, вы проводите тестирование на проникновение внутри компании, использующей стек JetBrains. Вы используете metasploit и получаете сессию meterpreter на компьютере разработчика.

Что делать дальше? Есть статья о пентесте TeamCity от Nikhil SamratAshok Mittal за 2015 год.

В этом посте я объединяю несколько методов из Security Notes и BugTrack и реализую их в модуле Metasploit.

Примечание: Я не использую здесь никаких 0-day. Для каждого действия необходимы действительные учётные данные TeamCity. См. Комментарий JetBrains.

Я не несу ответственности за любой ущерб, причинённый этим скриптом. Для безопасности данных используйте set CLEANUP false.

Протестировано на TeamCity 2017.2.1 (build 50732).

Содержание

  • Комментарий JetBrains
  • Установка
  • Получение паролей из JetBrains IDE
    • Модуль metasploit JetBrains
  • Пентест сервера TeamCity
    • Оболочка на сервере
    • Оболочка на агентах сборки
    • Оболочка на агентах сборки Windows
    • Суперпользователь
    • Сохранённые учётные данные
    • Учётная запись администратора с помощью XSS
    • Гостевой пользователь
    • Модуль metasploit TeamCity
  • Устранение неполадок

Установка

Для декодирования базы данных KeePass нам потребуется библиотека Ruby kdbx.

  1. Найдите gem-файл: find / -name "metasploit-framework.gemspec"
  2. Отредактируйте, для Kali Linux это: vim /usr/share/metasploit-framework/metasploit-framework.gemspec
  3. Добавьте: spec.add_runtime_dependency 'kdbx', '0.2.0'
  4. cd /usr/share/metasploit-framework/ && bundle install

Теперь вы можете:

  1. mkdir ~/.msf4/modules/exploits && mkdir ~/.msf4/modules/post
  2. Скопируйте teamcity.rb и serverplugin.zip в ~/.msf4/modules/exploits
  3. Скопируйте jetbrains.rb в ~/.msf4/modules/post
  4. Запустите консоль Metasploit msfconsole
  5. Перезагрузите плагины reload_all

Получение паролей из JetBrains IDE

TeamCity легко интегрируется со всеми IDE JetBrains с помощью плагина.

Окно входа TeamCity Integration

Если используется опция Remember me, пароли сохраняются через IntelliJ Platform Credentials Store API. Исходный код можно найти здесь.

Процедура дешифрования в Windows выглядит так:

Схема паролей

  1. Файл pdb.pw расшифровывается с помощью Windows CryptUnprotectData. Это означает, что только пользователь, зашифровавший данные, может их декодировать.
  2. Blob расшифровывается с помощью AES-128-CBC со статическим паролем. Этот пароль не меняется и одинаков для всех продуктов и установок.
  3. Базу данных KeePass c.kdbx теперь можно расшифровать с помощью Master Password из пункта 2.
  4. Пароли ксорятся с помощью 0xDFAA

По умолчанию Master Password является случайным. Его можно изменить в настройках:

Смена мастер-пароля

Но это ничего не меняет.

Это означает лишь, что база данных KeePass c.kdbx будет зашифрована другим паролем. Локальный пользователь всё равно может легко получить этот пароль из файла pdb.pw.

Модуль metasploit JetBrains

Скачать инструмент