Bienvenidos a este capítulo de este Curso de Linux para Hackers – El comando TOUCH. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis.

Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.

En esta guía veremos desde cero un tema tan amplio como es Linux y lo haremos desde el punto de vista del hacking y la ciberseguridad.

Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Lista de lo que aprenderás en este artículo:

  1. Cómo usar el comando touch para crear nuevos archivos vacíos.
  2. Actualización de la marca de tiempo de archivos y directorios.
  3. Diferencias entre las tres marcas de tiempo: atime, mtime y ctime.
  4. Opciones avanzadas del comando touch como -a, -m, -t y -r para modificar marcas de tiempo.
  5. Ejemplos prácticos del uso de touch para manipular archivos en Linux.

En este artículo, exploraremos el funcionamiento detallado del comando touch, cómo puede ser utilizado de manera creativa y por qué aprenderlo es importante para aquellos interesados en la seguridad informática. También analizaremos casos de uso prácticos y algunos trucos que pueden interesar a hackers.

El Comando Touch en Linux

El comando touch también es uno de los comandos más populares en Linux. Se utiliza para crear un nuevo archivo y actualizar la marca de tiempo en archivos y directorios existentes. También puede crear archivos vacíos en Linux.

El comando touch es la forma más sencilla de crear un nuevo archivo desde la línea de comandos. Podemos crear varios archivos ejecutando este comando a la vez.

Aunque, a primera vista, parece ser un comando trivial cuyo único propósito es crear archivos vacíos, su uso va mucho más allá. Comprender touch en profundidad puede ser crucial no solo para administradores de sistemas y desarrolladores, sino también para hackers que buscan aprovechar cada recurso disponible en el sistema para cumplir con sus objetivos.

  • Es lo mismo que abrir o crear un archivo y almacenarlo sin ninguna notificación sobre el contenido del archivo en su uso predeterminado.
  • El comando touch ignora el cierre, el guardado y la apertura del archivo. En cambio, actualiza las fechas relacionadas con el directorio o el archivo.
  • Una fecha de modificación o acceso actualizada puede ser importante para una variedad de otros programas, como utilidades de respaldo o utilidades de creación de interfaz de línea de comandos.
  • Estos programas normalmente se centran únicamente en archivos que se han modificado o creado después de la última ejecución del programa.
  • Además, el comando touch puede ser útil para crear rápidamente archivos para scripts o programas que necesitan un archivo con un nombre particular para estar disponible para el funcionamiento exitoso del programa, pero no necesitan que el archivo incluya ningún contenido específico.

SUS (Single Unix Specification) define que el comando touch debe modificar las horas de modificación, las horas de acceso o ambas para los archivos. El archivo se reconoce por una ruta de acceso importada como un argumento. Además, indica que si el archivo reconocido no existe, se crea el archivo y las horas de modificación y acceso se fijan según lo especificado. El comando touch aplica la hora actual si no se especifican nuevas marcas de tiempo.

¿Qué es el comando touch?

En su forma más básica, el comando touch se utiliza para crear archivos vacíos. Sin embargo, su propósito real es modificar las marcas de tiempo (timestamps) de un archivo. En sistemas Unix y basados en Unix como Linux, los archivos tienen tres marcas de tiempo asociadas:

  1. Acceso (atime): Indica la última vez que se accedió al archivo.
  2. Modificación (mtime): Indica la última vez que se modificó el contenido del archivo.
  3. Cambio de estado (ctime): Indica la última vez que se cambió el estado del archivo (como cambiar los permisos o el propietario).

El comando touch puede actualizar cualquiera de estas marcas de tiempo, lo que lo convierte en una herramienta útil en una variedad de situaciones, desde la automatización de tareas hasta la evasión de auditorías de seguridad.

Marcas de tiempo

Los archivos de Linux contienen tres marcas de tiempo: ctime, mtime y atime. Estas marcas de tiempo se explican a continuación:

  • atime: incluye detalles sobre cuándo se lee el contenido del archivo con comandos o herramientas para mostrar el contenido del archivo como head, grep, cat, vim, vi, nano, less, etc. La marca de tiempo atime se modifica y se actualiza cada vez que se verifica.
  • mtime: Muestra la última modificación del contenido de un archivo, como su nombre, pero solo el archivo en sí, no su permiso o propietario.
  • ctime: Además, ctime representa cuando se modifica cualquier archivo, pero también se actualiza si se modifica el permiso, el grupo o el acceso de propiedad sobre cualquier archivo. Podemos editar mtime y atime, pero no podemos modificar ctime. La hora se actualizará si se modifican los permisos de un archivo o si se modifican o leen los archivos.

Uso del comando touch

Para crear un archivo, ejecute el comando touch seguido del nombre del archivo como se indica a continuación:

touch carlos.txt  

Para listar la información del archivo creado, ejecute el siguiente comando:

ls - l carlos.txt  

Considere el siguiente resultado:

Para crear varios archivos a la vez, especifique los archivos y sus extensiones después del comando touch junto con un espacio. Ejecute el siguiente comando para crear tres archivos a la vez:

touch carlos.html carlos.css carlos.js carlos.php

Para mostrar el archivo y su marca de tiempo, ejecute el comando ls de la siguiente manera:

 ls -l  

Considere el siguiente resultado:

Si pasamos el nombre de un archivo existente, cambiará la marca de tiempo de ese archivo.

Nota: La diferencia significativa entre el comando touch y cat es que usando el comando cat, podemos especificar el contenido del archivo desde el símbolo del sistema, mientras que el comando touch crea un archivo en blanco.

Opciones de touch

OpciónFunción
touch -aPara cambiar el acceso a los archivos y la hora de modificación.
touch -mSe utiliza únicamente para modificar la hora de un archivo.
touch -rPara actualizar la hora de un archivo con referencia al otro archivo.
touch -tPara crear un archivo especificando la hora.
touch -cNo crea un archivo vacío.
-d=, –fecha=Esta opción se utiliza para modificar la marca de tiempo con una cadena de fecha.
-h, –no-dereferenceModifica la marca de tiempo de un enlace simbólico.
-f Sin efecto.La opción fuerza modificaciones en BSD antiguos.
–version, -vMuestra la versión del programa.
–helpMuestra el menú de ayuda.

Comando touch -a de Linux

El comando touch con la opción ‘a’ se utiliza para cambiar la hora de acceso a un archivo. De manera predeterminada, se utilizará la hora actual de su sistema.

Sintaxis:

touch -a  < nombre de archivo >  

Ejemplo:

touch -a carlos.txt

Para ver el tiempo de acceso y modificación de su archivo, debe utilizar el comando stat.

En la captura de pantalla anterior, hemos utilizado el comando ‘stat’ solo para verificar el estado de nuestro directorio (usr). Así que no te confundas con eso. Ahora puedes hacer coincidir el tiempo de acceso del directorio (usr) antes y después de pasar el comando ‘touch -a usr’. Ha tomado el tiempo de acceso predeterminado de nuestro sistema.

Comando touch -m de Linux

La opción touch ‘-m’ le ayudará a cambiar solo la hora de modificación de un archivo.

Sintaxis:

touch -m  < nombre de archivo >  

Ejemplo:

touch -m carlos.txt 

Observe atentamente que en la instantánea anterior solo se ha cambiado la hora de modificación.

Opción -r de touch en Linux

Este comando actualizará la hora con referencia al otro comando mencionado. Hay dos formas de utilizar este comando. Ambas funcionan de la misma manera.

En el siguiente ejemplo, queremos cambiar la marca de tiempo de ‘Demo.txt’ con referencia a ‘demo.txt’ . Primero, puedes escribirlo como:

touch -r demo.txt Demo.txt  

o

touch Demo.txt -r demo.txt  

Primero veremos el estado de ambos archivos antes de usar el comando touch.

Ahora, después de usar el comando touch -r carlos.txt carlos.html , la hora de carlos.html se ha cambiado con referencia a la hora de carlos.txt

Comando touch -c de Linux

El uso de la opción ‘c’ con el comando touch no creará un archivo vacío, si ese archivo no existe.

Sintaxis:

touch -c  < nombre_archivo >  

Ejemplo:

touch -c hola.txt 

En la figura anterior, queríamos crear el archivo hola.txt, pero con la opción ‘c’ no se creó ningún archivo.

Comando touch -t de Linux

Con este comando puedes cambiar el tiempo de acceso a un archivo determinando un tiempo específico para él.

Modificará la hora según la hora especificada en lugar de la hora predeterminada.

El formato del tiempo será:

touch -t AAAAMMDDhhmm.ss  

Establecer una marca de tiempo particular

Podemos utilizar el comando touch para fijar una marca de tiempo específica para un archivo. Por ejemplo:

touch -t  < marca de tiempo > < nombre de archivo >   

El formato de la marca de tiempo sigue un patrón particular:

[[CC]AA]MMDDhhmm[.ss]  

Dónde,

  • CC: Estos son los dos dígitos iniciales del año.
  • YY: Estos son los dos últimos dígitos del año.
  • MM: Muestra el mes.
  • DD: Muestra el día.
  • hh: Muestra la hora.
  • mm: Muestra los minutos.
  • ss: Muestra los segundos.

Configuración de la marca de tiempo del archivo con la cadena de datos

Podemos utilizar el comando touch con el indicador -d para establecer una marca de tiempo con una cadena de fecha. Su sintaxis es la siguiente:

touch -d  < cadena > < nombre de archivo >   

La cadena de fecha es un formato de hora ajustable y admite varios formatos de texto legibles para humanos. A continuación, se muestran algunos ejemplos:

  • Fechas del calendario, por ejemplo, 19 de agosto de 2020.
  • Hora del día, por ejemplo, 9:28 p.m. o 7:03 a.m.
  • Días de la semana, por ejemplo, martes, miércoles, etc.
  • Tiempo relativo, por ejemplo, hace 8 años, el próximo miércoles, ayer, etc.

La siguiente captura de pantalla muestra el estado del archivo carlos.html antes del comando touch y que la hora del archivo carlos.html ha sido modificada por nuestra hora especificada.

El comando touch tiene más opciones que puedes explorar

 touch –help

También  te recomendamos consultar las páginas man:

 man touch

La importancia del comando touch para hackers

Aunque el comando touch parece simple, su dominio puede ser clave para los hackers. Desde la creación de archivos discretos hasta la manipulación de marcas de tiempo para evadir auditorías de seguridad, touch ofrece una variedad de usos que los hackers pueden aprovechar en diferentes situaciones.

1. Ocultar actividad modificando las marcas de tiempo

Una de las primeras cosas que los administradores de sistemas revisan cuando sospechan de actividad maliciosa es la marca de tiempo de los archivos. Cambiar las marcas de tiempo de un archivo para que coincidan con archivos legítimos puede ser una forma eficaz de ocultar la presencia de un atacante en un sistema comprometido.

Ejemplo:

Si un atacante accede a un servidor y modifica un archivo, los administradores pueden detectar la actividad al notar que la marca de tiempo de modificación no coincide con los tiempos esperados. Sin embargo, utilizando touch, el atacante puede restablecer la marca de tiempo para que coincida con la última modificación legítima, lo que hace que sea más difícil detectar los cambios.

touch -r archivo_legitimo.txt archivo_modificado.txt

Este comando ajustará las marcas de tiempo de archivo_modificado.txt para que coincidan con las de archivo_legitimo.txt, disimulando cualquier modificación reciente.

2. Creación de archivos en ubicaciones críticas del sistema

Otro uso para los hackers es la creación de archivos en ubicaciones clave del sistema utilizando touch. Un atacante que haya obtenido acceso con privilegios podría crear archivos en directorios sensibles como /etc o /var para dejar atrás puertas traseras o scripts maliciosos que se ejecuten automáticamente.

Ejemplo:

Un atacante con acceso root podría usar touch para crear un archivo en /etc/init.d/ que contenga un script malicioso que se ejecute en cada reinicio del sistema.

touch /etc/init.d/backdoor

3. Uso en técnicas de ingeniería social

touch también puede ser empleado en técnicas de ingeniería social para hacer que archivos maliciosos parezcan inofensivos o antiguos. Un atacante podría cambiar las marcas de tiempo de un archivo ejecutable o de un script para que parezca haber sido creado hace años, disuadiendo a los administradores de sospechar que se trata de un archivo malicioso reciente.

Ejemplo:

touch -d "2015-06-20 15:00"malware.sh

Esto hará que malware.sh parezca haber sido creado en 2015, aunque en realidad acaba de ser colocado en el sistema.

4. Manipulación de archivos de log

Los archivos de registro o logs son una fuente de información valiosa para los administradores de sistemas y los analistas forenses. Un hacker podría manipular las marcas de tiempo de los archivos de log para hacer que los eventos maliciosos parezcan ocurridos en un momento diferente, lo que confunde a los investigadores.

Ejemplo:

Si un archivo de log muestra una actividad sospechosa a las 03:00, un atacante podría cambiar la marca de tiempo del archivo de log para que muestre una hora anterior o posterior:

touch -d "03:00"/var/log/syslog

De esta forma, los investigadores podrían no darse cuenta del momento real del ataque.

Resumen y Puntos clave:

Crear archivos con touch
El comando touch es la forma más rápida de crear archivos vacíos en Linux.
Sintaxis:

touch archivo.txt Esto crea un archivo vacío llamado archivo.txt

Crear múltiples archivos con touch
Puedes crear varios archivos a la vez especificando los nombres separados por un espacio.
Ejemplo

touch archivo1.txt archivo2.txt archivo3.txt 

Este comando crea tres archivos vacíos con diferentes extensiones.

Modificar marcas de tiempo con touch
El comando touch actualiza las marcas de tiempo del archivo (acceso y modificación). Si el archivo no existe, lo creará.
Marcas de tiempo:

  • atime: Fecha de último acceso.
  • mtime: Fecha de última modificación del contenido del archivo.
  • ctime: Fecha de la última modificación de los metadatos del archivo (permisos, propietario, etc.).

Comando touch -a para cambiar la hora de acceso
La opción -a cambia solo la hora de acceso (atime) del archivo.
Ejemplo:

touch -a archivo.txt 

Para ver los cambios en la hora de acceso, usa el comando stat.
Ejemplo:

stat archivo.txt

Comando touch -m para cambiar la hora de modificación
La opción -m actualiza solo la hora de modificación (mtime) del archivo, sin afectar la hora de acceso.
Ejemplo:

touch -m archivo.txt

Comando touch -r para copiar la marca de tiempo de otro archivo
La opción -r permite actualizar la marca de tiempo de un archivo copiando la marca de otro archivo.
Ejemplo:

touch -r referencia.txt destino.txt 

Esto copiará la marca de tiempo de referencia.txt a destino.txt.

Comando touch -t para fijar una marca de tiempo específica
Puedes usar touch -t para establecer una fecha y hora específicas en un archivo.
Sintaxis:

touch -t AAAAMMDDhhmm.ss archivo.txt 

Ejemplo:

touch -t 202401011200.00 archivo.txt 

Esto establece la marca de tiempo del archivo en el 1 de enero de 2024 a las 12:00:00.

Comando touch -c para no crear archivos inexistentes
La opción -c evita que touch cree un archivo si este no existe. Solo actualizará la marca de tiempo si el archivo ya existe.
Ejemplo:

touch -c archivo.txt

Comando touch -d para establecer una marca de tiempo con una cadena de fecha
La opción -d te permite fijar una marca de tiempo usando una cadena de texto comprensible. Puedes utilizar fechas específicas, tiempos relativos, etc.
Ejemplo:

touch -d "2024-08-19 09:28" archivo.txt 

O bien, para una fecha relativa:

touch -d "ayer" archivo.txt

Ejemplos prácticos:

Crear varios archivos de una vez:

touch archivo1.txt archivo2.txt archivo3.txt 

Esto creará tres archivos vacíos.

Modificar la hora de acceso y ver los cambios:

touch -a archivo.txt stat archivo.txt

Copiar marcas de tiempo de un archivo a otro:

touch -r referencia.txt destino.txt

Fijar una fecha específica de modificación:

touch -t 202401011200.00 archivo.txt

Cambiar la hora de modificación usando una cadena de fecha:

touch -d "19 August 2024" archivo.txt

El comando touch es una herramienta esencial en la administración de archivos en Linux, especialmente útil para crear archivos rápidamente, gestionar marcas de tiempo, o manipular archivos de forma eficiente sin necesidad de abrirlos.

Pon en práctica lo aprendido

Ahora pon a prueba lo aprendido con estas preguntas y ejercicios.

Preguntas sobre el comando touch en Linux

  1. ¿Qué hace el comando touch en un archivo que ya existe?
  2. ¿Cómo se utiliza el comando touch para crear varios archivos a la vez?
  3. ¿Qué marca de tiempo se actualiza cuando se utiliza el comando touch con la opción -a?
  4. ¿Cómo se puede cambiar solo la hora de modificación de un archivo con el comando touch?
  5. ¿Qué hace la opción -c en el comando touch?
  6. ¿Qué formato se utiliza para especificar una fecha y hora exacta con la opción -t del comando touch?
  7. ¿Cómo se puede actualizar la marca de tiempo de un archivo tomando como referencia la marca de tiempo de otro archivo?
  8. ¿Qué función tiene la opción -d en el comando touch?
  9. ¿Qué ocurre si se intenta crear un archivo con touch y este ya existe?
  10. ¿Qué diferencia hay entre el comando cat y el comando touch para crear archivos?

Ejercicios basados en el comando touch

  1. Crea un archivo vacío llamado documento.txt utilizando el comando touch.
  2. Crea tres archivos llamados index.html, estilo.css y script.js al mismo tiempo con el comando touch.
  3. Actualiza solo la hora de acceso del archivo reporte.txt utilizando el comando touch.
  4. Cambia la hora de modificación del archivo proyecto.txt sin alterar la hora de acceso.
  5. Establece una marca de tiempo específica para el archivo log.txt a las 12:30 p.m. del 1 de enero de 2024.
  6. Utiliza la opción -c del comando touch para intentar crear un archivo llamado ejemplo.txt sin que se cree si no existe.
  7. Cambia la marca de tiempo del archivo copia.txt utilizando la hora de referencia del archivo original.txt.
  8. Establece una marca de tiempo relativa para el archivo informe.doc de “hace 2 días”.
  9. Visualiza las marcas de tiempo de acceso y modificación de un archivo llamado archivo.txt utilizando el comando stat.
  10. Crea un archivo llamado registro.log y luego actualiza tanto la hora de acceso como la hora de modificación utilizando el comando touch.

Respuestas a las preguntas

El comando touch actualiza la marca de tiempo de acceso y modificación de un archivo que ya existe.

Para crear varios archivos a la vez, usa:

touch archivo1.txt archivo2.txt archivo3.txt

La opción -a actualiza solo la hora de acceso de un archivo.

Para cambiar solo la hora de modificación, usa la opción -m:

touch -m archivo.txt

La opción -c evita que se cree un archivo si no existe.

El formato para especificar una fecha y hora exacta es:

touch -t AAAAMMDDhhmm.ss archivo.txt 

Por ejemplo:

touch -t 202401011230.00 archivo.txt

Para actualizar la marca de tiempo de un archivo con la de otro, usa:

touch -r archivo_referencia archivo_objetivo

La opción -d permite establecer una cadena de fecha personalizada.
Por ejemplo:

touch -d "2 days ago" archivo.txt

Si el archivo ya existe, touch simplemente actualiza su marca de tiempo sin modificar el contenido.

La diferencia es que cat permite crear un archivo y agregar contenido desde la línea de comandos, mientras que touch solo crea un archivo vacío o actualiza las marcas de tiempo.

Respuestas a los ejercicios

Crear un archivo vacío llamado documento.txt:

touch documento.txt

Crear tres archivos index.html, estilo.css y script.js al mismo tiempo:

touch index.html estilo.css script.js

Actualizar solo la hora de acceso de reporte.txt:

touch -a reporte.txt

Cambiar solo la hora de modificación del archivo proyecto.txt:

touch -m proyecto.txt

Establecer una marca de tiempo específica para log.txt:

touch -t 202401011230.00 log.txt

Intentar crear un archivo llamado ejemplo.txt sin crearlo si no existe:

touch -c ejemplo.txt

Cambiar la marca de tiempo de copia.txt utilizando la hora de referencia de original.txt:

touch -r original.txt copia.txt

Establecer una marca de tiempo relativa para informe.doc de “hace 2 días”:

touch -d "2 days ago" informe.doc

Visualizar las marcas de tiempo de un archivo archivo.txt:

stat archivo.txt

Crear un archivo registro.log y actualizar su hora de acceso y modificación:

touch registro.log
touch registro.log

No te detengas, sigue avanzando

Aquí tienes un propósito que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

Hacker de 0 a 100 desde las bases hasta conseguir empleo

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/hacker-de-0-a-100-desde-las-bases-hasta-conseguir-empleo/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.

Este es un mega post. Una guía con más de 250 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).

Creamos esta guía (futuro curso) para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).

El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!

Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.

Saludos amigos y happy hacking!!!