DO - Basic Information

Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Información Básica

DigitalOcean es una plataforma de computación en la nube que proporciona a los usuarios una variedad de servicios, incluidos servidores virtuales privados (VPS) y otros recursos para construir, implementar y gestionar aplicaciones. Los servicios de DigitalOcean están diseñados para ser simples y fáciles de usar, lo que los hace populares entre los desarrolladores y las pequeñas empresas.

Algunas de las características clave de DigitalOcean incluyen:

  • Servidores virtuales privados (VPS): DigitalOcean ofrece VPS que se pueden utilizar para alojar sitios web y aplicaciones. Estos VPS son conocidos por su simplicidad y facilidad de uso, y se pueden implementar rápidamente y fácilmente utilizando una variedad de "droplets" preconstruidos o configuraciones personalizadas.

  • Almacenamiento: DigitalOcean ofrece una variedad de opciones de almacenamiento, incluido almacenamiento de objetos, almacenamiento de bloques y bases de datos administradas, que se pueden utilizar para almacenar y gestionar datos para sitios web y aplicaciones.

  • Herramientas de desarrollo e implementación: DigitalOcean proporciona una variedad de herramientas que se pueden utilizar para construir, implementar y gestionar aplicaciones, incluidas APIs y droplets preconstruidos.

  • Seguridad: DigitalOcean pone un fuerte énfasis en la seguridad y ofrece una variedad de herramientas y funciones para ayudar a los usuarios a mantener seguros sus datos y aplicaciones. Esto incluye cifrado, copias de seguridad y otras medidas de seguridad.

En general, DigitalOcean es una plataforma de computación en la nube que proporciona a los usuarios las herramientas y recursos necesarios para construir, implementar y gestionar aplicaciones en la nube. Sus servicios están diseñados para ser simples y fáciles de usar, lo que los hace populares entre los desarrolladores y las pequeñas empresas.

Principales Diferencias con AWS

Una de las principales diferencias entre DigitalOcean y AWS es la gama de servicios que ofrecen. DigitalOcean se centra en proporcionar servidores virtuales privados (VPS), almacenamiento y herramientas de desarrollo y despliegue simples y fáciles de usar. AWS, por otro lado, ofrece una gama mucho más amplia de servicios, que incluyen VPS, almacenamiento, bases de datos, aprendizaje automático, análisis y muchos otros servicios. Esto significa que AWS es más adecuado para aplicaciones complejas a nivel empresarial, mientras que DigitalOcean es más adecuado para pequeñas empresas y desarrolladores.

Otra diferencia clave entre las dos plataformas es la estructura de precios. La estructura de precios de DigitalOcean generalmente es más directa y fácil de entender que la de AWS, con una variedad de planes de precios basados en el número de droplets y otros recursos utilizados. AWS, por otro lado, tiene una estructura de precios más compleja que se basa en una variedad de factores, incluido el tipo y la cantidad de recursos utilizados. Esto puede hacer que sea más difícil predecir los costos al usar AWS.

Jerarquía

Usuario

Un usuario es lo que esperas, un usuario. Puede crear equipos y ser miembro de diferentes equipos.

Equipo

Un equipo es un grupo de usuarios. Cuando un usuario crea un equipo, tiene el rol de propietario en ese equipo y, inicialmente, configura la información de facturación. Otros usuarios pueden ser invitados al equipo.

Dentro del equipo puede haber varios proyectos. Un proyecto es simplemente un conjunto de servicios en ejecución. Se puede utilizar para separar diferentes etapas de infraestructura, como producción, preparación, desarrollo...

Proyecto

Como se explicó, un proyecto es simplemente un contenedor para todos los servicios (droplets, espacios, bases de datos, kubernetes...) que se ejecutan juntos dentro de él. Un proyecto de Digital Ocean es muy similar a un proyecto de GCP sin IAM.

Permisos

Equipo

Básicamente, todos los miembros de un equipo tienen acceso a los recursos de DO en todos los proyectos creados dentro del equipo (con más o menos privilegios).

Roles

Cada usuario dentro de un equipo puede tener uno de los siguientes tres roles dentro de él:

RolRecursos CompartidosInformación de FacturaciónConfiguración del Equipo

Propietario

Acceso completo

Acceso completo

Acceso completo

Facturador

Sin acceso

Acceso completo

Sin acceso

Miembro

Acceso completo

Sin acceso

Sin acceso

El propietario y el miembro pueden listar los usuarios y verificar sus roles (el facturador no puede).

Acceso

Nombre de usuario + contraseña (MFA)

Como en la mayoría de las plataformas, para acceder a la GUI puedes usar un conjunto de nombre de usuario y contraseña válidos para acceder a los recursos en la nube. Una vez iniciada la sesión, puedes ver todos los equipos de los que eres parte en https://cloud.digitalocean.com/account/profile. Y puedes ver toda tu actividad en https://cloud.digitalocean.com/account/activity.

MFA se puede habilitar en un usuario y obligar a todos los usuarios en un equipo a usarlo para acceder al equipo.

Claves API

Para usar la API, los usuarios pueden generar claves API. Estas siempre vendrán con permisos de lectura, pero los permisos de escritura son opcionales. Las claves API se ven así:

dop_v1_1946a92309d6240274519275875bb3cb03c1695f60d47eaa1532916502361836

La herramienta de línea de comandos es doctl. Inicialízala (necesitas un token) con:

doctl auth init # Asks for the token
doctl auth init --context my-context # Login with a different token
doctl auth list # List accounts

Por defecto, este token se escribirá en texto claro en Mac en /Users/<username>/Library/Application Support/doctl/config.yaml.

Claves de acceso a Spaces

Estas son claves que dan acceso a los Spaces (como S3 en AWS o Storage en GCP).

Están compuestas por un nombre, un keyid y un secreto. Un ejemplo podría ser:

Name: key-example
Keyid: DO00ZW4FABSGZHAABGFX
Secret: 2JJ0CcQZ56qeFzAJ5GFUeeR4Dckarsh6EQSLm87MKlM

Aplicación OAuth

Las aplicaciones OAuth pueden recibir acceso sobre Digital Ocean.

Es posible crear aplicaciones OAuth en https://cloud.digitalocean.com/account/api/applications y verificar todas las aplicaciones OAuth permitidas en https://cloud.digitalocean.com/account/api/access.

Claves SSH

Es posible agregar claves SSH a un equipo de Digital Ocean desde la consola en https://cloud.digitalocean.com/account/security.

De esta manera, si creas un nuevo droplet, la clave SSH se establecerá en él y podrás iniciar sesión a través de SSH sin contraseña (ten en cuenta que las claves SSH recién cargadas no se establecen en droplets ya existentes por razones de seguridad).

Token de Autenticación de Funciones

La forma de activar una función a través de la API REST (siempre habilitada, es el método que utiliza la CLI) es enviando una solicitud con un token de autenticación como:

curl -X POST "https://faas-lon1-129376a7.doserverless.co/api/v1/namespaces/fn-c100c012-65bf-4040-1230-2183764b7c23/actions/functionname?blocking=true&result=true" \
-H "Content-Type: application/json" \
-H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg="

Registros

Registros de usuario

Los registros de un usuario se pueden encontrar en https://cloud.digitalocean.com/account/activity

Registros de equipo

Los registros de un equipo se pueden encontrar en https://cloud.digitalocean.com/account/security

Referencias

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización