Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
rt_redirectors — Rol de Ansible para configurar redireccionadores para C2 de red team. | Kitploit
Herramientas/GitHubGitHub/tevora-threat/rt_redirectors
Seguridad de Infraestructura en la NubeScripting y AutomatizaciónPruebas de PenetraciónDevSecOpsComando y ControlRed Teaming
GitHubtevora-threat/rt_redirectors

rt_redirectors

Rol de Ansible para configurar redireccionadores para C2 de red team.

Ver Repositorio
3144hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Rol de Ansible que permite desplegar rápidamente un redirector en un servidor existente con reglas de proxy mod_rewrite,

Compatible con Debian y Ubuntu, probado en Digital ocean y Azure

Consulta threat.tevora.com/automating-redirector-deployment-with-ansible para un blog que recorre los redirectors, Ansible y un análisis en profundidad de este rol

Para comenzar, clona este repositorio, instala Ansible y coloca este repositorio en tu carpeta de roles. Consulta el siguiente playbook de ejemplo para ver un ejemplo de cómo construir la configuración de tu instancia de redirector

Ejemplo de playbook de instancia 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"
          ],
        }
      ] 

Desglose del ejemplo:

  • - hosts: EnigmaticEmu Esto especifica los hosts en los que se ejecutará el playbook. Para que este playbook se ejecute correctamente, se debe usar un archivo de inventario con el hostname o la IP de EnigmaticEmu definidos.

  • gather_facts: False La tarea de gather facts de Ansible falla en versiones más recientes de Ubuntu sin Python 2 instalado. desactivamos gather facts, así que nos aseguramos de instalar Python 2 primero. Esto es solo una especie de arranque de compatibilidad.

  • user: root esto especifica con qué usuario iniciar sesión en el servidor remoto; Ansible realiza todas sus configuraciones a través de SSH. Cambia esto al usuario que quieras usar. *si necesitas usar sudo, puede que tengas que añadir become: true y ejecutar ansible-playbook con --ask-become-pass.

  • pre_tasks:

    • estas líneas instalan Python 2 si no está presente y ejecutan gather facts. tasks: Ahora hemos llegado a la parte buena, ¡las tareas de nuestro playbook!
  • - include_role: como puedes imaginar, esto especifica un rol a incluir, y la siguiente línea name: redirectors especifica incluir nuestro rol redirectors.

  • vars: aquí es donde hacemos el trabajo pesado de nuestra configuración. Nuestro servidor contiene tres variables: le_email, hop_dir y vhosts. le_email se usa para especificar la dirección de correo que utilizamos para lets_encrypt; asegúrate de usar una que controles. ¿Recuerdas el hop_dir que usamos en la tarea de copia de nuestro rol? ¡Aquí es donde se define! El hop_dir debe ubicarse en ./files/ relativo a la ubicación del propio playbook.

  • hosts: [...] nuestra variable vhosts es una lista de diccionarios de configuración de vhost. Esto nos permite configurar múltiples vhosts con diferentes dominios y perfiles C2 por servidor. Recuerda que esta variable es una lista, ya que será importante en cómo generamos las plantillas de nuestros archivos de configuración y en otras formas en las que usamos estas variables en nuestro rol redirectors.

  • servername: 'fakeamazon.com' este es el hostname de nuestro servidor, y DEBES tener un registro DNS para este hostname que apunte a la IP del servidor.

  • http_port y https_port son bastante autoexplicativos. Elige en qué puertos escucharán http y https

  • observa que antes de continuar tenemos múltiples formas de definir reglas de mod_rewrite en la configuración. Esto se debe en gran parte a la experimentación y a los planes para integrar este playbook con una API de Python

  • c2filters: [...] una lista de diccionarios c2filter Cualquier solicitud cuya URI coincida con rewritefilter hará proxy de la conexión a host

  • configs[...] una lista de cadenas de configuración Cada cadena se añadirá al archivo.

  • config_files[...] nombre de archivo o ruta lista de nombres de archivo o rutas. El contenido de cada archivo se añadirá a Apache útil para aprovechar la salida de herramientas de automatización de mod_rewrite, como la increíble herramienta de @Inspired-Secs: https://blog.inspired-sec.com/archive/2017/04/17/Mod-Rewrite-Automatic-Setup.html

Formateamos esta configuración mayormente en JSON (YAML es un superconjunto de JSON), pero puedes formatearla como quieras siempre que coincida.

Observa en la configuración cómo hay múltiples vhosts, y cada uno puede usar uno o más métodos para especificar cómo se inyecta en las plantillas de configuración.

Creamos un archivo de configuración por vhost porque Letsencrypt, específicamente el componente certbot-apache, no soporta más de un vhost por archivo de configuración. Debido a esto, aprovisionaremos múltiples archivos de configuración al servidor.

Ejecutar el Playbook

Para ejecutar el rol, crea tu playbook siguiendo el ejemplo que hemos visto y ejecuta ansible-playbook -i <your_hosts_file> <your_playbook>. Asegúrate de que este rol esté en el directorio de roles en la misma ruta que tu playbook, y de que tus archivos hop y/o de configuración estén colocados correctamente. La estructura de tu directorio debería verse así:

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
Descargar herramienta