Requisitos para el Envío de Máquinas

Oct 14, 2024

Requisitos de la máquina

Requisitos generales

  • El formato de la máquina debe ser OVA y haber sido exportada desde VMWare Workstation o VirtualBox.
  • La OVA debe contener un solo disco VMDK. Puedes comprobarlo con el comando tar -tf maquina.ova
  • Utilice únicamente dominios con el TLD .hjn, por ejemplo maquina.hjn.

  • Asegúrese de utilizar alguno de los siguientes sistemas operativos  (Windows 10/11, Windows Server 2016 hasta 2022, Ubuntu 18.04 hasta 23.04, Debian 10 hasta 12.4). Preferible utilizar últimas versiones.

  • A menos que la de explotación lo requiera, utilice un sistema operativo sin un entorno de escritorio con GUI. Por ejemplo, preferir Ubuntu Server en lugar de Ubuntu Desktop.

  • Asegúrese de que el sistema completamente actualizado a menos que se necesite una versión específica para un exploit.

  • No incluya ningún software comercial que requiera licencia (incluidas versiones de prueba).

  • Los nombres de usuario deben coincidir con los nombres del directorio de inicio de cada usuario. Por ejemplo, si el usuario se llama peter asegúrese de que el directorio de inicio de este usuario esté en /home/peter o C:\Users\peter.

  • Utilice la configuración regional inglés de EE. UU. para el teclado y el idioma del sistema.

  • Si la máquina tiene un sitio web, asegúrese de que esté presentado de manera realista (que el sitio web tenga sentido y un propósito específico). No lo utilice lorem ipsum para rellenar las páginas.

  • Asegúrese de que el nombre de la máquina coincida con el nombre del host (hostname).

  •  No utilice los siguientes caracteres en la contraseña del administrador: @ { } ' "

Requisitos específicos de Linux

  • Asegúrese de que el disco duro no tenga más de 10 GB o comuníquese con el personal para solicitar una excepción.

  • Redirigir cualquier archivo de historial a /dev/null (por ejemplo .bash_history, .mysql_history, .viminfo) a menos que lo necesite el vector de explotación y chown los archivos al usuario root.

 

Requisitos específicos de Windows

  • Asegúrese de que el disco duro no tenga más de 20 GB o comuníquese con el personal para solicitar una excepción.

  • Deshabilite el historial de comandos de PowerShell a menos que lo requiera el vector de explotación.

  • No te preocupes por activar Windows, ya que nosotros nos encargaremos de ello.


Flags

Las flags deben estar en formato MD5 (32 caracteres en hexadecimal)

Linux

  • Las flags deben estar ubicadas en /home/[user]/user.txt y /root/root.txt

  • La flag de usuario debe ser propiedad de root y del grupo de usuarios relevante. chown root:user user.txt

  • La flag del root debe ser propiedad del usuario root con chown root:root root.txt

  • Los permisos de la flag de usuario deben estar configurados en 644 con chmod 644 user.txt. Esto puede cambiar según la explotación.

  • Los permisos de la flag de root deben estar configurados en 640 con chmod 640 root.txt.

 

Windows

  • Las flags deben estar ubicadas en C:\users\[username]\desktop\user.txt y C:\Users\Administrator\Desktop\root.txt

 

Documentación

Por favor incluya:

  • Tutorial completo que muestra la via prevista para completar la máquina. Se proporciona una plantilla aquí . Incluya un formato editable del tutorial (Markdown, Word).

  • Credenciales para todos los usuarios (o al menos root y usuario con user.txt).

  • Descripción de los procesos importantes que se ejecutan en la máquina (es decir, el servidor HTTP que utiliza Flask, que se inicia mediante el servicio llamado flask.service).

  • Descripción de toda la automatización, incluidas copias de cualquier script que se ejecute en la máquina (crons, tareas programadas, etc.)

  • Detalles de cualquier regla de firewall.

  • Si utiliza Docker, incluya Dockerfiles y otros archivos de configuración para contenedores.

  • Código fuente para cualquier binario personalizado.

  • Cualquier detalle sobre cómo futuros parches podrían afectar la vía de explotación (es decir, no actualizar sudo, ya que la ruta de explotación requiere la vulnerabilidad de esta versión).

 

Mejores prácticas

Por favor:

  • Limite la RAM y la CPU a 2 GB y 2 CPU para Linux y 4 GB y 4 CPU para Windows, o comuníquese con el personal para solicitar una excepción.

  • Configurar la red a través de /etc/network/interfaces y eliminar netplan del sistema usando apt purge netplan nplan.io.

  • Intente mantener las máquinas realistas siempre que sea posible.

    • Intente que el código explotado exista por una razón válida.

    • No incluya cosas como todo.txt en un servidor web.

  • No incluyas rabbit holes sin una buena razón.

  • Asegúrate de que los hashes se descifren en menos de 5 minutos con hashcat y rockyou.txt, en caso de que estén destinados a descifrarse. Si están destinados a descifrarse con algún otro método (que no sea rockyou directamente), incluya pistas del método.

  • Al elegir contraseñas que no estén destinadas a ser descifradas, elija una contraseña segura (Compleja pero no tan difícil de escribir).

  • Asegúrese de que los directorios web se encuentren fácilmente con herramientas de búsqueda de directorios y listas de palabras comunes como directory-list-2.3-medium.txt o small.txt

  • No incluya nada inapropiado, troll, ofensivo, político o insultante.

  • Asegúrese de que no se requiere ningún otro tipo de ataque de fuerza bruta más que los mencionados anteriormente sin antes hablar con el personal.

  • Asegúrese de que el historial sea inmutable (redireccionar a /dev/null si esto no afecta la vía de la máquina)

  • Ejecute linuxprivchecker, linenum, LinPEAS o equivalente para confirmar que no existe ninguna vulnerabilidad o explotación no intencional.

  • No utilice elementos potencialmente inestables que puedan degradar la experiencia del usuario en un entorno compartido (es decir, una aplicación web donde se puede eliminar una página clave, un exploit de servicio que bloqueará el servidor web, acceso RDP, un exploit volátil, etc.)

 

Dificultad

Seleccione una dificultad según los siguientes criterios:

Fácil

  • Generalmente 2-3 pasos

  • CVE con script o Metasploit sin modificación

  • Camino claro desde el contexto/pistas, sin rabbit holes

  • Sin explotación binaria / RE

  • Solo se requieren los scripts más básicos

Media

  • Generalmente alrededor de 3 pasos

  • Explotación personalizada, pero sencilla

  • Camino claro desde el contexto/pistas, sin rabbit holes

  • Generando scripts simples

Difícil

  • Generalmente de 3 a 5 pasos, pero pueden ser más.

  • Explotación personalizada, encadenando diferentes vulnerabilidades, conceptos complejos.

  • Se permite una mayor enumeración, pero no se deben incluir rabbit holes sin sentido.

Insana

  • Generalmente son muchos pasos (5 o más), pero pueden ser tan cortos como 3 pasos realmente difíciles.

  • Todo vale en materia de explotación.

  • Se permiten rabbit holes que tengan un propósito. No hagas que las cosas sean difíciles solo por el hecho de ser difíciles.

Ejemplos de un paso:

  • Obtenga acceso a un sitio web protegido mediante inicio de sesión.

  • Obtener acceso a SMB / FTP / etc.

  • Obtener shell en la máquina .

  • Pasar de un usuario a otro