Давно не писал статей и заметок, занимался текущей работой пока меня не поставила в небольшой тупик одна из команд. Обращение было следующим, что из кредов сохраненных в Jenkins необходимо извлечь логин и пароль. Задача возникала из -за раздолбайства , они забыли его внести в Vault систему , а теперь необходимо добавить slave и они не знаю пароль, а новый если они внесут , последуют выводы и взыскания. Прибежали с вопросом , как достать.
Секреты хранятся на мастере в домашней директории Jenkins в файле credentials.xml.
Ищем строчку с тегами password, между ними в зашифрованном виде мы видем набор символов , собственно они нам и нужны.
Попробуем расшифровать. Идем в веб интерфейс Jenkins в скрипты. Можно перейти подставив в URL /script
https://jenkins.your.domain/script
Далее используем небольшую утилиту для расшифровки.
hudson.util.Secret.decrypt
Пример использования, пишем на groovy:
println(hudson.util.Secret.decrypt("{AQAAABAAAAAQAgM/oTRRR4uShQ2Pp1YsnQ3MIL1gQBDJQDRkvvJEJYs=}"))
Вот таким образом нам удалось расшифровать.
Хотелось бы обозначить несколько моментов. Момент первый, в данной статье я не открыл ничего сакрального, такой вопрос гуглится, но хотелось бы сделать сжатую заметку. Второй момент, статья обозначеная, как взлом, может быть немного громко, но в любом случае я думаю статья будет полезной.
#DevOPs #OpenSource #SSL #Java #Jenkins #Взлом