Проходим Rickdicously easy CTF
overlamer1Для тех, кто не знает что такое CTF:
CTF (Capture the flag) — это командная игра, главной целью которой является захват «флага» у соперника. Формат Сapture the flag может использоваться и в пейнтболе, и среди ролевиков, и в компьютерных играх. В области компьютерной безопасности тоже есть своё понятие CTF. Командные соревнования по информационной безопасности формата CTF — это как раз то, что стало причиной появления тысяч команд со всего мира.
Есть крутой ресурс для проверки своих навыков в сфере информационной безопасности и пентеста - vulnhub.com
Мы будем проходить эту CTF - https://www.vulnhub.com/entry/rickdiculouslyeasy-1,207/
Автор явно любит мультсериал Rick and Morty.
CTF в vulnhub происходит таким образом:
Ищем на сайте подходящую виртуальную машину, скачиваем и запускаем в VirtualBox или VMware. Не забываем в настройках сети машины выбрать пункт "сетевой мост". Всё, теперь вы можете запускать виртуальную машину и она будет видна из вашей локальной сети, для взлома вашей виртуальной машины можно тоже использовать виртуалку. У меня второй виртуалкой будет дистрибутив Parrot Security, потому что Kali Linux уже надоел.
В процессе прохождения CTF мы должны получать флаги. Они могут быть в любом виде, это что-то вроде очков ну или награды.
При запуске самой виртуалки с ресурса vulnhub мы видим следующее:

Всё, теперь можем приступать к взлому нашей машины. Я буду использовать для этого вторую виртуальную машину с Parrot Security.
Для начала сканируем машину nmap'ом на наличие открытых портов.
nmap -sC -sV 192.168.0.103 -p 0-65535

Мы видим что открыто достаточно много портов. В глаза бросается то, что доступна анонимная авторизация через FTP. Вводим ftp 192.168.0.103, в поле Name пишем Anonymous, а пароль оставляем пустым.

Пишем ls и видим файл FLAG.txt. Поздравляю, мы нашли первый флаг. Для того чтобы посмотреть содержимое файла, мы его скачиваем командой mget FLAG.txt, в файле написано FLAG{Whoa this is unexpected} - 10 Points
Отлично,у нас есть 10 очков. Теперь мы можем перейти в браузере по ip нашей машины и увидеть это

Запускаем утилиту dirb для перебора возможных директорий на сайте.

dirb нашёл файл robots.txt и директорию /passwords/, в ней есть 2 файла. FLAG.txt и passwords.html. Мы нашли наш второй флаг - FLAG{Yeah d- just don't do it.} - 10 Points
В исходном коде страницы passwords.html есть пароль winter, он нам ещё пригодится.

При сканировании утилитой nmap мы можем заметить это

Открытый порт 13337, где находится третий флаг, который даёт нам ещё 10 очков. Теперь нам нужно выполнить команду nc -n 192.168.0.103 60000 чтобы удалённо подключиться к нашей виртуальной машине по порту 60000, мы вводим команду ls и там находится ещё один флаг FLAG{Flip the pickle Morty!} - 10 points
Сейчас мы переходим по ссылке http://192.168.0.103/robots.txt
Не забудьте поменять ip в ссылке на ip вашей виртуальной машины.
В robots.txt есть это
They're Robots Morty! It's ok to shoot them! They're just Robots! /cgi-bin/root_shell.cgi /cgi-bin/tracertool.cgi /cgi-bin/*
Нас интересует файл tracertool.cgi, потому что в файле root_shell.cgi ничего нет.
Эта страница просто пингует ip адрес, который вы впишете

Но тут есть уязвимость. Если вписать ;ls вместо ip адреса, то команда исполнится и покажет список файлов

Нам нужно узнать всех пользователей машины, мы вписываем эту команду ;head -n 1000 /etc/passwd

Мы вводим head -n 1000 потому что если ввести стандартную команду для вывода содержимого из файла мы увидим это:

Помните про пароль winter из файла passwords.html? Теперь мы его используем для подключения по ssh к нашей виртуалке. Мы выяснили какие пользователи есть в системе и мы знаем пароль. Теперь вводим команду ssh Summer@192.168.0.103 -p 22222 и вводим пароль winter. Всё, мы подключились. Командой head -n 1000 FLAG.txt мы получаем ещё один флаг FLAG{Get off the high road Summer!}
Идём в папку /home/Morty/ командой cd /home/Morty/

Из файла Safe_Password.jpg мы получаем пароль командой head -n 1000 Safe_Password.jpg

Теперь нам нужно скачать файл journal.txt.zip на нашу вторую виртуалку, с которой мы взламываем. Делается это командой scp -P 22222 Summer@192.168.0.103:/home/Morty/journal.txt.zip /tmp/
Переходим в папку /tmp/ и пишем unzip journal.txt.zip. У нас попросит пароль, мы вводим пароль, который получили ранее (Meeseek)
Мы распаковали файл journal.txt с флагом

Переходим в директорию /home/RickSanchez/RICKS_SAFE/, где находится файл safe. Скачиваем этот файл командой scp -P 22222 Summer@192.168.0.103:/home/RickSanchez/RICKS_SAFE/safe /tmp/
Для того чтобы получить ещё один флаг нам нужно написать ./safe 131333 (131333 - это пароль из предыдущего флага)
Вот мы и получили предпоследний флаг

Момент с получением пароля для юзера RickSanchez я пропущу, чтобы статья не была слишком длинной, кому это интересно может сам попытаться это сделать. Для этого есть подсказка на скрине выше.
Получив пароль от пользователя RickSanchez мы подключаемся по SSH - ssh RickSanchez@192.168.0.103 -p 22222, вводим пароль. Для получения доступа к юзеру root (у юзера root максимальные права, можно делать с системой что угодно) мы пишем sudo -i и мы таким образом взломали нашу же машину!
материал:XML Entity