¿Cómo saber de dónde se descargó un archivo?

En este post veremos cómo saber la URL de dónde se descargó un archivo.

La URL de dónde se descargó el archivo queda almacenada en forma de ADS del sistema de ficheros NTFS de Windows

¿Cómo saber de dónde se descargo un archivo?: Sobre ADS

Cuando trabajamos con sistemas operativos Windows el sistema de ficheros NTFS es capaz de almacenar la URL desde donde se ha descargado el archivo.

El sistema de ficheros NTFS permite almacenar metadatos en un mismo fichero, esta característica de NTFS se llama: Alternate Data Streams (ADS), en español: Flujos alternativos de datos.

Esta característica (ADS) está incorporada en el sistema de ficheros NTFS desde su primera versión.

A partir de Windows Vista y Windows Server 2008, el comando dir con el parámetro /r permite listar los ADS que existen.

¿Cómo saber de dónde se descargo un archivo?: Ejemplo

Si nos dirigimos a una carpeta donde existan ficheros descargados de Internet, podremos ver lo siguiente:

¿Cómo saber de dónde se descargo un archivo?

1) dir sin parámetros

Ejecutamos el comando dir sin parámetros y vemos un fichero ejecutable

2) Ejecutamos dir con el parámetro /R

Ejecutamos el comando dir con el parámetro /R y vemos el fichero ejecutable y un segundo fichero con el nombre:

nombre-fichero:Zone.Identifier:$DATA

Este segundo fichero está insertado dentro del primero en forma de ADS (Alternate Data Streams)

Se trata de un fichero de texto que podemos abrir con cualquier editor o visor de ficheros de texto.

Si lo abrimos vemos lo siguiente:

¿Cómo saber de dónde se descargo un archivo?

El fichero de texto contiene: [ZoneTransfer] y a continuación un identificador de zona.

Según el ejemplo anterior, es el número: 3

La correspondencia es la siguiente:

ZoneId=0: -> Equipo local

ZoneId=1: -> Intranet local

ZoneId=2: -> Sitios de confianza

ZoneId=3: -> Internet

ZoneId=4: -> Sitios restringidos

A continuación, vemos el apartado: HostUrl donde podemos ver la URL desde donde se ha descargado el fichero.

También podemos ver el contenido de un fichero con el ADS de Zone.Identifier desde PowerShell.

Ejemplo:

Get-Content -Path .\winrar-x64-531.exe -Stream Zone.Identifier

¿Cómo saber de dónde se descargo un archivo?

¿Cómo saber dónde se descargo un archivo?: Consideraciones adicionales

- El ADS Zone.Identifier lo genera el programa que descarga el archivo, por ejemplo el navegador.

- Es posible indicar vía la programación de una web que no se almacene la URL dentro del ADS Zone.Identifier, por tanto nos podemos encontrar que hayan muchos fichero ADS Zone.Identifier sin la URL.

- Los ADS de un fichero se pueden eliminar o modificar por tanto podríamos eliminar el ADS Zone.Identifier de un fichero.

- Recordemos que los ADS solo existen en el sistema de ficheros NTFS, en sistemas de ficheros FAT, exFAT, etc... no los encontraremos.

1 comentario: