
Actualmente estoy tomando el curso certificado Coursera de ciberseguridad de Google. Ahora estoy en la sección de Linux y estoy aprendiendo algunos comandos de Linux. Soy totalmente nuevo en esto, pero me preguntaba una cosa. Mientras aprendo, siempre trato de pensar en cómo un defensor o un atacante podría usar dicho comando y recientemente aprendí sobre echo >
el comando y cómo puede sobrescribir todo. Comprobé que se puede utilizar de forma maliciosa pero, por supuesto, no lo entendí del todo.
Mi pregunta es, digamos, que un atacante obtiene acceso a la computadora de alguien y quiere causarle daño rápidamente sabiendo que tiene muchos .txt
archivos. ¿Funcionaría este comando?
find /home/ -name "*.txt*" | echo "gg" > "*.txt*"
Me pregunto si estoy entendiendo esto correctamente. ¿Esto básicamente crearía un comando que busque todos .txt
los archivos /home/
y luego canalice echo
para sobrescribir todos .txt
los archivos con la palabra gg
?
Si no, ¿por qué no funciona exactamente? Me gustaría entender por qué no funciona para ayudarme a comprenderlo mejor, y si la idea funciona técnicamente pero el comando está escrito mal, avíseme qué parte está mal.
Respuesta1
No funcionará: echo
no recibe parámetros de una tubería. find
localizará todos .txt
los archivos y los canalizará a echo
. Pero echo
lo ignorará y simplemente emitirá gg
.
>
redirigir simplemente intentará escribirlo en un archivo llamado *.txt*
si tiene permiso para ello. Se sobrescribirá si existe y se creará si no existe.
Respuesta2
Por las razones que ThoriumBR ya ha explicado, eso no funciona.
Estas buscando algo como
shopt -s globstar
for file in **/*.txt
do
echo "rr" > "$file"
done
o
find . -name "*.txt" -print0 | while read -d $'\0' file
do
echo "rr" > "$file"
done