Cómo usar el sistema operativo Linux oculto en pasos simples, pero es difícil hacer que funcione, está funcionando en una prueba que había hecho, no hay ninguna pista oculta.
Necesidades: saber cómo inyectar Linux Losetup completo (uno con los parámetros -P y --offset y --sizelimit) en initrams con el directorio de ganchos, etc.
Pasos:
Instale un Linux en un HDD 100% encriptado, use Grub2 para permitir que arranque desde rootfs encriptados con / boot as folder. Localice una lista de bloqueo grande no utilizada en la partición rootfs. Cree un bucle en rootfs descifrado con mosca, pero no sobre un archivo, sobre la suerte, necesita hacer la configuración con --offset y --sizelimit, ya que offset y tamaño son "secretos" (solo almacenados en su mente, no en grub .cfg).
En detalle, cómo funciona es simplemente explicar, desde un nuevo HDD sin datos:
Cree una tabla GPT, con solo una partición, cifre con LUKS dicha partición, instale un Linux ficticio con grug2 como gestor de arranque (no olvide agregar --modules = "luks" al hacer grub2-install, para que se pueda instalar grub2 dentro de la partición luks, no es necesario / iniciar como partición, puede ser una carpeta dentro de rootfs LUKS cifrados) ... este Linux será el que verán las herramientas forenses, los agentes fronterizos, etc.
Ahora ubique un área secuencial no utilizada en el espacio libre (tenga cuidado de no sobrescribir dicha área cuando use Linux externo), que los bloques secuenciales se usarán para un sistema operativo oculto.
Cree un bucle con losetup --ofset = InitialPosition --sizelimit = SizeOfSuchSpace en los luks descifrados (/ dev / mapper / ...), este bucle se verá como un disco duro virtual almacenado en el espacio libre ... (este es el mismo concepto que utilizan TrueCrypt y VeraCrypt).
Cree un LUKS (sin encabezado) para tener un nuevo / dev / mapper / ... para dicho espacio, dentro de ese, cree una tabla GP4 ext4 o completa con el esquema de particiones que desee para un sistema operativo oculto real, instale el Linux que desee (los mismos 32 o 64 bits que uno externo, pero no es necesario que tenga la misma distribución, solo la misma arquitectura), pero antes de reiniciar, edite los scripts de initram y la configuración completa y las bibliotecas necesarias (el único estándar en initramfs no admite --offset y --sizelimit, solo admite desde la posición X hasta el final del dispositivo de bloque), coloca también scripts para montar rootfs externos (donde algunos bloques se usan para sistemas operativos ocultos), luego en dicho script también agrega el comando losetup (usa parámetros personales para indicando desde grub2 el desplazamiento y sizelimit o código duro en el script), eso creará un dispositivo / dev / loop # para tales bloques,ponga el comando para abrir el LUKS (sin encabezado luks), que creará un / dev / mapper / ... como un dispositivo de bloque, luego monte el sistema de archivos o realice otra configuración con el parámetro -P si crea un esquema de particiones, etc. (si crea particiones en tales líneas, el parámetro use -P en losetup creará dispositivos / dev / loop # p #, por lo que debe agregar comandos de montaje para dichos bucles), ahora el sistema operativo oculto es accesible (recuerde montar rotfs sobre / root carpeta) ... todo este comando va en un script de premontaje para initramfs.ahora el sistema operativo oculto es accesible (recuerde montar rotfs sobre / carpeta raíz) ... todo este comando va en un script de premontaje para initramfs.ahora el sistema operativo oculto es accesible (recuerde montar rotfs sobre / carpeta raíz) ... todo este comando va en un script de premontaje para initramfs.
Cómo arrancará el sistema operativo visible externo: Encendido, BIOS o [U] EFI se carga, Grub2 se carga desde la partición encriptada LUKS con / boot as folder, solicita la fase de acceso para tales luks (es por eso que --modules = "luks "es necesario al instalar grub2), luego aparece el menú, seleccione para arrancar Linux y Linux externo se cargará desde tales rootfs que está cifrado por luks ... dentro de esos rootfs tendrá muchos bloques libres contiguos ya que tendrá un gran cantidad de espacio libre, algunos de ellos son los que solo tu mente sabe que se usan para algunos datos (realmente no son gratuitos, pero el sistema de archivos de Linux los tiene como frre), tales datos serán el sistema operativo oculto, por lo que nadie puede demostrar que es algo .
¿Por qué no es posible detectar un espacio tan diferente del resto? Debido a que los datos almacenados allí están encriptados por las mismas líneas que el Linux externo, pero cuando los descifran, se verán como datos andom, ya que también están encriptados por otra capa de líneas (tenga en cuenta que uno no debe tener encabezado) es un deber, o de lo contrario sería detectable).
Ahora, cómo arrancar en un sistema operativo oculto: encendido, BIOS o [U] EFI se carga, Grub2 se carga desde la partición encriptada LUKS con / boot as folder, solicita una fase de acceso para tales luks externos (es por eso que --modules = " luks "es necesario al instalar grub2), luego aparece el menú, presione la tecla 'c' para ir a la consola y comience a escribir los comandos de grub2 para obtener acceso al sistema operativo oculto, esto le pedirá la frase de contraseña oculta del sistema operativo, luego el comando para cargar vmlinuz ... con parámetros personales para offset y sizelimit (si no está codificado en los scripts de initram), luego escriba boot para comenzar a arrancar el sistema operativo oculto, solicitará nuevamente ambas frases de contraseña durante el arranque (para el externo y para el oculto).
Comandos en grub2 (no solo una guía exacta): insmod luks (quizás no sea necesario, es para poder llamar a cryptmount) cryptmount (hd0, gpt1), para montar luks externos que residen en / dev / sda1 loopback my_loop (crypto0), con parámetros offset y sizelimit (datos que solo tienes en mente) cryptmount (my_loop), para montar los rootfs del sistema operativo Linux oculto (crypto1, gpt1) / boot / vmlinuz ... my_parameter_offset = value my_param_size = value initrd (crypto1, gpt1) /boot/initrd.img ... boot
Adapte los valores a su escenario específico, gpt es para tablas de partición gpt, para bios uno es msdos (hd0, msdos1) o simplemente número (hd0,1), etc.
Algunas distribuciones crean un enlace simbólico a / boot / vmlinuz ... on / vmlinuz y la misma idea para /boot/initrd.img ... a /initrd.img de manera más fácil de actualizar, ya que no es necesario recordar nombres para dichos archivos.
Esto funciona como una definición plausible perfecta, porque es imposible para cualquier forense determinar qué bloques se utilizan para el sistema operativo oculto y cuáles tienen datos aleatorios. Todos ellos están encriptados por la misma capa de luks (la externa), si se debe revelar la frase de contraseña externa, todos los bloques os ocultos aparecen como bloques libres no utilizados en dicho sistema de archivos, y los datos vistos no pueden ser detectados como nada más que datos aleatorios . La posición de inicio y la longitud no se almacenan en ningún lugar (solo en su mente) y dado que el sistema operativo oculto está dentro de un espacio (sin encabezado de nivel) no hay forma de ver si hay otro nivel en los elementos externos descifrados.
Los comandos de grub2 para arrancar el sistema operativo oculto no deben almacenarse en ningún lugar excepto en su mente, de lo contrario, el sistema operativo oculto podría verse.
Sé que es difícil arrancar de esa manera, pero es el primer trabajo completo al 100% que llegué a trabajar.
Problema: si se usa un sistema operativo externo, después de que el sistema operativo oculto esté presente, el sistema operativo oculto puede dañarse, ya que sus bloques se ven libres en dicho Linux externo, por lo que puede sobrescribirlos. Pero al menos, sus datos privados permanecen privados y con denay plausible está presente.
No hay forma de detectar este sistema operativo oculto sin saber todo esto: -Frase de contraseña externa -Posición inicial de los bloques utilizados para el sistema operativo oculto -Tamaño (número de bloques) para el sistema operativo oculto -Frase de contraseña del sistema operativo oculto
Muy importante: -Los bloques de sistema operativo ocultos deben estar en el espacio libre de luks externos descifrados, no en un archivo en dicho sistema de archivos. -El bloque oculto del sistema operativo debe ser una única región contigua -El sistema operativo externo puede dañar el sistema operativo oculto si se usa
Consejo: cómo obtener un área de bloque contiguos completa ... con un livecd primero cree un clon de bloque de bajo nivel de Linux externo (el disco duro real, encriptado), para que pueda restaurarlo después, le recomiendo clonar en un archivo ... .monta el archivo como un bucle y abre las luks, crea un archivo grande, obtén la lista de bloqueo de archivos, asegúrate de que esté contiguos, ahora tienes inicio y tamaño para el sistema operativo oculto ... desmonta las luks y el bucle para el archivo, elimina el archivo ... ahora sabe que en un disco duro real, después de abrir luks, conoce un área completa de bloques libres que puede usar para el sistema operativo oculto.
Espero que alguien con un gran conocimiento pueda implementar todo esto bajo una bifurcación de dos frases de contraseña (si la frase de contraseña1 usa solo ir a Linux externo, si la frase de contraseña2 va a una oculta).
TrueCrypt y VeraCryrpt no pueden garantizar denay, ya que saben cómo acceder al sistema operativo oculto sin que el usuario le diga dónde está el sistema operativo oculto ... no importa cómo almacene esa información, la información está ahí ... por lo que esta solución de Linux es mejor en términos de seguridad, pero demasiado difícil de usar durante el día, imagina que necesitas arrancar cinco veces al día.
No conozco otro método para tener realmente un Linux oculto, ni sé de nadie que lo sepa.
Muy importante, realmente muy importante: para poder arrancar en un sistema operativo oculto, necesita (al menos) grub2 versión 2.02 ~ beta3 (sí beta3, no beta2, ya que beta2 tiene un gran error con el comando cryptomount ya que solo permite una llamada a el resto no hace nada, y tampoco permite el acceso a luks sin cifrar).
Espero que más personas usen esta estructura para el sistema operativo oculto. Lo uso en todos mis Linux (32 y 64 bits).
Tiempo estimado de implementación: más de uno / dos días. Nivel de conocimiento: Muy alto, realmente muy alto. Velocidad del sistema operativo oculto: menos de 15MiB / s de lectura / escritura en un antiguo Pentium IV HT (3.4GHz), mucho más rápido en las PC modernas y mucho más si se utilizan instrucciones de hardware del procesador de cifrado ... está utilizando dos capas en cascada, algunos bucles, etc.