En telegram específicamente en HDC preguntarón como proteger un script en bash para que nadie lo uso y solo sea usado por una persona,  por lo cual esta entrada es elaborada para que este al alcance de todo aquel que necesite proteger y cifrar sus scripts como para tener la referencia en el blog por si en algun momento lo necesito.


Hace tiempo leí de pasada sobre shc el cual cumple con la función de cifrar código en bash pasandolo por C, para contar con un binario además de adicionar algunas funcionalidades como ser tiempo de expiración y un mensaje, también se tendrá como se puede trabajar con OpenSSL para realizar el cifrado, esta mas que claro que existen caminos para hacer la inversa a estos procesos, pero ellos no serán analizados en esta entrada

Tenemos el siguiente Script, que  usaremos para realizar las pruebas el cual no cumple con lo que dice.

#!/bin/bash
# Script de inicio de Docker
echo "Iniciando script...."
echo "Datos del Sistema Operativo"
uname -a
echo "Docker Iniciado"

Generando un binario y limitando el uso a una fecha con SHC


El proceso de instalación es simple para ello pueden ver los siguientes enlaces como el repositorio en GITHUB.

Como siempre para visualizar las opciones basta con man shc y conocer mas de las funcionalidades en esta entrada unicamente veremos poner una fecha de expiración y un mensaje que mostrará, cabe resaltar que este proceso si se puede bypassear simplemente modificando la fecha.

[kvothe@Bashert]: ~/SniferL4bs>$ shc -e 07/10/2018 -m "Tiempo de uso expirado contactate con Snifer en www.sniferl4bs.com" -f sniferl4bs.sh



Las variables que usamos son las siguientes:

-e: Definimos la fecha de expiración.
-m: Mensaje que se mostrara cuando se tenga la fecha de expiración.
-f: Fichero a cifrar.
-o: Salida del binario (No lo use en este caso)

Recordamos el fichero que tenemos.



El resultado del proceso que realizamos es un fichero con la extensión .x basta con ejecutarlo como un binario.



Ahora cuando la fecha de expiración llega se muestra el mensaje, que configuramos durante el proceso de cifrado.




Cifrando y restringiendo el acceso con OpenSSL


En este otro caso hacemos uso de OpenSSL, para que el script este cifrado y además sea posible restringir el acceso unicamente a los que tenga la contraseña.

[kvothe@Bashert]: ~/SniferL4bs>$ openssl enc -e -aes-256-cbc -iter 10 -a -in sniferl4bs.sh > script-enc

Al ejecutar nos pide que agreguemos la contraseña.




Una vez realiado tenemos el fichero script-enc en este caso que es el nombre que le dimos para usarlo tenemos que usar el siguiente comando la inversa.

[kvothe@Bashert]: ~/SniferL4bs>$ openssl enc -d -aes-256-cbc -iter 10 -a -in script-enc | sh

El resultado es el siguiente:



Cipher OpenSSL: ShellHacks

"Un viaje de mil millas comienza con un solo paso" - Lao Tse.

Regards,
Snifer
Leer Mas