En un post anterior mi amigo @DamonCDB estuvo tratando la primera parte de este writeup, ahora vamos a seguir con esta segunda entrega.
Recordaros que este post es de su autoría y podeir ver el post original AQUI. No olvides visitar su Blog llamado "Mis Hobbies".
La sala que estamos estudiando en estas entregas es la que mencionamos en el post anterior: [CC - Pen testing](https://tryhackme.com/room/ccpentesting)
Aquí finalizamos la parte del curso intensivo. Más adelante iré presentando algunas de las herramientas por separado, y subiendo entradas al blog con tutoriales de cómo utilizarlas pero, por ahora, creo que estos pequeños resúmenes introductorios os pueden ser útiles.
Si queréis saber algo más acerca de alguna de las herramientas tratadas en esta entrada, no dudéis en preguntarle en el apartado de comentarios de su blog.
En ocasiones, durante un proceso de pentesting, necesitarás obtener el acceso a una base de datos. Cuando investigues la base de datos, a menudo encontrarás una tabla de usuarios, la cual contiene los nombres de usuario y las contraseñas hasheadas. A veces es necesario saber cómo crackear estas contraseñas para conseguir la autenticación en un sitio web (¡o si tienes suerte es posible que la contraseña sirva para ssh!)
No importa qué herramienta utilices, virtualmente todas ellas tienen el mismo formato. Un archivo con el hash o hashes en el que cada hash aparece separado por una nueva línea.
Ejemplo:
<hash 1>
<hash 2>
<hash 3>
Las “sales” están normalmente añadidas al final del hash con dos puntos y la sal en cuestión. Los ficheros con este tipo de hash
siguen la misma convención con cada uno separado por una nueva línea.
Ejemplo:
<hash 1>:<sal>
<hash 2>:<sal>
<hash 3>:<sal>
Nota: Los distintos algoritmos de hashing tratan las sales de forma distinta. Algunos las incluyen delante, y otros detrás. Asegúrate de lo que estás intentando crackear y ten en cuenta esta distinción.
Hashcat es otra de las herramientas más populares en el cracking de hashes. Es muy reconocida por su versatilidad y su velocidad. Hashcat no tiene autodetección del tipo de hashes, aunque sí tiene distintos modos. Por ejemplo, si estás intentando crackear un hash md5
el “modo” deberá ser 0, mientras que si estás intentando crackear un hash en sha1
, el “modo” deberá ser 100.
Aquí puedes encontrar una lista de todos los modos disponibles.
-m
-a
3
17600
Crackea este hash: 56ab24c15b72a457069c5ea42fcfc640
happy
Crackea este hash: 4bc9ae2b9236c2ad02d81491dcb51d5f
nootnoot
John The Ripper(jtr) es una de las mejores herramientas para crackear hashes disponibles. Soporta diversos formatos de hash y es extremadamente sencilla de utilizar, además de que posee muchas opciones de personalización.
Nota: Existen múltiples variaciones de jtr ahí fuera. Para esta tarea utilizaremos la versión preinstalada en Kali.
Nota 2: Todos (o la mayoria de) los hashes pueden crackearse con el diccionario rockyou.txt
--wordlist
--format
--rules
Crackea este hash: 5d41402abc4b2a76b9719d911017c592
hello
Crackea este hash: 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
password
SQL Injection es el arte de modificar una consulta SQL de modo que podamos obtener acceso a la base de datos objetivo. Esta técnica se utiliza a menudo para obtener datos de usuarios, tales como contraseñas, e-mails, etc. SQL Injection es una de las vulnerabilidades web más comunes, y como tal, vale la pena comprobarlo.
Sqlmap
es, probablemente, la herramienta más popular de SQL Injection que existe. Comprueba varios tipos de inyecciones, y tiene todo un repertorio de opciones de personalización.
-u
-g
-p
--dbms
--level
--dump
-D
-C
--os-shell
--dump-all
Ocasionalmente no podrás utilizar sqlmap. Esto se puede deber a varias razones, como que el objetivo tiene configurado un cortafuegos o un límite de consultas. En este caso es importante saber cómo realizar una inyección manual de SQL, aunque sea tan solo para confirmar que es posible hacer SQL Injection a esa web. Puedes encontrar aquí una lista de formas de verificar la inyección de SQL.
Para demostrar cómo usar sqlmap
para comprobar vulnerabilidades y dumpear datos de tablas, te lo mostraré a través de una aplicación web de ejemplo. ¡Despliega la máquina y empecemos!
Nota: Esta tarea utilizará sqlmap. De todas formas, puedes intentar explotarla manualmente si quieres. Genera la consulta completa en cada intento, por lo que puedes saber qué intenta hacer mysql.
3
tests
2
found_me
La mayoría de técnicas de pentesting y herramientas que has visto pueden utilizarse tanto en Windows como en Linux. De todos modos, una de las cosas que encontrarás más a menudo cuando hagas pentesting a máquinas Windows es Samba, por lo que es importante dedicarle una sección.
Nota: Aunque Samba también es multiplataforma, en esta sección nos centraremos principalmente en la enumeración en Windows; algunas de las técnicas que verás aquí se pueden aplicar también en Linux.
Continuando con la tendencia de que las herramientas que tienen la palabra “map” en su nombre son extremadamente populares, smbmap es una de las mejores formas de enumerar Samba. Smbmap permite a los pentesters ejecutar comandos (con los permisos adecuados), descargar y subir archivos, y es increíblemente útil en la enumeración de smb.
-u
-p
-H
-x
-s
-d
--download
--upload
smbmap -u "admin" -p "password" -H 10.10.10.10 -x "ipconfig"
Smbclient permite hacer la mayoría de cosas que podemos hacer con smbmap, además de ofrecer un prompt interactivo.
-w
-I
-c “ipconfig”
-U
-P
-N
get test
put /etc/hosts
Impacket es una colección de scripts extremadamente útiles en Windows. Es importante mencionarlo aquí, ya que contiene scripts para usar en Samba que enumeran y obtienen acceso a la shell de las máquinas Windows. Todos los scripts los puedes encontrar aquí.
Nota: impacket tiene scripts que utilizan otros protocolos y servicios además de Samba.
La escalada de privilegios es un tema extenso que sería imposible de tratar debidamente en esta clase de salas. De todos modos, es un tema que es necesario cubrir, por lo que, más que realizar una tarea basada en preguntas, os proporcionaré algunas fuentes.
General:
https://github.com/swisskyrepo/PayloadsAllTheThings (un manojo de herramientas y payloads para cada fase del pentesting).
Linux:
https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/ (un poco antigua, pero sigue siendo útil mirarla).
https://github.com/rebootuser/LinEnum (uno de los scripts más populares para escalada de privilegios).
https://github.com/diego-treitos/linux-smart-enumeration/blob/master/lse.sh (otro script popular).
https://github.com/mzet-/linux-exploit-suggester (un script dedicado a la búsqueda de exploits del kernel).
https://gtfobins.github.io (no puedo constatar la utilidad de este script para escalada de privilegios, si un binario común tiene permisos especiales, puede utilizar este sitio para ver cómo obtener permisos de root con él).
Windows:
https://www.fuzzysecurity.com/tutorials/16.html (dicta algunos comandos y métodos muy útiles para enumerar el host y obtener información).
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp (un script un poco viejo, pero increíblemente útil).
https://github.com/411Hall/JAWS (un script de enumeración general).
A lo largo de este curso has aprendido varias tácticas y acerca de varias herramientas de pentesting. Aquí es donde todo se somete a examen, he configurado un CTF nivel principiante que contiene dos banderas. ¡Buena suerte y a pasarlo bien!
supernootnoot
congratulations!!!!