Ivanich41 / mctf-uncompleted

Admin task for M*CTF

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mctf-uncompleted

Деплой

Участникам выдать файл key. Описание таска в соответсвии с пунктом ниже, в качестве ip напишите домен. При смене порта также смените его в docker-compose.yml

Описание

Безалаберный сотрдник Иван (он кстати уже уволен) не удосужился доделать свой таск и нам пришлось выпустить его как есть. Мы также изъяли его ключ доступа, но кажется с ним что-то не так.

ssh user@<ip> -p 2022

Writeup

Без ключа подключение не пройдёт, его необходимо указать. connect

При попытке указать ключ, сервер запрашивает у нас фразу доступа connect2

Её можно подбирать руками, но гораздо оптимальнее воспользоваться утилитиой JohnTheReaper и его модулем для расфировки ssh ключей. crack

Получаем следующую пассфразу

loves

С ней мы и заходим на машинку. Посмотри доступные бинарники командой ls /usr/bin/ bins

Среди прочего у нас есть исполняемый SUID-файл doas, который является аналагом sudo. Его конфигурацию можно прочитать по пути /etc/doas.conf. Сделаем это doasconf

Он позволяет запустить crontab -e от пользователя cronuser без пароля. Для того чтобы сделать это вводим:

doas -u cronuser crontab -e 

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

job

Смотрим директорию /tmp и видим вывод команды. Там в том числе указан скрытый файл .flag ls

Проворачиваем то же самое с командой cat /home/cronuser/.flag и получаем флаг catflag

flag

Flag

mctf{cR0n_F1@g_L3aK}

TODO

  • ssh
  • Doas and Cron
  • Flag permissions
  • Garbage cleaner
  • SSH passphrase
  • Tests
  • Writeup

About

Admin task for M*CTF


Languages

Language:Dockerfile 85.3%Language:Shell 14.7%