Script:

#! /bin/bash

#Declaración de colores

BLUE=’\033[0;34m’

PURPLE=’\033[0;35m’

NC=’\033[0m’

#Fin declaración de colores


clear

#Inicio cabecera
echo -e "${BLUE}*************************************************************"
echo "* ______ ______ _______ _________ *"
echo "* ( __ \ ( __ \ ( ____ \|\ /|\__ __/ *"
echo "* | ( \ )| ( \ )| ( \/( \ / ) ) ( *"
echo "* | | ) || | ) || (__ \ (_) / | | *"
echo "* | | | || | | || __) ) _ ( | | *"
echo "* | | ) || | ) || ( / ( ) \ | | *"
echo "* | (__/ )| (__/ )| (____/\( / \ ) | | *"
echo "* (______/ (______/ (_______/|/ \| )_( *"
echo "* *"
echo "*************************************************************"
echo "* *"
echo "* - Extracción de medios. *"
echo "* - Listado de medios *"
echo "* - Extracción formato raw y compreso *"
echo "* - Wipe de output file *"
echo "* - Comparción de hash if and of *"
echo "* *"
echo "* Made with ♥ by Alvaro Jauregui *"
echo -e "*************************************************************${NC}"
#Fin cabecera

#función comparación de hashes
compara(){
clear
hashes=”md5 sha1 sha256″
echo “Qué hash quieres utilizar?$(NC)”
select opcions in $hashes ; do
if [ $opcions ]; then
echo “Hash elegido $opcions”
while true; do
read -p “Introduce la ruta para sacar el primer hash > ” hash1d
if [[ -d $hash1d ]] || [[ -e $hash1d ]]; then
break
else
echo “Error: El fichero no existe.”
fi
done
while true; do
read -p “Introduce la ruta para sacar el segundo hash > ” hash2d
if [[ -d $hash2d ]] || [[ -e $hash2d ]]; then
break
else
echo “Error: El fichero no existe.”
fi
done
echo “Extrayendo primer hash…”
hash1=$($(echo $opcions)sum $(echo $hash1d) | cat | cut -d ” ” -f 1)
echo “Extrayendo segundo hash…”
hash2=$($(echo $opcions)sum $(echo $hash2d) | cat | cut -d ” ” -f 1)
if [ $hash1 = $hash2 ]; then
echo “Los hashes de origen y destino coinciden”
echo
echo “Listo”;
echo
echo “Presiona una tecla para continuar…”;
read foo
main_menu
else
echo
echo “Listo”;
echo
echo “Presiona una tecla para continuar…”;
read foo
main_menu
fi
fi
done
}
#Fin función comparación de hashes

#Función adquisición de discos

adquisicion(){
clear
repeat=true
while $repeat; do
optAq=$(lsblk -n -p -x Name -r -a | cat | cut -d ” ” -f 1)
echo
echo “Elige el disco a adquirir> “;
echo
select opcion in $optAq ; do
if [ $opcion ]; then
read -p “Quieres seleccionar $opcion como disco a aquirir? s/n > ” opt
if [[ $opt = “s” ]] || [[ $opt = “” ]]; then
repeat=false
while true; do
read -p “Introduce el directorio de destino > ” destino
if [[ -d $destino ]] || [[ -e $destino ]]; then
read -p “¿Quieres wipear el destino? s/n > ” wipear
if [[ $wipear = “s” ]] || [[ $wipear = “” ]]; then
echo “Wipeando $destino …”
off=”${destino}/${name}”
dd if=/dev/zero of=$off bs=1M
echo “${off} wipeado”
echo
fi
while true; do
read -p “Introduce el nombre de la imagen que quieres crear > ” name
if [[ $name != “” ]]; then
break
fi
done
hashes=”md5 sha1 sha256″
select opcions in $hashes ; do
if [ $opcions ]; then
echo “Hash elegido $opcions”
echo “Sacando hash del origen…”
hasho=$($(echo $opcions)sum $(echo $opcion) | cat | cut -d ” ” -f 1)
echo $hasho
echo

echo “Generando adquisión ${destino}/${name}…”
iff=$(echo $opcion)
off=”${destino}/${name}”
dd if=$iff of=$off
echo
echo “Adquisición generada.”
echo
echo “Sacando hash del destino..”
hashd=$($(echo $opcions)sum $(echo “${destino}/${name}”) | cat | cut -d ” ” -f 1)
echo $hashd
echo
if [ $hasho = $hashd ]; then
echo “Los hashes de origen y destino coinciden”
read -p “¿Quieres comprimir ${destino}/${name}? s/n > ” comp
if [[ $comp = “s” ]] || [[ $comp = “” ]]; then
echo “Comprimiendo imagen …”
gzip -9 “${destino}/${name}”
echo “Imagen comprimida”
echo “Creando fichero forense”
touch $off”.txt”
chmod 755 $off”.txt”
echo “Hash origen: $hasho” >> $off”.txt”
echo “Hash destino: $hashd” >> $off”.txt” 
echo “**LOS HASHES COINCIDEN**” >> $off”.txt” 
echo

echo “Listo”;
echo
echo “Presiona una tecla para continuar…”;
read foo
main_menu
else
echo “Creando fichero forense”
touch $off”.txt”
chmod 755 $off”.txt”
echo “Hash origen: $hasho” >> $off”.txt”
echo “Hash destino: $hashd” >> $off”.txt”
echo “**LOS HASHES COINCIDEN**” >> $off”.txt”
echo
echo “Listo”;
echo
echo “Presiona una tecla para continuar…”;
read foo
main_menu
fi
else
echo “Vaya… los hashes de origen y destino no coinciden”
echo “Creando fichero forense”
touch $off”.txt”
chmod 755 $off”.txt”
echo “Hash origen: $hasho” >> $off”.txt”
echo “Hash destino: $hashd” >> $off”.txt”
echo “**LOS HASHES NO COINCIDEN**” >> $off”.txt”
echo
echo “Listo”;
echo
echo “Presiona una tecla para continuar…”;
read foo
main_menu
fi
fi
done
else
echo “Error: El directorio de destino no existe.”
fi
done
else
repeat=true
fi
break
else
echo “Opcion incorrecta”
fi
done
done
echo “Presiona una tecla para continuar…”;
read foo
}
#Fin función adquisición de discos

#Menu principal
main_menu(){
clear
echo “Escoge una opción:”
echo “1)Adquisición de medio”
echo “2)Comparación de hashes”
echo “3)Salir”
echo -n “Seleccione una opcion [1 – 3]> “
read option
case $option in
1) adquisicion;
;;
2) compara;
;;
3) echo “Saliendo del programa…”;
echo “”
exit;;*)echo ${option}” es una opcion invalida?”;
echo “Presiona una tecla para continuar…”;
read foo
clear
;;
esac
}

while true;
do
echo “Presiona una tecla para continuar…”;
read foo
main_menu
done

#Fin menu principal


Funcionamiento:

Dejar un comentario