Интересная история о битве с Docker Registry от господина @sab0tag3d:



Я часто использую словарь уважаемого Бума (https://github.com/Bo0oM/fuzz.txt) для брута веб-директорий и поиска низковисящих багов.



В этот раз во время внешнего пентеста, я нашел директорию https://example.com:5000/v2/_catalog в которой был примерно следующий список:





{"repositories":["centos.6.10","centos_temp","example.com/jenkins","example.com/ubuntu16.04"]}



Выяснив, что это Docker API, я решил копнуть дальше и просмотреть, что этот может быть, и наткнулся на отличную статью https://www.notsosecure.com/anatomy-of-a-hack-docker-registry/

С помощью утилиты, упомянутой в статье, я скачал образ контейнера jenkins.



Внутри разработчики заботливо приложили sh-скрипт, наверное, для удобства:



$ cat start_point.sh

#! /bin/bash -e

mkdir -p /var/jenkins_home/.ssh

mv /usr/share/jenkins/ref/.ssh/id_rsa /var/jenkins_home/.ssh

chmod 600 /var/jenkins_home/.ssh/id_rsa





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

Но потом до меня дошло, что нужно заглянуть в директорию /usr/share/jenkins/ref/.ssh, (ну кому прийдет в голову класть в эту папку что-то кроме ключей).

Вот примерный список что там нашлось: Дополнительный набор приватных ssh-ключей, а также пароли от ssh к хостам, если вдруг что-то пойдет не так, тестовые пароли: от JIRA, BUGZILLA и кучи сервисов о назначении который я могу только догадываться.



Резюме от автора канала: Мораль этой истории должна быть понятна каждому,  registry и печень надо беречь с молодости.