Introducción al Pivoting
TAG -> Artículos
I. CAPÍTULO PRIMERO: PLANTEAMIENTO DEL PROBLEMA
1.1 Antecedentes
En el campo de la ciberseguridad, los laboratorios prácticos son esenciales para el aprendizaje y desarrollo de habilidades técnicas avanzadas. Tradicionalmente, las opciones más utilizadas incluyen plataformas en línea como Hack The Box (HTB) o TryHackMe, que ofrecen escenarios preconfigurados pero con limitaciones en cuanto a personalización. Por otro lado, el uso de máquinas virtuales proporciona mayor flexibilidad, pero su alta demanda de recursos las convierte en una opción poco accesible para usuarios con hardware limitado.
El pivoting, una técnica avanzada utilizada en pruebas de penetración para acceder a redes internas restringidas a través de un punto intermedio comprometido, requiere entornos configurables y controlados. Docker, con su capacidad de contenedorización y gestión avanzada de redes, presenta una alternativa eficiente y ligera para diseñar laboratorios personalizados que permitan la práctica de estas técnicas sin las limitaciones de hardware o la falta de control en plataformas en línea.
1.2 Definición del Problema
Existen pocas soluciones accesibles y ligeras para implementar laboratorios de hacking enfocados en técnicas de pivoting. Las máquinas virtuales suelen ser pesadas y poco eficientes para este propósito, mientras que las plataformas en línea limitan la personalización y el control. Además, no se cuenta con una metodología clara para gestionar de manera ordenada las sesiones prácticas, lo que resulta en entornos desorganizados y una dependencia excesiva de herramientas automatizadas como Metasploit, que pueden opacar el aprendizaje y la comprensión profunda de los procesos.
1.3 Preguntas de Investigación
¿Cómo puede Docker ser utilizado para diseñar laboratorios ligeros y configurables que permitan la práctica de técnicas de pivoting?
¿Cuáles son las ventajas y limitaciones de utilizar Docker en comparación con máquinas virtuales o plataformas en línea para este propósito?
¿Qué metodologías pueden implementarse para mantener un entorno de práctica ordenado y eficiente durante la ejecución de laboratorios de pivoting?
1.4 Objetivos
En este apartado se establecen los propósitos principales y secundarios que guían el desarrollo de esta investigación. Los objetivos buscan abordar la implementación de laboratorios ligeros y configurables en Docker, enfocados en la práctica de técnicas de pivoting, así como en el diseño de una metodología eficiente para llevar a cabo estas actividades. A través del análisis de herramientas, tecnologías y métodos, se pretende ofrecer una solución innovadora que combine flexibilidad, control y rendimiento en el ámbito de la ciberseguridad.
1.4.1 Objetivo General
Implementar laboratorios ligeros y configurables en Docker para la práctica de técnicas de pivoting, desarrollando una metodología que permita un control eficiente durante las sesiones.
1.4.2 Objetivos Específicos
Analizar las capacidades de Docker para la creación de laboratorios prácticos en ciberseguridad, con énfasis en el uso de técnicas avanzadas de segmentación de redes.
Diseñar un laboratorio en Docker que permita practicar técnicas de pivoting de manera estructurada y eficiente.
Establecer una metodología que facilite el orden y el control durante las prácticas, integrando herramientas como
pwncat-cs
,chisel
ysocat
.Comparar el rendimiento y la eficiencia de los laboratorios en Docker frente a otras alternativas como máquinas virtuales o plataformas en línea.
1.5 Metodología
La investigación adoptará un enfoque experimental y práctico, que incluye las siguientes etapas:
Revisión bibliográfica: Se investigará la documentación técnica de Docker, herramientas relacionadas y técnicas de pivoting, para comprender sus características y limitaciones.
Diseño del laboratorio: Se configurará un entorno práctico en Docker que permita la segmentación de redes y el uso de herramientas manuales para pivoting.
Implementación y pruebas: Se probará el laboratorio en diferentes escenarios para evaluar su funcionalidad, rendimiento y capacidad de personalización.
Desarrollo de la metodología: Se definirá una guía clara y estructurada para mantener el orden y el control durante las prácticas, con ejemplos prácticos de las herramientas empleadas.
Comparación y análisis: Se evaluarán las ventajas y desventajas del laboratorio en Docker frente a las máquinas virtuales y plataformas en línea
Documentación y resultados: Se elaborará un informe detallado con los hallazgos, incluyendo recomendaciones y conclusiones
II. CAPÍTULO SEGUNDO: MARCO TEÓRICO
Introducción
En este capítulo se describen los conceptos fundamentales relacionados con la implementación de laboratorios de pivoting en Docker. Se explorarán términos esenciales, herramientas empleadas y la relevancia de las técnicas de segmentación de red en ciberseguridad. El marco teórico se complementará con gráficos, esquemas y tablas para ilustrar los conceptos y facilitar su comprensión.
Conceptos Clave
En este apartado se presentan las nociones fundamentales necesarias para comprender los aspectos técnicos y prácticos de esta tesis. Estos conceptos establecen el marco teórico sobre el cual se basa el desarrollo del proyecto, permitiendo contextualizar las herramientas, metodologías y tecnologías utilizadas. Se abordan temas relacionados con pivoting, Docker, segmentación de red, y herramientas complementarias, los cuales son esenciales para la creación de laboratorios configurables y ligeros en ciberseguridad.
1. Pivoting
Definición: Técnica utilizada en pruebas de penetración que permite a un atacante usar un sistema comprometido como puente para acceder a otras máquinas dentro de una red interna.
Tipos de pivoting:
Port Forwarding (Reenvío de Puertos): Redirige el tráfico desde una máquina hacia otra.
SOCKS Proxy: Establece un proxy que permite acceso a servicios internos.
2. Docker y su Aplicación en Ciberseguridad
Características Principales:
Contenedorización ligera, reutilización del kernel de Linux, y capacidad de segmentación de red avanzada.
Ventajas sobre las máquinas virtuales: menor consumo de recursos y mayor rapidez en la configuración.
Capacidades en Ciberseguridad:
Configuración de redes aisladas.
Simulación de escenarios de prueba con múltiples máquinas.
Uso para crear laboratorios dinámicos.
3. Segmentación de Red en Docker
Definición: División de redes en subredes aisladas para controlar el flujo de tráfico entre contenedores.
Importancia en el Pivoting: Simula redes corporativas, permite pruebas avanzadas de accesos y rutas de comunicación ademas de que es fácil de implementar en cualquier equipo con bajos recursos.
Técnicas:
Creación de redes Docker (docker network create).
Asignación de IP estáticas.
Uso de bridges y configuración de rutas.
4. Herramientas Complementarias
pwncat-cs
: Herramienta para manejar conexiones remotas con funcionalidades para una mejor metodología en entornos de pivoting.proxychains
: Herramienta para enrutar el tráfico de aplicaciones a través de proxies como SOCKS4, SOCKS5 y HTTP.chisel
: Utilidad para establecer túneles basados en TCP/UDP.socat
: Herramienta versátil para crear proxies y túneles manualmente.
Estructura del Laboratorio en Docker
En esta sección se detalla cómo se organiza el laboratorio práctico en Docker para simular escenarios realistas de ciberseguridad. Se describen los componentes esenciales, las configuraciones necesarias y los pasos específicos para establecer la segmentación de red y permitir la práctica de técnicas de pivoting. Este diseño busca reflejar condiciones cercanas a un entorno corporativo, con redes aisladas y servicios internos.
1. Objetivo del Laboratorio
Simular un entorno realista donde un atacante comprometa una máquina inicial y use pivoting para acceder a otras máquinas en redes internas aisladas.
2. Componentes del Laboratorio
Los elementos que conforman el laboratorio han sido diseñados para reproducir escenarios representativos en un entorno controlado. A continuación, se detallan las características de cada componente:
Máquina inicial comprometida:
Contenedor con un servicio vulnerable, como una aplicación web.
Ejemplo: Un servidor Apache con un exploit conocido.
Red intermedia:
Segmento de red que conecta la máquina inicial con una segunda red interna. Configuración: Subred aislada con reglas de acceso específicas.
Máquina objetivo:
Contenedor que simula un servidor interno.
Ejemplo: Un servidor de base de datos o un sistema de archivos compartido.
3. Pasos para Configuración de Segmentación de Red en Docker
Crear redes personalizadas para cada segmento.
Iniciar contenedores asignados a cada red.
Configurar rutas manualmente entre redes
4. Representación Gráfica de la Segmentación de Red:
5. Metodología usada para pivoting
Estos son algunos pasos que se llevaran a cabo para llegar a la maquina objetivo:
Preparación del entorno: Configurar una máquina atacante con herramientas como
chisel
,socat
, ypwncat-cs
.Configurar las víctimas con restricciones de red, simulando escenarios reales.
Transferencia de herramientas a la víctima: Una vez que se compromete una máquina víctima, se necesita transferir herramientas para el pivoting.
Levantar un servidor HTTP en el atacante.
Descargar el binario desde la víctima.
Establecer túneles para pivoting:
Usando
Chisel
: Configurar un túnel de red desde la víctima hacia el atacante.Usando
Socat
: Redirigir tráfico remoto hacia el sistema local.
Acceso a sistemas en redes privadas: Ahora, desde el atacante, podemos interactuar con los servicios privados a través del túnel.
Automatización con pwncat-cs:
Establecer una shell interactiva con capacidades de pivoting:
Usar
pwncat
para enumerar redes y establecer nuevas conexiones.
III CAPÍTULO TERCERO: DESARROLLO
Pasos para resolver el laboratorio
Antes de empezar podemos hacer un script que automatice tanto la creación y borrado del laboratorio, podríamos usar bash para este trabajo, la siguiente imagen muestra la salida del script al ser ejecutado, necesita un comando a ejecutar que en este caso es start y una imagen linux de docker existente en el sistema:
Script de Bash
Cuando estamos en un entorno real haciendo un pentesting, el objetivo es lograr obtener acceso al sistema mediante un RCE (ejecución remota de comandos), la idea es encontrar una vulnerabilidad en el sistema e inyectar un comando que nos envíe una reverse shell, pero como este es un laboratorio de pivoting, exploremos vulnerabilidades básicas, lo primero que are es identificar el objetivo, el cual el script nos proporciona la IP -> 10.10.10.2
, hagamos un ping
para verificar conectividad con la maquina1:
Resultado
Vemos que tenemos conexión y que es una maquina Linux por su ttl
de 64, vallamos al grano, usemos nmap
para ver puertos abiertos y posibles vulnerabilidades:
Resultado
nmap
nos reporta un solo puerto abierto, el 8080 y nos dice que es una pagina web, esta montado con PHP 8.2.26
y al parecer se desplegó desde terminal, tal vez usando la opción -S
, tiene como titulo Maquina 1, vallamos a la web a verla:
Pues nos invita a subir un archivo al servidor, al parecer cualquier tipo de archivo, subamos un archivo php
que nos devuelva una reverse shell, usaremos el siguiente código malicioso:
rshell.php
Cuando subimos el archivo podemos ver lo siguiente:
Si verificamos mediante la URL si es verdad, ejemplo:
Nos devuelve un error 404
:
Hagamos un poco de Fuzzing a ver que encontramos, podemos buscar por archivos y directorios usando en este caso la herramienta feroxbuster
:
Resultado
Podemos ver un archivo en el servidor llamado info.txt
que dice lo siguiente:
Esto nos da una pista de que el archivo si se guarda en una carpeta pero no nos dice el nombre, podemos usar FuFF
para encontrar dicha carpeta de la siguiente manera:
Resultado
Efectivamente, el archivo rshell.php
se encuentra dentro de la carpeta archivos
, sabiendo esto, nos ponemos en escucha por el puerto 1234 con pwncat-cs:
Luego ingresamos a la URL:
Y listo, ya hemos vulnerado la maquina1, ahora empieza lo bueno, primero que todo cuando nos entablamos la Reverse Shell usando pwncat-cs, como tal nos da una CLI propia, no una Bash de la maquina victima, esto se debe a que pwncat-cs tiene muchos módulos que nos ayudan a enumerar el equipo victima, veamos los siguientes 2 módulos:
Resultado
Vemos información muy interesantes, estos 2 módulos usan comandos como:
Entre otros para determinar las redes e IP asignadas al equipo victima, esto con el fin de saber si existe redes a las cuales no tenemos acceso y este es uno de esos caso, como podemos ver en la salida de los módulos, muestran que la victima tiene 2 IP, una la 10.10.10.2
y otra la 20.20.20.3
, es esta segunda IP la cual no tenemos acceso, veamos esto desde nuestra terminal:
En esta imagen podemos ver como claramente los paquetes que enviamos a la segunda interfaz de red se pierden, podemos usar el comando ip -c a
y veremos que no tenemos ninguna IP tipo -> 20.20.20.0/24
por lo tanto es aquí donde debemos emplear técnicas de pivoting, aunque no necesariamente y esto lo digo más en el sentido de que ya hemos vulnerado esta maquina, pero el dilema esta en si hay más maquinas aparte de esta, podemos crear en la carpeta /tmp
de la victima el siguiente script de Bash y verificar la existencia de más equipos:
En pwncat-cs solo debemos escribir back
o simplemente usar Ctrl + d
y estaremos dentro de la reverse shell de la victima, con una TTY totalmente interactiva, aun así en mi caso al usar la terminal kitty
tengo que exportar la variable TERM
:
En esta imagen simplemente me conecto a la Bash de la victima usando Ctrl + d
luego exporto la variable TERM
, accedo al directorio /tmp
creo el archivo HostScan.sh
, dentro ingreso el script que previamente puse arriba, doy permisos de ejecución y por ultimo ejecuto dicho script el cual me reporta otro equipo conectado a esa red, por lo cual empezaremos con el pivoting, lo primero es usar chisel
en nuestro equipo atacante:
Resultado
Como en la maquina victima no tenemos chisel
podemos usar un servidor local con Python en el directorio donde esta el binario de chisel
:
Resultado
Ahora en la maquina victima usando por ejemplo wget
descargamos el binario compartido por nosotros:
Como vemos se descargo correctamente el binario, le dimos permiso de ejecución y lo que prosigue es ejecutar el siguiente comando en la maquina victima:
Resultado
Lo que hicimos con ese comando es conectar la maquina victima mediante chisel
a nosotros de tal modo que ahora podemos ver los equipos conectados en la red 20.20.20.0/24
, pero antes que nada debemos hacer una configuración en local, en nuestro chisel server
podemos ver como un equipo se conecto:
Vemos que es un proxy de tipo socks
y esta en escucha por el puerto 1080, para usarlo debemos configurar proxychains
, en mi caso el archivo de configuración se encuentra en /etc/proxychains.conf
en la ultima parte agregaremos este proxy:
De tal forma que el archivo de configuración podría quedar de la siguiente manera:
Ahora guardamos y podemos probar el siguiente comando:
Resultado
Y ahora si podemos ver como una maquina a la cual no teníamos acceso por reglas de segmentación de red, ahora si tenemos acceso mediante pivoting, como vemos 2 puertos abiertos podemos enumerar un poco más a ver que encontramos:
Resultado
Podemos ver como el puerto 22 corre el servicio ssh
y el 80 una pagina web, veamos que contiene, pero de primeras nos da error y aquí es donde debemos tener en cuenta que, por ejemplo para ver la maquina2 estamos usando el proxy que configuramos con chisel
mediante proxychains
sin proxychains
no veríamos la maquina2, entonces que podemos hacer desde el explorador, pues fácil debemos usar alguna extensión tipo FoxyProxy y configurarlo como lo hicimos con proxychains
:
Con esta configuración ahora si podemos ver el contenido de la maquina2:
Y en esta web, podemos ver como mencionan a un usuario llamado oscar el cual sera el único en el servidor, tenemos un potencial usuario y si recordamos anteriormente, ssh
estaba activo en el servidor, procedemos a hacer un ataque de fuerza bruta con Hydra
usando siempre proxychains
:
Resultado
La linea importante es:
Hydra
logro encontrar la credenciales de oscar la cual es nicole
, utilizando pwncat-cs podemos conectarnos de la siguiente manera (Antes que nada debemos cerrar la sesion actual con la maquina1 y abrir pwncat con proxychains
):
Luego simplemente entrando a la URL donde esta rshell.php
estamos de nuevo dentro, ahora si usando el siguiente comando nos podemos conectar a la maquina2:
Resultado
Y ya estamos dentro de la maquina2 pero hay que tener en cuenta algunas cosas, que hubiera pasado si en vez de conectarnos por ssh
lo hubiéramos echo mediante una Reverse Shell, pues no hubiera funcionado, entonces ¿Por qué mediante ssh
si pudimos?, lo que pasa es que usando chisel
nosotros podemos ver la maquina2, pero ella a nosotros no nos ve, por lo tanto al intentar entablar una Reverse Shell no podemos especificarle nuestra IP porque la maquina2 no tiene alcance a esa IP, entonces ¿Cómo podemos lograr que nos vea? lo veremos más adelante, ya que en este caso al ya tener conexión mediante ssh no es necesario, de igual modo, el proceso que se llevara a cabo más adelante es igual que el que se tendría que llevar en este caso, primero veamos que redes tiene la maquina2 esta vez de forma manual.
Podemos ver 2 interfaces de red, la primera conectada a la maquina1 y la segunda posiblemente a otro equipo, como podemos verificar eso, igual que como en la maquina1:
Accedemos a /tmp
, luego creamos el script HostScan.sh
le damos permiso de ejecución y por ultimo vemos los resultados, una nueva maquina que vulnerar -> 30.30.30.2
, pero antes de seguir, como adicional podemos ver que no estamos como root en la maquina2 ya que nos conectamos como oscar:
Mediante el comando sessions
en la CLI de pwncat vemos que el usuario es oscar, en la maquina victima, usando el comando id
vemos como no estamos en el grupo sudo por lo cual no podemos volverlos root usando el comando sudo su
, pero si podemos usar el comandos como sudo -l
para ver si tenemos permisos especiales:
Y efectivamente podemos ver como oscar puede ejecutar vim
como root sin proporcionar contraseña, podemos usar herramientas como searchbins
:
Con -b
especificamos el binario que en este caso es vim
, la salida nos muestra una lista de formas en la que nos podemos aprovechar del binario dependiendo de la situación que tenemos, en nuestro caso la opción a usar es sudo
ya que lo encontramos mediante el comando sudo -l
se lo especificamos con el parámetro -f
:
Ahora si nos dice como aprovecharnos de esos permisos, en nuestro caso usaremos el primero:
Recomendable usar
bash
en ves desh
->sudo vim -c ':!/bin/bash'
, más adelante lo cambio pero no lo muestro.
Ejecutamos el comando y vemos como nos convertimos en root, podemos usar el comando sessions
y vemos como pwncat actualiza el usuario al cual ahora migramos, ahora si procedamos a vulnerar la ultima maquina.
Primero debemos tener en cuenta que nosotros no vemos la maquina3, pero esto lo podemos solucionar con chisel
, pero la maquina2 no nos puede ver, esto lo podemos solucionar con socat
, ¿De qué manera?, simplemente debemos ir a la maquina1 y redireccionar un puerto de esa maquina a nuestra maquina, de tal forma que si la maquina2 se conecta con la maquina1 en ese puerto, en realidad se conecta con nuestra maquina atacante, veamos los pasos siguientes:
Primero ejecutemos en este caso con
php
un servidor rápidamente donde se encuentra el binario desocat
:
Resultado
En la maquina1 nos descargamos ese binario en
/tmp
y le damos permiso de ejecución, en este caso usaremoscurl
:
Lo que hacemos aquí es cambiar a la sesión 0 de pwncat, que es la Reverse Shell de la maquina1, acedemos a ella, descargamos el binario con curl
y por ultimo le damos permisos de ejecución.
Ahora debemos ejecutar el siguiente comando en la maquina1:
Donde el puerto 221
, es el puerto que se pondrá en escucha en la maquina1, la IP donde redirige el trafico que pase por ese puerto es la 10.10.10.1
-> (Nuestra maquina atacante) y por ultimo lo envía al puerto 33
, donde tenemos nuestro chisel
en modo servidor.
Lo siguiente es ejecutar
chisel
en modo cliente dentro de la maquina2, pero la maquina2, no cuenta conchisel
, pues podemos usar el moduloupload
de pwncat:
Lo que hicimos fue cambiarnos a la sesión 1 de pwncat en la cual tenemos conexión mediante ssh
a la maquin2, luego nos dirigimos a /tmp
, salimos y con el modulo upload
, subimos a la maquina victima los binarios de chisel
y socat
, el siguiente paso es conectar la maquina2 a nuestra maquina atacante:
Comandos utilizados
Damos permiso de ejecución a los binarios chisel
y socat
.
Este comando se conecta a la IP 20.20.20.3
que es el nodo más cercano -> maquina1 en el puerto 221
pero en la maquina1, lo que pase por ese puerto lo redirige a la nuestra maquina atacante el el puerto 33
, donde se encuentra chisel
en modo servidor.
Algo más a tener en cuenta es que, por defecto
chisel
se conecta o utiliza el puerto1080
para el proxy, pero este puerto ya esta en uso por la maquina1, por lo cual le especificamos el puerto1081
en esta parte ->R:1081:socks
.
Resultados en la maquina atacante
En la imagen vemos como se conecta un nuevo cliente al puerto 1081
, ahora podemos usarlo con proxychains
, debemos configurarlo de la siguiente manera:
Debemos tener en cuenta lo siguiente en nuestra configuración:
En el archivo de conf
que pase anteriormente ya esta editado de forma correcta.
Agregamos el proxy encima del que ya esta, de tal modo que cada nueva victima se ira acumulando uno en cima del otro, en caso de que tuviéramos que seguir pivotando.
Ahora el siguiente paso es enumerar la maquina3, como ya abrimos pwncat
con proxychains
, podemos ejecutar nmap
desde la CLI de pwncat
usando el modulo local
:
Resultado
Vemos 3 puertos abierto, en caso de que queramos escanear los 65535 puertos, podemos usar la siguiente técnica:
Aunque parezca que valla lento en realidad va más rápido que si lo hubiéramos echo con nmap -p- --open
ya que aquí trabajamos con hilos de manera diferente a como lo aria nmap
Demanda más recursos en la maquina atacante.
Ahora bien, 3 puertos abiertos veamos que corre cada puerto:
Resultado
Puerto 21 ->
ftp
:nmap
usando el scriptftp-anon
nos indica que el usuario anonymous se encuentra habilitado:
Podemos conectarnos de la siguiente manera:
Usuario ->
anonymous
Password -> Sin contraseña
Vemos que nos devuelve -> 230 Login successful.
, pero si ejecutamos comandos como los siguientes:
Nos da error 500
, para solucionar esto debemos utilizar el siguiente comando:
Pero no vemos que aya nada en ftp
, como tal si queremos descargarnos algo lo idea en ejecutar binary
y luego lo que queramos descargar -> get <archivo>
.
Puerto 3306 ->
mysql
: Este puerto correMariaDB 5.5.5-10.11.6
, pero sin las credenciales solo podríamos hacer ataques de fuerza bruta, aunque el solo echo de estar expuesto es una vulnerabilidad, ademas de que puedan pensar que al estar aislado en una red interna de la empereza estaría segura, pues podemos llegar a ella usando pivoting.Puerto 8080 ->
http
: En este puerto vemos una web montada conWerkzeug httpd 3.1.3 (Python 3.11.2)
, vallamos a ver que hay en la web, no sin antes configurar en FoxyProxy un nuevo proxy tiposocks
para la maquina3, solo cambiamos el puerto a1081
.
Podemos ver una entrada de texto, probemos test:
Esta es la salida, como podemos nos muestra lo que escribimos en la web, pero en la dirección URL nos dan la pista de que estamos frente a un SSTI (Server-Side Template Injection), podemos probar ingresando lo siguiente:
Resultado
Pues, efectivamente estamos frente a un SSTI ya que nos resolvió la operatoria, posiblemente use jinja2
.
Podemos usar la siguiente plantilla para ver que cositas podemos usar:
La web nos mostrara muchísima información, por lo cual es muy probable que podamos usar cualquier función, podemos usar open
desde el diccionario de built-ins
para leer archivos directamente:
Resultado
Y efectivamente podemos ver información del /etc/passwd
, ahora para ejecutar comandos en el sistema directamente (como ls /
), podemos intentar usar Popen
para ejecutar el comando en el shell y leer la salida:
Vemos que nos lista los directorios pero no se ve tan bien, no importa ya podemos ejecutar comandos de forma remota, por lo cual ahora el siguiente paso es obtener una Reverse Shell:
Lo primero que vamos a hacer, es ponernos en escucha por ejemplo en el puerto 332
dentro de pwncat:
Claro la maquina3 no nos puede ver, pero la maquina1 si, vallamos a esta maquina y procedamos a ponerla en escucha y que envié el trafico hacia nosotros:
Todo lo que pase por el puerto 332
de la maquina1 sera enviado a nuestra maquina, ahora vallamos a la maquina2 que tiene conexión con la maquina1 y hagamos lo mismo:
Ahora todo lo que pase por la maquina2 en el puerto 332
sera enviado a la maquina1 a ese mismo puerto, por ultimo solo nos queda enviar la Reverse Shell y el payload seria el siguiente:
Resultado
Y en nuestra maquina atacante veríamos lo siguiente:
Una Reverse Shell que llega por parte de la maquina1 pero que en realidad por el puerto sabemos que es de la maquina2 que a su vez es la Reverse Shell de la maquina3, en la siguiente imagen podemos ver más claramente esto:
Como podemos ver aunque dice cuando usamos el comando sessions --list
, que la IP de la victima es la 10.10.10.2
en realidad si enumeramos con el modulo de pwncat
, vemos que la IP de la maquina victima es la 30.30.30.2
, ahora como punto final podemos ver los diferentes procesos que están corriendo en cada maquina:
maquina1
Podemos ver los procesos que dejamos corriendo con chisel
y socat
, ademas de otros procesos como el de php
que ya venia en la maquina como vulnerabilidad pre configurada.
maquina2
En la maquina2 también podemos ver todos los procesos que dejamos corriendo: el apache2
que esta desplegado, también podemos ver las conexiones que se genero por ssh
y la escalada usando vim
, etc.
maquina3
Como en las maquinas anteriores también podemos ver todos sus procesos, y la Reverse Shell que dejamos corriendo.
Con esto hemos culminado esta demostración de pivoting, si requiere más información sobre pivoting o preguntas adicionales, pueden contactarse con migo mediante mis redes sociales.
Deteniendo el Laboratorio:
Last updated