Решение CTF. Silky-CTF_0x01.
Здравствуйте, дорогие друзья. Сегодня будем решать CTF от Silky. Это виртуальная машина, которую можно найти на VulnHub-e. Ссылка для скачивания: https://www.vulnhub.com/entry/silky-ctf-0x01,306/#
Далее нужно сверить контрольную сумму файла. Я воспользовался распространенной утилитой HashTab для сверки. Скачать можно здесь: https://hashtab.ru/ Подойдет для windows и mac os. В линуксе можно сверить в терминале.
Сверка прошла успешно:
Далее можно спокойно устанавливать виртуальную машину в Virtualbox или VMware. У меня стоит последняя вышеописанная среда виртуализации.
В данной виртуальной машине присутствует немецкий язык, и, видимо, разработчик немец. Но это не является препятствием для нас.
Для начала установим машину в среду виртуализации. Это двойной щелчок мыши, и установка начнется автоматически.
Окно приветствия выглядит вот так:
Разумеется, пароля мы не знаем.
Наша задача будет заключаться в том, чтобы взломать сервер, и повысить права до рут-пользователя.
Для начала нам нужно узнать ip-адрес машины, которая находится в нашей локальной сети. Это делается с помощью утилиты «netdiscover», и после некоторого времени мы получаем результат работы программы:
Выделенный айпи-адрес – это нужный нам ip.
Далее нам нужно просканировать данный айпи, с помощью инструмента «nmap»:
Видим два открытых порта – это 22 ssh, и 80 http.
Откроем в браузере на Kali Linux айпи-адрес, и мы видим, что сервер работает:
Сразу просмотрим файл «robots.txt»:
Видим подсказку, а именно, нужно перейти к файлу «/notes.txt»:
Снова подсказка, но на немецком языке. Идем в «google translate», и переводим:
Снова подсказка по подбору пароля. Принимаем это к сведению, и продолжаем исследовать страницу сервера:
Щелкаем на файл скрипта в заголовке страницы:
Видим комментарий. Я догадываюсь, что это часть пароля, и мне нужно узнать или подобрать оставшиеся два символа. Для этого воспользуемся инструментом «crunch», и команда будет выглядеть как: «crunch 7 7 –t s1lKy^% >> pass.txt»:
Проверим содержимое созданного файла с помощью команды «cat»:
Далее нам нужно взломать учетную запись, с помощью инструмента «Hydra». Логин нам известен, осталось только подобрать пароль. Команда для взлома будет выглядеть как: «hydra –l silky –P pass.txt 192.168.119.138 ssh»:
Отлично, пароль мы узнали.
Теперь нам нужно подключиться по ssh к серверу. Это команда: «ssh silky@192.168.119.138»:
Проверим пользователя с помощью id:
Это не рут-пользователь, а обычный юзер.
Далее воспользуемся командой «find», для поиска директорий. Команда будет выглядеть как: «find / -perm –u=s –type f 2>/dev/null»:
Кому непонятна данная команда, читайте мануал, который выводится в консоли как: «find —help».
После беглого осмотра выведенных директорий, нас будет интересовать директория «/usr/bin/sky»:
Попробуем вывести строки данной директории, с помощью команды «strings»:
Перейдем в директорию «/tmp/», и создадим файл «whoami» с правами 777, после чего воспользуемся командой «id»:
Перейдем в директорию «root», и видим текстовый файл с искомым флагом:
На этом все. Всем хорошего дня!
Уважаемый автор, можно пояснения по последним действиям.
«Перейдем в директорию «/tmp/», и создадим файл «whoami» с правами 777, после чего воспользуемся командой «id»:», почему оболочка bash таким образом выполняет переменную, которую мы ранее экспортировали.
Объясните или это только копипаст из другог прохождения?;-(
С уважением!
можете пж рассказать по подробленное про предпоследние два шага?