Seja bem-vindo! Você está conectado a um ambiente Linux real através do terminal à direita. Atualmente, você está autenticado como o usuário level0 (você pode digitar whoami para confirmar).
Diferente do Windows, o Linux não usa unidades como C:\ ou D:\. Todo o sistema é uma única árvore hierárquica que parte da raiz /.
Cada usuário comum possui uma pasta própria dentro de /home/. No seu caso, sua pasta inicial é /home/level0 (você pode verificar o caminho atual com o comando pwd).
No Linux, qualquer arquivo ou pasta cujo nome comece com um ponto (como .config, .bashrc ou .segredo) é tratado como oculto. Eles existem para guardar configurações ou arquivos que não precisam poluir o visual do dia a dia, mas se você der apenas o comando ls comum, eles não serão listados.
ls : Lista os arquivos normais da pasta. Adicione a flag -a (all) para ver arquivos ocultos e -l para ver detalhes de permissão:
ls -la
cd <caminho> : Entra em um diretório. Exemplo: cd pasta_exemplo. Para voltar um nível acima na árvore, use cd ...cat <arquivo> : Lê o conteúdo textual de um arquivo e joga na tela. Exemplo: cat notas.txt.cat sozinho (sem passar nenhum arquivo), o terminal vai travar esperando você digitar algo. Para cancelar e voltar ao prompt normal, basta pressionar Ctrl + C.
O administrador do sistema deixou uma pasta oculta dentro do diretório home do seu usuário (/home/level0). Dentro dessa pasta oculta, há um arquivo de texto contendo a flag que serve como senha para o próximo usuário (level1).
Encontre a pasta, entre nela, leia o arquivo da chave e envie a flag abaixo.
Primeiro passo: troque de usuário no terminal usando a senha/flag que você encontrou no nível 0:
su - level1
Em servidores de produção, aplicações e serviços geram centenas de megabytes de logs por dia. Quando ocorre um incidente de segurança ou vazamento de dados, ninguém consegue ler 50.000 linhas na mão. Analistas de segurança usam comandos rápidos de filtragem para encontrar anomalias.
grep e dos Pipes (|)O utilitário grep procura padrões de texto dentro de arquivos ou fluxos de dados.
grep "termo_procurado" /caminho/do/arquivo.log
|): Ele conecta a saída de um comando diretamente na entrada do próximo. Isso permite encadear tarefas em uma única linha.Base64 não é criptografia, é apenas uma codificação (encoding) muito usada para transportar dados binários em formato de texto. Strings em Base64 geralmente contêm letras maiúsculas, minúsculas, números e podem terminar com = ou ==.
Para decodificar uma string Base64 direto no terminal Linux, você pode usar o comando base64 -d:
echo "dGVzdGU=" | base64 -d
Existe um log de tráfego volumoso em /var/log/app_traffic.log. Um desenvolvedor deixou escapar uma credencial crítica no meio do ruído desse log.
1. Inspecione o arquivo usando grep para buscar termos suspeitos como credential, leaked ou admin.
2. Identifique a string em Base64 vazada e decodifique-a para obter a senha do level2.
Faça login com a nova credencial:
su - level2
O cron é o serviço responsável por agendar e executar rotinas em segundo plano no Linux (backups, limpeza de logs, checagem de integridade, etc.). Ele roda tarefas automaticamente no contexto de usuários específicos em intervalos definidos (ex: a cada minuto).
No Linux, cada arquivo tem permissões para três entidades: Owner (Dono), Group (Grupo) e Others (Outros). As permissões são:
r (read / leitura): poder ler o arquivo.w (write / escrita): poder alterar ou reescrever o arquivo.x (execute / execução): poder rodar o arquivo como programa.Se um script é executado periodicamente por um usuário com privilégios maiores (como level3), mas qualquer usuário do sistema (others) tem permissão de escrita (w), temos uma grave falha de segurança!
>> (Append)No bash, você pode adicionar novas linhas ao final de um arquivo sem precisar abri-lo num editor de texto usando o operador >>:
echo "comando_aqui" >> /caminho/do/arquivo.sh
O usuário level3 possui uma rotina automatizada rodando em segundo plano. Inspecione o diretório /opt/maintenance/, analise o que está lá e avalie as permissões com atenção. Se houver alguma brecha de controle de acesso, use-a para obter a credencial privada do level3.
Acesse o nível final:
su - level3
Normalmente, quando você executa um programa, ele roda com os seus próprios privilégios. No entanto, quando um executável possui a permissão especial SUID (indicada por um s nas permissões, como -rwsr-xr-x), ele é executado com as permissões do dono do arquivo.
Se o dono do binário for o root, qualquer usuário que executar aquele binário terá, durante a execução, os poderes administrativos máximos da máquina.
$PATH funciona?Quando você digita date ou ls no terminal, o sistema não sabe magicamente onde aquele programa está. Ele consulta a variável de ambiente $PATH, que contém uma lista de diretórios separados por : (ex: /usr/bin:/bin), e procura o executável na ordem em que as pastas aparecem.
Existe um binário com permissões especiais em /usr/local/bin/sys_check. Analise como ele se comporta ao ser executado, entenda o que ele chama internamente e descubra uma forma de fazer com que ele execute código seu com os privilégios do dono do arquivo.
A flag final está em /root/flag_final.txt.