Обмен технологиями

Используйте Docker для создания среды уязвимости и используйте SSRF Redis для записи открытых ключей Centos и Ubuntu для обеспечения входа в систему без пароля.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Экспериментальная среда

kali: Создание среды Docker-контейнера в Kali. Здесь я в основном использую первый вариант;

В качестве базы данных Redis может записывать данные в память. Мы используем запросы ssrf, чтобы позволить серверу записать свой собственный открытый ключ для экспериментов с входом в систему без пароля;

2. Экспериментальный процесс

Предварительная подготовка и тестирование

Redis сохраняет данные в виде значений ключей. Здесь я использую среду Centos, созданную с помощью Docker;

Используйте следующую команду для входа в контейнер Centos;

docker exex -it 容器的编号 /bin/bash

Поскольку в centos уже есть скрипт для запуска redis-server, нам нужно только включить redis-cli в контейнере;

Проверьте, можно ли его записать нормально. Как показано на рисунке, записанное содержимое или каталог можно изменить.

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

После модификации сохраните его, как показано на картинке, запись прошла успешно!

Проблемы, которые возникают и решаются

Если возникнет ситуация, когда сервер не может подключиться, мы можем использовать ./start.sh для запуска этого скрипта;

Краткое введение в SSRF и начало эксперимента

Формируйте запросы через сервер, используйте протокол Gopher или Time dict для запроса Redis и записывайте файлы.

скрипт генерации суслика

Сгенерированная полезная нагрузка

Итак, мы можем сделать запрос, вставить в него указанный выше контент и нажать «Извлечь».

Возникшие проблемы

Когда я выполнил Fetch в первый раз, я обнаружил, что файл не существует. Это произошло потому, что его собственный открытый ключ не был сгенерирован в среде Centos, что делало невозможным запись. Поэтому для генерации файла необходимо использовать ssh-keygen. открытый ключ в Centos заранее.

результат

Видно, что открытый ключ успешно записан на целевой сервер;

Дальше можно авторизоваться по ssh без пароля. Видно, что вход успешный!

Возникшие проблемы

В среде Dockerfile есть некоторые проблемы, которые не позволяют запустить порт 22 в образе Docker, поэтому файл модифицируется и запускается /usr/sbin/sshd для запуска sshd.

При возникновении вышеупомянутой ошибки при загрузке мы можем просто инициализировать файл, как показано на рисунке ниже;

3. Резюме

Шаги для Centos и Ubuntu почти одинаковы, за исключением того, что из-за механизма защиты Redis возникнут следующие ошибки, из-за которых некоторые атрибуты невозможно будет изменить. Решение состоит в том, чтобы отключить защищенный режим и использовать следующее. команда;

config set protected-mode no

Из-за ограничений версии Redis безопасность 7.2.5 слишком высока, что приведет к сбою входа в систему по ssh без пароля, поэтому я вытащил ее здесь.

Версия 5.0.5

Затем используйте ту же операцию для входа в систему без пароля;