
Incarcero es una herramienta que crea Máquinas Virtuales (VMs) preconfiguradas con herramientas de análisis de malware y ajustes de seguridad adaptados para el análisis de malware, sin requerir ninguna interacción del usuario.
El análisis de malware es como desactivar bombas. El objetivo es desmontar y comprender un programa que fue creado para causar daño, el cual a menudo está ofuscado (ej: empaquetado) para complicar el análisis.
Incarcero es una herramienta que crea Máquinas Virtuales (VMs) preconfiguradas con herramientas de análisis de malware y configuraciones de seguridad adaptadas para el análisis de malware sin necesidad de interacción del usuario.
Adicionalmente, este repositorio también incluye probablemente la colección más grande de código fuente de malware, así como un módulo que permite descargar muestras de malware desde bases de datos populares en línea.
Nota: Los binarios con nombres genéricos como valor MD5 o smbXXX.tmp no fueron detectados como malware por VirusTotal en el momento de la subida, pero esto no significa que no sea una muestra de malware. Siéntase libre de configurar, analizar y realizar ingeniería inversa de todas y cada una de las muestras en este repositorio; si lo hace, infórmeme los resultados de su investigación.
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
apt install vagrant git python3-pip
apt install git python3-pip
pacman -Sy vagrant packer python-pip git
sudo pip3 install git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
NOTA: A partir de Windows 10, Hyper-V siempre está funcionando debajo del sistema operativo. Dado que VT-X necesita ser operado exclusivamente por un solo hipervisor, esto provoca que VirtualBox (e incarcero) fallen. Para deshabilitar Hyper-V y permitir que VirtualBox funcione, ejecute el siguiente comando en un símbolo del sistema administrativo y luego reinicie: bcdedit /set hypervisorlaunchtype off. Desde la versión 6 de Virtualbox, se admite el uso de Hyper-V como núcleo de ejecución de respaldo (registro de cambios)
Los siguientes pasos asumen que tiene https://chocolatey.org/[Chocolatey] instalado. De lo contrario, siga el procedimiento de instalación manual.
Instale las dependencias:
choco install python vagrant packer git virtualbox
Actualice la consola:
refreshenv
Instale incarcero:
pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
C:\Windows\System32\pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
Ejecute este comando después de la instalación normal:
vagrant plugin install vagrant-aws
NOTA: La funcionalidad de AWS solo se ha probado en Linux por el momento y EC2 no admite la versión de escritorio de 32 bits de Windows 10.
Esto crea su caja base que se importa en Vagrant. Después puede reutilizar la misma caja varias veces por análisis de muestra.
Ejecute:
incarcero build <template>
También puede listar todas las plantillas compatibles con:
incarcero list
Esto construirá una caja Vagrant lista para la investigación de malware que luego puede incluir en un Vagrantfile.
Por ejemplo:
incarcero build win10_x64_analyst
La sección de configuración contiene información adicional sobre lo que se puede configurar con incarcero.
incarcero spin win10_x64_analyst <name>
Esto creará un Vagrantfile preparado para usar en análisis de malware. Muévalo a un directorio de su elección y ejecute:
vagrant up
Por defecto, el directorio local se compartirá en la VM en el Escritorio. Esto se puede cambiar comentando la parte relevante del Vagrantfile.
Por ejemplo:
incarcero spin win7_x86_analyst 20160519.cryptolocker.xyz
incarcero puede subir e interactuar con una VM en los servicios web de Amazon. Para hacerlo, siga estos pasos:
. incarcero necesitará un bucket S3 en AWS para subir la VM antes de convertirla en una AMI (Amazon Machine Image). Si no tiene uno, cree uno ahora.
. Su instancia también requiere un grupo de seguridad con al menos una regla que permita conexiones entrantes para WinRM (Tipo: WinRM-HTTP, Protocolo: TCP, Rango de puertos: 5985, Origen: IP pública del host).
. A continuación, necesita un rol de servicio vmimport configurado. Siga la sección titulada VM Import Service Role de esta guía. Estos pasos deben realizarse con una cuenta que tenga permisos iam:CreateRole y iam:PutRolePolicy.
. Si se usa la configuración por defecto, cambie el hipervisor a aws y complete las opciones obligatorias relacionadas. De lo contrario, asegúrese de agregar todas las opciones sobre AWS a su configuración personalizada.
. Finalmente, puede seguir los mismos pasos descritos en las secciones Creación de la caja y Instancias por análisis para lanzar su instancia.
NOTA: La importación de AMI puede tomar mucho tiempo (alrededor de una hora), sin embargo, puede verificar el estado de la tarea haciendo esto. Por el momento, solo se puede construir una AMI por plantilla.
Instale awscli usando pip:
pip install awscli
Configure awscli con:
aws configure
Luego ejecute:
aws ec2 describe-import-image-tasks
Para conectarse a una instancia en la nube usando RDP, ejecute este comando en la misma ubicación de su Vagrantfile:
vagrant rdp -- /cert-ignore
Para que esto funcione, la instancia requerirá un grupo de seguridad que permita conexiones entrantes RDP (Tipo: RDP, Protocolo: TCP, Rango de puertos: 3389, Origen: IP pública del host).
NOTA: Puede ignorar con seguridad el siguiente error porque rsync aún no está implementado: No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
Para detener una instancia en la nube, ejecute este comando en la misma ubicación de su Vagrantfile:
vagrant halt
La configuración de incarcero se encuentra en un directorio que sigue las convenciones habituales del sistema operativo:
~/.config/incarcero/~/Library/Application Support/incarcero/C:\Users\<username>\AppData\Local\incarcero\incarcero\El archivo se llama config.js y se copia de un archivo de ejemplo en la primera ejecución. La configuración de ejemplo está documentada.
incarcero usa virtualbox como back-end por defecto pero desde la versión 0.3.0 se ha agregado soporte para ESXi / vSphere. Las notas sobre los pasos requeridos para el soporte de ESXi / vSphere están disponibles. Dado que la configuración de cada uno es un poco diferente, no dude en abrir un issue si encuentra un problema o mejorar nuestra documentación mediante un pull request.
Estamos explorando el concepto de perfiles que se almacenan por separado de la configuración y se pueden usar para crear archivos, alterar el registro o instalar paquetes adicionales. Consulte profile-example.js para una configuración de ejemplo. Esta nueva capacidad es experimental y está sujeta a cambios a medida que experimentamos con ella.
Actualmente, incarcero no admite la creación automática de grupos de seguridad, por lo que tendrá que usar la consola de AWS para crear los suyos. Sin embargo, usando la librería Boto3 debería haber una forma de implementar esto.
Este repositorio es solo para fines de investigación, el uso de este código es su responsabilidad.
No asumo NINGUNA responsabilidad y/o obligación por la forma en que elija usar cualquier código fuente disponible aquí. Al usar cualquier archivo disponible en este repositorio, usted entiende que ESTÁ DE ACUERDO EN USARLO BAJO SU PROPIO RIESGO. Una vez más, TODOS los archivos disponibles aquí son solo con fines EDUCATIVOS y/o DE INVESTIGACIÓN.
No soy el autor de ninguno de los códigos disponibles aquí. Este repositorio contiene muestras de código fuente de malware filtradas en línea (y encontradas en múltiples otras fuentes), lo subí a GitHub para simplificar el proceso de aquellos que quieren analizar el código.
Cualquier acción y/o actividad relacionada con el material contenido en este repositorio es únicamente su responsabilidad. El mal uso de la información en este repositorio puede resultar en cargos penales contra las personas en cuestión. No seré responsable en caso de que se presenten cargos penales contra cualquier individuo que haga mal uso del código en este repositorio para infringir la ley.
Este repositorio no promueve ninguna actividad relacionada con el hacking. Toda la información en este repositorio es solo con fines educativos.
Este proyecto fue rejuvenecido con la ayuda de malboxes.