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-2022-22965 — Scripts de detecção e orientação para a vulnerabilidade CVE-2022-22965 (Spring4Shell) no Spring Framework, incluindo scanners em PowerShell e Bash para arquivos JAR/WAR vulneráveis e verificações de versão do JDK. | Kitploit
Ferramentas/GitHubGitHub/helsecert/cve-2022-22965
Análise EstáticaScanners de VulnerabilidadesAnálise de VulnerabilidadesAnálise de CódigoSegurança WebAprendizado e EducaçãoRecursos Curados
GitHubhelsecert/cve-2022-22965

CVE-2022-22965

Scripts de detecção e orientação para a vulnerabilidade CVE-2022-22965 (Spring4Shell) no Spring Framework, incluindo scanners em PowerShell e Bash para arquivos JAR/WAR vulneráveis e verificações de versão do JDK.

Ver Repositório
1há 4 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

Vulnerabilidades no Spring Framework - CVE-2022-22965

Lista de software que é / não é vulnerável

https://github.com/NCSC-NL/spring4shell/blob/main/software/README.md

Encontrar código vulnerável

Pré-requisitos para ser vulnerável ao CVE-2022-22965:

1) Uso do Spring Framework

Veja os scripts PowerShell e bash mais abaixo.

2) As versões do Spring Framework devem ser vulneráveis, isso se aplica basicamente a todas as versões anteriores a 5.3.18 e 5.2.20.

Hilko Bengen publicou um scanner que procura por versões vulneráveis do CachedIntrospectionResults.class com base nas versões aqui: https://github.com/hillu/local-spring-vuln-scanner

3) Uso de JDK9 ou superior, e que se execute JRE 9 ou superior.

Isso pode ser descoberto executando:

root@kitploit:~
java -version

nos sistemas relevantes.

Note que aplicações Java podem ser executadas de várias maneiras diferentes, e podem ter várias versões diferentes instaladas simultaneamente. Para ter certeza de qual versão do Java está em execução, pode-se primeiro identificar de onde o binário Java está sendo executado e depois verificar qual versão o referido binário Java possui.

No Linux, isso pode ser feito executando:

root@kitploit:~
ps aux | grep java

onde se encontra, por exemplo, /usr/lib/jvm/java-11-openjdk-amd64/bin/java, e pode-se então executar o seguinte comando usando o caminho absoluto:

root@kitploit:~
$ /usr/lib/jvm/java-11-openjdk-amd64/bin/java -version
openjdk version "11.0.14.1" 2022-02-08
OpenJDK Runtime Environment (build 11.0.14.1+1-Ubuntu-0ubuntu1.18.04)
OpenJDK 64-Bit Server VM (build 11.0.14.1+1-Ubuntu-0ubuntu1.18.04, mixed mode, sharing)

Da mesma forma no Windows, pode-se encontrar o caminho absoluto para processos Java em execução usando WMI ou PowerShell:

root@kitploit:~
WMI: C:\> wmic process where "name='java.exe'" get ExecutablePath
PowerShell: PS C:\> Get-Process java | Select-Object Path

4) O código que utiliza o Spring Framework também deve usar determinados métodos com determinados parâmetros para que um atacante possa explorar a vulnerabilidade.

A JFrog publicou código Python que identifica o uso disso, e isso pode ser usado diretamente em programas Java compilados sem necessidade de extrair arquivos .jar/.war: https://github.com/jfrog/jfrog-spring-tools

Quanto à identificação do Spring Framework no sistema, isso depende de qual sistema operacional está em execução:

Windows

Os seguintes scripts PowerShell para encontrar aplicações potencialmente vulneráveis, ou seja, aplicações que utilizam ou são baseadas no Spring Framework. Note que estes scripts não distinguirão versões atualizadas ou não, mas identificarão sistemas que provavelmente podem ter a vulnerabilidade atualmente, conforme ponto 1 acima.

Pesquise por spring-beans*.jar e cachedintrospectionresults.class em arquivos *.war no sistema:

root@kitploit:~
$SearchName = "*.war"
$Drives = Get-WmiObject Win32_LogicalDisk -Filter 'DriveType=3' | Select -ExpandProperty DeviceID
#$Drives = Get-CimInstance Win32_LogicalDisk -Filter 'DriveType=3' | Select-Object -ExpandProperty DeviceID 
#powershell version 6

$Vulnerable = $false
$entries = @()
$hits = @()
$search1 = "spring-beans*.jar"
$search2 = "cachedintrospectionresults.class"
Foreach ($drive in $drives) {
    $SearchDir = "$drive\"
    $wars= (&cmd /c pushd $searchDir `& robocopy /l "$searchDir" null "$searchName" /ns /njh /njs /np /nc /ndl /xjd /mt /s)  -replace '^\s+|\s+$'
        
    Foreach ($war in $wars){
        If($war) {
            #$war
            Add-Type -AssemblyName System.IO.Compression
            Add-Type -AssemblyName System.IO.Compression.FileSystem
            $entries = ([System.IO.Compression.ZipArchive](https://github.com/helsecert/cve-2022-22965/blob/HEAD/%5BSystem.IO.Compression.ZipFile%5D::OpenRead($war))).Entries
            foreach ($entry in $entries){
                if ($entry.Name -like $search1) {
                    "$($war)\$($entry.FullName)"
                    $hits = $hits +1
                    }
                if ($entry.Name -like $search2) {
                    "$($war)\$($entry.FullName)"
                    $hits = $hits +1
                    }
                }
            
        }
    
    }
    
}
If ($hits){ "Vulnerable" }
Else { "Compliant" }

Além disso, pesquisar por cachedintrospectionresults.class em todos os arquivos .jar é útil, e sabemos que nem sempre é o spring-beans*.jar que contém esta classe.

root@kitploit:~
$SearchName = "*.jar"
$Drives = Get-WmiObject Win32_LogicalDisk -Filter 'DriveType=3' | Select -ExpandProperty DeviceID
#$Drives = Get-CimInstance Win32_LogicalDisk -Filter 'DriveType=3' | Select-Object -ExpandProperty DeviceID 
#powershell version 6

$Vulnerable = $false
$entries = @()
$hits = @()
$search1 = "cachedintrospectionresults.class"
Foreach ($drive in $drives) {
    $SearchDir = "$drive\"
    $wars= (&cmd /c pushd $searchDir `& robocopy /l "$searchDir" null "$searchName" /ns /njh /njs /np /nc /ndl /xjd /mt /s)  -replace '^\s+|\s+$'
        
    Foreach ($war in $wars){
        If($war) {
            #$war
            Add-Type -AssemblyName System.IO.Compression
            Add-Type -AssemblyName System.IO.Compression.FileSystem
            $entries = ([System.IO.Compression.ZipArchive](https://github.com/helsecert/cve-2022-22965/blob/HEAD/%5BSystem.IO.Compression.ZipFile%5D::OpenRead($war))).Entries
            foreach ($entry in $entries){
                if ($entry.Name -like $search1) {
                    "$($war)\$($entry.FullName)"
                    $hits = $hits +1
                    }
                }
            
        }
    
    }
    
}
If ($hits){ "Vulnerable" }
Else { "Compliant" }

Linux

Para pesquisa no Linux, pode-se procurar pela classe cachedintrospectionresults.class em todos os arquivos .jar e .war no disco, bem como procurar por spring-beans*.jar em arquivos *.war:

root@kitploit:~
find / -name '*.jar' -exec grep -Fi 'cachedintrospectionresults.class' {} \;
find / -name '*.war' -exec grep -Ei 'cachedintrospectionresults\.class|spring-beans.*\.jar' {} \;

bem como procurar pelo mesmo nome de classe em arquivos .jar que estão dentro de arquivos .war:

root@kitploit:~
#!/bin/bash

find / -name '*.war' -print0 2>/dev/null -print0 | while read -d $'\0' spring; do
        echo -en "${spring}: "$(unzip -p "${spring}" '*.jar' | strings | grep -Fi 'cachedintrospectionresults.class' | awk '{ print $NF }')"\n"
done
exit 0

Recursos

https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement

https://www.praetorian.com/blog/spring-core-jdk9-rce/

https://bugalert.org/content/notices/2022-03-30-spring.html

https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/

https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/

Baixar ferramenta