Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
rt_redirectors — Роль Ansible для настройки редиректоров для C2 красной команды | Kitploit
Инструменты/GitHubGitHub/tevora-threat/rt_redirectors
Безопасность облачной инфраструктурыСкриптинг и автоматизацияТестирование на ПроникновениеDevSecOpsКомандование и УправлениеRed Teaming
GitHubtevora-threat/rt_redirectors

rt_redirectors

Роль Ansible для настройки редиректоров для C2 красной команды

Репозиторий
3147 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Ansible-роль, позволяющая быстро развернуть редиректор на существующем сервере с proxy-правилами mod_rewrite.

Поддерживает Debian и Ubuntu, протестирована в Digital Ocean и Azure.

См. threat.tevora.com/automating-redirector-deployment-with-ansible — блог, в котором рассказывается о редиректорах, Ansible и глубоком погружении в эту роль.

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

Пример плейбука для экземпляра provision_redirector_example.yml

root@kitploit:~
- hosts: EnigmaticEmu
  gather_facts: False
  user: root
  pre_tasks:
  - name: Install python for Ansible
    raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
    changed_when: False
  - setup: # aka gather_facts 
  tasks: 
  - include_role:
      name: redirectors
    vars:
      le_email: '[email protected]'
      hop_dir: hops/empire_hop
      vhosts: [
        {
          servername: 'fakeamazon.com',
          http_port: 80,
          https_port: 443,
          c2filters: [
            {
              rewritefilter: '^/orders/track/?$',
              host: '123.124.125.126'
            }
          ],
          configs: [ 
            'RewriteRule !\.php$ https://www.amazon.com/%{REQUEST_URI} [L,R=302]'
          ]
        },
 {
          servername: 'fakegoogle.com',
          http_port: 80,
          https_port: 443,
          config_files: [
            "redirectors.txt",
            "apache_tweaks.conf"
          ],
        }
      ] 

Разбор примера:

  • - hosts: EnigmaticEmu Указывает, на каких хостах будет выполняться плейбук. Для корректного выполнения плейбука необходимо использовать файл инвентаря с именем хоста или IP-адресом EnigmaticEmu.

  • gather_facts: False Задача сбора фактов Ansible ломается на новых версиях Ubuntu без установленного Python 2. Мы отключаем сбор фактов, чтобы сначала установить Python 2. Это своего рода начальная загрузка для совместимости.

  • user: root Указывает, под каким пользователем подключаться к удалённому серверу. Ansible выполняет все настройки через SSH. Измените на того пользователя, которого хотите использовать. Если требуется sudo, возможно, нужно добавить become: true и вызвать ansible-playbook с опцией --ask-become-pass.

  • pre_tasks:

    • Эти строки устанавливают Python 2, если его нет, и выполняют сбор фактов. tasks: Теперь мы добрались до главного — задач нашего плейбука!
  • - include_role: Как вы уже догадались, это указывает на включение роли, а следующая строка name: redirectors задаёт нашу роль redirectors.

  • vars: Здесь мы задаём основу конфигурации. Наш сервер содержит три переменные: le_email, hop_dir и vhosts. le_email используется для указания адреса электронной почты для Let's Encrypt; убедитесь, что вы контролируете этот адрес. Помните переменную hop_dir, которую мы использовали в задаче копирования нашей роли? Вот где она определяется! Каталог hop_dir должен находиться в папке ./files/ относительно расположения самого плейбука.

Мы отформатировали эту конфигурацию в основном в JSON (YAML — надмножество JSON), но вы можете отформатировать её как угодно, если она совпадает.

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

Мы создаём один конфигурационный файл на виртуальный хост, потому что Let's Encrypt, а точнее компонент certbot-apache, не поддерживает более одного виртуального хоста в одном конфигурационном файле. По этой причине мы будем развёртывать на сервере несколько конфигурационных файлов.

Запуск плейбука

Чтобы запустить роль, создайте плейбук по образцу, который мы разобрали, и выполните ansible-playbook -i <ваш_файл_хостов> <ваш_плейбук>. Убедитесь, что эта роль находится в каталоге roles в том же пути, что и ваш плейбук, а ваши hop- и/или конфигурационные файлы размещены правильно. Структура ваших каталогов должна выглядеть так:

root@kitploit:~
├── my_playbook.yml
├── files
│   └── empire_hop
│       └── news
│           └── login.php
└── roles
    ├── redirectors
    │   ├── files
    │   ├── handlers
    │   │   └── main.yaml
    │   ├── meta
    │   ├── tasks
    │   │   ├── apache.yml
    │   │   ├── letsencrypt.yml
    │   │   └── main.yml
    │   ├── templates
    │   │   ├── apache_sslvhost.conf.j2
    │   │   └── apache_vhost.conf.j2
    │   └── vars
Скачать инструмент
  • hosts: [...] Наша переменная vhosts — это список словарей конфигурации виртуальных хостов. Это позволяет настроить несколько виртуальных хостов с разными доменами и профилями C2 на одном сервере. Помните, что эта переменная — список, это важно для того, как мы формируем наши конфигурационные файлы и как используем эти переменные в роли redirectors.

  • servername: 'fakeamazon.com' Это имя хоста нашего сервера; у вас должна быть DNS-запись для этого имени, указывающая на IP-адрес сервера.

  • http_port и https_port — довольно очевидны. Выберите порты, на которых будут работать HTTP и HTTPS.

  • Обратите внимание: прежде чем продолжить, у нас есть несколько способов определения правил mod_rewrite в конфигурации. Это в основном связано с экспериментами и планами интегрировать этот плейбук с Python API.

  • c2filters: [...] Список словарей c2filter. Любой запрос, URI которого совпадает с rewritefilter, будет проксировать соединение на host.

  • configs[...] Список строк конфигурации. Каждая строка будет добавлена в файл.

  • config_files[...] имя файла или путь Список имён файлов или путей. Содержимое каждого файла будет добавлено в Apache. Полезно для использования результатов инструментов автоматизации mod_rewrite, таких как отличный инструмент @Inspired-Sec: https://blog.inspired-sec.com/archive/2017/04/17/Mod-Rewrite-Automatic-Setup.html