Cron Jobs - Exploit - Privilege Escalation

O que é Cron Jobs?

Basicamente, Cron Jobs são tarefas agendadas para execução automática de acordo com o tempo definido na configuração do schedule. O Crontab é onde o Cron Jobs é configurado. 

Durante a execução de um pentest/ataque, depois de obter acesso a um servidor Linux, uma das etapas de exploração é a escalação de privilégio. No caso do Cron Jobs, podemos usar o script de uma tarefa agendada com permissão root para obter o privilégio da máquina. 

No exemplo abaixo, primeiro é feito uma busca por scripts que executam tarefas agendadas no cron jobs, e que tenham uma falha de configuração na permissão atribuida a esse script, conforme é mostrado abaixo. 

Usando o grep para fazer busca recursiva na máquina-alvo: 

grep -rnw /usr -e "*.sh"

O script copy.sh tem o owner como root e tem uma falha de permissão, isto é, permite que qualquer usuário o execute (rwxrwxrwx). 


A partir dessa falha na permissão do script copy.sh é possível alterá-lo. 

Para conceder acesso privilegiado a um usuário no Linux, podemos adicionar no arquivo Sudoers a permissão de execução como root sem senha, conforme é mostrado abaixo. 

printf '#!/bin/bash\necho "student ALL=NOPASSWD:ALL" >> /etc/sudoers' > /usr/local/share/copy.sh 

Executa sudo -l e confirma que o usuário student agora tem permissão de execução como root no servidor. Logo, é possível logar como root, controlando assim todo o servidor da vítima. 


A exploração de scripts agendados no cron jobs é uma das técnicas para escalação de privilégio em servidores Linux. Requer uma etapa de enumeração interna para localizar um script com permissão total de execução (777 ou rwxrwxrwx)

Referências:

[+] Cron Jobs

https://diolinux.com.br/tutoriais/entenda-o-que-e-cron-job.html


Comentários

Postagens mais visitadas