VulnHub Mission Pumpkin v1.0 (3/3): Festival (Walkthrough)
( ^◡^) Então pessoal!! Chegou o tão esperado Festival da Abóbora!
Esta é a terceira e última parte do guia de exploração da Série “Mission Pumpkin v1.0”, criada por Jayanth e disponívek no VulnHub. Se você não leu sobre as máquinas anteriores, então acesse o link abaixo e confira a resolução da parte 2:
Se você já explorou alguma máquina desta série, ou ao menos leu algum dos guias anteriores, já sabe que esta séria não apresenta exploração clássica que você geralmente encontra em ambientes do mundo real. Mas, traz desafios que irão lhe surpreender e talvez, te deixar frustrado. Desta forma, mesmo que a e falhas exploração sejam algo comum, é preciso pensar bastante fora da caixa e estar atento à todas as notas e dicas do autor.
Para realizar o download e acessar mais informações, confira o link abaixo:
Level: Beginner
VM Alvo: Mission-Pumpkin v1.0: Pumpkin Festival
VM Atacante: Kali Linux 2019.2
O que sabemos?
In this level (Level 3) it is time for Pumpkin Festival, the goal is to reach root and access PumpkinFestival_Ticket and collect PumpkinTokens on the way.
Até conseguir ler o “PumpkinFestival_Ticket”, vamos explorar esta VM em busca de diversos tokens. Vale lembrar que é possível conseguir escalar privilégios e chegar a ler o Ticket, sem precisar coletar todos os tokens.
Reconhecimento / Enumeração de Vulnerabilidades
Assim como para as VMs anteriores, não é necessário realizar o processo de “host discovery” para este alvo, pois logo ao inicializá-lo, temos o seu endereço IP no banner de boas-vindas:
This machine is up and running at
192.168.10.102

Utilizando o Nmap, vamos realizar uma análise do alvo, a fim de enumerar as portas e serviços e tentar encontrar alguma vulnerabilidade:
nmap -A -T4 -p- 192.168.10.102

21/tcp open ftp vsftpd 2.0.8 or later
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
6880/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13
Nesta enumeração já conseguimos muitos informações interessantes, por exemplo, que há um diretório chamado “secret”, acessível sem senha via FTP e também quatro outros diretórios em uma aplicação web, que foram identificadas lendo o arquivo “robots.txt”.


Há também o serviço de SSH configurado na porta 6880. Como já temos algumas informações para trabalhar, vamos então analisar cada serviço separadamente e ver o que encontramos lá.
Análise do Serviço FTP (porta 21)
O Nmap já informou que é possível acessar inicialmente o FTP, utilizando um acesso anônimo (ftp:ftp, anônimo:anônimo, etc…). Então, sem perder tempo, vamos acessar e procurar informações sensíveis.
ftp 192.168.10.102 21

Quando acessar via FTP, você irá perceber um diretório chamado “secret” e dentro deste, um arquivo nomeado de “token.txt”. Com o comando “get”, você pode realizar o download deste arquivo para a nossa máquina atacante e depois ler seu conteúdo.

Wow guys!! Já temos o primeiro Token…( ͡° ͜ʖ ͡°)
Token 1 (FTP:secret/token.txt)
PumpkinToken : 2d6dbbae84d724409606eddd9dd71265
Como não há mais nada neste acesso inicial, podemos ir para o próximo serviço, o HTTP na porta 80.
Análise do serviço HTTP (porta 80)
Nesta etapa, vou testar a página web com o Browser, mas você pode escolher o software de sua preferência (como cURL, Burpsuite, etc).

Nesta página inicial, já temos uma mensagem de boas vindas e estamos sendo convocados para conseguir encontrar os tokens das abóboras.
(∩`-´)⊃━☆゚.*・。゚ Se você, assim como eu, também é fã de livros de fantasia, como os da autora J.K. Rowling, irá entender a exclamação “Alohomora!”, então vamos ao trabalho, as portas já estão abertas.
Analisando também o código-fonte, podemos procurar por informações que o programador possa ter deixado escapar, como um comentário no código, ou algum texto oculto na exibição normal.

E como imaginava, encontramos um texto escondido (não é comentário). Temos então mais um token encontrado.
Token 2 (HTTP:index.html)
PumpkinToken : 45d9ee7239bc6b0bb21d3f8e1c5faa52
Nesta parte, o único comentário interessante é o aviso, “Harry, encontre a abóbora”. Pode parecer que não temos muita coisa no momento, mas se você prestar atenção, já conseguimos nesta etapa, identificar possíveis usuários.
Possíveis usuários:
- Harry (harry)
- Jack (jack)
Se preferir, salve estes nomes em algum arquivo de texto para utilizar posteriormente.
echo -e "harry\njack" > usuários.txt
Com isto, podemos tentar um ataque de força bruta no SSH, por exemplo (ou mesmo FTP) e ver se conseguimos encontrar alguma senha.
Buscando por arquivos e diretórios (HTTP na porta 80)

Já identificamos anteriormente quatro diretórios com o Nmap. Estes foram encotrados quando a varredura inicial leu o arquivo “robots.txt”. Desta forma, podemos então tentar acessar cada sub-diretório.




Ao tentar acessar estas pastas, é retornado um erro “403 Forbidden ou 404 Not found”. Mas o arquivo “/store/track.txt”, além de um código de rastreio (que pode ser algo útil, ou apenas uma armalhadilha) possui também um endereço de e-mail: “admin@pumpkins.local”.
Não listamos nenhum serviço de e-mail com o Nmap na enumeração inicial, mas esta informação é importante para associarmos o domínio “pumpkins.local” ao endereço IP do alvo.
Muitas rotas virtuais são configuradas em servidores web para carregar suas páginas apenas com um nome domínio e não por endereços IP, por isso conhecer este domínio é tão importante.
Desta forma, podemos então acrescentar um novo endereço ao arquivo “/etc/hosts”.

E ao tentar acessar novamente a página web, nos deparamos com um CMS Wordpress. Além disso, conseguimos mais um token:

Token 3 (HTTP:Wordpress Home:pumpkins.local)
PumpkinToken : 06c3eb12ef2389e2752335beccfb2080
Continuando com a busca por arquivos e diretórios escondidos, utilizei o Gobuster para tentar encontrar algo novo (fique a vontade para utilizar o software de sua preferência) no IP alvo.
gobuster dir -u http://192.168.10.102/ -x php,html -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

Conforme você pode perceber, o retorno do Gobuster não é muito animador. ಠ_ಠ Trouxe as mesmas informações que já conhecíamos. Testei com outros softwares como o Dirb e DirSearch e os resultados foram quase os mesmos.
dirsearch -u http://192.168.10.102 -x 403,404,500 -e php,html,txt,jpg,gif,png,zip,tar,gz,gpg,pem -rR 5 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

O DirSearch identificou mais um token, dentro de “/tokens”.

Token 4 (HTTP:/tokens/token.txt)
PumpkinToken : 2c0e11d2200e2604587c331f02a7ebea
Daremos continuidade, analisando o “CMS Wordpress”.
Análise do CMS Wordpress (pumpkins.local)
Usei o Gobuster para escanear o Wordpress inicialmente e encontrar arquivos e pastas ocultas.

Além disso, já que a aplicação é um CMS com Wordpress, vamos utilizar um scanner criado para este fim: o WPScan.
Com o WPScan, vamos tentar enumerar todos os plugins, temas, vulnerabilidades e usuários conhecidos:
wpscan --url http://pumpkins.local/ --enumerate at,ap,u

Inicialmente já sabemos que há 14 vulnerabilidades para esta versão do Wordpress. Isso pode ser útil futuramente. Além disso, também já identificamos dois usuários: “admin” e “morse”.

O usuário “admin” já havíamos identificado anteriormente no arquivo “/store/track.txt”.
Também encontramos arquivos e pastas escondidas, que já haviam sido identificados na busca com o Gobuster.

Agora, podemos então analisar os arquivos encontrados nestas buscas. Particularmente analise o “/license.txt” e o “/readme.html”.

Com o “/license.txt” encontramos mais um token e com este já são cinco:
Token 5(HTTP:Wordpress:/license.txt)
PumpkinToken : 5ff346114d634a015ce413e1bc3d8d71
No arquivo “/readme.html”, temos ao que parece, uma informação cifrada em “BaseN”.

Eu cheguei a fazer uma verificação de “encode” com o “Hash Type Checker”, mas ele só reconheceu como sendo Base64, o que obviamente testando, não retorna nada (ou apresenta erro).
Cheguei a criar um script para decodar BaseN, mas por problemas com dependências, apresentou alguns erros. O autor desta máquina, me deu a dica de qual encoding era. Mas, como não gosto muito de fazer sem pensar um pouco, vamos encontrar a lógica para ‘base decoding’.
Decodando BaseN
A lógica aqui é a seguinte, isso é um “tipo de encode em BaseN”, mas não sabemos qual baseN, então após umas pesquisas no Google, encontrei o portal CyberChef.
Utilizando a opção “Data Format”, fui testando cada uma das funções e identifiquei um resultado com o Decode Base62 (from Base62).

Maravilha, conseguimos então algumas credenciais de acesso:
morse:Ug0t!TrIpyJ
jack:Ug0t!TrIpyJ
Com a enumeração de usuários do Wordpress, sabemos que há o “morse” e o “admin”. Portanto, o usuário “jack” deve ser para acesso via SSH ou FTP.
Obs: Já que temos algumas credenciais, não é necessário no momento, buscar algum exploit para este CMS. Tentaremos este procedimento, apenas se não conseguirmos acessar como “admin” esta aplicação.
Acessando o CMS Wordpress
http://pumpkins.local/wp-login.php
Como já temos as credenciais, basta acessar a área de login do Wordpress e realizar a tentativa:

Navegando entre as opções deste painel administrativo, identificamos um post do usuário “admin”, porém não temos permissão para leitura deste:

Analisando o título deste rascunho: “PumpkinToken”, sabemos que trata-se de outro token. Desta forma, para sua leitura, será necessário então “entrar com a conta administrativa”.
Em outra área deste painel, especificamente no perfil do usuário “morse” identificamos mais um token.

Token 6 (HTTP:Wordpress:/user:morse/profile.php)
PumpkinToken : 7139e925fd43618653e51f820bc6201b
Neste momento, daremos continuidade ao acesso dos serviços FTP e SSH. No final deste guia, irei mostrar algumas formas de obter acesso à conta do usuário “admin” e ler este token.
Análise do SSH (porta 6880)
Temos a senha de pelo um dos usuários que enumeramos anteriormente (jack, harry).
Usuário: jack
Senha: Ug0t!TrIpyJ
Assim, vamos então à tentativa de entrar no sistema:
ssh jack@pumpkins.local -p 6880

Infelizmente, o sistema retornou uma mensagem de erro: “Permissão negada”.
Houve algum problema com a “chave pública”??
Será que a senha que temos está errada??
Vamos tentar então um método de força bruta neste serviço, a fim de verificar se o problema é nossa senha ou não. Podemos utilizar o arquivo que criamos “usuários.txt”, contendo os nomes que enumeramos anteriormente: harry, jack.
hydra -e nsr -L usuários.txt -P /usr/share/wordlists/rockyou.txt pumpkins.local ssh -s 6880 -I -F

O erro informa que este serviço SSH (na porta 6880) não aceita autenticação por senhas, ou seja, mesmo que a senha esteja correta, não vamos conseguir acessar. Podemos enumerar então os métodos de autenticação permitidos neste alvo:
nmap -sV -p6880 --script ssh-auth-methods.nse pumpkins.local

De acordo com o relatório do Nmap, a única de forma disponível de acesso à este serviço é utilizando uma “chave pública”
O acesso por chave pública é um dos métodos que podem ser implementados em um servidor com SSH, para evitar por exemplo, ataques de força bruta. Se o acesso por chave pública estiver ativo, será necessário realizar a combinação de uma chave no computador cliente e no servidor. Clientes só serão autenticados se a combinação das chaves for positiva.
Desta forma, a única maneira de conseguirmos entrar nesta máquina via SSH, é utilizando a chave pública dos usuários permitidos. Portanto, neste momento, vamos tentar atacar o outro serviço: FTP.
Acesso via FTP (porta 21)
Já que não obtivemos sucesso com o SSH, vamos atacar o FTP e tentar algum acesso interno.
hydra -e nsr -L usuários.txt -P /usr/share/wordlists/rockyou.txt pumpkins.local ssh -s 6880 -I -F

Wow!! Que maravilha! Em poucos segundos conseguimos a senha do usuário “harry”!!
Usuário: harry
Senha: yrrah
Na sintaxe do comando acima, você também pode realizar o ataque sem o parâmetro “-e nsr” do Hydra. Com certeza irá conseguir a mesma senha, mas a diferença é que levará horas para isto.
Assim, vamos acessar e navegar neste serviço:

Wow guys!! Mais um token huahuahua
Token 7 (FTP:/home/harry/token.txt)
PumpkinToken : ba9fa9abf2be9373b7cbd9a6457f374e
Além disso, também há um outro diretório neste local: “Donotopen”. Sem perder tempo, vamos acessar e buscar informações neste local. E conforme entramos em diretórios e sub-diretórios colocados ali, provavelmente com o intuito de provocar desistência, chegamos ao arquivo “Donotopen/NO/NOO/NOOO/NOOOO/token.txt”, após o download deste arquivo para nossa máquina, percebemos ser mais um token e com este já são oito.

Token 8 (FTP:/home/harry/Donotopen/NO/NOO/NOOO/NOOOO/token.txt)
PumpkinToken : f9c5053d01e0dfc30066476ab0f0564c
Mas, o trabalho ainda não acabou, ainda há outras pastas aqui… (⊙_☉)

Encontramos mais um arquivo “data.txt”, dentro do diretório “Donotopen/NO/NOO/NOOO/NOOOO/NOOOOO/NOOOOOO”. Após o download deste arquivo e tentativa de sua leitura com o comando “cat”, percebemos que não é um arquivo comum.

Com o comando “file”, vamos analisar o tipo de arquivo verdadeiro:
file data.txt
data.txt: POSIX tar archive
Percebemos que a extensão do arquivo está errada (provavelmente para enganar o player). Desta forma, vamos extrair o conteúdo deste arquivo TAR, e repetir o procedimento com “file” até chegarmos ao final ლ(ಠ_ಠლ). Perceba na imagem abaixo, que passamos por algumas etapas, de: “extrai”, “verifica”, “extrai”, “verifica”:

Chegamos então ao último arquivo escondido: “jack” ಠᴗಠ. O comando “file” informou ser em texto comum, mas com linhas longas. E ao ler o conteúdo, confirmamos isso. Pelo que parece, temos uma estrutura de dados em Hexadecimal.

Com o próprio terminal, podemos decodificar estes dados, repassando a leitura do “cat” com o comando “xxd”:
cat jack | xxd -r -p

Temos uma boa notícia. Depois de “tanto girar”, encontramos uma chave privada do usuário jack e podemos tentar acessar o serviço de SSH com esta informação.
Exporte esta chave privada para um arquivo chamado “id_rsa” (nome padrão) dentro do diretório “.ssh” do usuário da máquina atacante.
Deve ser o usuário que irá iniciar a conexão SSH, por exemplo, se você vai iniciar a conexão via SSH e no momento está acessando como “uniaogeek”, então exporte para “/home/uniaogeek/.ssh/id_rsa”, caso esteja como “root”, então exporte para “/root/.ssh/id_rsa”.
Acesso via SSH (porta 6880)
Como estou como usuário “root” no Kali, a sintaxe para exportar a chave privada será:
cat jack | xxd -r -p > /root/.ssh/id_rsa
Em seguida, podemos tentar acessar o serviço SSH novamente.
ssh jack@pumpkins.local -p 6880

Putz!! Mais um erro?? (ᗒᗣᗕ)՞
Corrigindo permissões
Então, há uma mensagem de erro informando sobre as permissões do arquivo “id_rsa” que criamos agora a pouco. O sistema recomenda que sua permissão seja “0644”, por motivos de segurança. Porém, há outro problema aqui, estamos tentando acessar esta conta, com um usuário diferente do registrado com esta chave privada.
Em resumo… sou o usuário “root”, tentando acessar a conta do usuário “jack”.
Pensei em duas soluções neste momento, a primeira é criar um usuário chamado “jack” e exportar a chave para dentro de seu próprio diretório e configurar as permissões corretas e só então, com este usuário, tentar acessar o SSH. Outra solução é criar o usuário “jack” e apenas alterar o dono do arquivo “id_rsa” que criamos.
Assim, optei pela segunda solução apresentada.
useradd --no-create-home --no-user-group --shell=/bin/false jack
chown jack /root/.ssh/id_rsa

E agora sim, conseguimos acesso ao terminal com usuário jack.
Bypass do SSH Key
Para deletar o usuário que criamos na máquina atacante, você pode usar a sintaxe abaixo:
userdel --remove --force jack
Escalação de Privilégios
Agora que já conseguimos acessar um shell, podemos buscar por executáveis SUID/GUID ou por privilégios de SUDO, com o objetivo de encontrar alguma brecha para escalar privilégios.
Listando o conteúdo da pasta atual, temos um executável chamado “token” e que inclusive tem permissão de execução SUID.

Ao executar este binário, encontramos mais um token.

Token 9 (SSH:/home/jack/token)
PumpkinToken : 8d66ef0055b43d80c34917ec6c75f706
A fim de verificar a possibilidade de explorar este binário, podemos listar as permissões do SUDO:
sudo -l

O resultado não poderia ser mais do que satisfatório. O usuário “jack” pode executar o arquivo “alohomora” temporariamente como “root” utilizando o SUDO.
Observe que nem este arquivo, nem a pasta “pumpkins” existem dentro do diretório “/home/jack”. Então só precisamos criá-los, acrescentar alguma instrução e executar com o comando SUDO. Com isso, não é preciso tentar explorar o binário “token”.
mkdir /home/jack/pumpkins
echo "/bin/sh -i" > /home/jack/pumpkins/alohomora
chmod +x ~/pumpkins/alohomora
sudo ~/pumpkins/alohomora

Maravilha pessoal!! Agora estamos com permissões do usuário root!!
Foi mais fácil escalar privilégios do que chegar até aqui, concordam??
Neste momento, basta ler o “PumpkinFestival_Ticket”, que está no diretório do usuário “root”.


Conseguimos ler a última flag, o Ticket do Festival de Abóboras!!
Acabou?? ¯\_(⊙_ʖ⊙)_/¯
Ainda não… huahuahua ◔_◔
Isso por que ainda falta pegar um último token (que poderíamos ter encontrado antes)
Lembra??
Em busca do último token

Até este momento, só capturamos 9 (dos 10) tokens disponíveis nesta VM. Essa informação pode ser confirmada, lendo o banner do Ticket do Festival. Logo abaixo da abóbora, há a informação da quantidade total de tokens.
Não é difícil lembrar que, durante o acesso ao CMS Wordpress, enumeramos dois usuários: “admin” e “morse”, dos quais só conseguimos acesso à conta do usuário “morse”.
O último token, está em um rascunho de postagem do usuário admin.
Vou apresentar alguns métodos para chegar à este token, em resumo, outras maneiras de conseguir acesso à conta do usuário admin.
Acessando a conta “admin” (Método 1: Wordlist)
Como boa prática em algum ambiente web com formulário de login, é sempre interessante tentar gerar alguma wordlist, baseada em textos (strings) da própria página.
Utilizei o CeWL para gerar um dicionário de palavras baseado nas strings desta página inicial e utilizar em algum ataque, por exemplo.
cewl http://192.168.10.102/ -w wordlistPumpkin.txt
E por fim, tentar atacar o serviço. Aqui você pode utilizar o Hydra, Medusa, nCrack, Patator ou qualquer outro software de sua preferência. Vamos atacar o CMS Wordpress, mas a wordlist gerada poderia ser utilizar para tentar acessar qualquer serviço, tais como FTP ou SSH.
Com o WPScan vamos informar os usuários encontrados e a wordlist gerada:
wpscan -U admin -P wordlistPumpkin.txt --url http://pumpkins.local/

Infelizmente, nada positivo!!
Uma dica para CTFs: em minhas práticas, eu costumo personalizar wordlists quando a maneira tradicional comum não funciona. As vezes eu crio meu próprio script ou software e outras eu personalizo algum dicionário pré-existente.
Podemos utilizar as strings geradas com o CeWL e varrer uma wordlist maior (como a rockyou.txt) e buscar as variações destas palavras e por fim combinar este resultado em um novo dicionário mais robusto. Então, com esta informação em mente, criei o seguinte script:
for i in $(cat wordlistPumpkin.txt); do grep $i /usr/share/wordlists/rockyou.txt | grep -x '.\{4,15\}' >> wordlistPumpkin.txt; uniq wordlistPumpkin.txt | sort -o wordlistPumpkin.txt; done
A sintaxe acima, lê cada palavra do dicionário simples que criamos com o CeWL (36 palavras), repassa esta string para o comando “grep” que busca na wordlist “rockyou.txt” alguma correspondência que tenha de 4 à 15 caracteres e salva no arquivo “wordlistPumpkin.txt”. Depois elimina todas as ocorrências iguais e ordena o arquivo.

Desta forma, conseguimos reduzir o uso de um dicionário tão grande como a “boa e velha rockyou.txt”. Este dicionário novo ainda é grande, mas com muito menos strings do que a anterior e mais combinações do que a original gerada com o CeWL.
wpscan -U admin -P wordlistPumpkin.txt --url http://pumpkins.local/

Maravilha!! Sucesso em encontrar a senha para o “admin”.
Dependendo das configurações do seu computador, este processo poderá demorar vários minutos.
Se prestarmos atenção, a senha deste usuário é a saudação da página inicial:

Acessando a conta “admin” (Método 2: Update DB)
Sinceramente, este foi o método que utilizei neste desafio.
Após conseguir acesso ao terminal shell da VM alvo, podemos buscar pelo diretório do CMS Wordpress e tentar ler os arquivos de configuração do banco de dados.
A leitura destes arquivos também era possível via FTP.
Após listar o conteúdo dos sites disponíveis no diretório do Apache, encontramos o “web.conf” e sua leitura, trouxe a informação da localização deste site.
ls /etc/apache2/sites-available/
cat /etc/apache2/sites-available/web.conf

Agora que já conhecemos a pasta do Wordpress (só há ele mesmo). Vamos buscar pelo arquivo de configuração:
ls /home/web/*.php -lh

Após a leitura do conteúdo do arquivo “wp-config.php”, encontramos as credenciais de acesso ao banco de dados: “root:root”

O que podemos fazer com esta informação??
Podemos acessar o banco de dados e alterar a senha do usuário admin, por alguma que nós mesmos geramos ou temos controle.
mysql -uroot -p
Enter password: root


Abaixo segue a sintaxe utilizada para navegação e atualização dos dados da senha do usuário.
show databases;
use pumpkins;
show tables;
describe wp_users;
select user_login,user_pass from wp_users;


Selecionamos para exibição apenas as colunas que nos interessam da tabela “wp_users”. Neste caso as colunas “user_login” e “user_pass”. Aqui você pode separadamente criar uma senha nova para o usuário “admin” ou copiar a senha do usuário “morse”.
Copiar a senha é mais rápido, pois já identificamos ela anteriormente.
update wp_users
set
user_pass = '$P$BCvOKficMcCyBtPxjoiM8S8SFBfWUj1'
where
user_login = 'admin';
Agora basta acessar a conta do usuário “admin”, utilizando a mesma senha do usuário “morse”.
Acessando a conta “admin” (Método 3: Export DB Login/Pass Hash)
Neste método, imagine um ambiente do qual você não tenha a senha de nenhum dos usuários e não conheça o método utilizado para gerá-las.
Neste caso, se você conseguir acesso ao banco de dados da aplicação, poderá extrair as hashs e tentar quebrar com algum outro software como o John The Ripper (ou outro de sua preferência).
Acessar do DB, localizar as tabelas e colunas desejadas (login/pass) vamos extrair estas informações:
select concat_ws(':', user_login, user_pass) as 'Pumpkins User/Pass Wordpress' from wp_users;

Exporte estas informações coletadas para alguma pasta. Pode ser alguma do Wordpress, em que seja possível acesso externo, como a “uploads”.
select concat_ws(':', user_login, user_pass) from wp_users into outfile '/home/web/wp-content/uploads/credenciais.txt';

Infelizmente não foi possível a extração através do mysql, pois este está sendo executado com algumas opções de segurança. Porém, não impede que você copie manualmente as hashs e salve em algum arquivo na máquina atacante.
Após salvar em algum arquivo, utilize por exemplo o John The Ripper com alguma wordlist (pode ser a que você gerou), para tentar quebrar estas hashs.

Lendo o último Token
Independente do método utilizado para acessar a conta do usuário “admin”, após entrar no painel administrativo, busque por postagens. O token estará em um rascunho e assim, chegamos ao último token que faltava.
Token 10(HTTP:Wordpress/user admin:/wp-admin/post.php)
PumpkinToken : f2e00edc353309b40e1aed18e18ab2c4
Considerações finais
Escrever este artigo não foi fácil! huahuahua
Já peço que em sua leitura, se identificar algum erro, por favor me informe nos comentários que estarei corrigindo o mais breve possível.
E então, chegamos ao fim de uma série sensacional de desafios: Pumpkin Mission v1.0.
Mesmo não tendo por conta própria vencido este desafio, deve ter percebido que embora não seja algo tão comum em um ambiente real, a prática nos faz pensar diferente e sempre buscar por novas soluções.
Espero que este guia tenha contribuído para o seu aprendizado e conhecimentos e se possível compartilhe com a sua rede de amigos e parceiros.
Muito obrigado pela paciência em ler este passo a passo até o final!!
E ao autor Jayanth, mais uma vez, excelente desafio. Obrigado!!
Não esqueça: pense fora da caixa!!