Este módulo ensinará os conceitos MAIS fundamentais de interação com a linha de comando! A linha de comando permite que você execute comandos. Quando você abre um terminal, ele executa uma "shell" de linha de comando, parecida com esta:

hacker@dojo:~$

Isso é chamado de "prompt" (linha de solicitação), e ele está convidando você a digitar um comando. Vamos analisar o que está acontecendo aqui:

  • O hacker no prompt é o nome de usuário (username) do usuário atual. No ambiente do Dojo do pwn.college, esse nome é sempre "hacker".
  • No exemplo acima, a parte dojo do prompt é o hostname (nome da máquina) onde a shell está rodando (esse lembrete é bastante útil se você for, por exemplo, um administrador de sistemas que gerencia vários servidores diariamente). No exemplo acima, o hostname é dojo, mas no pwn.college ele será derivado do nome do desafio que você estiver resolvendo.
  • Falaremos sobre o que o ~ significa um pouco mais adiante :-)
  • O $ no final do prompt indica que o hacker é um usuário comum (não administrativo). Em módulos mais avançados do pwn.college, quando você aprender a usar exploits para obter privilégios de administrador (root), o prompt indicará isso exibindo # em vez de $, e aí você saberá que venceu!

De qualquer forma, o prompt aguarda suas ordens. Avance para o primeiro desafio para aprender como de fato executar comandos!


Neste desafio, você invocará seu primeiro comando! Quando você digita um comando e pressiona Enter, o comando é executado, desta forma:

hacker@dojo:~$ whoami
hacker
hacker@dojo:~$

Aqui, o usuário executou o comando whoami, que simplesmente imprime o nome do usuário atual (hacker) no terminal. Quando o comando termina, a shell exibe o prompt novamente, pronta para o próximo comando.

Neste nível, invoque o comando hello para obter a flag! Tenha em mente: comandos no Linux diferenciam maiúsculas de minúsculas (case-sensitive): hello é diferente de HELLO.

Vamos tentar algo mais elaborado: um comando com argumentos, que é como chamamos os dados adicionais passados para um comando. Quando você digita uma linha de texto e pressiona Enter, a shell processa a sua entrada dividindo-a entre o comando e seus argumentos. A primeira palavra é o comando, e as palavras seguintes são os argumentos. Observe:

hacker@dojo:~$ echo Hello
Hello
hacker@dojo:~$

Neste caso, o comando foi echo, e o argumento foi Hello. O echo é um comando simples que "ecoa" todos os seus argumentos de volta no terminal, como você vê na sessão acima.

Vejamos o echo com múltiplos argumentos:

hacker@dojo:~$ echo Hello Hackers!
Hello Hackers!
hacker@dojo:~$

Neste caso, o comando foi echo, e Hello e Hackers! foram os dois argumentos passados ao echo. Simples assim!

Neste desafio, para obter a flag, você deve executar o comando hello (NÃO o comando echo) com um único argumento: hackers. Tente agora!

Você vai digitar muitos comandos ao longo da jornada, e redigitar tudo do zero sempre pode ser cansativo. Felizmente, a shell salva um histórico (history) de cada comando que você executa.

Você pode navegar por esses comandos salvos usando as teclas de seta para cima e para baixo (↑ / ↓), e vamos praticar isso neste desafio. Este desafio injetará a flag diretamente no seu histórico. Abra um terminal, pressione a tecla de seta para cima (↑) e capture-a! Em outros desafios, o histórico conterá o registro dos comandos que você já executou, então se precisar rodar um comando similar novamente, você pode usar as setas para rolar e encontrá-lo com facilidade!


30-Day Scoreboard:

This scoreboard reflects solves for challenges in this module after the module launched in this dojo.

Rank Hacker Badges Score