Tarbomb – Archivos fuera del directorio de trabajo

No confundir esto con “decompression bomb”. Esto al descomprimir nos llena el disco o nos deja sin inodes. La finalidad es escribir fuera del directorio de trabajo que se supone para descomprimir un tar o tar.gz o meter enlaces simbolicos con la esperanza de que enlacen a archivos de sistema y cambien los permisos del archivo (por ejemplo si en un README se les incita a ello).

Comenzamos.

Para examinar el contenido de un archivo tar o tar.gz:

$ tar tfv paquete.tar
$ tar tfv paquete.tar

Podemos ver en esta captura como al crear un tar nos elimina la barra de /tmp/archivo1.txt

En esta imagen podemos ver “/” que se corresponde a 47 en decimal (2F en hexadecimal)

De modo que con un editor hexadecimal podríamos añadir la / a un archivo y guardar. Esto no es tan sencillo como parece de modo que mejor usar el argumento -P que nos permite tar.

Las versiones más modernas de tar comprueban esto pero podemos saltarlo usando P. Por ejemplo así para crearlo:

$ tar cfvP paquete.tar /tmp/archivo1.txt archivo1.txt archivo2.txt archivo3.txt
/tmp/archivo1.txt
archivo1.txt
archivo2.txt
archivo3.txt

Y así para descomprimirlo:

$ tar xfvP paquete.tar

Si nos fijamos nos estamos saltando con P la comprobación y el tar descomprimirá en el directorio de trabajo archivo1.txt, archivo2.txt y archivo3.txt pero también en /tmp/archivo1.txt

Digamos que si no se sabe bien como descomprimir un tar.gz no nos fiemos nunca de quienes nos digan que usemos la opción P mayúscula. Digamos que si yo pongo aquí que te bajes un tar.gz y te indico que uses -P en los argumentos podrías estar descomprimiendo archivos en rutas fuera del directorio de trabajo y eso es peligroso si usamos por ejemplo tar como root. Evidentemente si el archivo existe aunque esté fuera de la ruta del directorio de trabajo nos pedirá confirmación. Tar también tiene un argumento para sobreescribir sin solicitar confirmación de modo que cuidadin con que comandos usáis sin mirar o si usáis una versión muy vieja de tar.

Otros hacks posibles con enlaces simbólicos y enlaces duros:

El typeflag de la cabecera que añade tar al empaquetar cada archivo contendrá si es un archivo normal, un enlace duro, un enlace simbólico, … (puedes ver como funciona un tar aquí).

'0' or (ASCII NUL) 	Normal file
'1' 	Hard link
'2' 	Symbolic link

Esto nos permite por ejemplo añadir al tar enlaces duros y enlaces blandos (enlaces físicos y enlaces simbólicos).

El peligro de añadir enlaces blandos es por ejemplo que el enlace si el archivo al que enlaza existe pues si por ejemplo le cambiamos los permisos cambiarán en el archivo enlazado. Esto puede suponer un problema de que sin darnos cuenta estemos cambiando los permisos de un archivo de sistema. Lo bueno es que si borramos el enlace no borramos el archivo al que enlaza.

Los enlaces blandos de todos modos cantarán si se hace un ls -la por ejemplo.

Con los enlaces duros la casualidad de que enlacen al mismo inode es prácticamente muy complicado (aunque puedes probar suerte). los enlaces duros si el archivo existe da lo mismo, es decir, no enlazará al mismo inodo de modo que aunque alteremos un enlace duro que apuntaba en nuestra maquina al inodo 3242309 pues no creo que enlace al mismo inodo.

De modo que si quieres generar un tar o tar.gz con enlaces prueba con los enlaces blandos y aunque si el usuario borra esos archivos no se borrarán los otros es posible que consigas que cambien los permisos si andan como root.

En fin. Esas son varias putadillas que pueden hacerse. Con tar por tanto mucho cuidado de saber como descomprimimos algo, done lo hacemos y si somos root o un usuario normal del sistema.

No usar por tanto P al descomprimir y comprimir evitará bastantes problemas. Comprobar los enlaces de los archivos (con stat o ls -lai) también ayuda a ver si nos están tratando de molestar.

Un posible uso maligno es crear un tar.gz para que escriba en /home/usuario/.bashrc un alias que por ejemplo al escribir ls pues haga un rm ya tu sabes.

próximo Publicación

Atrás Publicación

Dejar una contestacion

© 2018 [ MIERDA TV ]

Tema de Anders Norén