// writeups / OverTheWire · Bandit
Bandit níveis 0 a 3: SSH e nomes de arquivo traiçoeiros
Primeiros passos no wargame Bandit: conectar por SSH e ler arquivos com nomes que confundem o shell — hífen, espaços e arquivos ocultos.
O Bandit é o wargame que mais recomendamos para quem está começando: cada nível é uma máquina Linux onde a senha do próximo nível está escondida de algum jeito. Aqui cobrimos os quatro primeiros, que ensinam o básico do terminal.
Sem spoiler de senha. As senhas do Bandit são trocadas de tempos em tempos e a graça é chegar nelas sozinho. Este writeup mostra o caminho, não o resultado. Os nomes de arquivo também podem mudar entre versões do jogo, então leia o enunciado de cada nível.
Nível 0: entrando por SSH
O enunciado dá o host, a porta e o usuário. O detalhe que mais trava iniciante é a porta: não é a 22 padrão.
ssh [email protected] -p 2220
A senha do bandit0 está no próprio enunciado. Lá dentro, ls mostra um arquivo readme, e cat readme revela a senha do nível 1. Saia com exit e conecte de novo como bandit1.
Aprendizado: ssh usuario@host -p PORTA. Guarde as senhas num arquivo local seu, fora da máquina do jogo.
Nível 1: o arquivo chamado -
O arquivo com a senha se chama literalmente -. Tentar cat - faz o cat ficar parado esperando você digitar: para muitos programas, - significa “leia da entrada padrão (stdin)”.
A saída é deixar claro que é um caminho, não uma opção:
cat ./-
cat < - também funciona: aí é o shell que abre o arquivo e entrega o conteúdo para o cat.
Aprendizado: argumentos que começam com - são lidos como opções. Prefixar com ./ resolve.
Nível 2: espaços (e hífens) no nome
Agora o nome do arquivo tem espaços. Sem aspas, o shell quebra o nome em várias palavras e o cat procura vários arquivos que não existem.
cat "nome do arquivo com espaços"
cat nome\ do\ arquivo\ com\ espaços
Se o nome também começar com -, junte as duas técnicas, com ./ antes das aspas, ou use -- para avisar que acabaram as opções:
cat -- "--nome com espaços--"
Dica: digite as primeiras letras e aperte Tab. O autocomplete escapa o nome para você.
Nível 3: arquivo oculto
A senha está dentro do diretório inhere, mas ls inhere parece não mostrar nada. No Linux, arquivos que começam com . são ocultos e o ls não lista por padrão.
ls -la inhere
O -a mostra tudo, incluindo os ocultos (e as entradas . e ..). Com o nome em mãos, use cat com aspas ou Tab, como no nível anterior.
Aprendizado: ls -la deve virar reflexo em qualquer recon de diretório.
O que levar daqui
- Leia o enunciado inteiro: a porta, o usuário e as dicas de comando estão lá.
- O shell interpreta
-, espaços e.de forma especial. Entender quem interpreta cada caractere (o shell ou o programa) resolve metade dos problemas. man <comando>é seu melhor amigo. O próprio Bandit sugere quais comandos estudar em cada nível.
Próximo passo: continue até o nível 10 e depois venha jogar um CTF com a gente. A agenda tem os próximos.