Detectando tarefas do cron executadas por outro usuário

7

Atualmente, estou trabalhando nos desafios da Nebulosa em exploit-exercises.com e um dos desafios depende de um script sendo executado pelo cron.

Isso é executado por outro usuário (flag03) e o usuário que estou logado como (level03) não tem privilégios para executar crontab -u flag03 para ver o trabalho.

A dica indica claramente que o script é executado pelo cron. Além disso, é o único script no diretório /home/flag03 , por isso, provavelmente investigaremos mais.

No entanto, se esse fosse o mundo real, eu não saberia que esse script estava sendo executado pelo cron.

Portanto, a pergunta é: como eu detectaria que a tarefa estava sendo executada da perspectiva de um usuário sem privilégios?

Eu tentei o seguinte:

while true; do ps au | grep <scriptname> | grep -v grep; done;

Isso permite que eu veja processos que são executados por um período de tempo significativo, mas não aqueles que saem quase imediatamente. Também presumo que eu saiba o nome do script.

O ambiente específico é o Ubuntu. Não consigo usar o apt-get, mas tenho acesso ao gcc.

Alguma idéia?

    
por Cybergibbons 06.06.2014 / 09:05

6 respostas

0

Qual versão do Ubuntu? Se estiver usando systemd , você pode confiar no cron cgroup criado por systemd , como todos os processos iniciados por cron serão filhos diretos.

Uma das opções para obter essa informação é usar o comando ps com algo como:

ps -eo user,pid,cmd,unit | grep cron.service | grep flag03
    
por 11.12.2016 / 12:35
0

Você não pode. O mais próximo que você pode chegar é:

inotifywait -m /home/flag03/script

Isso não mostrará a execução, mas será exibido quando script for aberto ou acessado.

    
por 04.05.2018 / 01:53
0

Talvez o uso de inotifywait nos diretórios / proc / [0-9] + permita que você vislumbre melhor os processos de curto prazo.

    
por 07.06.2014 / 13:34
0

Olhando para o desafio, esse método de ataque presumiria que você pudesse executar um script e observar o que é executado na caixa, portanto, eu escreveria um script que simplesmente fizesse um despejo de ps -eaf a cada dois segundos. um cron, eventualmente, já que os crons são executados uma vez a cada minuto.

Esse vetor de ataque exigiria que você observasse esse script em execução, anotasse a localização do script e investigasse com mais detalhes.

    
por 07.06.2014 / 14:31
0

Neste caso específico, o arquivo está localizado em /var/spool/cron/crontabs/flag03 e você pode lê-lo com a conta nebula .

Mas level03 não tem privilégios suficientes para acessá-lo.

    
por 12.03.2015 / 16:59
-1
while true; do ps aux | egrep -v "grep|tail|aux" | tail -n 1; sleep 1; done
    
por 11.12.2016 / 06:44