
Apache Struts の脆弱性 CVE-2018-11776 の実験用に、隔離されたテスト環境を起動します。
Apache Struts の脆弱性 CVE-2018-11776 を実験するための分離されたテスト環境を起動します。
テスト環境を起動するには、次のコマンドを実行します:
aws cloudformation create-stack \
--template-body file://cfn.yml \
--stack-name <STACK_NAME> \
--parameters \
ParameterKey=Ec2KeyName,ParameterValue=<KEY_NAME> \
ParameterKey=Linux2Ami,ParameterValue=<AMAZON_LINUX2_AMI_ID>
被害者と攻撃者の IP を取得します。両方に SSH セッションを開始します:
# Victim public IP
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`VictimPublicIp`].OutputValue' --output text
# Attacker public IP
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`AttackerPublicIp`].OutputValue' --output text
被害者が脆弱かどうかを確認するために使用するコマンドを取得します。攻撃者セッションで実行します:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`CheckVuln`].OutputValue' --output text
(オプション) エクスプロイトが機能するかどうかを確認するために使用するコマンドを取得します。攻撃者セッションで実行します:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`RunExploit`].OutputValue' --output text
リバーストンネルを待ち受けるように攻撃者マシンを設定します:
nc -lvp 31337
被害者に攻撃者へのリバーストンネルを開始させるために使用するコマンドを取得します:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`RunReverseShell`].OutputValue' --output text
攻撃者マシンへの追加の SSH セッションを開きます。次に、前の手順で取得したコマンドを実行します。
リバーストンネルのセッションに戻ります。これで、被害者マシンへの CLI アクセスが可能になります。
テスト環境を破棄するには、次のコマンドを実行します:
aws cloudformation delete-stack --stack-name <STACK_NAME>
このデモは hook-s3c の CVE-2018-11776-Python-PoC PoC コードに基づいています。