# AWS - EC2 永続化

{{#include ../../../../banners/hacktricks-training.md}}

## EC2

詳細については次を参照してください：

{{#ref}}
../../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/
{{#endref}}

### Security Group Connection Tracking の永続化

防御側が **EC2 instance was compromised** と判明した場合、通常はそのマシンの **network** を **isolate** しようとします。これは明示的な **Deny NACL**（ただし NACLs はサブネット全体に影響します）や、**changing the security group** によって **any kind of inbound or outbound** トラフィックを許可しないようにすることで実行できます。

攻撃者がマシンから発生した **reverse shell originated from the machine** を持っていた場合、SG が inboud または outbound トラフィックを許可しないように変更されても、[**Security Group Connection Tracking**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)** により接続は切断されません。**

### EC2 Lifecycle Manager

このサービスは **schedule** を設定して **creation of AMIs and snapshots** を行い、さらには **share them with other accounts** することも可能です。\
攻撃者はすべてのイメージやすべてのボリュームの **generation of AMIs or snapshots** を毎週行うよう設定し、**share them with his account** といったことができます。

### Scheduled Instances

インスタンスを daily、weekly、または monthly にスケジュールして実行することが可能です。攻撃者は高権限や興味深いアクセスを持つマシンをスケジュール実行し、そこからアクセスすることができます。

### Spot Fleet Request

Spot instances は通常のインスタンスより **cheaper** です。攻撃者は例えば **small spot fleet request for 5 year** のようなリクエストを立て、**automatic IP** 割当てと、起動時に攻撃者へ **when the spot instance start** と **IP address** を送信する **user data**、さらに **high privileged IAM role** を付与することができます。

### Backdoor Instances

攻撃者はインスタンスへアクセスし、バックドアを仕込むことができます：

- 例えば従来型の **rootkit** を使用する
- 新しい **public SSH key** を追加する（参照: [EC2 privesc options](../../aws-privilege-escalation/aws-ec2-privesc/README.md)）
- **User Data** をバックドア化する

### **Backdoor Launch Configuration**

- Backdoor the used AMI
- Backdoor the User Data
- Backdoor the Key Pair

### EC2 ReplaceRootVolume Task (Stealth Backdoor)

実行中のインスタンスのルート EBS ボリュームを、攻撃者管理下の AMI や snapshot から作成したものに置き換えるために `CreateReplaceRootVolumeTask` を使用します。インスタンスは ENIs、IPs、role を保持したまま起動するため、外見上は変わらずに悪意あるコードでブートします。

{{#ref}}
../aws-ec2-replace-root-volume-persistence/README.md
{{#endref}}

### VPN

攻撃者が VPC に直接接続できるようにするため、VPN を作成します。

### VPC Peering

被害者 VPC と攻撃者 VPC の間に peering connection を作成し、攻撃者が被害者 VPC にアクセスできるようにします。

{{#include ../../../../banners/hacktricks-training.md}}
