Requisitos para el Envío de Máquinas
Oct 14, 2024Requisitos de la máquina
Requisitos generales
-
El formato de la máquina debe ser OVA y haber sido exportada desde
VMWare Workstation
oVirtualBox
. - 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
oC:\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 ychown
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
conchmod 644 user.txt
. Esto puede cambiar según la explotación. -
Los permisos de la flag de root deben estar configurados en
640
conchmod 640 root.txt
.
Windows
-
Las flags deben estar ubicadas en
C:\users\[username]\desktop\user.txt
yC:\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 eliminarnetplan
del sistema usandoapt 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
yrockyou.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
osmall.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
|
Media
|
Difícil
|
Insana
|
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