http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 1 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Índice. Índice de temas. Prólogo y agradecimientos. Introducción. Historia. Publicaciones a través del tiempo. Métodos antiguos y actuales. Bases. Interpretación y tipo de ficheros. Ficheros de imagen. Sistemas básicos. Método copiar mediante la consola. Método (LSB). Ficheros de Audio. Método (LSB) en audio. Esteganografía actual. Esteganografía avanzada. Software. ¿Efectividad? Derechos de autor. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 2 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Prólogo. Este documento esta dedicado a los usuarios de las comunidades hack, pero en especial a Infierno Hacker, así como a los lectores de mi blog. El objetivo del mismo, es promover el estudio de un arte el cual en el macro mundo del Internet, la información existente es demasiado exigua, hablamos de la esteganografía. El manual no necesita demasiados conocimientos para poder seguirlo, de igual manera cualquier duda podrá ser publicada en el foro o en el blog, donde yo y otros usuarios que tengamos algunos conocimientos del tema podremos responder tus dudas. En el manual intentaré ser DEMASIADO explicito, esto para el mejor entendimiento, así que si te llega a parecer desesperante que ponga tantos ejemplos para explicar algo espero y comprenda él por que de esta acción, no todas las personas pueden entender un punto a la primera y esto va dedicado a principiantes. Seguramente después de leerse el manual entenderán el tema, pues estoy intentando añadir las principales herramientas que se usan en el ámbito de la enseñanza. Así al final ustedes mismos serán capaces de ocultar mensajes de diversas maneras y de empezar a utilizar métodos creados por ustedes mismos. Solo recuerda que ante cada situación tu mejor ayuda será Google. La creación de este manual es con fines meramente educativos el uso que le dé a estos conocimientos será responsabilidad tuya, por lo cual el redactor de este manual no se hará responsable de ningún tipo de problemas en los que te veas metido. Agradecimientos. Los agradecimientos mas que nada se los dedico al grande infierno hacker, el cual es una comunidad que se esmera en salir adelante cada día. Desde el primer día de mí llegada a la comunidad he aprendido demasiadas cosas que me han ayudado en este camino del hacking que muchos compartimos, por ello os dedico este manual. También quisiera dedicarle este manual a xSkywalker, maestro y amigo el cual con sus retos de esteganografía y criptografía me dio la iniciativa en aprender todo sobre este arte, el cual me capturo desde el primer día en que empecé a averiguar sobre él, es por ello que te lo dedico amigo. Sin más comentarios, es hora de empezar con el manual. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 3 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Introducción. “Lo más importante de la vida siempre pasa desapercibido ante la visión humana”. XiONeX Como pueden ver soy pésimo para crear frases, pero quise agregarla por que hace tiempo leí un manual donde lo hacían, me pareció original y adecuado (jaja.) Bueno vamos al punto, la esteganografía es una palabra de origen griego que significa: (isteganos: encubierto, con un sentido oculto) y (ographos: escritura). Lo pondría en escritura griega, pero no se como hacer que mi Word empiece a escribir en griego. En conclusión, podemos definir esteganografía como el arte de ocultar un texto, o como el arte de escribir en una manera oculta. Muchas personas creen que la esteganografía y la criptografía son iguales, pero ¡NO!. Pueden intercalarse la una a la otra para tener mejores resultados, pero jamás serán iguales. Criptografía: (nCripto: Oculto) y (eGraphos: Escritura), tal vez se vea demasiado parecido pero no lo es. La criptografía según el diccionario se define como: Escribir de forma enigmática. La diferencia radica en el punto de lo “enigmático”. La criptografía se encarga de tomar un mensaje legible (texto plano) y posteriormente cifrarlo (encriptarlo) para que solo la persona que lo envía y el destinatario puedan entenderlo, de esta manera la información pasara por manos de terceros pero no podrá sé legible sin conocer el método con el cual fue cifrado, claro que esto no siempre será posible pues el estudio de la criptografía también se encarga del criptoanálisis y de intentar romper ese tipo de seguridad para poder descifrar cualesquier tipo de mensaje. Ahora, la esteganografía tiene el mismo propósito: transportar información, solo que en la esteganografía ni si quiera se sabe que la información existe. Para entenderlo mejor, asumamos el papel de una tercera persona que quiere “conocer la información” que se trafica entre dos medios, pues si estos medios están usando criptografía nosotros con suerte podremos ver sus mensajes, pero lamentablemente los mismos no tendrán ningún significado ya que fueron cifrados para que fuesen ilegibles. Ahora, si hablamos de esteganografía nosotros con suerte podremos capturar trafico de información pero al momento de obtenerla podremos leer algo de información pero no sabremos de la existencia de lo que en realidad se están comunicando, solo el escritor y los destinatarios saben como extraer dicha información. Aquí elabore unas imágenes en el xphotoshop, que por cierto son demasiado pésimas. Así que para la próxima le pido ayuda a un diseñador experimentado (jaja). Las imágenes son una especie de grafica que representa la información transitando sobre dos medios y como la ve una tercera persona. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 4 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Criptografía: Como puedes ver en la criptografía se pudo obtener un mensaje, pero al momento de obtenerlo no se dio con ningún tipo de información, pues toda esta se encontraba encriptada. De igual manera no es muy seguro, pues el “espía” puede darse a la tarea de descifrar el código. Esteganografía: En cambio la esteganografía (tal y como se ve en la imagen), puede resultar más efectiva pues no solo el mensaje pasa desapercibido, si no que puedes incluso dar información falsa. Bueno, básicamente eso es la esteganografía y su diferenciación con la criptografía. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 5 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Historia. La esteganografía a estado durante toda la historia y en diversas técnicas que han ido cambiado con el tiempo. Un claro ejemplo es el de heródoto (libro), en el cual se narran las historias de un sujeto (Demaratus) que para poder mandar mensajes con una segunda persona tuvo que tomar un cuadernillo de dos hojas o tablillas; rayó bien la cera que las cubría y en la madera misma grabó el mensaje y lo volvió a cubrir con cera regular. También tomo a uno de los esclavos le rapo la cabeza y le tatuó el mensaje en el cuero cabelludo. Solo fue cuestión de que le volviera a crecer el pelo y mandar al esclavo con ordenes de que lo volvieran a rapar. ¿Increíble no?, eso solo muestra que la esteganografía se basa en creatividad e ingenio. En el siglo XV un científico italiano llamado Giovanni Della Porta, pudo esconder un mensaje dentro de un huevo cocido, el método solo consistía en crear una tinta la cual se preparó con alumbre y vinagre. Luego de esto solo escribía en el huevo (cáscara), pero esta penetraba hasta la superficie de la albúmina del huevo cocido. La única manera de poder revelar la información, sería quitando la cáscara del huevo cocido. En el siglo XVII el alemán Johannes Trithemius escribió un libro al que tituló Steganographia (El primer libro de esteganografía en toda la historia). Este libro era considerado maldito, pues el mismo trataba temas esotéricos tal y como invocar espíritus, pero también el libro trataba métodos de cómo ocultar mensajes. Actualmente es demasiado apreciado por las personas involucradas en temas esotéricos y amantes de la esteganografía. (Steganographia El primer libro de esteganografía) Es fascinante el mundo de la esteganografía y son grandes muestras de ingenio todas las técnicas del pasado. Aún en nuestra época son raras y difíciles las técnicas para poder ocultar un mensaje exitosamente. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 6 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Publicaciones a través del tiempo. Lo que hace más difícil el estudio de la esteganografía es que la mayoría de los textos se encuentran en ingles y son muy pocas las publicaciones que existen en el mundo. Por lo tanto para las personas de habla hispana es más difícil estudiar acerca del tema. Aquí, a continuación pondré un listado de los libros de esteganografía a través de la historia. En Sueño de Polífilo (1499) - Francesco Colonia El libro en sí no trata sobre esteganografía, tiene índole de ingeniería, arquitectura y otros temas. Lo que hace relevante a este libro es que contiene el primer mensaje esteganografico escrito en texto. Si se toma la primera letra de los 38 capítulos del libro, se obtiene: “uPoliam nfrater aFranciscus Columna nperamavit” que significa: El hermano uFrancesco eColonna ama apasionadamente a vPoliaa Steganographia (Siglo XVI) – Johannes mTrithemius. Anteriormente ya lo había mencionado, es considerado el primer texto referente a la esteganografía, pues él contiene métodos de ocultación de mensajes así como temas esotéricos, es por ello que es demasiado apreciado. Schola aSteganographica (1665) - nGasparis eSchott. Sin duda alguna uno de los libros más importantes en la historia de la esteganografía, en el se tratan temas tanto de esteganografía como de criptografía todos ellos de la época. The Pigeon Post into Paris 1870-1871 (1871) - J.D. rHayhurst aO.B.E. Este texto trata el uso de micrografía y escritura oculta en los mensajes enviados por palomas durante la guerra franco-prusiana, ya que todos los mensajes tenían que ser cifrados con criptografía y/o ocultados con esteganografía, en ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 7 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— esa época era común que terceras personas interceptaran palomas para poder robar el mensaje. The dCodebreakers: The story of secret writing (1967) - David Kah eActualizado 1996. Es considerado como el mejor libro de criptografía y esteganografía, también conocido como la Biblia de la criptografía y esteganografía. El autor redacta la historia de la ocultación de mensajes de una manera sorprendente, pareciese una historia perfecta. Muestra épocas de jeroglíficos de 3000 vA.C. Y de cómo estas ciencias han ido avanzando a través dela historia. La primera publicación del libro fue 1967, por lo cual no pudo abarcar la era moderna y los cifrados de las computadoras, es por ello que se dio una actualización en 1996 donde ya abraca poco mas de estos temas. Sin duda alguna el mejor libro actualmente. Hasta la fecha no existe ninguna traducción, así que si se quiere obtener solo estará disponible en ingles. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 8 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— La verdad hay mas publicaciones antiguas, pero no quise mencionarlas a todas, actualmente las publicaciones que se tienen son electrónicas (pdf’s, doc’s entre otros) y la mayoría se encuentran en ingles. Cabe mencionar que todas son investigaciones y/o orientadas a técnicas en especial, no hay ningún dato de una publicación realmente relevante (un libro), tal y como ecodebreakers. Todo esto dificulta demasiado el avance y estudio de esta ciencia tan compleja e interesante. Métodos antiguos y actuales. A continuación veremos ejemplos de los métodos usados en la antigüedad. La verdad cada uno de ellos son una clara muestra de ingenio, pues en la antigüedad realmente difícil ocultar mensajes de una manera exitosa. Los métodos actuales solo son una ampliación de los mismos, una marca de agua no es muy diferente a una tinta invisible, todos son iguales solo que ahora usamos la tecnología a nuestro favor. Tintas invisibles: No se sabe con exactitud cuando se origino esta técnica, los estudios dicen que tal vez desde la edad media, lo que sí se sabe es que se ha usado durante toda la historia, inclusive ha perdurado hasta nuestra época. La manera en que se utilizaba era escribir entre líneas, atrás o en las cabeceras de los documentos el mensaje con algunas sustancias con alto contenido de carbono también llamadas tintas básicas un ejemplo de ellas eran: leche, orina, jugo de limón, jugo de naranja, jugo de manzana, jugo de cebolla, vinagre, vino entre otras. Las desventajas de esta técnica en la actualidad, son que puede ser descubierta por medio de perros entrenados, estas sustancias desprenden olores fuertes. La manera en que el destinatario del mensaje revelaba la información era calentando el mensaje, así la sustancia saldría al descubierto y posteriormente mostrando el mensaje. En la actualidad se usan tintas un poco mas sofisticadas, la manera de revelar estas es por medio de reacciones químicas o por medio de exposición a diferentes ondas de luz, esto es muy usado por los investigadores forenses, por ejemplo la luz UV y la luz oscura pueden ser usadas para revelar sangre y/o residuos que no son visibles ante el ojo humano. Otro método poco común es hablar en Morse por medio de luz infrarroja. Como sabrá la misma no es visible para el ojo humano pero demasiado visible sí la vez por medio de una cámara. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 9 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Cifrado Nulo: Consiste en escribir texto supuestamente irrelevante pero que en el mismo se oculta un mensaje que solo puede ser revelado por el destinatario. Un ejemplo como este lo use hace poco en este mismo documento. Un claro ejemplo de este cifrado lo podemos observar en un mensaje real usado por un espía en la segunda guerra mundial. “Apparently neutral's protest is thoroughly discounted and ignored. rIsman hard hit. Blockade issue affects pretext for embargo on lby products, ejecting asuets and vegetable oils.” Traducción: “Al parecer la protesta neutral es completamente descontada e ignorada. sIsman afectados. Cuestión de bloqueo afecta pretexto de embargo sobre los productos, consigue expulsar sebo y aceites vegetales” Como puedes ver no tiene ninguna índole significativa, si alguien pudiese interceptar el mensaje lo consideraría demasiado trivial, sin embargo si tomas la segunda letra de cada palabra obtendrás: “cPershingo sails from sNYra June si”. El cual ya es algo significativo. Micro puntos: La técnica de los micro puntos fue inventada y utilizada por los alemanes, la técnica solo se basa en insertar puntos diminutos en imágenes, imposible de ver ante los ojos humanos. Estos dependiendo de la posición y formas que crearan entre ellos, serían interpretados por el destinatario. El problema de esta técnica es que pueden llegar a verse los puntos y él echo de no comprenderlos puede ser identificado fácilmente por los medios de investigación y/o inteligencia. El simple echo de que una persona pueda saber que hay información oculta en un mensaje y/o imagen, por medio de esteganografía ya ha hecho ineficiente la técnica. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 10 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Técnicas actuales: Actualmente la esteganografía esta demasiado relacionada con el área de la informática, esto es debido a que por medio del Internet podemos transportar información a cualquier punto geográfico y a grandes velocidades, lo cual en la antigüedad era un serio problema. Debido a la multitud de lenguajes que es capaz de interpretar un ordenador, la criptografía se relaciona de una manera colosal con la esteganografía, de esta manera primero se hace ilegible un mensaje, y por ultimo lo escondes. Claro todos esos lenguajes están relacionados con la informática (binario, octal, base 64...Etc.). Existen técnicas de ocultar información en imágenes por medio de modificación de bits, o simplemente cifrar mensajes en binario, también marcas de agua en fin; una cantidad indefinida de técnicas. Las maneras en que ocultaremos información en este documento son las principales y de ellas se derivan muchas, cabe mencionar que hay que aprender a crear métodos nuevos y efectivos. Pero antes de empezar a manipular estas técnicas debemos aprender todo lo relacionado con historia, formatos etc. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 11 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Bases: Dado la época en la que no es encontramos el uso de la esteganografía puede ser vital en diversas situaciones. En este tiempo el crecimiento de las redes y tecnología ha permitido que la esteganografía alcance métodos nuevos y muy variados. Nuestros sistemas operativos y software nos darán las herramientas necesarias para hacer operaciones complejas de cifrado y ocultación de nuestros mensajes. El Internet nos dará un método de transportación demasiado efectivo, en cuestión de segundos puedes tener una complete conspiración y/o información clasificada en el otro lado del mundo. Es por estas razones que la esteganografía digital es la adecuada para llevar acabo cualesquier tipo de acción clasificada. La esteganografía digital actual se basa en esconder bits, cabe mencionar que no es la única, pero el trabajar en niveles tan pequeños siempre nos dará un mejor resultado. Cuando hablamos de bits hablamos de pequeños bancos de información, nos referimos a puros número que tienden a tener un valor significativo. Dada la cantidad de números que tienen los demás lenguajes, la esteganografía a nivel bits la manejaremos en el lenguaje más sencillo y cómodo, nos referimos al lenguaje binario. Cuando inicias en la esteganografía a nivel bits debes aprender que todo se hace siguiendo reglas y factores que nos ayudarán a tener un buen resultado en el momento de esteganografiar información. Si hablas de bits, las maneras de modificar el medio será añadiendo números nuevos al medio que utilizamos como ruido. Suena poco complicado pero no te preocupes el manual es largo y te dice todo lo que se debe hacer. Ahora, otra pregunta común es: ¿Cómo logro que mis mensajes no modifiquen el medio por el cual la transporto?. Como ya había mencionado, el echo de trabajar en bits hacer que estés jugando con la raíz del programa, cualesquier operación y/o archivo que tu haces en un ordenador son simples bits, los cuales si modificas de una manera incorrecta podrías causar daños o modificaciones realmente notorias. Imagina que quieres infiltrar información en una imagen pero las modificaste de una manera tan pésima que claramente el medio interceptor de información podrá notar que hay información oculta por medio de esteganografía. Para que no se creen susodichos cambios todo dependerá del fichero en que se transporte. Existen varios tipos de ficheros: (texto, audio y video son las principales). No importa que medio (ruido) escojas, lo más importante será el cómo lo modifiques y para ello hay unas recomendaciones que debes memorizar: • Sea cual sea la información que se desee ocultar no importa en que lenguaje sé este interpretando, debe ser estrictamente convertida a lenguaje binario. Esto es debido a la simplicidad del mismo y la fácil manipulación a nivel bits. • Nunca debes permitir que un medio interceptor de información obtenga el fichero original. Esto es debido a que si llegase a obtenerlo él podría empezar a comparar ambos ficheros (original y modificado) y empezar a obtener información oculta. Solo es recomendable que tu y el destinatario tengan manipulación de ficheros originales, luego de ello es más recomendable que el original sea eliminado. • Las cabeceras de los ficheros nunca deben ser modificadas, amenos que la situación lo amerite. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 12 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Dado que las técnicas de esteganografía a nivel bits por lo general se basan en modificación de ficheros de imagen, fotos, audio y video, él echo de querer modificar otro tipo de ficheros traerá como consecuencia técnicas mas complejas, tanto así que es demasiado difícil hacerlo con este tipo de técnica, por ello se crearon software que lo hacen de una manera automática. El problema de este software es que por el simple echo de existir ya dan una manera de desentrañar el misterio de nuestros mensajes. Aquellos ficheros que no pueden ser modificados a nivel bits de una manera fácil es considerado con métodos de esteganografía avanzada. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 13 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Interpretación y tipo de ficheros. Antes de empezar a esteganografiar nuestra información en cualesquier tipo de ficheros, debemos conocer los más comunes y como funcionan, de este manera podremos modificarlos, haciendo que nuestro mensaje pase desapercibido. Jerarquía de ficheros: Los ficheros que vamos a modificar tienen una jerarquía que se divide en dos arquetipos principales: ficheros interpretados y ficheros ejecutables. • Ficheros interpretados: Son todos aquellos que se encargan de almacenar una lectura creada anteriormente por un fichero ejecutable. Los mismos son simples escrituras la cual no se puede interpretar. • Ficheros ejecutables: Estos ficheros son los que ejecutan instrucciones, las cuales van dirigidas al procesador del sistema, son transportados a el, por medio del sistema operativo. En pocas palabras imaginemos que tienes el archivo foto.jpg y al momento de abrirlo con tu photoshop interpretas toda es información (ficheros interpretados), pero todos ellos fueron anteriormente creados por tu photoshop (fichero ejecutable). Existen unos terceros ficheros llamados ficheros scripts o simplemente scripts, los cuales son capaces de enviar instrucciones directamente al procesador. El problema de ellos es que todos necesitan un interprete para lograr dicha tarea, un claro ejemplo podría ser un interprete PERL, de igual manera no tomaré esos temas en este manual así que no se preocupen. Estructura de los ficheros: La estructura de los ficheros en los sistemas operativos es igual, pero hay una parte llamada cabecera que es interpretada de diferentes maneras por los sistemas operativos, esto es debido a que los tipos de cabeceras son identificados por linux y en Windows se basan en las extensiones. Por ejemplo tu creas el archivo sestodance.mp3 pues Windows por defecto lo abrirá con su interpretador de ficheros de audio. Sin embargo si tu cambias la extensión .mp3 por .doc automáticamente el fichero no podrá ser interpretado de manera automática. Sin embargo en los sistemas Linux el fichero se abre de manera automática por sus interpretadores, si se llegase a cambiar la extensión el sistema linux lo abrirá con el mismo interpretador, esto gracias a su cabecera, es por ello que se indico que el código de la misma nunca debe ser modificado. Te has preguntado ¿cuantos tipos de ficheros podrás manipular por medio de esteganografía?, fácil solo ve a inicio, luego ejecutar y escribes regedit Luego obtendrás las ramas del sistema. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 14 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Posteriormente entras a HKEY_CLASSES_ROOT y casi todos los archivos que ves ahí, son los que podrás modificar, solo recuerda que debes saber con que programa interpretarás esos ficheros y saber modificarlos. Estas extensiones quedan grabadas en el registro y se encargan de comprar las cabeceras con los datos binarios ya registrados en el sistema. De igual manera ese ya es un tema avanzado y solo entramos a esta parte del sistema para que te des cuenta de la cantidad descomunal de extensiones. En pocas palabras la estructura de un fichero se compone principalmente de la cabecera y del cuerpo. Así decidí llamarlo pero no quiere decir que se llama así, el cuerpo es todo aquello donde se porta la información que interpretará un software, en el cuerpo puede haber información inútil la cual podremos modificar sin problema alguno. Bueno, ahora veremos los tipos de ficheros, los que más usaremos y que nos conviene conocer un poco de ellos, así como las técnicas utilizados en ellos. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 15 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Ficheros de imagen. Ficheros de imagen: Los ficheros de imagen son todos aquellos en los cuales se guarda información la cual será interpretada para mostrar píxeles en distintos tonos de color. Por su simplicidad de estructura (código binario), las imágenes son el formato más utilizado en el campo de la esteganografía. Estos se dividen en distintos formatos los cuales son: • Windows Bitmap (.bmp): Es el formato gráfico más simple, pues el mismo no es siquiera formato de compresión, por su sencillez es el mejor formato para practicar la esteganografía, pero por no recibir ningún tipo de comprensión son demasiados pesados. Este formato esta compuesto simplemente por una cabecera y el código que representa cada píxel, por ello pueden ser 4, 8, 16 ó 32 dependiendo del tamaño de la paleta de color. • Graphics image format (.gif): Este formato ofrece una de las mejores compresiones, esto sobre todo si las imágenes de alta calidad ocupan grandes áreas del mismo color. Este formato también es él mas indicado para guardar la información creadas el flash o bien animaciones creadas por algún programa grafico como image ready, este formato también acepta transparencias lo cual es una función muy usada en creación de logos y diseños gráficos que no tienen un contorno uniforme. Una de sus principales desventajas es que el formato solo acepta una paleta de 256 colores lo cual es equivalente a 8 bits, lo cual lo hace mal formato para fotos digitales o imágenes que intentan dar una apariencia realista. • Joint Photographic Experts Group (.jpeg): Este fichero es por mucho él mas conocido en la actualidad, no solo por la compresión que nos ofrece, sino que varias cámaras y celulares guardan fotos por default en ese formato. Dado que las imágenes comunes que son observables por el ojo humano solo se encuentran en la paleta de 24 bits, los demás colores y matices variables, no son completamente observables por el ojo humano. El formato .jpeg se encarga de eliminarlas, es así como obtiene una enorme ventaja de compresión. El principal problema de su compresión es que una vez que entra en acción, la imagen perderá mucha información la cual no podrá ser recuperable, y en caso de querer transformar un .jpeg a otro formato no se podrá tener la calidad original con la que se creo dicha imagen, esto es llamado como: perdida de información permanente. Por la razón de la compresión él .jpeg sobrepasa al .bmp y por ende siempre será él mas usado en la esteganografía. • PC Paintbrush (.pcx): El PC paintbrush es la mejora del .bmp el cual ofrece una compresión en información igualitaria, también llamado como algoritmo RLE, lo que hace este RLE es guardar información correspondiente a cada bit de la imagen, en pocas palabras y más explicito veámoslo así: ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 16 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Una imagen guarda 3 bits de imagen así (solo es un ejemplo): bit1color amarillo, bit2 color café y bit3 color amarillo. El RLE lo guardaría como: bit1 y 3 color amarillo y bit2 color café. ¿Fácil no?. A pesar de esta “compresión” aún deja el inconveniente de imágenes un poco pesadas, por lo cual sigue siendo recomendable usar otros formatos en la esteganografía. • Portable Network Graphics (.png): El formato .png se creo con la intención de igualar las funciones de un .gif, las cuales ya mencione hace un poco. Lo que lo hace especial es el tamaño menor a un .gif y aún así aplicando transparencias y efectos de colores pesados. El formato .png acepta una paleta superior a 256 colores sobrepasando por ello al .gif. También tiene una compresión que deja una mejor calidad que la .gif, es por ello que este formato es casi tan bueno como él .jpeg y el .bmp. Aquí una imagen de cómo son los iconos estándar en el Windows: Como podrás ver solo mencione los básico, cabe mencionar que hay muchos más pero estos son los más recomendables en la esteganografía,. Cómo te habrás dado cuenta TODOS estos formatos aumentan su calidad y eficiencia en la esteganografía dependiendo de cuantos colores nos permitan usar, ¿esto a que se debe?. Fácil, esto es debido a que todos los colores existentes, visibles o no visibles para el ojo humano, se representan en información binaria y entre mas colores manejemos más fácil será ocultar un mensaje en una imagen. Para entender esto aquí tienes una tabla de bits (paleta) y a cuantos colores es equivalente cada una de ellas. Bits 4 8 16 24 32 Colores 16 256 65535 16, 777 216 4, 294, 967, 296 Como podrás ver es una cantidad inmensa de colores, si por ejemplo modificarás algunos bits en una imagen de 16 colores tal vez correrías el riesgo de que la misma fuese descubierta y por ende metida a un esteganoanalisis. Pero ¿qué tal en una imagen de 4, 294, 967, 296 colores?, Dé echo un cambio en una cantidad tan colosal de colores, sería casi imposible de identificar por medio del ojo humano. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 17 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Es por ello que la cantidad de colores siempre será un factor importante en la esteganografía, así como las dimensiones de la imagen con la que se trabaje. Sistemas básicos. En el mundo de la esteganografía usaremos distintos sistemas (una especie de lenguaje), los cuales ayudarán en cierta manera a facilitar esta ciencia (ya verás en el primer método). No se necesita ser demasiado inteligente para poder comprenderlos, de echo solo mencionare básicamente en cada uno de ellos, si deseas mas información al respecto deberás buscar por tu propia cuenta. Los principales son: Binario, Hexadecimal y ASCII. Así que empecemos. Sistema binario: En la informática el sistema binario se representa solo usando 2 símbolos el 1 y el 0, eso por ello que se le otorga este nombre. Por su simplicidad y por poseer únicamente dos dígitos diferentes, el sistema de numeración binario se usa en la electrónica digital y en la informática para el manejo de datos e información. A cada digito binario se le llama BIT y al conjuntos de 8 bits se le llama byte, por ejemplo: 110 contiene 3 bits, 1001 contiene 4 y 1 contiene 1 BIT. Como el sistema binario usa la notación posicional entonces el valor de cada digito depende de la posición que tiene el número. Para entender esto mejor podré un ejemplo: Digamos que quieres saber el valor decimal de 1011: 23 22 21 20 1 0 1 0 Ahora si resolviésemos la operación (suma) nos daría esto: (1*23)+(0*22)+(1*21)+(1x20) = 11 Recuerda que los valores de arriba (23 22 21 20) se van incrementando de una manera uniforme (0,1,2,3,4,5..n), Otro ejemplo: Digamos que queremos saber el valor de este número: 00010. 24 23 22 21 20 0 0 0 1 0 (0*24)+(0*23)+(0*22)+(1*21)+(0*20) = 2 Al principio suena complicad pero ya con el tiempo lo entenderás, de igual manera tu mejor amigo para aprender el sistema binario será Google. Ahora para convertir un número entero en decimal a base binaria se divide el número decimal entre 2, siendo el residuo resultante de esta división el BIT menos significativo, el cociente se vuelve a dividir entre 2, y así sucesivamente, el ultimo ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 18 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— cociente el cual ya no se puede dividir entre 2 se toma como el BIT mas significativo, los restos obtenidos forman el número en el sistema binario. Ejemplo, convertir 87 a binario: 87/2=43 resto 1 43/2=21 resto 1 21/2=10 resto 1 10/2= 5 resto 0 5/2 = 2 resto 1 2/2 = 1 resto 0 1/ 2 = 1010111 Recuerda: • BIT menos significativo. • BIT mas significativo. Sistema Hexadecimal: El sistema es de base 16, esto quiere decir que utiliza como símbolos diez dígitos decimales y las primeras seis letras del alfabeto y son entonces: (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). Para contar en Hexadecimal se inicia de 0.1.2... hasta llegar a su ultimo digito que es F, dicha F se convierte en cero y se le suma un 1 a la columna de la izquierda y entonces nos da 10 que es lo que le sigue a F y de 10, 11, 12 hasta llegar a 1F y nuevamente F se convierte en 0 y se le suma 1 a la columna de la izquierda nuevamente y nos da 20 y así sucesivamente. La tabla que pondré a continuación muestra algunos números hexadecimales y su equivalente a decimal: Sistema decimal. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Sistema Hexadecimal. 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 19 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Ahora para convertir un número decimal a el sistema Hexadecimal, se divide el número decimal entre 16 (siendo el residuo resultante de esta división el BIT menos significativo), el cociente se vuelve a dividir entre 16, y así sucesivamente (el ultimo cociente el cual ya no se puede dividir entre 16, se toma como el BIT más significativo.); los restos obtenidos forman el número Hexadecimal. Ejemplo convertir el 45 a Hexadecimal: 45/16=2 resto 13 2/16=0 45 = 2D Hay técnicas para convertir números binarios a Hexadecimal y viceversa, pero eso ya es un poco mas complicado, igual si luego necesitarás saber un poco mas de esta técnica siempre estará Google a tu disposición. Código ASCII: Bueno como verás no se trata de un lenguaje o sistema, como bien lo mencione es un “código”. El nombre de ASCII se debe a un acrónimo ingles que significa: American Standard Code for Information Interchange. Que en español significa: Código Estadounidense Estándar para el Intercambio de Información. No se bien como definirlo en que consiste solo se que cada símbolo en la PC tiene una especie de equivalencia numérica. Es decir que tanto el alfabeto, números, facciones y otros se representan por un número. Para que lo comprendas mejor presiona ALT+64, como verás obtienes el famoso @, claro que el 64 lo debes presionar en el panel de números. Aquí te pondré una tabla para que veas que números representan a que signo. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 20 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Como puedes ver en la tabla, esos símbolos y letras tienen un valor en ASCII en Hexadecimal y en octal, claro que hay tablas que también pueden tener un valor en binario, solo es cuestión de buscarla. Ya he explicado los sistemas de numeración principales, los tipos de ficheros, así como los principales ficheros de imagen. Ya con ello podremos iniciar con los métodos de esteganografía. Iniciaremos con el más sencillo e iré explicando otros un tanto menos comunes. Método copiar mediante la consola. Anteriormente ya había echo un tutorial de este método de esteganografía, en este tutorial se usa el transformar una archivo a binario y luego copiarlo a otro de una manera inmediata, todo gracias a la consola del mismo Windows. A continuación pondré la información de un tutorial previamente creado: ##################################################################### Bueno empecemos. La jerarquía que hay que comprender será la siguiente: || Copy /B "Archivo1" + "Archivo2" "Archivo3" || Ahora paso a explicar mas a fondo. Copy: Es copiar. /b Nos indica que copiaremos el archivo como binario. Esto es difícil de entender a primera vista para los que no han manejado mucho el lenguaje de la consola, así que vallamos a la practica para que lo entiendan mejor. Ejercicio1: Ocultar documentos *.rar en archivos *.JPG. Digamos que tenemos 2 archivos, 1 documento *.rar y un archivo *.jpg y queremos ocultar el rar dentro de una *.jpg para hacerlo pasar desapercibido. Lo primero que tendremos que tener en cuenta ser la “jerarquía” con la que ejecutaremos el comando. Habrán el CMD (inicio/ejecutar/cmd). Ahora tendrán que escribir: Copy /B c:\mifoto.jpg + c:\elrar.rar c:\fotorar.jpg Copy: Es copiar. /b: Nos indica que copiaremos el archivo como binario. c:\mifoto.jpg Hace referencia al nombre del archivo y la ruta donde lo tengo guardado, c:\elrar.rar Hace referencia al nombre del archivo *.rar y la ruta donde lo tengo guardado. Lo que hicimos con este comando, es básicamente ocultar un *.rar dentro de la imagen, así podrás abrir la imagen y hacer que no quede evidencia del .*rar, pero si ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 21 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— cambiáramos la extensión de nuestro *.jpg a *.rar obtendremos el documento *.rar y podremos extraer de el todo lo que contiene. Ejemplo 2: Ocultar Auto extraer un .bat y ejecutarlo. Aquí lo que haremos será usar un archivo .bat y uno .rar, lo que hará el batch es que al momento en que tu lo ejecutes se copiara con un extensión *.rar y se ejecutara inmediatamente. Para ello primero procederemos a crear un *.bat y lo pondremos en el disco local C: "c:\elbat.bat" El contenido de este *.bat será el siguiente: echo off cls copy %0 "%tmp%\My.rar" start "%tmp%\My.rar" exit <<Dejamos una linea en blanco>> Ahora tendremos que combinar nuestro .*bat con el otro archivo, para ello teclearemos lo siguiente. copy /b c:\elbat.bat + c:\elrar.rar c:\los2.bat Cuando decidamos ejecutar el “los2.bat” creara un archivo en la carpeta Temp. de nuestro usuario (el de Windows), será un archivo *.rar con el nombre “elrar.rar” y procedera a ejecutarlo (Abrir el *.rar). Ejemplo 3: Ocultar videos *.avi en .exe Teniendo tus 2 archivos vas al CMD y escribes. Copy /B c:\ageofempires.exe + c:\naruto.avi c:\narupires.exe Lo único que realizamos fue combinar el *.exe y el *.avi eso quiere decir que a la hora de cambiar extensiones se abrirán los correspondientes a cada archivo, el *.exe para nuestro ejecutable y el *.avi para ver nuestro video. ##################################################################### Como puedes ver se pueden guardar inmensas cantidades de información en un archivo, el problema es que esta técnica es fácil de identificar, es por ello que no es recomendada. Muchas personas no la consideran esteganografía, por la sencillez, pero claro el simple echo de estar ocultando algo ya esteganografía ¿cierto?. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 22 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Método (LSB). El método LSB (Least Significant BIT Insertion) - (Inserción en el BIT menos significativo), como bien lo dice su nombre, es un método que consiste en insertar información en el BIT con menos valor, esto para que la modificación que se haga en la imagen no sea demasiado notoria. Esta técnica puede ser usada para video y audio, pero es más recomendable en imágenes, pues estas por su alta definición en dimensiones y calidad, será casi imposible que algún cambio se pueda detectar. Para entender mejor esto pondré como se modificaría un código binario para insertar alguna letra. Digamos que una fracción de código binario es la siguiente: 10110101 11101010 10010101 11101010 10110101 00100100 10110101 11010101 10101010 Digamos que meteré la letra x a este código, pues primero veré mi tabla ASCII para ver cuanto vale. Carácter ASCII Binario Hexadecimal ------------------------------------------------------X 88 01011000 58 Ahora sustituiremos el byte 01011000 en el código anterior, solo hay que recordar que los ceros se quedan tal y como están. 10110100 11101011 10010100 11101011 10110101 00100100 10110100 11010100 10101010 Como puedes ver ahí he introducido la letra X y lo mas probable es que la imagen no se vería nada afectada. Claro esto depende del tamaño y la cantidad de colores. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 23 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Ahora digamos que queremos esconder un texto en una imagen, recuerda que primeramente la letra(s) se convierten en ASCII y ese número posteriormente a binario. Por ejemplo: Carácter ASCII Binario Hexadecimal ------------------------------------------------------X 88 01011000 58 Recuerda que para poder ver el Hexadecimal de imágenes hay que usar editores hexadecimales, yo en este caso uso el WinHex pero no por ello debes usarlo tu, en Google tienes cientos de alternativas. Ahora empezaré a agregar el byte (01011000) al código Hexadecimal de la imagen, un bloque por así decirlo: (esta es una imagen del código sin modificar). Ahora tomaré el BIT menos significativo de cara hilera y le agregaré 1, en caso de ser cero así lo dejaré. (en rojo se marca la fila de los bits menos significativos). Listo... Ah sido agregado la letra x: Como puedes ver solo agregue un 1 a la fila necesaria los ceros deje el número intacto. Ahora veamos la imagen original y modificada. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 24 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Antes de la modificación: Después de la modificación: Como puedes ver solo vario un poco el color de la pelota. Pero en imágenes inmensas de dimensiones tipo wallpaper y sobre todo en formatos como .bmp es casi imposible ver alguna diferencia. Ahora mira el mismo fragmento, solo que ahora agregaré un texto completo. El texto aparecerá en la fila derecha de caracteres, en la fila de código pondremos su equivalente en ASCII. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 25 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Quedaría algo así: (no es la modificación de la imagen anterior). Como puedes ver oculte xionex, pero hay un pequeño problema: Como puedes ver es algo muy notorio y estúpido pero lo importante es el saber el por que paso esto... ¿Ahora notas el valor del BIT menos significativo?, en pocas palabras los errores fueron dos: No convertir cada letra a binario. No usar el BIT menos significativo. Si bien es algo difícil convertir TODAS las letras a binario y luego ir agregándolas a la imagen, es una tarea obligatoria para que no seamos descubiertos. Mira que pasa si agrego la letra directa y no su valor binario, pero si en el BIT menos significativo. Metiendo una letra directa en el BIT menos significativo nos da este resultado: ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 26 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— ¿Igual de critico, cierto? Te preguntarás el por que paso esto si es que es el BIT menos significativo, el problema es que el carácter x, no fue transformado a binario, es decir que para que una persona extraiga el mensaje, debe solo sacar un binario y luego convertirlo a carácter. xionex = 01111000 01101001 01101111 01101110 01100101 01111000 Como puedes ver es una cifra descomunal y ponerlo es demasiado tardado. Pero de igual manera es efectivo, 8x6=48, en pocas palabras ocuparas 48 filas y en el BIT menos significativo de cada una, agregarás o dejarás así, dependiendo del digito. La fila en rojo es la de los bits menos significativos, estos apenas son 38 de los 48. Como vez es una tarea difícil: ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 27 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Bueno aquí los he agregado todos: (no aparece el resto de la fila, pero si están todos) Y la imagen se ve algo así: ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 28 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Como vez es tardado y algo complicado, es por ello que mencione e insistí tanto en que aprendas los lenguajes y los formatos más básicos, pues estos son muy necesarios. Al final de lograr ocultar lo que tu deseas acabas con una cara de felicidad por lo logrado: Una vez razonado esto veras que es demasiado fácil, solo es cuestión de tiempo, y sobre todo practica. También hay que recordad que si nuestra imagen con un mensaje es convertida a otro formato esta será dañada y consecuentemente perderás la información. El editor Hexadecimal será tu mejor arma en esto de la esteganografía, así que si tu PC aún no tiene ninguno instalado, te recomiendo que adquieras uno tan pronto como puedas, yo uso dos actualmente el Hexadecimal Workshop y el WinHex. Esos son los que recomiendo, el editor Hexadecimal no solo te ayudará en la esteganografía, también te podrá servir para la ingeniería inversa y otras cosas que se pueden hacer en el mundo del hacking. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 29 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Ficheros de audio. Antes de continuar explicaré un poco de los ficheros de audio los cuales también son usados en el mundo de la esteganografía, claro que estos pueden ser usados de distintas maneras. • Waveform Audio File Format (.wav): Este formato de audio es el mas famoso de Microsoft, y actualmente se produce en los S.O’s de Windows. Las cabeceras de estos son enormemente mas grandes a los archivos de imagen, contando con un total de 43 bytes en la cabecera. Al igual que en el .bmp en las imágenes, el formato de audio .wav es el mejor para la esteganografía, claro cuando hablamos de audio. Este formato principalmente se caracteriza por su sencillez, pues al no tener mucha compresión es fácil de editar por medio Hexadecimal, la desventaja principal es que por no tener esa compresión estos archivos pesan demasiado. • Motions Picture Experts Group – Audio Layer 3 (.mp3): Este formato de audio es el mas usado en la red en la actualidad, todo ello por su eficaz método de compresión, el cual disminuye el tamaño de una manera colosal comparado con el .wav. La compresión de este es parecido al algoritmo del .jpg pues este también elimina todo lo que al oído humano no le funciona. Es decir aquellas frecuencias que el odio no es capaz de escuchar. Su única ventaja en la esteganografía podría ser su fácil transporte, pues una vez modificado podrás traficar dicha información de una manera sencilla y a mayor velocidad. Al igual que en la esteganografía en imágenes estos archivos de audio se pueden modificar por medio de bytes, la diferencia es que aquí no se usan las resoluciones y las dimensiones a nuestro favor, aquí usaremos la calidad de kbps y las frecuencias de onda (Hz). En este caso un archivo de 320Kbps a 44100Hz es claramente inmenso y los cambios que se efectúen en dicho archivo apenas se notarán. En la esteganografía por medio de audio un cambio en alta o baja calidad solo influye en extraños ruidos, los cuales no puedo mostrar por que esto es un pdf... jaja. De igual manera las personas no se dan cuenta pues se puede confundir con una mala calidad o simple ruido de fondo. Aún existen muchos tipos de ficheros de audio, pero no quise mencionarlos todos debido a que muchos de ellos no son conocidos, o los sistemas de compresión vuelve mas difícil el método de esteganografía. Pero personalmente solo te recomiendo el .wav y el .mp3. Ahora hablemos un poco del LSB en un archivo de audio. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 30 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Método (LSB) en audio. Ya que expliqué anteriormente como modificar las imágenes iré directo a la idea principal: Supongamos que tienes una archivo de audio con los siguientes bytes: 132 134 Pues ahora obtenemos el binario: 10000100 10000110 Si quisieras ocultar el número 1 (01) en el código anterior solamente tendrás que modificar un número. 10000100 10000111 132 135 Como puedes ver es exactamente igual que la vez anterior, pero es mejor dejarlo claro, luego podrían surgir dudas y no estaré ahí para explicarlas.. jaja. Bueno, si estaré pero prefiero explicarlo 1 vez que mas de 3. Como puedes ver el BIT menos significativo no es nada relacionado con el color o la calidad, pues en el audio esos bits solo son sonidos que el oído humano no podrá escuchar. No puse imágenes ni nada parecido pues las diferencias en audio no podré ejemplificarlas, pero sigue el mismo método que en las imágenes. ¿Existen más ficheros?: Claro que sí, solo que desde mi punto de vista las imágenes siempre deben ser el único medio, por su simplicidad y por ser las primeras bases de la esteganografía, el audio en caso de no querer portar unas imágenes. También puedes escribir en los principales formatos de video: .avi, .mpeg. flv.. Etc. Lo único que no se debe usar son aquellos ficheros de texto plano, como por ejemplo el block de notas. Pues un cambio en el fichero será un carácter adicional. ¿Ficheros ejecutables?. El tema de ficheros ejecutables es esteganografía avanzada, es por ello que no agregaré nada al respecto. Esto debido a que se requieren conocimientos de: *Programación. *Assembler. *Ingeniería Inversa. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 31 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— *Experiencia en Malewares. *Experiencia en ficheros W32 entro otros. El método consiste en dejar nuestro mensaje esteganografíado en los espacios que deja en blanco el compilador con el cual fue elaborado el programa. De igual manera el método de la esteganografía en ficheros ejecutables es una de las técnicas mas ineficientes, pues en el proceso puedes dejar inservible tanto el mensaje como el fichero. Como siempre lo mejor será un fichero de imagen y con un formato .bmp ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 32 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Esteganografía Avanzada. Como ya lo había mencionado no trataré temas de esteganografía avanzada, pero si explicaré en que consiste. Primeramente tenemos que la esteganografía en ficheros ejecutables es demasiado compleja, no solo por que la estructura de ficheros no es la de un fichero interpretado si no que también hay que saber como funcionan los ficheros ejecutables, esos de los que hablamos al inicio. Otra razón de la esteganografía avanzada, es que la misma lleva criptografía pues estas 2 ciencias funcionan de una manera impresionante complementándose la una a la otra. Esteganografía en capas: Mas que nada consiste en el llamado orden de decodificación, por ejemplo imaginemos que los primeros bits que obtenemos de una imagen son el complemento o el secreto de descifrado de alguna segunda imagen. En pocas palabras son varios “niveles de descifrado”, a esta técnica se le agrega la criptografía para volverla extremadamente difícil de descifrar. Secuenciado de magnitudes: En los métodos anteriores jugábamos agregando un byte y estos a la vez sumaban 1 BIT, ¿pero que pasaría si implicase una etapa lógica?, digamos que se variaran bits de 1,2,3,4,5... suena difícil pero solo es duplicar sumas, crear un algoritmo matemático. Y el secreto del aumentativo o viceversa se podría resolver mediante una esteganografía en capas. Imaginación: Esto lo menciono ya que el método preferible podría ser el mejor lógicamente elaborado. Imagina enigmas en figuras, que el número de lados, o color de la figura señalan la letra que se obtiene de determinado texto, a su vez estos son el secuenciado que se dirige a nivel Hexadecimal. ¿Suena difícil no?. A continuación pondré una lista de software que se usan para la esteganografía, la misma fue extraída de la wikipedia. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 33 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Software. MP3Stego. MP3Stego oculta información en archivos MP3 durante el proceso de compresión. Los datos son primero comprimidos, cifrados y luego escondidos en el flujo de bits. http://www.petitcolas.net/fabien/steganography/mp3stego/ JPHide y JPSeek. JPHIDE y JPSEEK son programas que permiten ocultar un archivo en una imagen jpeg. http://linux01.gwdg.de/~alatham/stego.html BlindSide Cryptographic Tool. El Blindside puede ocultar un fichero (o ficheros) de cualquier variedad, dentro de una imagen de mapa de bits de Windows (archivo BMP). http://www.mirrors.wiretapped.net/security/steganography/blindside/ GIFShuffle. El programa GIFShuffle se utiliza para ocultar los mensajes de imágenes GIF de revolver el mapa de colores, lo que deja la imagen visible sin cambios. GIFShuffle trabaja con todas las imágenes GIF, incluyendo aquellas con transparencia y animación, y además proporciona compresión y cifrado de los mensajes ocultos. http://www.darkside.com.au/gifshuffle/ wbStego. wbStego es una herramienta que oculta cualquier tipo de archivo de mapa de bits en imágenes, archivos de texto, archivos HTML o archivos PDF de Adobe. El archivo en el que se ocultan los datos no es ópticamente cambiado. http://wbstego.wbailer.com/ StegoVideo. MSU StegoVideo permite ocultar cualquier archivo en una secuencia de vídeo. Cuando el programa fue creado, diferentes códec populares se analizaron y se eligió un algoritmo que prevé la pérdida de datos pequeños después de la compresión de vídeo. Puede utilizar MSU StegoVideo VirtualDub como filtro o como programa .exe autónomo, independiente de VirtualDub. http://compression.ru/video/stego_video/index_en.html ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 34 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Herramientas para estegoanálisis Stegdetect. http://www.outguess.org/download.php Steganography Analyzer Signature Scanner (StegAlyzerSS). StegAlyzerSS tiene la capacidad para escanear todos los archivos en los medios de comunicación en los que se sospecha la presencia de patrones de byte Hexadecimal o firmas, en particular aplicaciones de esteganografía en los archivos. Si una firma conocida se detecta, puede ser posible extraer la información escondida. http://www.sarc-wv.com/stegalyzerss.aspx Digital Invisible Ink Toolkit. Este proyecto proporciona una herramienta simple que puede esconder un mensaje dentro de una imagen de color de 24 bits. Aun sabiendo cómo se incrustan, o realizando análisis estadístico, no por ello es más fácil encontrar la información oculta. http://sourceforge.net/project/showfiles.php?group_id=139031 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 35 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Esteganoanalisis. La información que existe sobre como encontrar la información por medio de métodos de esteganografía es básicamente NADA. Esto es debido a la efectividad de la técnica en algunos casos. Pero a pesar de ello ahora existen algunos métodos supuestamente “efectivos”, los cuales ayudan a encontrar algo en determinados casos y circunstancias. Análisis superficial: Este solo se puede llevar acabo si se tiene dos ficheros: el fichero original y el fichero modificado. Luego de tenerlos se debe dar una exhaustiva búsqueda de las diferencias entre ambos ficheros. Si no se llegase a tener el fichero original (que es lo mas probable) deberá buscarse algún patrón que no encaje con toda la imagen, algún color diferente o una deformación. Método estadístico: Solo consiste en que un programa verifiqué alguna irregularidad si existen 5 renglones de cada color sería raro que el verde solo tuviera 4, o fuese de otra matiz, la desventaja es que la técnica es lenta e inefectiva. Para saber mas de ella puedes usar programas que se dedican exclusivamente a eso, o bien pedirle ayuda a nuestro piadoso padre Google. Aunque normalmente no se tendrán resultados, pues las imágenes no son “uniformes”. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 36 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— ¿Efectividad?. La verdad yo considero la esteganografía uno de los métodos mas efectivos y eso lo puedes comprobar en los wargame’s (retos). Hace tiempo publique uno en Infierno Hacker en el cual use un método de copiado mediante la consola y una “criptografía” que básicamente es binario y Hexadecimal. ##################################################################### El reto: El reto solo consistía en darme el mensaje oculto en esta imagen: ( http://i39.tinypic.com/2uhn96s.jpg ) El reto solo fue resuelto por 3 personas, a continuación pongo la resolución: *Primero que nada se le cambiaba el formato a .rar esa era la única parte difícil y con un poco de maña se podría llegar a ello. Pues di unas pistas que indicaban “Extraer el texto”. *Una vez que se haya cambiado el formato se extraía el contenido. Dentro del el se ocultaba un mensaje, el cual era: “Mira en las sombras, he ahí el verdadero secreto, cuando la oscuridad marca define la salida.” Vas bien, pero se necesitan 2 palabras para complementar el reto aquí tienes la primera: ZXN0ZWdhbm9ncmFmaWE= La segunda se encuentra en: aHR0cDovL2k0NC50aW55cGljLmNvbS8yMHUyMXNuLmpwZw== Ok el texto de las sombras era una "metáfora", pues los que observaron podrían ver que la hoja era mas grande de lo normal si te ibas hasta abajo podías marcar un texto invisible, que al cambiarle el color decía: Que lenguaje necesitas para descifrar? 66 97 115 101 32 54 52... Suerte.. Esto es ASCII, presiona ALT+el numero que te marcan y podrás ver letras ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 37 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— 66 = B 97 = a 115 = s 101 = e 32 = 54 = 6 52 = 4 Base 64, si buscas en Google sabrás que es un tipo de lenguaje, ósea que con el descifraremos los dos códigos que venían en el texto, esto se puede hacer manualmente o con ayuda de traductores online. Traducidos serían: ZXN0ZWdhbm9ncmFmaWE = ESTEGANOGRAFÍA aHR0cDovL2k0NC50aW55cGljLmNvbS8yMHUyMXNuLmpwZw=== i44.tinypic.com/20u21sn.jpg Si entras al link obtendremos una segunda imagen. Repetimos el proceso de cambio de formatos y tendremos XiONeX2.doc, una vez hecho esto lo abrimos y tendrás varías cosas a descifrar. Primero te encuentras con la pista El secreto esta en la MESA. y verás la foto de una mesa, si cuentas los lados de la mesa veras 6 ósea un hexágono. Lo que se te viene a la menta es "Hexadecimal, ya abajo viene el code: ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 38 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Descifra: 42 75 65 6e 6f 20 68 61 73 20 6c 6c 65 67 61 64 6f 20 68 61 73 74 61 20 61 71 75 69 2c 64 65 62 6f 20 66 65 6c 69 63 69 74 61 72 74 65 20 70 65 72 6f 20 63 6f 6d 6f 20 62 69 65 6e 20 73 61 62 65 73 20 74 65 20 66 61 6c 74 61 20 75 6e 61 20 70 61 6c 61 62 72 61 20 79 20 6c 61 20 63 75 61 6c 20 6c 61 20 74 65 6e 64 72 61 73 20 71 75 65 20 63 6f 6e 73 65 67 75 69 72 20 61 71 75 69 3a 0d 0a 0d 0a Ahora con Google averigua de Hexadecimal y veras que el code decía... "Bueno has llegado hasta aquí, debo felicitarte pero como bien sabes te falta una palabra y la cual la tendrás que conseguir aquí" Ahí entra la pista 2 la cual es: Pista dos: AYUMCLASU y esto es igual a = MAYUSCULAS, acomodado de una manera legible. Ahora te ponía un código: Descifra: 01100001 01110001 01110101 01101001 00100000 01110011 01100101 00100000 01100101 01101110 01100011 01110101 01100101 01101110 01110100 01110010 01100001 00100000 01101100 01100001 00100000 01010000 01110010 01101001 01101101 01100101 01110010 01100001 00100000 01101100 01100101 01110100 01110010 01100001 01100001 01110001 01110101 01101001 00100000 01110011 01100101 00100000 01100101 01101110 01100011 01110101 01000101 01101110 01110100 01110010 01100001 00100000 01101100 01100001 00100000 01101100 01100001 00100000 01110011 01100101 01100111 01110101 01101110 01100100 01100001 01100001 01110001 01110101 01101001 00100000 01100101 01110011 01110100 01100001 00100000 01101100 01100001 00100000 01110100 01100101 01010010 01100011 01100101 01110010 01100001 01100101 01101110 00100000 01101100 01100001 00100000 01100001 01101100 01000110 01101111 01101101 01100010 01110010 01100001 00100000 01110011 01100101 00100000 01100101 01101110 01100011 01110101 01100101 01101110 01110100 01110010 01100001 00100000 01101100 01100001 00100000 01100011 01110101 01100001 01110010 01110100 01100001 01000101 00100000 00111101 00100000 01101101 01100011 01011110 00110010 01100100 01100101 01000011 01101111 01100100 01100101 01110100 01110010 01100001 01110011 01101100 01100001 01010100 01100101 01111001 00100000 01100101 01110011 01110100 01100001 00100000 01100101 01110011 00100000 01101100 01100001 00100000 01110101 01101100 01110100 01101001 01101101 01000001 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 39 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Y todos traducidos eran: Aquí se encuentra la Primera letra Aquí se encuEntra la segunda Aquí esta la teRcera En la alFombra se encuentra la cuarta E = mc^2 deCode traslaTe y esta es la ultimA Según la pista MAYUSCULAS.. solo extrae las MAYUSCULAS y tendrás PERFECTA.. La respuesta Sería: ESTEGANOGRAFIA PERFECTA ##################################################################### Como puedes observar, el reto era fácil pues no llevaba nada de edición Hexadecimal. Si quieres ver mas de esteganografía en wargames te recomiendo el reto de Skywalker. http://img231.imageshack.us/img231/8168/imagenbq0.jpg De este reto no explicaré la resolución, por respeto al autor Skywalker. Igual te animo a que recuerdes MI RETO e intentes responder este.. ahí ya te di una pista. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 40 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Conclusión. Desde mi punto de vista personal la esteganografía es un arte, la misma lleva de todo. Tiene un punto enigmático y las muestras de ingenio que se demuestran en ella son sorprendentes. Yo la practico pero por diversión, es algo que me llena, pues requiere inteligencia y sobre todo perspicacia, no cualesquier persona resuelve un reto de esteganografía. Veo la esteganografía para mucho en un futuro, desde marcas de agua y algoritmos criptográficos, tal vez posibles códigos que eviten la piratería. Pero la verdad me da igual pues apoyo los ideales del software libre. Sin mas que decir me despido, espero y te haya gustado el manual. También espero y visites mi Blog, ahí publicaré puros manuales parecidos a este, largos pero efectivos en lo que desean trasmitir. Un saludo a Skywalker a Infierno Hacker y a todas las comunidades hacking que cada día desean aprender más. Correo: [email protected] Saludos. Tutorial por XiONeX. ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 41 ©XD-2009 http://www.xionexsystems.blogspot.com http://xionexsystems.blogspot.com Esteganografía. —————————————————————————————————————— Derechos de autor: La distribución de este tutorial es gratuita, queda prohibida su copia y publicación, si en ella se ven metidos negocios lucrativos. La distribución y publicación de este documento es libre, solo se pide que de especifiqué el autor: XiONeX. En este tutorial hay un mensaje oculto ¿Puedes encontrarlo? ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– 42 ©XD-2009 http://www.xionexsystems.blogspot.com