Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Como usar contraseñas cifradas en Scripts

Como usar contraseñas cifradas en Scripts

Tabla de contenidos

En esta ocasión veremos como poder cifrar nuestras contraseñas en scripts bajo GNU/Linux mediante OpenSSL. 

Sin más preámbulos comenzamos.

Instalación OpenSSL

BASH
apt install openssl sshpass

En primer lugar, vamos a ver cómo cifrar la contraseña ( ‘eBq82d3d3.#232413123ybW0d.-dL8veq8M9’ ) y volcar esta en un archivo de texto.

BASH
echo 'eBq82d3d3.#232413123ybW0d.-dL8veq8M9' | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass pass:'Fft@8#9xbepF!VFH.-P4JOidx' > .clave.creb

Explicación del comando

  • echo ‘eBq82d3d3.#232413123ybW0d.-dL8veq8M9’: Envio la contraseña
  • enc -aes-256-cbc : el tipo de codificación
  • -md sha512 : Resumen del mensaje (hash)
  • -a : Aplica codificación base-64 después de la fase de cifrado y antes de la fase de descifrado.
  • -pbkdf2 : utiliza el algoritmo algoritmo PBKDF2 (Función de derivación de clave basada en contraseña 2).
  • -iter 100000 : establece el número de cálculos que utilizará PBKDF2.
  • -salt : Empleamos salt para que la salida del hash siempre sea diferente.
  • -pass pass:’Fft@8#9xbepF!VFH.-P4JOidx» : La contraseña que necesitaremos para descifrar la contraseña encriptada (2413123ybW0d.-dL8veq8M9′).
  • > .clave.creb: Guardamos la salida en un archivo de texto.

Si leemos ahora el archivo de texto .clave.creb nos muestra un hash en base-64

CODE
U2FsdGVkX18c4alBzI/HqsC/H0Rc8UvY8pIOF2urnyIW3C/JEM0WxD1JsyJzIPhMoi+gNpkBHSx2Y42puQEzwQ==

Para poder descifrar la contraseña lanzamos el siguiente comando

CODE
cat clave.cred | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass pass:'Fft@8#9xbepF!VFH.-P4JOidx'
eBq82d3d3.#232413123ybW0d.-dL8veq8M9

Ejemplo de uso

Configuramos el archivo /root/jobs/clave.creb

CODE
user00001
U2FsdGVkX18c4alBzI/HqsC/H0Rc8UvY8pIOF2urnyIW3C/JEM0WxD1JsyJzIPhMoi+gNpkBHSx2Y42puQEzwQ==

Configuramos los permisos de lectura

BASH
chown root:root  /root/jobs/.clave.creb
chmod 400 /root/jobs/.clave.creb

Creamos nuestro script /root/jobs/uploadfiles.sh

BASH
#!/bin/bash
USER=`head -n 1 /root/jobs/.clave.creb`
PASSWORD=`tail -1 /root/jobs/.clave.creb | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass pass:'Fft@8#9xbepF!VFH.-P4JOidx'`
IP=192.168.1.100
SRCDIR=/root/jobs/files/*.csv

sshpass -p $PASSWORD sftp $USER@$IP:$SRCDIR

Configuramos los permisos del script

BASH
chown root:root  /root/jobs/uploadfiles.sh
chmod 500 /root/jobs/uploadfiles.sh

:wq!

Comentarios