Foremost

Volviendo un poco al tema de la seguridad informática, daré un consejo rápido:

Foremost es un programa para realizar file carving en un análisis forense. File carving es el proceso de búsqueda y recuperación de archivos en un sistema corrupto simplemente perdido.

Para fines prácticos por medio de file carving podemos recuperar los archivos perdidos o borrados accidentalmente del disco duro o de una memoria USB. El uso básico de Foremost supone:

$foremost -t <tipo> -i <entrada>

Donde:

tipo es el tipo de archivo .doc, .mp3, etc. Para que Foremost encuentre cualquier tipo de archivo deberemos indicar “all” aquí.

entrada es el lugar donde buscará Foremost, puede ser un archivo de imagen o bien una unidad de disco como “/dev/sda1” por ejemplo.

El resultado se almacenará en la carpeta output junto a un completo informe de lo realizado por Foremost.

Anuncios

Aplicaciones para el Framebuffer

Comúnmente sucede que dependemos mucho del entorno gráfico porque creemos que la consola de GNU no es adecuada para realizar tareas comunes que no se refieren a la administración del sistema.

Sin embargo siempre es útil tener instaladas unas cuantas aplicaciones en caso de que algo suceda a las populares y demasiado estimadas X. Hago un recuento de esas aplicaciones.

– Reproductor multimedia: Mplayer es básico, compilarlo con la opción de FB, posiblemente al teclear el comando en la consola lo reconozca y active el driver FB automáticamente, en su defecto usar:

$mplayer -vo fbdev <video>

– Uso del Mouse: GPM instala este programa e inicia el servicio, podrás señalar y copiar con el mouse.

– Visor de imágenes: Instalar FBIDA. Ahora podrás ejecutar:

$fbi <imagen>

– Visor PDF: Instalando el programa señalado en el punto anterior podrás ejecutar:

$fbgs <pdf>

– Navegador de Internet: Aquí hay muchas opciones, Elinks, W3M, LINKS, por su facilidad de uso y ofrecer lo necesario uso LINKS:

$links -g genomorro.wordpress.com

– Capturas de pantalla: Instala FBGRAB y ejecuta:

$fbgrab <imagen_destino>

Recuerden activar el framebuffer desde el arranque, dejo las resoluciones más comunes para el valor vga de GRUB

640x480 ----- 785
800x600 ----- 788
1024x768 ---- 791
1152x864 ----- 355
1280x1024 --- 794
1600x1200 --- 798

Compilando con GCC

¿Se han dado cuenta que siempre al compilar lo hacemos en un solo paso? Yo sé que el proceso de compilación esta dividido en varias partes porque así me lo dijeron en la escuela, pero la verdad siempre, como todas las cosas suelo olvidarlo.

Ya hace un tiempo vi a Rommel explicar las estas etapas con GCC, la verdad no me lo aprendí pero creo que es importante tener la referencia de las etapas de este proceso para saber que es lo que realmente esta pasando, así que me di a la tarea de leer el manual de GCC (incluso el man se me hizo gigante) y escribirlas aquí de forma somera:

Preprocesado. Lo que pasa aquí básicamente aquí es sustituir todos los valores implícitos con su valor real, es decir, las variables que usan #define son sustituidas por su valor real y el contenido de los #include es agregado al código fuente.

$gcc -E hola.c > hola.pp

Revisen el contenido de hola.pp

Compilado. Lo que verán es que se creo hola.s y su contenido será el programa en ensamblador.

$gcc -S hola.c

Ensamblado. Lo que pasa ahora es la creación de un código objeto, en este caso hola.o Aquí si ven el contenido de este fichero será código Hexadecimal, si usan strings verán las cadenas de texto que aun se distinguen en el fichero, pero lo importante es usar file para que noten el tipo de archivo que generó gcc.

$gcc -c hola.c

Enlazado. Este punto no tiene mucho sentido si no hay varios archivos de código objeto. Lo que pasa es que relaciona o reúne todos los códigos que ya tenemos compilados con los anteriormente existentes en el sistema, básicamente con el de las bibliotecas que hemos usado.

$gcc -o hola hola.o

Otras cosas importantes que descubrí es que en el ensamblado GCC usa AS y el enlazado corre por parte de LD. Para finalizar creo que la opción -v de GCC también puede ayudar para observar el proceso de la compilación. Espero que a alguien le sirva para recordar o bien, para aprender un poco sobre este proceso.

P.D:  Dedicado a quien no supo que contestar cuando le preguntaron ¿Cómo se compila un programa en Linux?

Porque diablos estoy usando Gentoo

Hola, como el año es nuevo, también la distro de uso habitual debe ser nueva. La verdad es que tengo como 2 meses usando Gentoo GNU/Linux una extraña distro que se configura muy similar a un BSD.

En fin, ya algunos me han preguntado porque deje a mi querido Debian (que personal se escucha), y esto es lo que explicaré ahora.

Desde hace tiempo tengo la “necesidad” de controlar más el software que instalo, el ejemplo clásico es el de Mplayer y FFmpeg. Los paquetes oficiales de ffmpeg en Debian estan imcompletos por decirlo de alguna manera, siempre estaba el repo de Debian-multimedia, pero a veces hacían cosas raras al transformar video, como retrasar el audio lo cual me tenía algo inconforme.

El caso de Mplayer era algo similar, con los paquetes oficiales nunca pude reproducir un video sin usar el entorno gráfico, es decir, desde una consola pues los paquetes no estaban compilados con esa caracteristica.

La solución era usar Apt-build que la verdad lo hacia todo de forma muy simple y fácil. Sin embargo hay que admitir que aunque lo puede hacer correctamente APT no fue hecho para eso, y con el tiempo tenía instalados muchos paquetes con la terminación *-dev y deba flojera quitarlos una vez instalado Mplayer o FFmpeg.

Por eso cambié a Gentoo, para tener control total sobre las caracteristicas del software que tengo instalado, para este proposito fue creado Portage el gestor de paquetes de Gentoo. ¿Porqué no Slackware? Fácil, con Portage es más fácil 😛

Salvo la instalación que es fácil pero muy tardada, todo lo demás es muy rápido en Gentoo, y no hay que leer el manual de instalación del programa para compilar, las opciones las resumen las variables USE de Portage.

Sin embargo, si lo admito, extraño APT y Dpkg que creo que son lo mejor que he probado en administración y control de paquetes. Portage no es tan completo como APT en el sentido de que es MUY MUY lento al buscar, las descripciones de los paquetes son mucho menos completas, el software disponible es mucho más limitado y para tener las caracteristicas más completas son necesarios paquetes adicionales (Portage-utils).

Aun así Portage hace muy bien lo que debe: compilar. Y como otro punto a favor de Gentoo: Genkernel. Muchos dicen que Gentoo es una distro complicada, yo lo he visto muy sencillo y Genkernel es la aplicación más completa para compilar el kernel que he visto. Lo hace TODO en un solo paso, con TODAS las opciones disponibles, no sé porque Ubuntu no lo ha copiado, la verdad me extraña, incluso cuando compilaba mi kernel en Debian (los que me conocen saben que no solía usar el kernel de los repositorios de Debian) tenia que usar 4 instrucciones como minimo y con Genkernel solo uso una, es genial!!!

También probaré un día Sabayon que esta basada en Gentoo y al parecer usa sus mismos servidores espejo (así que chiste, por eso no lo he probado); de momento seguiré usando Gentoo, porque se adapta más a mis necesidades actuales aunque sus programas inestables den un poco más de problemas, perdón de diversión (solucionable por tener la documentación más completa que he visto), sin embargo, ME GUSTA MÁS DEBIAN.