
Configura um ambiente de teste isolado para experimentação com a vulnerabilidade Apache Struts CVE-2018-11776.
Cria um ambiente de teste isolado para experimentação com a vulnerabilidade CVE-2018-11776 do Apache Struts.
Para levantar o ambiente de teste, execute o seguinte comando:
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>
Obtenha os IPs da vítima e do atacante. Inicie sessões SSH em ambos:
# IP público da vítima
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`VictimPublicIp`].OutputValue' --output text
# IP público do atacante
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`AttackerPublicIp`].OutputValue' --output text
Obtenha o comando usado para verificar se a vítima é vulnerável. Execute-o na sessão do atacante:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`CheckVuln`].OutputValue' --output text
(Opcional) Obtenha o comando usado para verificar se o exploit funciona. Execute-o na sessão do atacante:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`RunExploit`].OutputValue' --output text
Configure a máquina do atacante para escutar túneis reversos:
nc -lvp 31337
Obtenha o comando usado para forçar a vítima a iniciar um túnel reverso para o atacante:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`RunReverseShell`].OutputValue' --output text
Abra uma sessão SSH adicional na máquina do atacante. Em seguida, execute o comando obtido no passo anterior.
Volte para a sessão do túnel reverso. Agora você tem acesso CLI à máquina da vítima.
Para destruir o ambiente de teste, execute o seguinte comando:
aws cloudformation delete-stack --stack-name <STACK_NAME>
Esta demonstração é baseada no código PoC hook-s3c's CVE-2018-11776-Python-PoC.