Está en la página 1de 16

Trabajo Final

Diplomante: Joel Ariel Arispe Palacios


Modulo: MANTENIMIENTO DEL ACCESO, ESCALAMIENTO DE PRIVILEGIOS Y POSTEXPLOTACIÓN
Docente: Ing. Said Pérez Poppe

1ra Parte - Práctico Final


Establezca una sesión de Meterpreter desde su máquina virtual Parrot a la máquina Metasploitable 3
(Windows Server 208). Para este fin, cree un archivo .exe con su nombre y su apellido (ej. saidperez.com)
con msfvenom y posteriormente ejecute ese archivo de alguna forma desde la máquina objetivo. Una vez
que establezca la sesión de Meterpreter, deberá borrar o mover algún archivo de la máquina
Metasploitable 3 remotamente desde su Parrot.
✓ Para comenzar, nos aseguramos de que ambas maquinas se encuentren en la misma red a través
de un ping corroborando la conectividad.
ParrotOS IP: 10.0.5.4 Metasploiteable IP: 10.0.5.5

✓ Establecemos conexión con el Metasploit con el comando: msfconsole.


✓ Hacemos uso del comando: msfvenom, que llegaría a ser un envenenador del metasploit que nos
permitirá infectar al HOST destino, así mismos asignamos la dirección IP y el puerto del host a
donde se va comunicar el Meterpreter y la extensión del archivo infectado.

✓ Una vez aplicado el comando verificamos que ya tenemos creado el archivo:


Finiquitos.exe

✓ Movemos el archivo a la carpeta de apache que básicamente llegaría a ser un servidor


web y para que este pueda ser descargado por la victima o usuario y activamos el sv.

✓ Hacemos uso del exploit de escucha, multi/handler al Windows de la victima y hacemos


correr el servicio.
✓ Desde el Metasploitable ingresamos vía web a la dirección IP: 10.0.5.4/Finiquitos.exe,
para descargar el archivo infectado.

✓ Una vez el usuario (victima) ingrese al archivo notara que no sucederá nada, sin
embargo, el atacante ya lograría la conexión Meterpreter obteniendo el acceso total al
Host.

✓ Ya para finalizar, eliminaremos el archivo cualquiera en otro directorio, solo para


corroborar que tendríamos el acceso total al Host de la víctima y podríamos realizar
cualquier acción.
✓ Eliminaremos un archivo de Prueba ubicado en el directorio de C:
Users\vagrant\Documents, podemos verificar en la imagen a continuacion que se
removió con éxito dicho archivo.
2da Parte – Practico Final
Desarrollar las pruebas establecidas en la máquina virtual “Web for Pentester” para las vulnerabilidades
SQL Injection. El participante deberá utilizar la guía aportada por el proyecto (accesible en la dirección URL
https://pentesterlab.com/exercises/web_for_pentester/course) para replicar los ataques, y posteriormente
analizar cómo es posible evadir los filtros correspondientes a las vulnerabilidades.

Dirección IP: 10.0.5.8

Vulnerabilidad XSS
✓ Ejemplo 1
En este primer ejemplo se puede inyectar cualquier código JavaScript para comprobar que no es validado
y devuelto en la respuesta.
➢ http://pentesterlab/xss/example2.php?name=hacker<SCript>alert('1')</SCript>
✓ Ejemplo #2
En este segundo ejemplo si inyectamos el Payload anterior veremos que ‘<script>’ y ‘</script’ son
filtrados, pero basta poner una letra de cada tag en mayúsculas para evadir este débil filtro.

➢ http://pentesterlab/xss/example2.php?name=hacker<sCRIpt>alert('100')</sCRIpt>

✓ Ejemplo #3
En el siguiente ejemplo veremos que se ha tomado la precaución de usar el modificador ‘i’ para que el filtro
sea, case-insensitive. Por lo que los tags serán eliminados. Ahora si bien se eliminan los tags que contienen
el ‘script’ podemos aprovechar esto para que el filtro realice el trabajo.

➢ http://pentesterlab/xss/example3.php?name=hacker<scri<script>pt>alert(‘PentesterLabs')</scri<
/script>pt>

✓ Ejemplo #4
En este cuarto ejemplo si utilizamos el Payload del ejemplo anterior nos devolverá solo un error.
Normalmente es debido a que ya no está utilizando un replace, si no que esta vez busca el patrón “script”
y si lo encuentra devuelve el error (Es decir, como una condición If). Pero como no todas las XSS son
explotables mediante ese tag, podemos usar cualquier otro vector para ejecutarlo, por ejemplo.
➢ http://pentesterlab/xss/example4.php?name=onerror<img src=’zzzz’onerror='alert("100")' />

✓ Ejemplo #5
En esta ocasión la palabra filtrada es ‘alert’ así que tenemos que sustituirla por otra función, por ejemplo:
(prompt , Type Here)
➢ http://pentesterlab/xss/example5.php?name=<script>prompt (“Hello Joel Arispe” , “Type
Here”)</script>

✓ Ejemplo #6
Aquí, el código fuente de la página HTML es un poco diferente. Verás que el valor que estás enviando se
repite dentro del código JavaScript. Para obtener su cuadro de alerta, no necesitará inyectar una etiqueta
de script, solo tendrá que completar correctamente el código JavaScript preexistente y agregar su propia
carga útil, luego deberá deshacerse del código después de su punto de inyección comentándolo con algún
código ficticio () para cerrarlo correctamente.
➢ http://pentesterlab/xss/example6.php?name=hacker";alert('100');"

✓ Ejemplo #7
En el ejemplo siete, veremos que se están codificando los caracteres especiales y no podemos usar la
comilla doble (“”). Esto probablemente porque se están empezando a utilizar funciones destinadas a la
protección contra XSS.
➢ http://pentesterlab/xss/example7.php?name=hacker';alert('100');'

✓ Ejemplo #9
Este ejemplo es un XSS basado en DOM. Esta página podría ser completamente estática y aún así ser
vulnerable. El JavaScript existente esta buscando el ancla o anchor # para escribir la URL dentro de la
página. Podemos explotar esto poniendo el Payload XSS dentro de la URL después del anchor.
➢ http://pentesterlab/xss/example9.php# <script>alert('hi')</script>

No Funciono

Vulnerabilidad LDPA
El Protocolo ligero de acceso a directorios (LDAP) se utiliza para almacenar información sobre usuarios,
hosts y muchos otros objetos. La inyección LDAP es un ataque del lado del servidor que podría permitir
que la información sensible sobre los usuarios y los hosts representados en una estructura LDAP sea
revelada, modificada o insertada. Esto se hace mediante la manipulación de los parámetros de entrada
pasados después a las funciones internas de búsqueda, adición y modificación.
Una aplicación web puede utilizar LDAP para permitir que los usuarios se autentiquen o busquen la
información de otros usuarios dentro de una estructura corporativa. El objetivo de los ataques de inyección
LDAP es inyectar meta-caracteres de filtros de búsqueda LDAP en una consulta que será ejecutada por la
aplicación.

Ejemplo #1
En este primer ejemplo, se conecta a un servidor LDAP, utilizando su nombre de usuario y contraseña. En
este caso, el servidor LDAP no le autentica, ya que sus credenciales no son válidas.
Sin embargo, algunos servidores LDAP autorizan NULL Bind: si se envían valores nulos, el servidor LDAP
procederá a enlazar la conexión, y el código PHP pensará que las credenciales son correctas. Para obtener
el con 2 valores nulos, deberá eliminar completamente este parámetro de la consulta.
✓ Ejemplo #2
El patrón más común de inyección LDAP es poder inyectar en un filtro. Aquí, veremos cómo puede usar la
inyección LDAP para omitir una verificación de autenticación.
En este caso añadiremos el carácter que hará que todo lo que venga posteriormente ya no sea tratado, por
lo que el filtro “(&(cn=hacker)(cn=*)))(userPassword=[pass]))” será el Payload válido para este ejercicio.

Vulnerabilidad File Upload


En esta sección, cubriremos cómo usar las funcionalidades de carga de archivos para obtener la
ejecución del código.
En las aplicaciones web (especialmente las que utilizan los sistemas de archivos para determinar
qué código se debe ejecutar), puede obtener la ejecución de código en un servidor, si logra cargar
un archivo con el nombre de archivo correcto (a menudo dependiendo de la extensión).
✓ Ejemplo #1
Normalmente para implementar la subida de archivos bastará un sencillo código con una parte en
HTML para crear una interfaz de usuario que permite al usuario elegir qué archivo cargar, y otra
parte con un script PHP que contiene el código que maneja la solicitud para cargar el archivo
seleccionado.
En el primer ejercicio no hay restricciones en el tipo de archivos permitidos para la subida. Por lo
tanto, un atacante puede cargar un archivo con una shell en PHP (u otro código malicioso) que
puede conducir al control total del servidor.

✓ Ejemplo #2
En el segundo ejercicio sin embargo no podremos subir directamente el archivo php:

• Cambie la extensión a . En otros sistemas, las extensiones como o también pueden funcionar.
Depende de la configuración del servidor web..php3.php4.php5
• use una extensión que Apache no conozca después de la extensión . Como Apache no sabe cómo
manejar la extensión, pasará a la siguiente: y ejecutará el código PHP..blah.php.blah.php
• cargar un archivo .htaccess, permitiendo que PHP ejecute otra extensión (Puede obtener más
información sobre esta técnica en la capacitación de PentesterLab: (From SQL Injection to Shell:
PostgreSQL edition)[https://pentesterlab.com/fromsqlitoshellpg_edition.html]

Vulnerabilidad XML
También conocidos como ataques XXE (XML eXternal Entity), abusan de las denominadas Entidades
externas que usan el parser XML para acceder a un recurso especificado en la URI, por ejemplo, un
fichero en el servidor.

Explotando este tipo de vulnerabilidades es posible realizar una denegación de servicio (incluso a
sistemas remotos), ganar acceso no autorizado a archivos del servidor y escanear e incluso obtener
información de otras máquinas del segmento.

Ejemplo #1
Algunos analizadores XML resolverán entidades externas y permitirán que un usuario que controle el
mensaje XML tenga acceso a los recursos; por ejemplo, para leer un archivo en el sistema. Se puede
declarar la siguiente entidad, por ejemplo:
Deberá envolver esto correctamente, para que funcione correctamente:
➢ <!DOCTYPE test [<!ENTITY xxe SYSTEM "file:///etc/passwd">]><test>&xxe;</test>
A continuación, simplemente puede utilizar la referencia a : (no olvide codificar ) para obtener el resultado
correspondiente insertado en el documento XML durante su análisis.

✓ Ejemplo #2
En este ejemplo, el código utiliza la entrada del usuario, dentro de una expresión XPath. XPath es un
lenguaje de consulta que selecciona nodos de un documento XML. Imagine el documento XML como una
base de datos y XPath como una consulta SQL. Si puede manipular la consulta, podrá recuperar elementos
a los que normalmente no debería tener acceso.
Si inyectamos una sola comilla, podemos ver el siguiente error:

Aquí, el problema es que necesitamos volver a subir en la jerarquía de nodos, para obtener más
información. En XPath, esto se puede hacer usando como parte de la carga útil. Ahora podemos seleccionar
el nodo padre del nodo actual y mostrar todo el nodo secundario usando:
➢ http://pentesterlab/xml/example2.php?name=' or 1=1]%00
3ra Parte – Practico Final
En la siguiente captura de sandbox: https://app.any.run/tasks/5ad87192-7104-4a49-bf74-
6c7f1cd4e097/, Explicar detalladamente qué tipo de malware se ejecutó, cuál fue el archivo que
despertó el malware, qué dirección IP maliciosas puede detectar en el ataque y cuáles fueran las
posibles medidas a tomar para no caer en este ataque.

Resumen a través del SAMBOX – ANY RUN a causa de un Ransomware.


✓ Se ejecuto un Ransomware, dirigido a ordenadores que usan el sistema operativo
Microsoft y que es utilizado para extorsionar dinero a quienes infecta. Una vez que el
malware se introduce en el dispositivo, a través del protocolo server message block (SMB)
encripta la información del ordenador evitando que el usuario pueda acceder a los datos
y pide de un rescate para recuperar su información y datos.

✓ El archivo o ejecutable que despertó el Malware en el host destino era WannaCry con
extensión .exe que llevaba un nombre encriptado para no ser distinguido como un archivo
malicioso, a su vez creo más archivos con el fin de encriptar la información o datos del
dispositivo.
✓ Al ejecutar el .exe se puede detectar que tuvieron conexión a través de 6 direcciones IP
de las cuales 3 eran maliciosas, 2 eran sospechosas y 1 desconocida, cada una con una
procedencia distinta.

✓ Analizando las direcciones IP (virustotal.com) podemos corroborar que efectivamente


eran maliciosas ya que contenían Malware’s
✓ Algunas de las posibles medidas para poder evitar estos ataques hacia un host destino
podrían ser:

1º Bloquear las direcciones IP encontradas.


2º Tener de manera muy prudente activo el Firewall
3º Tener actualizada la base de datos
4º Mantener un análisis programado regularmente con un Software de Antivirus
5º Proteger la Red a través del cifrado de datos como WPA o WPA2.

También podría gustarte