Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-22965 | Kitploit
ツール/GitHubGitHub/helsecert/cve-2022-22965
静的分析脆弱性スキャナー脆弱性分析コード分析ウェブセキュリティ学習と教育厳選リソース
GitHubhelsecert/cve-2022-22965

CVE-2022-22965

リポジトリを見る
14年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Spring Frameworkの脆弱性 - CVE-2022-22965

脆弱性のある/ないソフトウェアの一覧

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

脆弱なコードの特定

CVE-2022-22965に対して脆弱であるための前提条件:

1) Spring Frameworkの使用

以下のPowershellおよびbashスクリプトを参照してください。

2) Spring Frameworkのバージョンが脆弱でなければならない。基本的に5.3.18および5.2.20より前のすべてのバージョンが対象となる。

Hilko Bengen氏は、CachedIntrospectionResults.classの脆弱なバージョンを検索するスキャナーを公開しています: https://github.com/hillu/local-spring-vuln-scanner

3) JDK9以降を使用し、JRE 9以降を実行していること。

これは次のコマンドを実行して確認できます:

root@kitploit:~
java -version

該当するシステム上で。

Javaアプリケーションはさまざまな方法で実行でき、複数の異なるバージョンが同時にインストールされている場合があります。実行中のJavaバージョンを確実に確認するには、まずjavaバイナリがどこから実行されているかを特定し、次にそのjavaバイナリのバージョンを確認します。

Linuxでは、次のコマンドを実行して確認できます:

root@kitploit:~
ps aux | grep java

ここで、例えば /usr/lib/jvm/java-11-openjdk-amd64/bin/java が見つかります。その場合は、絶対パスを使用して次のコマンドを実行できます:

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)

同様にWindowsでは、WMIまたはPowershellを使用して、実行中のjavaプロセスの絶対パスを確認できます:

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

4) 攻撃者が脆弱性を悪用するには、Spring Frameworkを使用するコードが、特定のパラメータを持つ特定のメソッドも使用している必要があります。

JFrogはこの使用を識別するPythonコードを公開しており、これをコンパイル済みJavaプログラムに直接使用できるため、.jar/.warファイルを展開する必要はありません: https://github.com/jfrog/jfrog-spring-tools

システム上のSpring Frameworkの識別については、実行中のオペレーティングシステムによって異なります:

Windows

以下は、潜在的に脆弱なアプリケーション、つまりSpring Frameworkを使用する、またはSpring Frameworkに基づくアプリケーションを検出するPowershellスクリプトです。これらのスクリプトは更新済みバージョンかどうかを区別しないことに注意してください。ただし、上記の項目1を参照すると、現在この脆弱性が存在する可能性が高いシステムを特定します。

検索: spring-beans*.jar と cachedintrospectionresults.class を *.war ファイル`システム上で:

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" }

さらに、すべての .jar ファイルにわたって cachedintrospectionresults.class を検索することも有用です。このクラスを含むのが常に spring-beans*.jar であるとは限らないことがわかっています。

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

Linuxでの検索では、ディスク上のすべての .jar および .war ファイル内の cachedintrospectionresults.class クラスを探し、さらに *.war ファイル内の spring-beans*.jar を探すことができます:

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

また、同じクラス名を .jar ファイル(.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

リソース

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/

ツールをダウンロード