Исходная информация: даны исходники таска и ссылка.
Таск был решён уже после завершения CTF.
Давайте посмотрим, что дано.
Видим, что дано не всё. Почему то нет докеров. Ну ладно.
Посмотрим на main.py
Нет ничего интересного. Посмотрим на calc.py
Так. Видим что вызыватся calc.sh. Выглядит как RCE. Посмотрим на calc.sh.
Используються арифметические вырожения. Это грустно так как в них нельзя просто взять и отправить например ls. Но посмомотрев интернет наткнулись на следующую статью. И там сказанно, что если мы можем выполнить произвольную команду следующим образом:
a[$(ls)]
Чтоже. Давайте обновим calc.sh, чтобы можно было не париться и просто выполнять команды.
Так. Вот мы и внутри с более простым интерфейсом для RCE. Что нам это даёт? Ну мы можем смотреть всё что есть на системе но пролазив по системе несколько часом мы ничего не нашли. Ну чтож. Как потом выяснилось флаг на другой ВМ в сети докера… Ладно. Давайте узнаем что у нас по соседям. Для начала скачаем nmap.
Потом узнали про инструмент deepce который собирает информацию о докере, в котором выполняется. Скачаем его на вм и запустим.