Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/redcode-labs/neurax
RicognizioneAttacchi alle PasswordGenerazione di PayloadMeccanismi di PersistenzaExploitMovimento LateralePost-ExploitAnalisi MalwareCommand and ControlRed Teaming
GitHubredcode-labs/neurax

neurax

1.0k1012 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
neurax — Un framework per la costruzione di binari auto-diffondenti. | Kitploit

Un framework per la costruzione di binari auto-diffondenti.

Vedi Repository



Neurax



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

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 ;> */

}



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

Trovare nuovi target

La funzione NeuraxScan(func(string)) abilita il rilevamento di host attivi sulla rete locale. Il suo unico argomento è una funzione di callback che viene chiamata in background per ogni host attivo. Un host è considerato attivo quando ha almeno 1 porta aperta, non è già infetto e soddisfa le condizioni specificate in N.

NeuraxScan() viene eseguito come ciclo infinito - scansiona l'intera sottorete specificata dalla voce di configurazione .Cidr e quando ogni host è stato scansionato, la funzione dorme per un intervallo specificato in .ScanInterval

Infezione dei dischi

Il binario di Neurax non deve copiarsi utilizzando mezzi wireless. La funzione NeuraxDisks() copia il binario corrente (con un nome non sospetto) su tutti i drive logici trovati. Il binario copiato non viene eseguito, ma risiede semplicemente nella sua destinazione in attesa di essere eseguito. NeuraxDisks() restituisce un error se non è possibile ottenere l'elenco dei dischi o la copia verso qualsiasi destinazione è impossibile.

Un'altra funzione, NeuraxZIP(num_files int) err permette di creare un archivio .zip con nome casuale contenente il binario corrente. Viene salvato nella directory corrente e contiene fino a num_files file casuali.

NeuraxZIPSelf() semplicemente comprime il binario corrente, creando un archivio con lo stesso nome.

Connessioni inverse

È possibile stabilire una reverse shell interattiva con NeuraxReverse(). Riceverà comandi dal nome host specificato in .ReverseListener nella forma "<host>:<port>". Il protocollo utilizzato è definito in .ReverseProto Se NeuraxOpenComm() è stato avviato prima di chiamare questa funzione, ogni comando si comporterà come descritto nella sezione precedente. Se non lo è stato, i comandi verranno eseguiti localmente.

Nota: questa funzione dovrebbe essere eseguita anche come goroutine per evitare il blocco causato dal ciclo infinito utilizzato per la ricezione.

Pulizia

Ogni volta che un nodo riceve il comando "purge", lo reinvia a tutti gli altri nodi, si rimuove dall'host e termina. Questo comportamento può essere avviato anche utilizzando NeuraxPurge() eseguito da qualche parte nel codice sorgente.

Creazione della wordlist

Se il vettore di diffusione scelto si basa su una qualche forma di bruteforce, è bene avere una wordlist adeguata preparata. Memorizzare le parole in un file di testo sul lato client non è molto efficace, quindi puoi mutare una wordlist di base usando NeuraxWordlist(...words) []string. Per permutare un insieme di parole date, usa NeuraxWordlistPermute(..words) []string

Impostazione del time-to-live

Se vuoi che il tuo binario si rimuova dopo un determinato tempo, usa NeuraxSetTTL() all'inizio del tuo codice. Questa funzione dovrebbe essere avviata come goroutine. Ad esempio:

go NeuraxSetTTL("2m")

farà sì che il binario esegua NeuraxPurgeSelf() dopo 2 minuti dall'esecuzione iniziale.

Utilizzo di più stager contemporaneamente

Se desideri concatenare tutti gli stager disponibili per una determinata piattaforma, imposta .Stager su "chain".

Spostamento del binario rilasciato

Se hai bisogno di copiare il binario dopo l'esecuzione iniziale, usa NeuraxMigrate(path string). Copierà il binario in path, rimuoverà il binario corrente ed eseguirà quello appena migrato.

Supporta questo strumento

Se ti piace questo progetto e vuoi vederlo crescere, considera di fare una piccola donazione :>

>>>>> DONATE <<<<<

Licenza

Questo software è sotto licenza MIT

Scarica lo strumento
NomeDescrizioneValore predefinito
Nrx.Config.StagerNome dello stager di comandi da utilizzarerandom, platform-compatible
Nrx.Config.StagerSudoSe true, gli stager di comandi Linux vengono eseguiti con privilegi elevatifalse
Nrx.Config.StagerRetryNumero di volte per ri-eseguire lo stager di comandi0
Nrx.Config.StagerRemoveDelayViene applicata un'istruzione di sleep prima di rimuovere il binario scaricatotrue
Nrx.Config.PortPorta su cui servire6741
Nrx.Config.PlatformPiattaforma di destinazionedetected automatically
Nrx.Config.PathIl percorso in cui il binario viene salvato sull'host.
Nrx.Config.FileNameNome con cui il binario scaricato deve essere servito e poi salvatorandom
Nrx.Config.Base64Codifica il binario trasferito in base64false
Nrx.Config.CommPortPorta utilizzata dai binari per comunicare tra loro7777
Nrx.Config.CommProtoProtocollo per la comunicazione tra nodi"udp"
Nrx.Config.ReverseListenerContiene "<host>:<port>" dell'handler di reverse shell remotonot specified
Nrx.Config.ReverseProtoProtocollo da utilizzare per la connessione inversa"udp"
Nrx.Config.ScanRequiredPortNeuraxScan() considera l'host attivo solo quando ha una porta specifica apertanone
Nrx.Config.ScanPassiveNeuraxScan() rileva gli host utilizzando il monitoraggio passivo del traffico ARPfalse
Nrx.Config.ScanPassiveTimeoutNeuraxScan() monitora il livello ARP per questo numero di secondi50 seconds
Nrx.Config.ScanPassiveIfaceInterfaccia da utilizzare durante la scansione passivadefault
Nrx.Config.ScanActiveTimeoutNeuraxScan() imposta questo valore come timeout per la porta scansionata in ogni thread2 seconds
Nrx.Config.ScanPassiveAllNeuraxScan() cattura i pacchetti su tutti i dispositivi trovatifalse
Nrx.Config.ScanPassiveNoArpLa scansione passiva non imposta un filtro di cattura ARP rigorosofalse
Nrx.Config.ScanFirstUna slice contenente gli indirizzi IP da scansionare per primi[]string{}
Nrx.Config.ScanFirstOnlyNeuraxScan() scansiona solo gli host specificati in .ScanFirstfalse
Nrx.Config.ScanArpCacheNeuraxScan() scansiona prima gli host trovati nella cache ARP locale. Funziona solo con scansione attivafalse
Nrx.Config.ScanCidrNeuraxScan() scansiona questo CIDRlocal IP + "\24"
Nrx.Config.ScanActiveThreadsNumero di thread da utilizzare per NeuraxScan()10
Nrx.Config.ScanFullRangeNeuraxScan() scansiona tutte le porte dell'host target per determinare se è attivofrom 19 to 300
Nrx.Config.ScanIntervalIntervallo di tempo per dormire prima di scansionare nuovamente l'intera sottorete"2m"
Nrx.Config.ScanHostIntervalIntervallo di tempo per dormire prima di scansionare l'host successivo in modalità attiva"none"
Nrx.Config.ScanGatewayFirstIl gateway è il primo host scansionato quando viene utilizzata la scansione attivafalse
Nrx.Config.VerboseSe true, tutti i messaggi di errore vengono stampati su STDOUTfalse
Nrx.Config.RemoveQuando si verificano errori, il binario si rimuove dall'hostfalse
Nrx.Config.PreventReexecSe true, quando un comando corrisponde a quelli già ricevuti in precedenza, non viene eseguitotrue
Nrx.Config.WordlistExpandNeuraxWordlist() esegue trasformazioni non standard sulle parole in inputfalse
Nrx.Config.WordlistCommonAnteponi le 20 password più comuni alla wordlistfalse
Nrx.Config.WordlistCommonNumNumero di password comuni da utilizzareall
Nrx.Config.WordlistCommonCountriesUna map[string]int che contiene i codici paese e il numero di password da utilizzaremap[string]int
Nrx.Config.WordlistMutatorsMutatori da utilizzare quando è specificato .WordlistExpand{"single_upper", "cyryllic", "encapsule"}
Nrx.Config.WordlistPermuteNumLunghezza massima della permutazione generata da NeuraxWordlistPermute()2
Nrx.Config.WordlistPermuteSeparatorUn carattere separatore da utilizzare per le permutazioni"-"
Nrx.Config.WordlistShuffleMischia la wordlist generata prima di restituirlafalse
Nrx.Config.AllocNumQuesta voce definisce quante volte NeuraxAlloc() alloca memoria casuale5
Nrx.Config.BlacklistSlice che contiene gli indirizzi IP esclusi da qualsiasi tipo di scansione[]string{}
Nrx.Config.FastHTTPLa richiesta HTTP in IsHostInfected() viene eseguita utilizzando la libreria fasthttpfalse
Nrx.Config.DebugAbilita i messaggi di debugfalse
Nrx.Config.NoInfectCheckDisabilita il controllo se l'host è già infettotrue