Zipped Steganography: una joya de la esteganografía (y 2)
Por infosniper
(Viene de la primera parte)
Vamos a comprobar si funciona el invento. Si intentamos descomprimir Stego.zip con Winrar, lo abrirá perfectamente pero al intentar su descompresión nos dirá que está corrupto. En cambio, si ejecutamos de nuevo SteganoZip.exe y trabajamos desde allí todo irá a la perfección:
localizamos el archivo comprimido con Browse y pulsamos en Open -> marcamos la casilla seleccionando el nombre del archivo que nos interesa sacar, en este caso oculto.txt (si nos interesaran todos, pues todos) ¡PERO TENIENDO LA PRECAUCIÓN DE QUE EL ARCHIVO QUEDE EN AZUL! -> Extract selected files...

seleccionamos el Escritorio y aceptamos.
Bueno, ya tenemos un programa esteganográfico innovador y que funciona, Zipped Steganography. Tenemos también un archivo comprimido esteganografiado que funciona, el Stego.zip. Pero nos queda comprobar si NyxEngine puede atacar de algún modo Stego.zip. Copiamos el .ZIP en la carpeta NyxConsole que tenemos en el Escritorio y desde la línea de comandos ejecutamos el programa con la opción sf:

Vaya, ha detectado algo raro. Lo volvemos a ejecutar, esta vez con la opción vf y ahora nos dice que el archivo está roto pero que se puede recuperar:

Le toca a la opción rf. Hay que tener mucho cuidado con teclear correctamente lo siguiente: nyxconsole.exe rf stego.zip 0 recuperado.zip.

En la carpeta NyxConsole encontraremos el archivo recuperado.zip plenamente funcional, pero si lo abrimos con SteganoZip.exe veremos que oculto.txt ya no está. Es decir, esta opción rf destruye aquellos datos que un archivo original lleva esteganografiados. Nos falta aún por saber si se puede encontrar de alguna manera el archivo esteganografiado. Si nos hemos fijado NyxConsole permite una opción más, sfi, por lo que vamos a probarla:

En la ventana de MS-DOS se obtiene la misma información que con la instrucción sf pero con un añadido, que nos pregunta si queremos recuperar el archivo:
Y -> pulsamos la tecla Enter -> le damos un nuevo nombre al archivo, en este caso anotaremos oculto.zip -> Enter

en la carpeta Nyxconsole encontraremos el archivo oculto.zip, lo descomprimimos y obtendremos NyxEngine_FileNameIsUnknown.000 -> le añadimos la extensión .TXT, lo abrimos y ¡Bingo! ya tenemos el mensaje oculto, que era... ¡yo!.
Pero eso no es todo, amigos. Los detallistas se habrán fijado que Zipped Steganography presenta la opción de cifrar el archivo a ocultar con una contraseña. Vamos a ver qué conseguimos con ello.
Ejecutamos SteganoZip.exe -> localizamos el archivo comprimido Youtube.zip con Browse y pulsamos en Open -> buscamos el archivo que queremos esteganografiar, oculto.txt, con el otro botón Browse -> marcamos la casilla Encrypt new archive with password y escribimos la contraseña -> Add -> Save changes

hay que darle un nombre al nuevo archivo comprimido, por ejemplo stegopassw.zip -> cerrar el programa
Vamos a comprobar si funciona el nuevo invento. Si intentamos descomprimir stegopassw.zip nos pedirá contraseña y, aunque le pongamos la correcta, siempre nos dará error y no descomprimirá nada (desesperante para quien no conozca lo que pasa). En cambio, si ejecutamos de nuevo SteganoZip.exe y trabajamos desde allí todo irá de nuevo a la perfección:
localizamos el archivo comprimido con Browse -> marcamos Decrypt archive with password y anotamos la contraseña -> pulsamos en Open -> marcamos la casilla y seleccionamos el nombre del archivo que nos interesa sacar, en este caso oculto.txt ¡PERO TENIENDO LA PRECAUCIÓN DE QUE EL ARCHIVO QUEDE EN AZUL! -> Extract selected files

seleccionamos de nuevo el Escritorio y aceptamos /
Volvamos al ataque con NyxEngine. Copiamos stegopassw.zip en la carpeta NyxConsole que tenemos en el Escritorio y desde la línea de comandos ejecutamos el programa con la opción sf.

Nos dice entre otras cosas que está protegido con password. Lo volvemos a ejecutar, esta vez con la opción vf y ahora nos dice que el archivo está roto pero que se puede recuperar:

Le toca a la opción rf. Hay que tener mucho cuidado con teclear correctamente lo siguiente: nyxconsole.exe rf stegopassw.zip 0 recupassw.zip

En la carpeta NyxConsole encontraremos el archivo recupassw.zip plenamente funcional si le introducimos la contraseña, pero si lo abrimos con SteganoZip.exe veremos que oculto.txt ya no está. Es decir, esta opción rf sigue destruyendo aquellos datos que un archivo original lleva esteganografiados. Nos falta ahora por saber si podemos dar con el archivo esteganografiado. Probamos con la opción sfi:
Y -> pulsamos la tecla Enter -> le damos de nombre al archivo final.zip -> Enter

en la carpeta Nyxconsole encontraremos el archivo final.zip conteniendo el correspondiente NyxEngine_FileNameIsUnknown.000 pero cuando intentamos su descompresión nos solicita una contraseña que, pese a que el atacante la introduzca correctamente, siempre dará error y no descomprimirá (por lo menos en todas mis pruebas), por lo que el mensaje oculto quedará a salvo.
Entonces, ¿Zipped Steganography es un buen programa?. No sólo es un buen programa, es una auténtica joya con la que se puede jugar. Pero como con todas las joyas hay que tener un mínimo de cuidado. Vamos a editar hexadecimalmente stego.zip. Como tratamos con archivos pequeños, sin apenas esfuerzo podemos encontrar el nombre del archivo esteganografiado:

Por tanto, cuando vayamos a esteganografiar cualquier archivo con este programa, el nombre a usar y su extensión no deberían despertar sospechas si alguien empleara un editor hexadecimal. Si empleamos como nombre y extensión uno parecido a éste P,&7z%.s_K a ver quién es el espabilado que se da cuenta.
Una consideración importante. Como después de todo este experimento habremos recuperado la imagen limpita de la partición del sistema operativo, cuando ejecutemos SteganoZip.exe no nos funcionará si no tenemos instalado en el sistema .NET Framework 4:
http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4...
En mi caso, como tiro de un Windows XP, me requiere además la versión de .NET Framework 3.5:
http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4...
Para finalizar, y antes de que nadie pierda el tiempo buscando en Google por el principio empírico fundamental para la resolución de graves problemas llamado Método ENSOR, lo explicaré en un plis plas: el Método ENSOR es el método basado en el ENSayo-errOR. ¿A que es gracioso?
infosniper
http://sites.google.com/site/infosniper
- Conecta o crea cuenta para participar

- 5452 lecturas
Twitter

Con Razon
Buscando ENSOR en google y no me aparecia nada ayer!
muy interesante el articulo, se leera con mas calma y se probara.
Salu2:Euphoria
Lo siento, pero eso _no es esteganografía
"[...] al intentar su descompresión [de Stego.zip] nos dirá que está corrupto"
Lo cual no deja de ser una chapuza. De lo que se trata -en esteganografía- es de ocultar un objeto en un portador... funcional, lo que no ocurre en este caso. Es decir, parece que tengas un .ZIP -y así debería de ser- con cualquier contenido 'unzipeable', cuando de .ZIP sólo tiene el nombre. Eso, señor, no es esteganografía.
Lo siento, pero mucha parafernalia para realmente nada.
Apabullante, pero...
Un trabajazo apabullante, sí señor. Pero la ingente tarea realizada muestra que la herramienta no es fácil de usar, lo cual ya es un inconveniente. Ahora ya puedo hacer la pregunta que hice -antes de hora- en la primera entrega, a saber: Si el tamaño del archivo .zip final es mayor cuando lleva incrustado el fichero oculto que cuando no lo lleva. Y podrías contestarme: "Averígualo tú mismo". Pero es que con la máquina que utilizo ahora no puedo hacer toda esta carga de software. Se quedaría como el dedo de Galileo.
De todas formas, esta pregunta ya no me parece tan importante porque, si lo he entendido bien, el fichero .zip "trucado" no se puede abrir normalmente con un descompresor como Rar para ver el archivo "legal". Esto me parece un grave inconveniente. Ya puestos, podríamos escribir cualquier cosa, cifrada o no, en un fichero, y ponerle la extensión .zip, para camuflarlo. Igualmente, Rar no lo abriría.
Lo de que se pueda ver el nombre del fichero oculto con un editor hexadecimal es otro problema, aunque podría resolverse llamándolo "shfseiwfñssfh", sin extensión. De hecho, si alguien intenta abrir un .zip, y no se puede, lo instintivo es mirar el código hexadecimal, para ver qué pasa.
Además, hay al menos un programa que lo detecta.
O sea, que no me parece tan buena herramienta. Es más fácil colar un fichero en un gráfico sin que sea detectado, ni por el ojo humano ni por la mayoría de los detectores existentes. Palabrita del niño jesús.
Resumiendo: Para ser realmente una buena herramienta esteganográfica debería fabricar un .zip que se abriera normalmente, mostrando sólo el fichero legal, de manera que no llamara la atención, salvo por el tamaño -me temo que eso sea inevitable-. Y sería preferible que se tratara de un sencillo programa .exe, que se ejecutara, o se instalara con normalidad, para que los mindunguis lo pudiéramos usar sin que se nos churrusquen las meninges.
Pero, insisto, el artículo es un modelo de tutorial de un software que presenta alguna dificultad para los peatones de la informática. Enhorabuena. Desde el rencor, eso sí.
---
Desde el rencor, también, pero con gratitud.
He de darte las gracias por tu enhorabuena y porque con tus comentarios has hecho que vea todo este tema desde otro punto de vista. Y ese otro punto de vista me ha obligado a hacer pruebas y más pruebas, buscar por internet, descargar programas y seguir probando. Ya sabes, el Método ENSOR, jeje. Por tanto voy a ir comentando poco a poco las distintas e interesantísimas cuestiones que planteas.
1.- "... la herramienta no es fácil de usar, lo cual ya es un inconveniente."
En realidad sí es muy fácil de usar una vez compilado el programa. Los pasos que doy son tan detallados que no pueden dar lugar a error y con una mínima práctica se convierte en lo que llamamos por aquí arriba "bufar i fer ampolles" (soplar y hacer botellas). Otra cosa es que me digas que es laboriosa la cuestión de bajar la .ISO de Visual Studio y grabarla, descargar los .NET Framework, o la propia compilación, pero es que preferí dar todos esos detalles para que la gente tenga la seguridad de que están trabajando con el programa original. A ver, realmente costaría bien poco colgar anónimamente en un servidor de descargas gratuito los archivos del programa plenamente operativo, pero entonces entraríamos en aquellas cuestiones de si es realmente el original o no.
2.- "Ahora ya puedo hacer la pregunta que hice -antes de hora- en la primera entrega, a saber: Si el tamaño del archivo .zip final es mayor cuando lleva incrustado el fichero oculto que cuando no lo lleva."
Efectivamente, el archivo .ZIP es mayor cuando lleva un archivo esteganografiado que cuando no lo lleva. De la misma forma que es también mayor cuando lleva contraseña que cuando no la lleva. Te voy a poner un ejemplo sobre el archivo steganodotnet16_src.zip del que hablo en el artículo. Tal como lo descargamos steganodotnet16_src.zip tiene un tamaño de 191 KB (196.188 bytes). Si lo descomprimimos con WinRar, lo comprimimos de nuevo con la opción .ZIP y con el método de compresión Normal (compression method normal) de este programa, el tamaño es de 193 KB (197.887 bytes); y si repetimos la operación con el mismo método de compresión pero añadiéndole una contraseña de 55 caracteres (la contraseña es "Este nombre de archivo lo vamos a emplear como password", sin las comillas) el resultado es un tamaño de 195 KB (199.987 bytes). Es decir:
- steganodotnet16_src.zip original -> 191 KB (196.188 bytes)
- descomp. y comp. con WinRar como .ZIP y con "compression method normal" -> 193 KB (197.887 bytes)
- idem añadiendo passwd de 55 caracteres -> 195 KB (199.987 bytes)
Y todo ésto hablando exclusivamente del programa WinRar y de un sólo método de compresión, el normal, porque hay que saber que Winrar ofrece en total séis métodos para archivos .ZIP:
compression method store
compression method fastest
compression method fast
compression method normal
compression method good
compression method best
y cada uno de ellos con distintos resultados en cuanto a tamaño.
3.- "... si lo he entendido bien, el fichero .zip "trucado" no se puede abrir normalmente con un descompresor como Rar para ver el archivo "legal".
Voy a centrarme en WinRar que es el programa que uso. El archivo .ZIP esteganografiado se puede abrir perfectamente con WinRar. Lo que ocurre es que AL DESCOMPRIMIRLO muestra el error "This file is corrupt". Para hacerlo sencillo, en el artículo me limitaba a un solo archivo comprimido y uno que se ocultaba: total dos. Si efectuamos las pruebas con el steganodotnet16_src.zip que citaba antes y le ocultamos un archivo, WinRar se abrirá y en la ventana del programa mostrará que efectivamente se trata de un archivo comprimido y dejará ver qué archivos contiene (excepto el oculto). Al descomprimir saldrá el mensaje de error PERO DESCOMPRIMIRÁ TODOS LOS ARCHIVOS QUE PUEDA, que son unos cuantos. De todas formas no hay que darle tanta importancia al hecho de que aparezca ese mensaje de error porque ¡anda que no hay archivos comprimidos corruptos por internet!. Ver ese mensaje de error y convertir automáticamente a un archivo comprimido en sospechoso de estar esteganografiado es una equivocación. Soy un ferviente entusiasta de las descargas (con tal de amortizar la cuota del ADSL) y durante todos estos años me he dado de narices con muchísimos archivos comprimidos dañados que ofrecen ese mismo mensaje.
4.- "Ya puestos, podríamos escribir cualquier cosa, cifrada o no, en un fichero, y ponerle la extensión .zip, para camuflarlo. Igualmente, Rar no lo abriría."
Cierto, pero hay que contar con un pequeño detalle. Todos los archivos presentan una "firma" y por mucho que se le cambie la extensión a un archivo, un .ZIP o un .RAR siguen presentando esa firma característica que puede verse editándolo hexadecimalmente y que se encuentra al principio del mismo. Con WinRar los archivos comprimidos como .ZIP y como .RAR me ofrecen estas firmas respectivamente:
PK..
Rar!...
Por lo tanto como truco básico no serviría porque WinRar ni se abriría, cosa que sí ocurre con los .ZIPs esteganografiados.
5.- "Lo de que se pueda ver el nombre del fichero oculto con un editor hexadecimal es otro problema, aunque podría resolverse llamándolo "shfseiwfñssfh", sin extensión."
Efectivamente, insertar un archivo sin extensión o, como digo en el artículo, con uno parecido a P,&7z%.s_K es una buena solución.
6.- "De hecho, si alguien intenta abrir un .zip, y no se puede, lo instintivo es mirar el código hexadecimal, para ver qué pasa."
Pues no necesariamente por lo que contaba antes de la cantidad de archivos corruptos que te encuentras por internet. Ojo, corruptos o que durante el proceso de descarga se te corrompen, que también ocurre. Otra cosa es que tu correo sea investigado y alguien analice archivo por archivo todo lo que envías. Pero no creo que sea el caso... ¿o si?.
7.- "Además, hay al menos un programa que lo detecta."
Si te refieres a que hay algún programa que detecta y repara archivos comprimidos corruptos pues me temo que tienes toda la razón. Y no solo uno. He estado descargando y probando versiones y he dado con un programa muy bueno y gratuito: DiskInternals ZIP Repair http://www.diskinternals.com/zip-repair/ Mira si es bueno que lllega a actuar como NyxEngine pero con una sencilla interfaz gráfica de usuario. He estado experimentando con él y es sorprendente lo bien que trabaja. Recomiendo hacer pruebas con él.
8.- "Es más fácil colar un fichero en un gráfico sin que sea detectado, ni por el ojo humano ni por la mayoría de los detectores existentes. Palabrita del niño jesús."
Lo sé, lo sé, pero si usas la creatividad Zipped Steganography da mucho juego (permíteme que no dé pistas, que aquí mira mucha gente). Y en el artículo lo que pretendía era dar a conocer al gran público este programa innovador, o al menos poco conocido, en el campo de la esteganografía en .ZIPs.
9.- " Resumiendo: Para ser realmente una buena herramienta esteganográfica debería fabricar un .zip que se abriera normalmente, mostrando sólo el fichero legal,..."
Abrir ya he dicho que abre, otra cosa es que me digas que debería descomprimir sin problemas los archivos que no están ocultos y que además no muestre ningún mensaje de error. Ahí te doy la razón. Las sugerencias al autor del programa:
http://www.binary-universe.net/index.php?language=e&pageName=contact_e.html
10.- "... de manera que no llamara la atención, salvo por el tamaño -me temo que eso sea inevitable".
Yo pienso que el tema del tamaño es de lo que menos hay que preocuparse y lo que menos ha de llamar la atención. He confeccionado esta pequeña tabla de tamaños conseguidos con WinRar para el mismo archivo .ZIP:
- steganodotnet16_src.zip original ->191 KB (196.188 bytes)
- descomprimido -> 641 KB (656.658 bytes)
- los 641 KB comprimidos con WinRar dan
compression method store -> 651 KB (667.106 bytes)
compression method fastest -> 218 KB (223.911 bytes)
compression method fast -> 207 KB (212.941 bytes)
compression method normal -> 193 KB (197.887 bytes)
compression method good -> 192 KB (197.453 bytes)
compression method best -> 192 KB (197.445 bytes)
Mira si da juego ésto de los tamaños sin contraseña. Métele una contraseña y ya es para mear y no echar gota. Y seguro que si empezamos a emplear otros programas de compresión (que los hay a patadas) cada uno de ellos ofrecerá resultados distintos.
11.- "Y sería preferible que se tratara de un sencillo programa .exe, que se ejecutara, o se instalara con normalidad, para que los mindunguis lo pudiéramos usar sin que se nos churrusquen las meninges."
Joder, no eres exagerado ni nada. Creas unos retos de cifrado, atacas otros (y lo que no sabemos) y ahora vas y te ahogas en un vaso de agua. Si es que...
infosniper
http://sites.google.com/site/infosniper/
Aclarado
Me has aclarado cosas que había entendido mal -me ocurre a menudo- El programa no es una auténtica joya, pero... dejémoslo en bisutería fina
Gracias por proporcionar tanta información
---
Bisutería fina, pero de calidad
Que sí, que tienes razón y tal vez no sea una joya en el sentido literal del término pero da el pego. Es como un collar de cristales de Swarovsky que, bien llevado y con el escote adecuado, es capaz de confundirse con un collar de diamantes.
Pero recuerda que hace dos días, antes de destapar todo este artículo a ver cuántos se hubieran imaginado que en un .ZIP se podían hacer estas cosas.
infosniper
http://sites.google.com/site/infosniper/
En un .ZIP no lo sé, en un .RAR, seguro
En un momento dado, para cambiar el MD5 a una serie de files .RAR cuyo contenido quería que fuera el mismo (cosas de RapidShare, que cuando te elimina un file no puedes resubirlo ya que ha baneado su MD5), se me escurrió que podía añadirle un 0x00 al final. Lo probé y, además de obviamente tener un nuevo MD5, el .RAR resultante permanecía funcionalmente intacto: ningún descompresor lo detectó, todos ignoraron lo que pudiera haber a continuación de lo que esperaban encontrar.
Con el tiempo, el 0x00 se convirtió en bastantes 0x00s: A medida que RapidShare eliminaba, yo añadía un 0x00 y lo resubía.
El caso es que acabo de probar que no solamente se puede añadir una serie de 0x00 al final de un .RAR sin que incordien, sino que se puede añadir cualquier cosa. A un .RAR de 12K le acabo de meter una película de 300 MB al final… y al descomprimir ese .RAR, sencillamente sale lo que tenía que salir: el simple documento de texto que no es otra cosa que el fuente .PHP(*) con que lo he hecho.
En resumen. Puede añadirse a un .RAR, al final del mismo y manteniendo su funcionalidad, un objeto de cualquier longitud. Todos los descompresores ignoran lo que pueda haber a continuación de lo que esperan encontrar (cosa que está definida en la cabecera del .RAR)
Jé.
(*) Todas estas chuminadas las hago en .PHP… es sencillo y rápido.
Y más
También se puede poner lo que quieras al final de un .png, de un .jpg ... Pero toda esa información se ve con un editor hexadecimal, por lo que no es esteganografía propiamente dicha. Además, si se regraban los ficheros, se pierde. Próximamente en estas pantallas quizá se pueda ver aluguna cosilla. Bueno, espero que no se pueda ver, je, je.
---
¿Seguro? Vamos a verlo
¿Seguro? Vamos a verlo.
¿Sabrías decir, en este pantallazo: http://img715.imageshack.us/img715/7877/capturadepantalla201011m.png dónde empieza el cifrado DES que hay añadido a un .RAR?
He subido -también a ImageShack- el pantallazo del .RAR original… por si fuera necesario.
¿¿?? No entiendo. ¿Qué se pierde, cuándo?
¡Yo lo sé, yo lo sé!
"¿Sabrías decir, en este pantallazo dónde empieza el cifrado DES que hay añadido a un .RAR?"
¡En el punto!
Justo en éste: .
P.D.
Si no te importa cuelga el archivo comprimido entero y así podemos mirarlo detenidamente para cuando aparezca la solución. Creo que será más instructivo para todos.
infosniper
http://sites.google.com/site/infosniper/