Este texto tem como objetivo apresentar a forma como eu, Obtuosa, uma jovem iniciante em cibersegurança, resolvi o desafio com tema de Rick e Morty intitulado Pickle Rick, da plataforma TryHackMe, em um servidor da Web, no qual a finalidade é encontrar três ingredientes que possam ajudar o famoso personagem Rick, da série animada Rick e Morty, a produzir uma poção que o transforme novamente em humano, pois o mesmo se encontra transformado em um picles e sendo o conhecidíssimo Pickle Rick!
Introdução
Antes de começarmos o processo quanto a máquina Pickle Rick, é importante ressaltar algumas informações, mesmo que breves sobre o que seria o TryHackMe e as famosas máquinas de hacking (Hacking Machines).
TryHackMe é uma plataforma online, no qual o objetivo central é lhe ajudar a aprender sobre cibersegurança, usando exercícios práticos e "laboratórios", tudo isso pelo navegador.
Máquinas de hacking ou as famosas Hacking machines são os ambientes virtuais utilizados pelos usuários, para aprimorar suas habilidades em hacking e entendimento na área de cibersegurança. Nelas é possível participar de cenários de ataques e também vulnerabilidades, em que os usuários possam usar de seu conhecimento e técnicas de exploração, de maneira principalmente legal e segura. Logo, o desafio Pickle Rick é justamente uma máquina de hacking, com foco em buscar vulnerabilidades até seu propósito final.
Reconhecimento
Após essas breves informações definidas, será feita a trajetória que salvou Rick!
Ao adentrar a tela de desafio, uma das ações que foram realizadas foi justamente a inspeção no código e verificar a forma com que o HTML do alvo estava estruturado e logo de cara tivemos o acesso a informação sobre o username do Rick, no final do código, em formato de comentário.
Com isso, foi traçado os principais objetivos nesse primeiro momento, tendo em vista que o username na inspeção do html significaria que teríamos uma tela de login e a necessidade de uma senha para efetivar por completo esse acesso ao alvo. Entretanto, ao tentar encontrar a tela de login em um primeiro momento, não foi realizado com tanta facilidade e um dos principais focos foi justamente buscar essa tela de login e principalmente, entender qual a linguagem de programação que estaria realizando as funcionalidades deste site.
Deste modo, decorreu a busca de informações sobre qual seria essa linguagem por trás dos panos e uma das ideias foi justamente a utilização do comando curl.
O alvo utiliza Ubuntu para rodar o servidor Web Apache. Porém, não foi possível obter uma informação mais precisa sobre qual seria a linguagem utilizada pelo alvo através do curl. Deste modo, o head do próprio html do site possuía o diretório /assets/, que tem como foco o armazenamento de mídia, fontes, etc., de um site ou aplicação web.
Apesar das informações presentes, não foi possível encontrar (sob o olhar de uma pessoa que está iniciando) informações referentes a linguagem usada.
A forma operada logicamente foi justamente introduzir .php no final e com isso o acesso a tela de /login.php. Isso foi puramente achismo, tendo em vista que utilizar uma ferramenta de busca de diretórios tornaria o processo mais prático, porém, o objetivo aqui é tentar realizar manualmente e aprimorar as noções no decorrer, sem depender de ferramentas para isso.
Com a confirmação de que usam PHP e para além disso, o acesso ao diretório /login.php. Entretanto, faltava a senha e se tem o diretório /assets, poderia também ter o /robots.txt, que gerencia quais diretórios podem ser vasculhados em um respectivo site. A senha do R1ckRul3s estava justamente no /robots.txt.
Exploração
A tela inicial após o login tem um painel de comandos, e a informação anterior de que o servidor rodava em Ubuntu trouxe a conclusão de que podemos usar os próprios comandos do terminal e além disso, ter acesso aos diretórios completos do alvo. No inspecionar desta tela, tem uma dica interessante, uma frase codificada em Base64, no comentário do html.
O comando ls lista os arquivos e os diretórios, além do comando cd para navegar entre os diretórios do terminal.
O primeiro ingrediente é localizado usando ls, no painel de comando e é intitulado Sup3rS3cretPickl3Ingred.txt. Como dica para você, caso tenha interesse, é que pode ser usado tanto o pwd para localizar o diretório atual em conjunto com o less para ler o arquivo txt, quanto também digitar diretamente no URL, que terá a resposta do primeiro ingrediente. Lembrando que "hipoteticamente" o comando cat está desabilitado, junto com o nano, vim, more, etc.
ls -la
total 40
drwxr-xr-x 3 root root 4096 Feb 10 2019 .
drwxr-xr-x 3 root root 4096 Feb 10 2019 ..
-rwxr-xr-x 1 ubuntu ubuntu 17 Feb 10 2019 Sup3rS3cretPickl3Ingred.txt
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 10 2019 assets
-rwxr-xr-x 1 ubuntu ubuntu 54 Feb 10 2019 clue.txt
-rwxr-xr-x 1 ubuntu ubuntu 1105 Feb 10 2019 denied.php
-rwxrwxrwx 1 ubuntu ubuntu 1062 Feb 10 2019 index.html
-rwxr-xr-x 1 ubuntu ubuntu 1438 Feb 10 2019 login.php
-rwxr-xr-x 1 ubuntu ubuntu 2044 Feb 10 2019 portal.php
-rwxr-xr-x 1 ubuntu ubuntu 17 Feb 10 2019 robots.txt
Nota: Caso você tente acessar outras opções do menu, além do Commands, terá seu acesso negado, por não ser o verdadeiro Rick.
O segundo ingrediente é um pouco mais difícil de localizar, pois para ter acesso é necessário averiguar os diretórios e subdiretórios. Neste caso, a dica que pode ser dada é a combinação dos comandos cd e ls, para que você tenha acesso a listagem de arquivos e diretórios. Lembra da dica da frase da tela inicial, que estava codificada em Base64? É exatamente esse o pensamento, explorar o máximo de diretórios possíveis. Caso continue tendo dificuldades, a dica maior é focar no diretório /home, pois é lá que estará a resposta.
cd ../../../home/rick;ls -la
second ingredients
Nota: Como acessar um arquivo com espaços? pode ser usando o próprio less com aspas ou com barra invertida.
Por fim e não menos importante, o terceiro ingrediente se encontra em um arquivo oculto em um dos perfis, por isso é interessante usar o comando -ls juntamente com o -a, para ter acesso a arquivos ocultos. Este arquivo contém os registros dos comandos que o usuário utilizou no terminal, ou seja, de acordo com o perfil terá o acesso aos comandos executados e consequentemente o último ingrediente.
cd ../../../home/ubuntu;ls -la
total 44
drwxr-xr-x 5 ubuntu ubuntu 4096 Jul 11 10:37 .
drwxr-xr-x 4 root root 4096 Feb 10 2019 ..
-rw------- 1 ubuntu ubuntu 769 Jul 11 11:18 .bash_history
-rw-r--r-- 1 ubuntu ubuntu 220 Aug 31 2015 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 Aug 31 2015 .bashrc
drwx------ 3 ubuntu ubuntu 4096 Jul 11 10:39 .cache
drwx------ 3 ubuntu ubuntu 4096 Jul 11 10:37 .gnupg
-rw-r--r-- 1 ubuntu ubuntu 655 May 16 2017 .profile
drwx------ 2 ubuntu ubuntu 4096 Feb 10 2019 .ssh
-rw-r--r-- 1 ubuntu ubuntu 0 Feb 10 2019 .sudo_as_admin_successful
-rw------- 1 ubuntu ubuntu 4267 Feb 10 2019 .viminfo
Nota: Para acessar o arquivo oculto, é importante usar o sudo para ter acesso privilegiado junto com o less.
Conclusão
Portanto, através da máquina Pickle Rick foi possível compreender um pouco mais sobre a estrutura do html e um pouco sobre PHP, alguns diretórios que são comuns de encontrar como o /assets e o próprio /robots.txt. Para além disso, noções referentes aos comandos linux como cd, ls, less, pwd, etc. Por consequência, ter um olhar mais prático sobre web hacking, tendo em vista que é de suma importância compreender as bases de conhecimento em cibersegurança para conseguir realizar o desafio. As informações contidas aqui são apenas uma das formas possíveis de resolver o problema, tem muitas outras possbilidades e você também pode ter a sua, não se apegue apenas a uma perspectiva e caso você queira pontuar sobre algo, trazer sua forma de resolução, debater sobre algo ou alguma afirmação equivocada da minha parte, sinta-se a vontade, estamos aqui para somar e aprender. Lembre-se, a educação é a maior fonte de transformação, não desista!
Top comments (2)
Muito bom!
Obrigado pelo feedback!