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.
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
# 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)
# 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
# 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)
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.
VM Típica para Laboratorio de Ciberseguridad
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 Guest | RAM mínima | RAM recomendada | CPUs | Disco |
|---|---|---|---|---|
| Kali Linux (escritorio) | 2 GB | 4 GB | 2 | 30-50 GB |
| Ubuntu Desktop | 2 GB | 4 GB | 2 | 25 GB |
| Ubuntu Server / Debian | 512 MB | 1-2 GB | 1-2 | 15 GB |
| Windows 10/11 | 4 GB | 8 GB | 2-4 | 60 GB |
| Windows Server | 2 GB | 4 GB | 2 | 40 GB |
| Metasploitable 2/3 | 512 MB | 1 GB | 1 | 10 GB |
# 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
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.
Configuración de Red Recomendada para Labs
| Escenario | Adaptador 1 | Adaptador 2 | Por qué |
|---|---|---|---|
| Kali para pentesting | NAT (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 Internet | NAT Network | — | Todas las VMs se ven y tienen Internet |
| Windows con dominio AD | NAT (Internet) | Internal Network (dominio) | Actualizaciones + red de dominio aislada |
# 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"
Gestionar el almacenamiento de las VMs: tipos de disco virtual, cómo montar ISOs para instalación y cómo usar unidades ópticas virtuales.
## 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
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.
# 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
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.
Proceso de instalación de las Guest Additions en una VM con Windows. Simple y automatizado gracias al instalador oficial incluido en VirtualBox.
VBoxWindowsAdditions.exe. Aceptar UAC y el asistente con opciones por defecto.# 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
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)
# 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)
# 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)
# 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
Con las Guest Additions instaladas, activar el portapapeles compartido y drag&drop para trabajar fluidamente entre el host y la VM.
## 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
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.
| Modo | Atajo | Descripción | Cuándo usar |
|---|---|---|---|
| Normal (ventana) | Host+F | VM en ventana redimensionable | Uso habitual, multitarea con el host |
| Pantalla completa | Host+F | VM ocupa todo el monitor | Trabajo intensivo en la VM |
| Seamless | Host+L | Ventanas del guest en el escritorio del host | Integración visual total host+guest |
| Sin escala | Host+A | VM a resolución real sin escalar | Capturas de pantalla precisas |
| Escalado | Ver → Escalar | VM escalada al tamaño de ventana | Pantallas de alta densidad (HiDPI) |
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.
## 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"
Clonar una VM crea una copia independiente con nuevo UUID. Exportar como OVA permite compartirla o importarla en otro equipo con VirtualBox.
## 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
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.
## 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
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.
## 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
Setup completo de Kali Linux en VirtualBox: desde la descarga hasta tener Guest Additions funcionando con portapapeles y carpetas compartidas activas.
Objetivo: tener una VM Kali Linux completamente funcional con Guest Additions, portapapeles bidireccional, carpeta compartida con el host y snapshot de estado limpio.
## 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.
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.
Kali (atacante) con NAT + Host-Only. Metasploitable 2 (target) solo con Host-Only. Ambas en la misma subred virtual. Kali tiene Internet; Metasploitable, no.
## 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]
Soluciones a los problemas más comunes en VirtualBox y Guest Additions.
## 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
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
| Atajo | Acción |
|---|---|
Ctrl Derecho | Host Key — liberar el ratón de la VM |
Host+F | Alternar pantalla completa |
Host+L | Alternar modo seamless |
Host+A | Ajustar tamaño de ventana |
Host+Del | Ctrl+Alt+Del en la VM |
Host+R | Reiniciar la VM |
Host+S | Guardar estado (suspender) |
Host+T | Tomar snapshot |
Host+P | Pausar la VM |