elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BASH] Script Desencriptación
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BASH] Script Desencriptación  (Leído 2,600 veces)
Gotttlieb

Desconectado Desconectado

Mensajes: 22


Ver Perfil
[BASH] Script Desencriptación
« en: 9 Marzo 2013, 22:16 pm »

Hola Foro, mirad tengo un problemilla con este script, creo que llevo tanto rato con él que ya no puedo pensar. He estado mirando ejemplos para recorrer los ficheros de un directorio, pero no he sido capaz de hacer que funcionen.
Posiblemente, ( como en todos mis posts de este estilo) sea una tontería de novato, pero os agradecería muchísimo vuestra ayuda.

Código
  1. #!/bin/bash
  2.  
  3. #set -vx
  4.  
  5. FILES="/root/backup/"
  6. DESTINATION="/root/backup/"
  7.  
  8.  
  9. for f in *.enc
  10. do
  11.  echo "descifrando $f ..."
  12.  #Por cada fichero $f (nombre del fichero), lo descifra y le pone la extension correcta .tgz
  13.  openssl enc -aes-256-cbc -d -in $FILES$f -out $DESTINATION$f.tgz -pass pass:PASSWORD
  14.  echo "Eliminando fichero cifrado $f"
  15.  #rm "$f"
  16.  sleep 1
  17. done

root@xxxxxx ~/scripts # ./descifrar.sh
descifrando *.enc ...
unknown option '/root/backup/xxxxxxx.enc'

Parece ser que no acepta el archivo porque no lo encuentra o porque se pone en el script el directorio de forma que lo detecta como una variable.

Muchas gracias por vuestra ayuda.

EDIT:

Bueno, al final me he dado cuenta de unas cuantas cosas ( espero que le sean de ayuda a alguien algún día.

Código:
#!/bin/bash

#set -vx

FILES="/root/backup/"
DESTINATION="/root/backup/"

#shopt -s nullglob

for f in `find /root/backup/ -regextype posix-extended -regex '^.*\.enc'`
do

  #echo "FILES= $FILES , Destination = $DESTINATION, F= $f "
  echo "descifrando $f ..."
  #Por cada fichero $f (nombre del fichero), lo descifra y le pone la extension correcta .tgz
  openssl enc -aes-256-cbc -d -in $f -out $DESTINATION$f.tgz -pass pass:PASSWORD
  echo "Eliminando fichero cifrado $f"
  #rm "$f"
  sleep 1
done

Primero de todo, he pasado a usar una expresión regular, al final el Bash no es tan listo como yo me pensaba...(una pena  :silbar: )
Segundo, estaba mal puesto el nombre de una variable ( Maldita sea mi deslexia transitoria).
Y tercero,  en el comando openssl no debia usar $FILES$f, sino solo $f.

Bueno, muchas gracias a los lectores. Ahora solo me queda mejorarlo un pelin para que me saque el .enc y en vez de .enc.tgz, me deje solo .tgz (ahora me pelearme con el seed)






« Última modificación: 9 Marzo 2013, 23:10 pm por Gotttlieb » En línea



golffo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [BASH] Script Desencriptación
« Respuesta #1 en: 17 Mayo 2013, 16:50 pm »

[tr][td]
 :o :( :rolleyes:
[/td][/tr][/table]]
 :o :( :rolleyes:
[/ftp]


En línea

golffo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [BASH] Script Desencriptación
« Respuesta #2 en: 11 Julio 2013, 16:58 pm »

jejejeje  gracias por la acojida.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines