#7 После атаки. Загружаем файлы на целевой сайт. Пост-эксплуатация.
Здравствуйте, дорогие друзья. Давайте рассмотрим, как загружать файлы на сервер. Это может быть очень полезно, потому что Вы можете закачивать все, что хотите. К примеру, любые php-скрипты. Они могут использоваться для чего угодно. Вы можете использовать их для получения обратного шелла, для выполнения команд на сервере, а также использовать при подключении к базе данных и для просмотра файлов. Вы можете применять их для использования уязвимостей, таких как переполнение буфера и выполнения кода. Возможности безграничны.
Чтобы проверить текущего пользователя в weevely, нужно написать команду «whoami»:
Я нахожусь под пользователем www-data. Текущий веб-сайт запушен под этим пользователем. По сути, я могу делать на этом веб-сайте все что угодно, так как я владею им.
Во множестве случаев, когда Вы получили доступ к веб-сайту, у Вас не будет таких привилегий. Иными словами, Вы не сможете загружать файлы на сервер. Вы можете загружать файлы в директории с правами 777. Это директории, в которые кому угодно можно загружать файл.
Давайте пропишем «ls -la»:
Видим все наши файлы. Как видим, все они принадлежат пользователю «www-data». Это обычные файлы и текущие директории. Исходя из этого делаем вывод того, что я могу загружать файлы куда угодно с текущими правами.
Давайте притворимся, что мы не можем загружать файлы в любое место. Нам нужно найти его в первую очередь. Это место, куда все могут загружать файлы, с наличием прав 777. Как я уже говорил, что начальная буква «d» — означает директорию. Права должны выглядеть как «drwxrwxrwx». При осмотре мы не найдем директории с правами 777. У нас есть интересная директория, под названием «hackable». Откроем ее с помощью команды «cd hackable», после чего откроем содержимое директории при помощи «ls -l»:
Здесь нет ничего интересного, поэтому вернемся обратно, поднявшись на два уровня выше:
Просмотрим содержимое директории:
Смотрите, что у нас есть директория «dav». Она не принадлежит нам, а находится под пользователем «root»:
В эту директорию, исходя из обозначения, можно загружать файлы всем. У нее есть права 777, которые выглядят как «drwxrwxrwt».
Откроем эту директорию с помощью «cd» и выведем содержимое «ls -l»:
Как видим, у нас нет никаких файлов и директорий. Мы можем загрузить наш файл, используя функцию «file_upload -h»:
Синтаксис команды следующий. Сначала пишем функцию «file_upload», затем прописываем метод «=force», для принудительной перезаписи файлов, если он уже существует. Далее нужно указать месторасположение файла на текущем компьютере «lpath», а затем удаленное расположение, если Вы хотите сохранить файл на сервере «rpath».
Я уже предварительно создал файлик, в директории «/root/», который называется «shell.txt», мы попытаемся загрузить его. Команда будет выглядеть как: «file_upload /root/shell.txt ./test-shell-uploaded.txt
»:
И мы видим выражение «True», и это значит, что файл был загружен. Давайте пропишем «ls», и видим, что файл был загружен в текущую директорию:
Теперь мы можем открыть наш веб-браузер, и прописать путь до шелла:
Видим зашифрованный шелл, и он был загружен правильно. Основная мысль такова, что нужно искать директории с правами 777, для дальнейшей эксплуатации.
На этом все. Всем хорошего дня.
Первая часть статьи по пост-эксплуатации.
Вторая часть статьи по пост-эксплуатации.
Третья часть статьи по пост-эксплуатации.
Четвертая часть статьи по пост-эксплуатации.