Blog

Impidiendo el borrado de ficheros o carpetas

Buenas a todos! En este nuevo post vamos a ver de forma muy rápida una manera para evitar que nuestros archivos sean borrados ya sea accidentalmente o en el caso de un pentest donde hemos conseguido acceso a un sistema, que los intente borrar el usuario afectado.

Para ello vamos a hacer uso de dos comandos, “chattr” para cambiar los atributos de un fichero o carpeta y “lsattr” para listar dichos atributos.

Vamos a ver una ejemplo, para ello creamos un simple archivo…

chattr_01

 

Como vemos el archivo ocupa 26 bytes. Vamos a ver ahora los diferentes atributos que puede tener un fichero o carpeta, siendo muy importante que modificar los atributos NO MODIFICA el fichero ni su peso. Los diferentes atributos que podemos encontrar en un fichero son:

a : Append Only

A : Do not update Atime

c : Compressed Attribute

C : No copy-on-write

d : No dump

D : Sychronous Directory Update

e : Extents

E : Experimental Attribute

h : No se puede atribuir como tal, únicamente indica si el fichero es mayor o ha sido mayor a 2TB.

i : Immutable

I : Directory is being indexed

j : Data journaling

s : Secure deletion

S : Sychronous Update

t : No tail merging

T : Top of directory Hierachy

u : Undeletable

 

Para poder listar los diferentes atributos de un fichero utilizamos “lsattr nombre_fichero” y para poder cambiar dichos atributos usaremos el comando “chattr nombre_fichero”. Para poder añadir atributos a un fichero tendremos que poner como argumento la letra de atributo precedida de un “+” para indicar que se lo estamos añadiendo, y en caso de querer eliminar un atributo sera un “-“. A continuación vemos como hemos listado los atributos, añadido el atributo de inmutable, comprobado que los atributos han sido modificados y que el peso del fichero no ha cambiado…

chattr_02

 

Una vez echo esto vamos a comprobar que aunque intentáramos borrar el fichero no podríamos debido al atributo que acabamos de añadirle de inmutable…

chattr_03

 

De esta forma haríamos que si la victima no controla bastante de linux o se conoce justo dichos comandos para modificar los atributos de un fichero, fuera incapaz de borrar nuestro archivo, que a simple vista es el mismo que había antes. Por otro lado, si quisiéramos borrarlo tendríamos que ser root y utilizar el mismo comando “chattr” para eliminar dicho atributo del fichero como vemos a continuación…

chattr_04

 

Esto mismo podríamos realizarlo para carpetas enteras de la siguiente forma…

chattr_05

chattr_06

 

Y hasta aquí llega el post de hoy donde hemos visto como podríamos utilizar estos comandos para hacer que un fichero sea indestructible, permitiendo por ejemplo a un atacante evitar que la victima borre un script, una shell, etc.

Espero que os haya gustado!

Un saludo,

Eduardo – eduardo@highsec.es – @_Hykeos

Leave a Reply

*

    No Twitter Messages