搭建一个隔离的测试环境,用于实验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代码。