GhostAcademy
GhostAcademy
VirtualBox + Guest Additions — Guía Completa
Manual Completo
VirtualBox + Guest Additions
Virtualización desde Cero

Oracle VirtualBox es el hypervisor de tipo 2 más popular del mundo. Gratuito, open source y disponible para Windows, Linux y macOS. Permite ejecutar sistemas operativos virtuales (VMs) sobre el sistema operativo anfitrión, con acceso a casi todo el hardware del host.

¿Por qué VirtualBox para ciberseguridad?

VirtualBox es la herramienta de referencia en formación de ciberseguridad: permite tener un entorno Kali Linux aislado, crear redes de laboratorio con múltiples máquinas, hacer snapshots antes de cada práctica y destruir VMs comprometidas en segundos. Todo esto sin afectar al sistema operativo anfitrión.

🆓
Licencia
Gratuito y Open Source
GPL v2. Sin límite de VMs, sin restricciones de uso. La extensión pack añade USB 2/3 y RDP (PUEL para uso personal).
virtualbox.org
🖥
Host OS
Windows, Linux, macOS
Corre en cualquier sistema operativo moderno como aplicación normal. No requiere modificar el bootloader ni el sistema.
Tipo 2 Hypervisor
🌐
Red
5 modos de red
NAT, Bridged, Host-Only, Internal Network e NAT Network. Permite crear redes de laboratorio complejas y aisladas.
Flexible
🟢
Guest Additions
Integración completa
Driver especial que instala en el guest: pantalla dinámica, portapapeles compartido, carpetas compartidas, drag&drop y puntero integrado.
Imprescindible
📸
Snapshots
Punto de restauración
Guardar el estado exacto de la VM en cualquier momento. Restaurar en segundos si algo sale mal en un laboratorio.
Crítico para labs
📦
Portabilidad
Exportar e importar OVA
Empaquetar una VM completa como archivo .ova y compartirla. Kali Linux, Metasploitable y otras ya vienen en formato OVA.
OVA / OVF
Fundamentos — 01
⚙️ Instalación de VirtualBox

Instalar VirtualBox y el Extension Pack en Windows, Linux y macOS. El Extension Pack añade soporte para USB 2.0/3.0, arranque desde red (PXE) y cifrado de disco de VM.

Windows — Instalación

Windows — Instalación paso a paso
# 1. Descargar el instalador desde la web oficial
#    https://www.virtualbox.org/wiki/Downloads
#    → VirtualBox X.X.X platform packages → Windows hosts

# 2. Ejecutar el instalador .exe como Administrador
#    Aceptar el asistente con las opciones por defecto
#    Instalar: Core + Python bindings + Network interfaces

# 3. Durante la instalación advertirá sobre red (normal)
#    "The network connection will be temporarily interrupted"
#    Aceptar — instalará adaptadores de red virtuales

# 4. Instalar el Extension Pack (recomendado)
#    Descargar: VirtualBox X.X.X Oracle VM VirtualBox Extension Pack
#    Doble clic en el .vbox-extpack → VirtualBox lo instalará automáticamente

# 5. Verificar instalación
VBoxManage --version
7.0.14r161095

# Alternativa con winget (Windows 11)
winget install Oracle.VirtualBox

Linux — Instalación (Ubuntu/Debian)

BASH — Ubuntu/Debian/Kali
# Método 1: Repositorio oficial de Oracle (recomendado — última versión)
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | \
  sudo gpg --dearmor -o /usr/share/keyrings/virtualbox.gpg

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/virtualbox.gpg] \
  https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | \
  sudo tee /etc/apt/sources.list.d/virtualbox.list

sudo apt update && sudo apt install virtualbox-7.0 -y

# Añadir el usuario al grupo vboxusers (necesario para USB)
sudo usermod -aG vboxusers $USER && newgrp vboxusers

# Método 2: apt repos de distribución (versión más antigua pero simple)
sudo apt install virtualbox virtualbox-ext-pack -y

# Instalar Extension Pack manualmente
VERSION=$(VBoxManage --version | cut -d'r' -f1)
wget "https://download.virtualbox.org/virtualbox/$VERSION/Oracle_VM_VirtualBox_Extension_Pack-$VERSION.vbox-extpack"
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$VERSION.vbox-extpack

# Verificar Extension Pack instalado
VBoxManage list extpacks
Extension Packs: 1
Pack no. 0:   Oracle VM VirtualBox Extension Pack
Version:      7.0.14
Usable:       true

macOS — Instalación

BASH — macOS (Homebrew o instalador)
# Homebrew (recomendado)
brew install --cask virtualbox
brew install --cask virtualbox-extension-pack

# Instalador manual: descargar .dmg desde virtualbox.org
# Montar el .dmg → ejecutar VirtualBox.pkg
# IMPORTANTE: en macOS necesita permiso en
# Ajustes del Sistema → Privacidad y Seguridad → Extensiones del Kernel

# macOS Apple Silicon (M1/M2/M3)
# VirtualBox 7.0+ tiene soporte experimental para ARM
# Alternativa recomendada para M-series: UTM (gratis) o VMware Fusion (de pago)
⚠ macOS Apple Silicon (M1/M2/M3)VirtualBox tiene soporte limitado en chips Apple Silicon. Para laboratorios de ciberseguridad en Mac M-series, considerar UTM (gratuito) o VMware Fusion Pro (gratuito para uso personal desde 2024). En Intel Mac funciona perfectamente.
Fundamentos — 02
🖥 Crear la Primera VM

Guía paso a paso para crear una nueva máquina virtual desde cero: desde el asistente de creación hasta el primer arranque con una ISO.

1
Abrir VirtualBox y hacer clic en "Nueva"
Menú Máquina → Nueva (Ctrl+N). Aparece el asistente de creación. Nombre de la VM, carpeta donde se guardará y tipo de OS.
2
Configurar nombre y sistema operativo
Nombre: identificativo (ej: "Kali-2024"), Tipo: Linux, Versión: Debian (64-bit). Si seleccionas la ISO aquí, VirtualBox detecta el OS automáticamente.
3
Asignar RAM y CPUs
RAM recomendada: al menos 2 GB para Linux de escritorio, 4 GB para Kali. CPUs: 2 núcleos mínimo. No superar el 50% del hardware físico disponible.
4
Crear disco duro virtual
Tipo VDI (formato nativo de VirtualBox), asignación dinámica (crece conforme se usa). Tamaño recomendado: 25 GB para Kali, 50 GB si habrá herramientas pesadas.
5
Revisar el resumen y crear
VirtualBox muestra el resumen completo. Hacer clic en "Terminar". La VM aparece en el panel lateral, lista para arrancar.

VM Típica para Laboratorio de Ciberseguridad

🐉 Kali-2024-Lab Kali Linux 2024.x x64
RAM
4096 MB
CPUs
2 vCPUs
Disco
50 GB VDI
Video
128 MB VMSVGA
Red
NAT + Host-Only
Portapapeles
Bidireccional
Configuración — 01
🔧 CPU, RAM y Almacenamiento

Ajustar correctamente los recursos de la VM es clave para el rendimiento. Demasiado pocos recursos y la VM va lenta; demasiados y el host se resiente.

Recomendaciones de CPU y RAM

Sistema GuestRAM mínimaRAM recomendadaCPUsDisco
Kali Linux (escritorio)2 GB4 GB230-50 GB
Ubuntu Desktop2 GB4 GB225 GB
Ubuntu Server / Debian512 MB1-2 GB1-215 GB
Windows 10/114 GB8 GB2-460 GB
Windows Server2 GB4 GB240 GB
Metasploitable 2/3512 MB1 GB110 GB
VBoxManage — Configurar recursos desde CLI
# Modificar RAM de una VM existente (debe estar apagada)
VBoxManage modifyvm "Kali-2024-Lab" --memory 4096

# Modificar número de CPUs
VBoxManage modifyvm "Kali-2024-Lab" --cpus 2

# Habilitar VT-x/AMD-V (aceleración de hardware)
VBoxManage modifyvm "Kali-2024-Lab" --hwvirtex on

# Habilitar PAE/NX (recomendado para Linux 64-bit)
VBoxManage modifyvm "Kali-2024-Lab" --pae on

# Habilitar anidamiento de virtualización (para correr VMs dentro de VMs)
VBoxManage modifyvm "Kali-2024-Lab" --nested-hw-virt on

# Crear un disco virtual nuevo
VBoxManage createhd --filename "~/VMs/disco_extra.vdi" --size 20480 --format VDI

# Adjuntar disco extra a una VM
VBoxManage storageattach "Kali-2024-Lab" --storagectl "SATA Controller" \
  --port 1 --device 0 --type hdd --medium "~/VMs/disco_extra.vdi"

# Expandir disco virtual (la VM debe estar apagada)
VBoxManage modifyhd "~/VMs/disco.vdi" --resize 61440  # 60 GB
💡 Aceleración por hardwareAsegúrate de que VT-x (Intel) o AMD-V (AMD) está habilitado en la BIOS/UEFI del host. Sin esto, las VMs de 64 bits no arrancan. En Windows: Task Manager → Performance → CPU → "Virtualization: Enabled".
Configuración — 02
🌐 Modos de Red

La configuración de red es la más importante para laboratorios de ciberseguridad. VirtualBox ofrece cinco modos con comportamientos completamente distintos. Elegir el correcto es fundamental para cada escenario.

🌍
NAT
La VM comparte la IP del host para salir a Internet. El host NO puede contactar a la VM directamente. Cada VM tiene su propia red aislada.
Uso: Internet desde VM, sin exposición
🔀
NAT Network
Como NAT pero varias VMs comparten la misma red y se pueden ver entre sí. Perfecta para labs con varios equipos que necesitan Internet.
Uso: Lab multi-VM con Internet
🔌
Bridged
La VM aparece como un equipo más en la red física. Obtiene IP del router real. El host y la VM se ven mutuamente. Útil para exposición en LAN real.
Uso: VM integrada en red física
🏠
Host-Only
Red privada entre el host y la(s) VM(s). Sin acceso a Internet. Host y VMs se comunican entre sí. Perfecta para labs de pentesting aislados.
Uso: Labs aislados de Internet
🔒
Internal Network
Red completamente aislada solo entre VMs. El host NO tiene acceso. Máximo aislamiento para entornos de malware o tests extremos.
Uso: Entornos totalmente aislados

Configuración de Red Recomendada para Labs

EscenarioAdaptador 1Adaptador 2Por qué
Kali para pentestingNAT (Internet)Host-Only (lab)Internet para actualizaciones + acceso al lab
Target vulnerable (Metasploitable)Host-Only—Aislada de Internet, accesible desde Kali
Lab multi-VM con InternetNAT Network—Todas las VMs se ven y tienen Internet
Windows con dominio ADNAT (Internet)Internal Network (dominio)Actualizaciones + red de dominio aislada
VBoxManage — Configurar red desde CLI
# Crear una NAT Network para el lab (compartida entre varias VMs)
VBoxManage natnetwork add --netname "LabNet" --network "10.10.10.0/24" --enable --dhcp on

# Asignar NAT Network a una VM
VBoxManage modifyvm "Kali-2024-Lab" --nic1 natnetwork --nat-network1 "LabNet"

# Crear red Host-Only (si no existe)
VBoxManage hostonlyif create
Interface 'vboxnet0' was successfully created

# Configurar DHCP en la red Host-Only
VBoxManage dhcpserver add --ifname vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0 \
  --lowerip 192.168.56.101 --upperip 192.168.56.200 --enable

# Asignar Host-Only como segundo adaptador
VBoxManage modifyvm "Kali-2024-Lab" --nic2 hostonly --hostonlyadapter2 "vboxnet0"

# Ver todas las interfaces de red configuradas
VBoxManage showvminfo "Kali-2024-Lab" | grep -i "nic"
Configuración — 03
💾 Discos Virtuales e ISO

Gestionar el almacenamiento de las VMs: tipos de disco virtual, cómo montar ISOs para instalación y cómo usar unidades ópticas virtuales.

VirtualBox GUI + VBoxManage — Gestión de almacenamiento
## MONTAR ISO PARA INSTALACIÓN
# En la GUI: Configuración VM → Almacenamiento → Controlador IDE → Icono CD → Elegir archivo
# Via VBoxManage:
VBoxManage storageattach "Kali-2024-Lab" \
  --storagectl "IDE Controller" \
  --port 0 --device 0 \
  --type dvddrive \
  --medium "/home/user/Downloads/kali-linux-2024.3-installer-amd64.iso"

# Desmontar ISO (después de instalar)
VBoxManage storageattach "Kali-2024-Lab" \
  --storagectl "IDE Controller" \
  --port 0 --device 0 \
  --type dvddrive --medium emptydrive

## TIPOS DE DISCO VIRTUAL
VDI  → Formato nativo VirtualBox. Soporte completo de snapshots
VMDK → Formato VMware. Compatible con VMware si necesitas migrar
VHD  → Formato Microsoft Hyper-V
RAW  → Imagen de disco sin formato (máximo rendimiento, sin snapshots)

## CONVERTIR ENTRE FORMATOS
VBoxManage clonemedium disk.vdi disk.vmdk --format VMDK
VBoxManage clonemedium disk.vmdk disk.vdi --format VDI

## VER TODOS LOS DISCOS VIRTUALES REGISTRADOS
VBoxManage list hdds

## COMPACTAR DISCO (liberar espacio del archivo VDI)
# Primero: dentro de la VM, hacer cero los bloques vacíos
# Linux guest:
sudo dd if=/dev/zero of=/tmp/zeros bs=4M; rm /tmp/zeros
# Luego desde el host (VM apagada):
VBoxManage modifyhd "ruta/al/disco.vdi" --compact
Configuración — 04
🖥 Pantalla y Video

Configurar correctamente la pantalla virtual para obtener resoluciones altas, aceleración 2D/3D y múltiples monitores. Sin Guest Additions, la resolución está limitada.

VBoxManage — Configuración de pantalla
# Asignar 128 MB de VRAM (recomendado con Guest Additions)
VBoxManage modifyvm "Kali-2024-Lab" --vram 128

# Seleccionar controlador gráfico (VMSVGA para Linux, VBoxSVGA para Windows)
VBoxManage modifyvm "Kali-2024-Lab" --graphicscontroller vmsvga

# Habilitar aceleración 3D (requiere Guest Additions)
VBoxManage modifyvm "Kali-2024-Lab" --accelerate3d on

# Configurar número de monitores virtuales
VBoxManage modifyvm "Kali-2024-Lab" --monitorcount 2

# Establecer resolución desde el host (útil sin Guest Additions)
VBoxManage controlvm "Kali-2024-Lab" setvideomodehint 1920 1080 32

# Escalar la pantalla de la VM al tamaño de la ventana
# En la GUI: Ver → Escalar pantalla → 200%
# O en pantalla completa con Guest Additions instaladas
🟢 Sin Guest AdditionsSin las Guest Additions, la resolución máxima suele estar limitada a 1024×768 o similar, no hay pantalla completa real y el rendimiento gráfico es pobre. Instalar las Guest Additions es el primer paso tras instalar el sistema operativo guest.
Guest Additions — 01
🟢 ¿Qué son las Guest Additions?

Las VirtualBox Guest Additions son un conjunto de drivers y aplicaciones que se instalan dentro del sistema operativo guest (invitado). Transforman completamente la experiencia de uso de la VM.

📐
Pantalla
Resolución dinámica
La resolución de la VM se ajusta automáticamente al tamaño de la ventana de VirtualBox o al monitor completo en modo pantalla completa.
Automático
📋
Integración
Portapapeles compartido
Copiar y pegar texto e imágenes entre el host y el guest en ambas direcciones. Configurable: desactivado, solo host→VM, solo VM→host, o bidireccional.
Bidireccional
🖱
Puntero
Mouse integrado
El cursor entra y sale de la VM sin necesitar capturar/liberar el ratón con Ctrl+Alt. Experiencia fluida como en el sistema nativo.
Sin Host Key
📁
Ficheros
Carpetas compartidas
Compartir directorios del host con el guest. Aparecen como unidad de red en Windows o punto de montaje en Linux.
Bidireccional
🖱
Drag & Drop
Arrastrar archivos
Arrastrar archivos entre el host y la VM. Copiar ficheros directamente sin pasar por carpetas compartidas.
Host↔VM
⏱
Sistema
Sincronización horaria
El reloj del guest se sincroniza automáticamente con el del host. Evita problemas de Kerberos/AD por desfase horario.
Automático
💡 Lo primero tras instalar el OSNada más instalar el sistema operativo en la VM, lo primero que debes hacer es instalar las Guest Additions. Todo lo demás — carpetas compartidas, portapapeles, pantalla completa — depende de ellas.
Guest Additions — 02
🪟 Instalar Guest Additions en Windows Guest

Proceso de instalación de las Guest Additions en una VM con Windows. Simple y automatizado gracias al instalador oficial incluido en VirtualBox.

1
Montar el disco de Guest Additions
Con la VM Windows arrancada y sesión iniciada: menú de VirtualBox → Dispositivos → Insertar imagen de CD de las Guest Additions. Se monta un CD virtual con el instalador.
2
Ejecutar el instalador
En el explorador de Windows verás una unidad nueva (normalmente D: o E:). Hacer doble clic en VBoxWindowsAdditions.exe. Aceptar UAC y el asistente con opciones por defecto.
3
Reiniciar la VM
El instalador pedirá reiniciar. Hacerlo. Al volver a iniciar sesión, la resolución ya se adaptará a la ventana y el ratón estará integrado.
4
Verificar la instalación
Panel de Control → Dispositivos → Ver si "VirtualBox Guest Additions" aparece como programa instalado. O probar a redimensionar la ventana de VirtualBox — la resolución debe adaptarse.
CMD — Verificar Guest Additions en Windows guest
# Verificar que el servicio de Guest Additions está corriendo
sc query VBoxService
SERVICE_NAME: VBoxService
TYPE               : 10  WIN32_OWN_PROCESS
STATE              : 4  RUNNING    ← correcto

# Ver versión instalada
reg query "HKLM\SOFTWARE\Oracle\VirtualBox Guest Additions" /v Version
Version    REG_SZ    7.0.14

# Desde PowerShell
Get-Service VBoxService | Select-Object Status, DisplayName
Status  DisplayName
------  -----------
Running VirtualBox Guest Additions Service

# Si el CD no se monta automáticamente, forzar desde el host
VBoxManage storageattach "Windows-VM" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium additions
Guest Additions — 03
🐧 Instalar Guest Additions en Linux Guest

En Linux el proceso requiere compilar los módulos del kernel. Necesita tener las cabeceras del kernel y el compilador instalados. Hay varias vías según la distribución.

Método 1 — Desde el repositorio de la distribución (más fácil)

BASH — Ubuntu / Kali / Debian (recomendado)
# Instalar Guest Additions desde los repos (fácil pero puede ser versión algo antigua)
sudo apt update && sudo apt install -y virtualbox-guest-utils virtualbox-guest-x11

# Reiniciar para activar
sudo reboot

# Verificar que los módulos están cargados
lsmod | grep -i vbox
vboxsf                 73728  0       ← shared folders
vboxvideo              45056  0       ← video driver
vboxguest             380928  3 vboxsf,vboxvideo ← módulo base

Método 2 — Desde la ISO de VirtualBox (versión exacta del host)

BASH — Instalación desde CD virtual
# PASO 1: Instalar dependencias (dentro de la VM Linux)
sudo apt update
sudo apt install -y build-essential dkms linux-headers-$(uname -r)

# PASO 2: Montar el CD de Guest Additions desde el menú de VirtualBox
#         Dispositivos → Insertar imagen de CD de las Guest Additions

# PASO 3: Montar el CD en Linux
sudo mkdir -p /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
mount: /mnt/cdrom: WARNING: source write-protected, mounted read-only

# PASO 4: Ejecutar el instalador
sudo /mnt/cdrom/VBoxLinuxAdditions.run
Verifying archive integrity...  100%   MD5 checksums are OK. All good.
Uncompressing VirtualBox 7.0.14 Guest Additions for Linux  100%
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules...
VirtualBox Guest Additions: Doing non-kernel setup of the Guest Additions...
VirtualBox Guest Additions: Starting the VirtualBox Guest Additions...
VirtualBox Guest Additions: Running kernel modules will not be replaced until the system is restarted

# PASO 5: Reiniciar
sudo reboot

# PASO 6: Verificar
lsmod | grep vbox && echo "Guest Additions OK"
vboxsf    vboxvideo    vboxguest
Guest Additions OK

# Añadir el usuario al grupo vboxsf (necesario para carpetas compartidas)
sudo usermod -aG vboxsf $USER && newgrp vboxsf

Método 3 — Kali Linux (optimizado)

BASH — Kali Linux específico
# Kali tiene un metapaquete específico para VirtualBox
sudo apt update && sudo apt install -y kali-virtualbox

# Esto instala todas las Guest Additions y dependencias automáticamente
# Sin necesidad de montar ISOs ni compilar manualmente

# Alternativa si kali-virtualbox no funciona:
sudo apt install -y virtualbox-guest-x11 virtualbox-guest-utils virtualbox-guest-dkms
sudo reboot
Guest Additions — 04
✨ Funciones: Portapapeles y Drag & Drop

Con las Guest Additions instaladas, activar el portapapeles compartido y drag&drop para trabajar fluidamente entre el host y la VM.

VBoxManage — Activar portapapeles y drag&drop
## PORTAPAPELES COMPARTIDO
# En la GUI: Dispositivos → Portapapeles compartido → Bidireccional
# Via VBoxManage (VM puede estar encendida):
VBoxManage modifyvm "Kali-2024-Lab" --clipboard-mode bidirectional

# Opciones disponibles:
disabled       → sin portapapeles compartido
hosttoguest    → solo del host hacia la VM
guesttohost    → solo de la VM hacia el host
bidirectional  → en ambas direcciones (recomendado)

## DRAG AND DROP
VBoxManage modifyvm "Kali-2024-Lab" --drag-and-drop bidirectional

## Activar mientras la VM está encendida
VBoxManage controlvm "Kali-2024-Lab" clipboard bidirectional
VBoxManage controlvm "Kali-2024-Lab" draganddrop bidirectional

## VERIFICAR en el guest Linux
# El servicio VBoxClient gestiona estas funciones
VBoxClient --clipboard &    # habilitar portapapeles
VBoxClient --draganddrop &  # habilitar drag&drop
# En sistemas con startx/autostart ya se ejecutan automáticamente
Guest Additions — 05
📁 Carpetas Compartidas

Las carpetas compartidas permiten acceder a directorios del host desde dentro de la VM. Esencial para transferir herramientas, capturas y resultados entre el host y el laboratorio virtual.

Configurar desde la GUI

1
Abrir configuración de la VM
Con la VM apagada (o desde el menú Dispositivos mientras está encendida): Configuración → Carpetas compartidas → Icono de añadir (carpeta con +).
2
Seleccionar la carpeta del host
Ruta de la carpeta: seleccionar el directorio del host a compartir. Nombre de carpeta: el nombre con el que aparecerá en el guest (ej: "shared"). Marcar "Automontar" y "Permanente".
3
Acceder desde el guest
En Windows aparece como unidad de red (\\VBOXSVR\shared). En Linux se puede montar manualmente o configurar automontado.
VBoxManage + BASH — Carpetas compartidas desde CLI
## AÑADIR CARPETA COMPARTIDA (desde el host)
VBoxManage sharedfolder add "Kali-2024-Lab" \
  --name "shared" \
  --hostpath "/home/user/vbox-shared" \
  --automount \
  --auto-mount-point "/mnt/shared"

## MONTAR MANUALMENTE EN LINUX GUEST
sudo mkdir -p /mnt/shared
sudo mount -t vboxsf shared /mnt/shared
# "shared" es el nombre que pusiste en VBoxManage/GUI

## MONTAR AUTOMÁTICAMENTE AL ARRANQUE (fstab)
echo "shared  /mnt/shared  vboxsf  defaults,uid=1000,gid=1000  0  0" | sudo tee -a /etc/fstab
sudo mount -a  # verificar que el fstab es correcto

## SOLUCIÓN PROBLEMA: usuario sin permisos en la carpeta
sudo usermod -aG vboxsf $USER
newgrp vboxsf  # aplicar sin reiniciar
ls /mnt/shared  # ahora debería funcionar sin sudo

## EN WINDOWS GUEST
# Aparece automáticamente en "Red" o se accede directamente:
\\VBOXSVR\shared
# O montar como unidad de red:
net use Z: \\VBOXSVR\shared /persistent:yes

## ELIMINAR CARPETA COMPARTIDA
VBoxManage sharedfolder remove "Kali-2024-Lab" --name "shared"
Guest Additions — 06
🔀 Modo Seamless y Pantalla Completa

Los modos de visualización avanzados de VirtualBox permiten integrar la VM visualmente con el host o usarla a pantalla completa como si fuera el sistema nativo.

ModoAtajoDescripciónCuándo usar
Normal (ventana)Host+FVM en ventana redimensionableUso habitual, multitarea con el host
Pantalla completaHost+FVM ocupa todo el monitorTrabajo intensivo en la VM
SeamlessHost+LVentanas del guest en el escritorio del hostIntegración visual total host+guest
Sin escalaHost+AVM a resolución real sin escalarCapturas de pantalla precisas
EscaladoVer → EscalarVM escalada al tamaño de ventanaPantallas de alta densidad (HiDPI)
ℹ Host KeyLa "Host Key" es la tecla que libera el cursor de la VM cuando no están las Guest Additions. Por defecto es Ctrl derecho. Se puede cambiar en: Archivo → Preferencias → Input → Host Key Combination.
Gestión — 01
📸 Snapshots — Puntos de Restauración

Los snapshots son la función más poderosa de VirtualBox para laboratorios. Guardan el estado exacto de la VM — disco, RAM y configuración — en cualquier momento. Restaurar lleva segundos.

💡 Flujo de trabajo con snapshots en labs1) Instalar OS + Guest Additions → Snapshot "Base". 2) Instalar herramientas → Snapshot "Herramientas". 3) Hacer práctica/pentest. 4) Si algo sale mal → Restaurar al snapshot anterior. 5) Repetir. Los snapshots son la "red de seguridad" del laboratorio.
VBoxManage — Gestión completa de snapshots
## CREAR SNAPSHOT
# Desde la GUI: Máquina → Tomar instantánea (mientras está encendida o apagada)
# Via VBoxManage:
VBoxManage snapshot "Kali-2024-Lab" take "Base-CleanInstall" \
  --description "Kali instalado + Guest Additions. Sin configurar."

VBoxManage snapshot "Kali-2024-Lab" take "Herramientas-Instaladas" \
  --description "Herramientas de pentest instaladas. Listo para labs."

## LISTAR SNAPSHOTS
VBoxManage snapshot "Kali-2024-Lab" list
Name: Base-CleanInstall (UUID: aaa-bbb-...)
Name: Herramientas-Instaladas (UUID: ccc-ddd-...) *

## RESTAURAR SNAPSHOT (la VM se apaga si estaba encendida)
VBoxManage snapshot "Kali-2024-Lab" restore "Base-CleanInstall"

## ELIMINAR SNAPSHOT (libera espacio en disco)
VBoxManage snapshot "Kali-2024-Lab" delete "Base-CleanInstall"

## CREAR SNAPSHOT DE LA EJECUCIÓN ACTUAL (live)
# En la GUI: Máquina → Tomar instantánea (mientras la VM está encendida)
# Via VBoxManage (guarda también el estado de RAM):
VBoxManage snapshot "Kali-2024-Lab" take "Pre-Pentest-$(date +%Y%m%d)" \
  --live --description "Estado antes de comenzar la práctica"
Gestión — 02
👥 Clonar y Exportar VMs

Clonar una VM crea una copia independiente con nuevo UUID. Exportar como OVA permite compartirla o importarla en otro equipo con VirtualBox.

VBoxManage — Clonar y exportar VMs
## CLONAR UNA VM (crea copia completamente independiente)
VBoxManage clonevm "Kali-2024-Lab" --name "Kali-Lab-Copia" --register

# Clonar desde un snapshot específico
VBoxManage clonevm "Kali-2024-Lab" --name "Kali-Limpio" \
  --snapshot "Base-CleanInstall" \
  --options link \    # linked clone (ocupa menos espacio)
  --register

## EXPORTAR A FORMATO OVA (para compartir o backup)
VBoxManage export "Kali-2024-Lab" \
  -o "/backup/Kali-2024-Lab.ova" \
  --manifest \
  --vsys 0 --product "Kali Lab GhostAcademy" --producturl "unfantasmaenelsistema.com"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully exported 1 machine(s).

## IMPORTAR OVA
VBoxManage import "/downloads/kali-linux-2024.ova"
# Con opciones personalizadas
VBoxManage import "/downloads/kali.ova" \
  --vsys 0 --vmname "Kali-Importado" \
  --vsys 0 --memory 4096 \
  --vsys 0 --cpus 2
Gestión — 03
⚡ VBoxManage — CLI Completo

VBoxManage es la interfaz de línea de comandos de VirtualBox. Permite hacer todo lo que hace la GUI y más, además de automatizar operaciones con scripts.

VBoxManage — Referencia de comandos esenciales
## INFORMACIÓN Y LISTADOS
VBoxManage list vms             # listar todas las VMs
VBoxManage list runningvms      # listar VMs encendidas
VBoxManage list hdds            # listar discos virtuales
VBoxManage list hostonlyifs     # interfaces Host-Only
VBoxManage list natnetworks     # redes NAT
VBoxManage showvminfo "NombreVM"# info completa de una VM

## CONTROL DE VMs
VBoxManage startvm "NombreVM"                   # arrancar (GUI)
VBoxManage startvm "NombreVM" --type headless   # arrancar sin ventana
VBoxManage controlvm "NombreVM" poweroff        # apagar (fuerza bruta)
VBoxManage controlvm "NombreVM" acpipowerbutton # apagar (limpio)
VBoxManage controlvm "NombreVM" pause           # pausar
VBoxManage controlvm "NombreVM" resume          # reanudar
VBoxManage controlvm "NombreVM" reset           # reiniciar
VBoxManage controlvm "NombreVM" savestate       # guardar estado (hibernar)

## EJECUTAR COMANDOS DENTRO DE LA VM (requiere Guest Additions)
VBoxManage guestcontrol "Kali-2024-Lab" run \
  --exe "/bin/bash" \
  --username kali --password kali \
  -- bash -c "whoami > /tmp/output.txt"

## CAPTURA DE PANTALLA
VBoxManage controlvm "NombreVM" screenshotpng /tmp/screenshot.png

## SCRIPT: APAGAR TODAS LAS VMs
VBoxManage list runningvms | awk -F'"' '{print $2}' | while read vm; do
  echo "Apagando: $vm"
  VBoxManage controlvm "$vm" acpipowerbutton
done
Gestión — 04
🔌 USB y Dispositivos

Conectar dispositivos USB físicos a la VM: pendrives, adaptadores WiFi USB, dongles de hardware. Requiere el Extension Pack instalado para USB 2.0/3.0.

VBoxManage — USB y dispositivos
## LISTAR DISPOSITIVOS USB CONECTADOS AL HOST
VBoxManage list usbhost
UUID:               aaa-bbb-ccc
VendorId:           0x0b05 (ASUS USB WiFi Adapter)
ProductId:          0x17d1
Revision:           1.0
Current State:      Available  ← puede asignarse a una VM

## AÑADIR FILTRO USB (asignar dispositivo a la VM automáticamente)
VBoxManage usbfilter add 0 \
  --target "Kali-2024-Lab" \
  --name "Alfa WiFi Adapter" \
  --vendorid 0x0b05 \
  --productid 0x17d1 \
  --action hold

## Desde la GUI: Dispositivos → USB → seleccionar el dispositivo
# El dispositivo se desconecta del host y se conecta a la VM

## REQUISITO: usuario en grupo vboxusers
sudo usermod -aG vboxusers $USER
# Sin esto, la pestaña USB estará gris en la GUI

## HABILITAR USB 3.0 (requiere Extension Pack)
VBoxManage modifyvm "Kali-2024-Lab" --usbxhci on  # USB 3.0
VBoxManage modifyvm "Kali-2024-Lab" --usb on       # USB 2.0
Laboratorio — 01
🧪 Lab: Kali Linux en VirtualBox

Setup completo de Kali Linux en VirtualBox: desde la descarga hasta tener Guest Additions funcionando con portapapeles y carpetas compartidas activas.

🧪LAB-VBOX-01 — Kali Linux completo con Guest AdditionsFÁCIL

Objetivo: tener una VM Kali Linux completamente funcional con Guest Additions, portapapeles bidireccional, carpeta compartida con el host y snapshot de estado limpio.

BASH — Setup Kali completo
## OPCIÓN A: Usar la imagen OVA preconfigurada de Kali (más fácil)
# Descargar desde: https://www.kali.org/get-kali/#kali-virtual-machines
# Elegir: VirtualBox — 64-bit (.7z)
# Credenciales por defecto: kali / kali

# Importar la OVA
VBoxManage import "kali-linux-2024.3-virtualbox-amd64.ova"

## OPCIÓN B: Instalar desde ISO (más control)
# 1. Descargar ISO desde kali.org
# 2. Crear VM con: 4096 MB RAM, 2 CPUs, 50 GB disco VDI, VMSVGA 128 MB
# 3. Montar la ISO y arrancar
# 4. Instalar Kali (opción "Graphical Install")

## PASO 1: Ajustar la VM importada (desde el host)
VBoxManage modifyvm "kali-linux-2024" --memory 4096 --cpus 2
VBoxManage modifyvm "kali-linux-2024" --vram 128 --graphicscontroller vmsvga
VBoxManage modifyvm "kali-linux-2024" --clipboard-mode bidirectional
VBoxManage modifyvm "kali-linux-2024" --drag-and-drop bidirectional

## PASO 2: Crear carpeta compartida en el host
mkdir -p ~/kali-shared
VBoxManage sharedfolder add "kali-linux-2024" \
  --name "kali-shared" \
  --hostpath "$HOME/kali-shared" \
  --automount --auto-mount-point "/mnt/host-shared"

## PASO 3: Arrancar y configurar dentro de Kali
VBoxManage startvm "kali-linux-2024"
# Dentro de Kali:
sudo apt update && sudo apt install -y kali-virtualbox
sudo usermod -aG vboxsf $USER
sudo reboot

## PASO 4: Verificar que todo funciona
lsmod | grep vbox    # módulos cargados
ls /mnt/host-shared  # carpeta compartida montada
# Probar portapapeles: copiar texto en Kali, pegar en el host

## PASO 5: Snapshot de estado limpio
VBoxManage snapshot "kali-linux-2024" take "Kali-Base-GuestAdditions" \
  --description "Kali 2024 + Guest Additions + carpeta compartida. Estado limpio."

[+] Lab listo! VM Kali con Guest Additions completamente configurada.
Laboratorio — 02
🧪 Lab: Red de Laboratorio Multi-VM

Crear una red de laboratorio aislada con múltiples VMs: Kali como atacante y Metasploitable 2 como target vulnerable. Las dos se ven entre sí pero están aisladas de Internet.

🧪LAB-VBOX-02 — Red aislada Kali + Metasploitable 2MEDIO

Kali (atacante) con NAT + Host-Only. Metasploitable 2 (target) solo con Host-Only. Ambas en la misma subred virtual. Kali tiene Internet; Metasploitable, no.

VBoxManage + BASH — Setup red de laboratorio
## PASO 1: Crear la red Host-Only para el lab
VBoxManage hostonlyif create
Interface 'vboxnet0' was successfully created

VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0

# Activar DHCP en la red del lab
VBoxManage dhcpserver modify --ifname vboxnet0 \
  --ip 192.168.56.1 --netmask 255.255.255.0 \
  --lowerip 192.168.56.101 --upperip 192.168.56.200 --enable

## PASO 2: Configurar Kali (atacante)
# Adaptador 1: NAT (Internet para actualizaciones)
VBoxManage modifyvm "kali-linux-2024" --nic1 nat
# Adaptador 2: Host-Only (red de lab)
VBoxManage modifyvm "kali-linux-2024" --nic2 hostonly --hostonlyadapter2 vboxnet0

## PASO 3: Descargar e importar Metasploitable 2
# Descargar: https://sourceforge.net/projects/metasploitable/
# Credenciales: msfadmin / msfadmin

# Crear VM para Metasploitable 2 desde el VMDK descargado
VBoxManage createvm --name "Metasploitable2" --ostype "Ubuntu_64" --register
VBoxManage modifyvm "Metasploitable2" --memory 512 --cpus 1
VBoxManage storageattach "Metasploitable2" --storagectl "SATA Controller" \
  --port 0 --device 0 --type hdd --medium "/path/to/Metasploitable.vmdk"

## PASO 4: Configurar Metasploitable — SOLO Host-Only (sin Internet)
VBoxManage modifyvm "Metasploitable2" --nic1 hostonly --hostonlyadapter1 vboxnet0

## PASO 5: Arrancar las VMs y verificar conectividad
VBoxManage startvm "kali-linux-2024" &
VBoxManage startvm "Metasploitable2" --type headless

# Dentro de Kali: verificar que puede alcanzar Metasploitable
$ ip a  # ver la IP de eth1 (Host-Only) — 192.168.56.X
$ nmap -sV 192.168.56.0/24
Nmap scan report for 192.168.56.101 (Metasploitable)
PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4   ← vulnerable!
22/tcp   open  ssh         OpenSSH 4.7
80/tcp   open  http        Apache 2.2.8
3306/tcp open  mysql       MySQL 5.0
[+ 20 puertos más vulnerables]
Referencia
🔧 Troubleshooting

Soluciones a los problemas más comunes en VirtualBox y Guest Additions.

BASH / CMD — Diagnóstico y soluciones
## PROBLEMA: No se puede crear VM de 64 bits
## CAUSA: Virtualización de hardware desactivada en BIOS
Solución: Reiniciar → BIOS/UEFI → Buscar "VT-x", "Virtualization Technology" o "AMD-V" → Activar
En Windows: bcdedit /set hypervisorlaunchtype off (si Hyper-V interfiere)

## PROBLEMA: Guest Additions no se instalan (Linux)
## CAUSA: Faltan cabeceras del kernel
sudo apt install -y build-essential linux-headers-$(uname -r) dkms
sudo /mnt/cdrom/VBoxLinuxAdditions.run

## PROBLEMA: Resolución fija, no se adapta
## CAUSA: Guest Additions no instaladas o módulo vboxvideo no cargado
lsmod | grep vboxvideo
# Si no aparece:
sudo modprobe vboxvideo
sudo rcvboxadd setup  # reinstalar módulos

## PROBLEMA: Carpeta compartida no accesible
## CAUSA: Usuario no en grupo vboxsf
sudo usermod -aG vboxsf $USER && newgrp vboxsf
# Verificar montaje:
mount | grep vboxsf

## PROBLEMA: Portapapeles no funciona
# Verificar que VBoxClient está corriendo:
pgrep -a VBoxClient
# Si no está:
VBoxClient --clipboard &
# O reinstalar Guest Additions y reiniciar

## PROBLEMA: La VM está muy lenta
Checklist:
□ VT-x/AMD-V habilitado en BIOS
□ RAM suficiente asignada (mínimo 2 GB para Linux escritorio)
□ Al menos 2 CPUs asignados
□ VMSVGA como controlador gráfico (no VBoxVGA)
□ Guest Additions instaladas (mejoran el rendimiento de I/O)
□ No superar el 50% de RAM/CPU del host

## PROBLEMA: USB no aparece en la VM
□ Extension Pack instalado: VBoxManage list extpacks
□ Usuario en grupo vboxusers: groups $USER
□ USB habilitado en la VM: VBoxManage modifyvm "VM" --usb on
□ Filtro USB configurado para el dispositivo

## PROBLEMA: La VM no arranca (kernel panic)
VBoxManage modifyvm "NombreVM" --firmware efi   # probar con UEFI
VBoxManage modifyvm "NombreVM" --firmware bios  # volver a BIOS legacy

## VER LOGS DE ERROR
cat ~/.config/VirtualBox/VBoxSVC.log | tail -50
cat ~/VirtualBox\ VMs/NombreVM/Logs/VBox.log | tail -100
Referencia
✅ Referencia Rápida

Cheatsheet de VBoxManage y comandos esenciales para gestión diaria de VirtualBox.

VMs — Control

  • Listar VMs: VBoxManage list vms
  • VMs encendidas: VBoxManage list runningvms
  • Arrancar: VBoxManage startvm "Nombre"
  • Arrancar sin ventana: VBoxManage startvm "Nombre" --type headless
  • Apagar limpio: VBoxManage controlvm "Nombre" acpipowerbutton
  • Apagar forzado: VBoxManage controlvm "Nombre" poweroff
  • Pausar/reanudar: VBoxManage controlvm "Nombre" pause/resume
  • Info detallada: VBoxManage showvminfo "Nombre"

Configuración

  • Cambiar RAM: VBoxManage modifyvm "Nombre" --memory 4096
  • Cambiar CPUs: VBoxManage modifyvm "Nombre" --cpus 2
  • VRAM y controlador: VBoxManage modifyvm "Nombre" --vram 128 --graphicscontroller vmsvga
  • Portapapeles: VBoxManage modifyvm "Nombre" --clipboard-mode bidirectional
  • Red NAT: VBoxManage modifyvm "Nombre" --nic1 nat
  • Red Host-Only: VBoxManage modifyvm "Nombre" --nic2 hostonly --hostonlyadapter2 vboxnet0

Guest Additions — Linux

  • Dependencias: sudo apt install build-essential linux-headers-$(uname -r) dkms
  • Montar CD: sudo mount /dev/cdrom /mnt/cdrom
  • Instalar: sudo /mnt/cdrom/VBoxLinuxAdditions.run
  • Kali fácil: sudo apt install kali-virtualbox
  • Grupo vboxsf: sudo usermod -aG vboxsf $USER
  • Verificar: lsmod | grep vbox

Snapshots y Backup

  • Crear snapshot: VBoxManage snapshot "VM" take "Nombre"
  • Listar: VBoxManage snapshot "VM" list
  • Restaurar: VBoxManage snapshot "VM" restore "Nombre"
  • Eliminar: VBoxManage snapshot "VM" delete "Nombre"
  • Exportar OVA: VBoxManage export "VM" -o "archivo.ova"
  • Importar OVA: VBoxManage import "archivo.ova"

Atajos de Teclado VirtualBox

AtajoAcción
Ctrl DerechoHost Key — liberar el ratón de la VM
Host+FAlternar pantalla completa
Host+LAlternar modo seamless
Host+AAjustar tamaño de ventana
Host+DelCtrl+Alt+Del en la VM
Host+RReiniciar la VM
Host+SGuardar estado (suspender)
Host+TTomar snapshot
Host+PPausar la VM