Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
3004164hace 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:

$ 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;
$ cd backend
  1. Instale las dependencias;
$ npm install
  1. Cree un directorio para archivos estáticos;
$ 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;

$ head -c 100 /dev/urandom | sha256sum
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;
$ 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;
$ cd frontend
  1. Instale las dependencias;
$ npm install
  1. Cree un archivo .env con la variable VITE_STRIKER_API configurada con la URL completa del servidor C2 configurado anteriormente;
VITE_STRIKER_API=https://c2.striker.local
  1. Construya;
$ 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;

$ 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;

$ 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;

{ "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;

$ 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;
$ 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.

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