Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
antivmdetection — Script para crear plantillas para usar con VirtualBox para hacer más difícil la detección de máquinas virtuales. | Kitploit
Herramientas/GitHubGitHub/nsmfoo/antivmdetection
Evasión de IDS/IPSAnálisis de MalwareAnti-Bot
GitHubnsmfoo/antivmdetection

antivmdetection

Script para crear plantillas para usar con VirtualBox para hacer más difícil la detección de máquinas virtuales.

Ver Repositorio
777124hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Antivmdetection

Antecedentes

Un script para ayudarte a crear plantillas que puedes usar con VirtualBox para dificultar la detección de la VM.

Mi primera publicación sobre el tema fue en 2012 y desde entonces se ha actualizado esporádicamente. El formato de blog quizás no fue la mejor manera de publicar la información y algunas personas crearon scripts agradables y "fáciles de aplicar" basados en el contenido.

Como forma de facilitarme la adición de contenido nuevo, he decidido hacer lo mismo.

El propósito de este script es utilizar configuraciones disponibles sin modificar la base de VirtualBox. Hay personas que hacen cosas realmente ingeniosas parcheando VirtualBox. Pero eso está fuera del alcance de este script. Creo que este enfoque tiene sus méritos, ya que (con suerte) no se rompe con cada nueva versión de VirtualBox. Con el tiempo, también he incluido "cosas" que no están directamente relacionadas con la VM, sino más bien cosas que el malware utiliza para identificar instalaciones; espero que no te importe.

El script principal creará los siguientes archivos:

  • Un script de shell, que se puede usar como plantilla, para ser ejecutado desde el sistema anfitrión y aplicado a la VM que desees modificar.
  • Un volcado del DSDT, que se utiliza en el script de plantilla anterior.
  • Un archivo de PowerShell de Windows para usar dentro del invitado, para manejar las configuraciones que no es posible cambiar desde el anfitrión. Este script deberá ejecutarse dos veces: una para los cambios que requieren reinicio y la segunda para las cosas molestas que reaparecen al reiniciar.

Uso

Generar script desde el anfitrión

  • Instalar dependencias: sudo apt install python3-pip libcdio-utils acpica-tools mesa-utils smartmontools
  • Instalar módulos de Python: sudo pip3 install -r requirements.txt
  • Descargar los siguientes binarios de Windows y extraerlos en el directorio antivmdetection: wget https://download.sysinternals.com/files/VolumeId.zip https://www.nirsoft.net/utils/devmanview-x64.zip (versión x64).
  • Crear archivos de texto con el nombre del equipo y el usuario: hostname > computer.lst, whoami > user.lst. Modifica si deseas usar nombres de máquina y usuarios diferentes para las VM (se recomienda llenar los archivos con una lista larga de nombres de usuario y equipo).
  • Ejecutar el script de Python como sudo: sudo python3 antivmdetect.py
  • Hacer ejecutable el script generado desde el anfitrión para el usuario actual: sudo chmod a+x xxxxx.sh
  • Si recibes el siguiente mensaje: "ACPI tables bigger than 64KB (VERR_TOO_MUCH_DATA)", esto se debe a una limitación en VirtualBox; para más contexto, consulta este caso: https://github.com/nsmfoo/antivmdetection/issues/37. No verificado que funcione, pero https://www.tonymacx86.com/dsdt-database podría ser un buen recurso...

Configurar la VM

  • Crear la VM pero no iniciarla; también sal de la GUI de VirtualBox. ¡El script de shell debe ejecutarse antes de la instalación!
  • Verificar que "I/O APIC" esté habilitado (System > Motherboard tab).
  • Verificar que "Paravirtualization Interface" esté configurado como "None" (System > Acceleration tab).
  • Cambiar el número de CPU a 2 o más si es posible.
  • Configurar la IP de la VM (File > Host Network Manager > Configure Adapter Manually > IPV4 address).
  • El script espera que el diseño de almacenamiento se vea así: + IDE: Primary master (Disk) y Primary slave (CD-ROM) + * ATA: Port 0 (Disk) y Port 1 (CD-ROM)
  • Ejecutar el script como usuario actual (porque las VM están en el directorio home del usuario actual): /bin/bash xxxxx.sh nombre-de-tu-maquina-virtual
  • Instalar el sistema operativo Windows (Soporta W7 y W10)

Ejecutar el script desde dentro de la VM

  • Mover el script por lotes (xxxx.ps1) al invitado recién instalado.

  • Ejecutar el script por lotes dentro del invitado. Recuerda que la mayoría de las configuraciones modificadas se revierten después de cada reinicio. Así que haz que se ejecute al arranque si es necesario.

  • A partir de la versión 0.1.4, algunas configuraciones aplicadas requerirán un reinicio. Así que ejecuta el script por lotes una vez, el invitado se reiniciará. Luego ejecuta el script una vez más para finalizar la configuración.

  • Antes de aplicar el script por lotes dentro del invitado, desactiva UAC (se requiere reinicio); de lo contrario, no podrás modificar el registro con el script.

  • Para usuarios de Windows 10: ejecuta el script PS como administrador (clic derecho en cmd.exe -> ejecutar como administrador, navegar hasta el script PS y ejecutar).

  • Si se aplica correctamente, una ejecución de Pafish dará como resultado esto (no es necesario modificar VirtualBox).

  • Ten en cuenta que este script hace otras cosas que no cubre Pafish (por ejemplo, artefactos de W10)

alt text

Notas

  • Cuando el script antivmdetect no puede encontrar valores adecuados para usar, comentará esas configuraciones en el script recién creado con un "#". Estos requieren revisión manual, ya que pueden afectar lo que se muestra en la VM.

Historial de versiones

  • 0.1.9:
    Compatible con Python3
    Primer intento de extraer el disco correcto, ha sido fuente de dolor de cabeza para muchos. (Issue #35 y algunos otros issues antiguos, gracias @oaustin)
    Mejorado el manejo de cadenas en el script de shell (Issue #35 y #36 y PR #44, gracias @oaustin, @dashjuvi y @corownik)
    Añadido un enlace a un recurso DSDT en línea (Issue #37, gracias @MasterCATZ)
    Actualizado el README para aclarar las instrucciones de instalación, gracias @jorants (issue #38)
    Verificar si el volcado DSDT se creó realmente, gracias @nov3mb3r (Issue: #42)
    Añadido un aviso de licencia, gracias @obilodeau (issue #43)
    Limpieza de código: eliminado soporte para discos RAID por falta de acceso a hardware de servidor... y muchas otras pequeñas mejoras

  • 0.1.8:
    Mejorado el soporte para Windows 10
    Fusionada corrección de marcado de @bryant1410 (PR #14)
    Resuelto un problema para personas que usan macOS + VBox/VMWare Fusion para crear las plantillas.
    Crear la plantilla desde una máquina virtual no es la mejor manera de todos modos... (issue #12 y posiblemente #15)

  • 0.1.7:
    Ahora se soporta Windows 10 (comentarios bienvenidos)
    Varios nuevos artefactos "corregidos" para instalaciones W10
    Nueva dependencia: mesa-utils
    Fusionada corrección de error de @Fullmetal5 (#10)
    Varias correcciones de código
    Actualizado el readme

  • 0.1.6:
    Añadido un pop-up después de la segunda ejecución para aclarar que ya está listo
    Añadida una función que lanza algunas instancias de notepad; esta característica se ampliará en versiones futuras
    Reelaborada la función RandomDate, gracias a @Antelox por hacerme consciente del problema con la anterior (#8)
    Acpidump en versiones antiguas de Ubuntu no soporta el interruptor "-s". Ahora se maneja con un mensaje de error. Gracias a @Antelox por este problema (#7)
    Devmanview.exe no se eliminaba después de la segunda ejecución, corregido

  • 0.1.5:
    Añadido soporte para asociar y desasociar (deshabilitado por defecto) extensiones de archivo. Referencia: https://www.proofpoint.com/us/threat-insight/post/massive-adgholas-malvertising-campaigns-use-steganography-and-file-whitelisting-to-hide-in-plain-sight
    Añadido soporte para un búfer de portapapeles proporcionado por el usuario. Si no está presente, se generará una cadena aleatoria. Llena el archivo con Honeytokens de tu elección
    Eliminado el soporte para XP
    Convertidas las secciones del script por lotes a PowerShell. Se ha movido más lógica al script invitado; en resumen, hay menos razón para crear/re-generar la plantilla a menudo, ya que más elementos se aleatorizan en el invitado. Añadida una función que aleatoriza la imagen de fondo del escritorio Añadida una función que crea documentos de "todo" tipo en el invitado Añadida una función que crea documentos de "todo" tipo en el invitado y los mueve a la papelera de reciclaje Aleatorizando el DigitalProductId en dos ubicaciones más: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\DigitalProductId. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\DigitalProductId. Usar interfaz de paravirtualización: None (verificado con VBox 5.1.4) - La verificación se actualizó para reflejar este cambio. Supongo que este cambio en VBox vino gracias a: TiTi87, ¡gracias!

/Mikael

¡Los comentarios siempre son bienvenidos! =)

Descargar herramienta







  • 0.1.4:
    Corregido un error para usuarios de python-dmidecode 3.10.13-3, esto fue todo culpa mía...
    Añadida una función que aleatoriza VolumeID (nuevo requisito: VolumeID.exe); esta información es recopilada, por ejemplo, por Rovnix
    Añadida una función que aleatoriza el nombre de usuario y el nombre del equipo/hostname (nuevos requisitos: listas de nombres de usuario y nombres de equipo)
    Primer intento de añadir información al búfer del portapapeles; la idea (comando) provino de un tweet de @shanselman. Se mejorará en la próxima versión
    Actualizado el readme: nuevas dependencias y nuevas características que requieren reinicio

  • 0.1.3:
    Copiar y configurar la cadena de la marca de la CPU.
    Verificar si hay un dispositivo de audio conectado al invitado. Referencia: http://www.joesecurity.org/reports/report-61f847bcb69d0fe86ad7a4ba3f057be5.html
    Verificar la arquitectura del SO frente al binario de DevManView.
    Aleatorizando el ProductId en dos ubicaciones más:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\ProductId.
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\ProductId.
    Purgar la clave de producto de Windows del registro (para evitar que alguien la robe...).
    Editar el DigitalProductId (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId) para que coincida con el nuevo ProductId.

  • 0.1.2:
    Verificar si se está utilizando la interfaz de paravirtualización Legacy (el uso de la interfaz Legacy mitigará la detección de "cpuid feature").

  • 0.1.1:
    Verificar el número de CPU (Menos de 2 == alerta).
    Verificar el tamaño de la memoria (Menos de 2 GB == alerta).
    Verificar si se está utilizando la IP/rango IP predeterminado para vboxnet0 (puedes ignorar la notificación si no lo usas).
    Aleatorizando el ProductId.
    Fusionado el PR #3 de r-sierra (¡Gracias por la ayuda!)
    Corregido un error en el AcpiCreatorId (¡Gracias a @Nadacsc por reportármelo!).
    Corregido un error en el análisis de DmiBIOSReleaseDate.
    Corregido un error en DmiBIOSReleaseDate para manejar tanto la variante "predeterminada" mal escrita como la correctamente escrita (¡Gracias a @WanpengQian por reportármelo!).
    La inclusión de DevManView no funcionó como se esperaba; debería estar corregido en esta versión.
    También soporta controlador SATA (anteriormente solo se modificaban configuraciones IDE)
    Actualizado el readme

  • 0.1.0:
    Resuelta la detección WMI hecha famosa por HT. Añadido
    DevManView.exe (tu elección de arquitectura) a los requisitos previos.

  • < 0.1.0 No se mantuvo historial de versiones antes de esto, supongo que hay que empezar por algún lado.