This commit is contained in:
Greg DiCristofaro 2021-09-27 18:32:33 -04:00
parent 800ce196a8
commit 552668ca8b
5 changed files with 130 additions and 162 deletions

View File

@ -1,26 +1,29 @@
#!/bin/bash #!/bin/bash
# Unzips an autopsy platform zip to specified directory and does setup # Unzips an autopsy platform zip to specified directory and does setup
# called like: install_autopsy.sh [-z zip_path] [-i install_directory]
usage() { usage() {
echo "Usage: install_autopsy.sh [-z zip_path] [-i install_directory] [-v asc_file]" 1>&2; echo "Usage: install_autopsy.sh [-z zip_path] [-i install_directory] [-j java_home] [-v asc_file]" 1>&2
echo "If specifying a .asc verification file (with -v flag), the program will attempt to create a temp folder in the working directory and verify the signature with gpg." 1>&2; echo "If specifying a .asc verification file (with -v flag), the program will attempt to create a temp folder in the working directory and verify the signature with gpg." 1>&2
} }
while getopts "z:i:v:" o; do while getopts "z:i:j:v:" o; do
case "${o}" in case "${o}" in
z) z)
AUTOPSY_ZIP_PATH=${OPTARG} AUTOPSY_ZIP_PATH=${OPTARG}
;; ;;
i) i)
INSTALL_DIR=${OPTARG} INSTALL_DIR=${OPTARG}
;; ;;
v) ASC_FILE=${OPTARG} v)
;; ASC_FILE=${OPTARG}
*) ;;
usage j)
exit 1 JAVA_PATH=${OPTARG}
;; ;;
*)
usage
exit 1
;;
esac esac
done done
@ -29,54 +32,48 @@ if [[ -z "$AUTOPSY_ZIP_PATH" ]] || [[ -z "$INSTALL_DIR" ]]; then
exit 1 exit 1
fi fi
if [[ -n "$ASC_FILE" ]] if [[ -n "$ASC_FILE" ]]; then
then
VERIFY_DIR=$(pwd)/temp VERIFY_DIR=$(pwd)/temp
KEY_DIR=$VERIFY_DIR/private KEY_DIR=$VERIFY_DIR/private
mkdir -p $VERIFY_DIR && \ mkdir -p $VERIFY_DIR &&
sudo wget -O $VERIFY_DIR/carrier.asc https://sleuthkit.org/carrier.asc && \ sudo wget -O $VERIFY_DIR/carrier.asc https://sleuthkit.org/carrier.asc &&
mkdir -p $KEY_DIR && \ mkdir -p $KEY_DIR &&
sudo chmod 600 $KEY_DIR && \ sudo chmod 600 $KEY_DIR &&
sudo gpg --homedir "$KEY_DIR" --import $VERIFY_DIR/carrier.asc && \ sudo gpg --homedir "$KEY_DIR" --import $VERIFY_DIR/carrier.asc &&
sudo gpgv --homedir "$KEY_DIR" --keyring "$KEY_DIR/pubring.kbx" $ASC_FILE $AUTOPSY_ZIP_PATH && \ sudo gpgv --homedir "$KEY_DIR" --keyring "$KEY_DIR/pubring.kbx" $ASC_FILE $AUTOPSY_ZIP_PATH &&
sudo rm -r $VERIFY_DIR sudo rm -r $VERIFY_DIR
if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
then echo "Unable to successfully verify $AUTOPSY_ZIP_PATH with $ASC_FILE" >>/dev/stderr
echo "Unable to successfully verify $AUTOPSY_ZIP_PATH with $ASC_FILE" >> /dev/stderr
exit 1 exit 1
fi fi
fi fi
ZIP_FILE_NAME=$(basename -- "$AUTOPSY_ZIP_PATH") ZIP_FILE_NAME=$(basename -- "$AUTOPSY_ZIP_PATH")
ZIP_NAME="${ZIP_FILE_NAME%.*}" ZIP_NAME="${ZIP_FILE_NAME%.*}"
AUTOPSY_EXTRACTED_PATH=$INSTALL_DIR/$ZIP_NAME AUTOPSY_EXTRACTED_PATH=$INSTALL_DIR/$ZIP_NAME
if [[ -d $AUTOPSY_EXTRACTED_PATH || -f $AUTOPSY_EXTRACTED_PATH ]] if [[ -d $AUTOPSY_EXTRACTED_PATH || -f $AUTOPSY_EXTRACTED_PATH ]]; then
then echo "A file or directory already exists at $AUTOPSY_EXTRACTED_PATH" >>/dev/stderr
echo "A file or directory already exists at $AUTOPSY_EXTRACTED_PATH" >> /dev/stderr
exit 1 exit 1
fi fi
echo "Extracting $AUTOPSY_ZIP_PATH to $AUTOPSY_EXTRACTED_PATH..." echo "Extracting $AUTOPSY_ZIP_PATH to $AUTOPSY_EXTRACTED_PATH..."
mkdir -p $AUTOPSY_EXTRACTED_PATH && \ mkdir -p $AUTOPSY_EXTRACTED_PATH &&
unzip $AUTOPSY_ZIP_PATH -d $INSTALL_DIR unzip $AUTOPSY_ZIP_PATH -d $INSTALL_DIR
if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
then echo "Unable to successfully extract $AUTOPSY_ZIP_PATH to $INSTALL_DIR" >>/dev/stderr
echo "Unable to successfully extract $AUTOPSY_ZIP_PATH to $INSTALL_DIR" >> /dev/stderr
exit 1 exit 1
fi fi
echo "Setting up autopsy at $AUTOPSY_EXTRACTED_PATH..." echo "Setting up autopsy at $AUTOPSY_EXTRACTED_PATH..."
pushd $AUTOPSY_EXTRACTED_PATH && \ pushd $AUTOPSY_EXTRACTED_PATH &&
chown -R $(whoami) . && \ chown -R $(whoami) . &&
chmod u+x ./unix_setup.sh && \ chmod u+x ./unix_setup.sh &&
./unix_setup.sh && \ ./unix_setup.sh -j $JAVA_PATH &&
popd popd
if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
then echo "Unable to setup permissions for autopsy binaries" >>/dev/stderr
echo "Unable to setup permissions for autopsy binaries" >> /dev/stderr
exit 1 exit 1
else else
echo "Autopsy setup done." echo "Autopsy setup done."
fi fi

View File

@ -18,17 +18,6 @@ then
exit 1 exit 1
fi fi
# put this in bash_profile
# https://stackoverflow.com/questions/22502759/mac-os-x-10-9-setting-permanent-environment-variables
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) && \
echo "Java home is now: $JAVA_HOME" && \
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)' | tee ~/.bash_profile ~/.bashrc
if [[ $? -ne 0 ]]
then
echo "Unable to properly set up JAVA_HOME." >> /dev/stderr
exit 1
fi
OPEN_JDK_LN=/usr/local/opt/openjdk && \ OPEN_JDK_LN=/usr/local/opt/openjdk && \
rm $ && \ rm $ && \
ln -s $JAVA_HOME $OPEN_JDK_LN ln -s $JAVA_HOME $OPEN_JDK_LN

View File

@ -2,12 +2,10 @@
# this script is designed to install necessary dependencies on debian # this script is designed to install necessary dependencies on debian
# this script requires elevated privileges # this script requires elevated privileges
echo "Turning on all repositories for apt..." echo "Turning on all repositories for apt..."
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
then echo "Failed to turn on all repositories" >>/dev/stderr
echo "Failed to turn on all repositories" >> /dev/stderr
exit 1 exit 1
fi fi
@ -19,30 +17,27 @@ echo "Installing all apt dependencies..."
# sudo apt -y install autopoint libsqlite3-dev libcppunit-dev # sudo apt -y install autopoint libsqlite3-dev libcppunit-dev
# TODO multi user dependencies? # TODO multi user dependencies?
sudo apt update && \ sudo apt update &&
sudo apt -y install build-essential autoconf libtool git-core automake git zip wget ant \ sudo apt -y build-dep imagemagick libmagickcore-dev &&
# && sudo apt -y install build-essential autoconf libtool git-core automake git zip wget ant \
# sudo apt -y build-dep imagemagick libmagickcore-dev libde265 libheif && \ libde265-dev libheif-dev \
# sudo apt -y install libpq-dev \
imagemagick libde265-dev libheif-dev \ testdisk libafflib-dev libewf-dev libvhdi-dev libvmdk-dev \
libpq-dev \ libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \
testdisk libafflib-dev libewf-dev libvhdi-dev libvmdk-dev \ gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x \
libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \ gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x \
gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
# if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
# then echo "Failed to install necessary dependencies" >>/dev/stderr
# echo "Failed to install necessary dependencies" >> /dev/stderr exit 1
# exit 1 fi
# fi
# echo "Cloning source for libde265 and libheif..." # echo "Cloning source for libde265 and libheif..."
# pushd /usr/src/ && \ # pushd /usr/src/ && \
# sudo git clone https://github.com/strukturag/libde265.git && \ # sudo git clone https://github.com/strukturag/libde265.git && \
# sudo git clone https://github.com/strukturag/libheif.git && \ # sudo git clone https://github.com/strukturag/libheif.git && \
# popd # popd
# if [[ $? -ne 0 ]] # if [[ $? -ne 0 ]]
# then # then
# popd # popd
# echo "Failed to retrieve libde265 and libheif repos" >> /dev/stderr # echo "Failed to retrieve libde265 and libheif repos" >> /dev/stderr
@ -56,7 +51,7 @@ gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.
# sudo make && \ # sudo make && \
# sudo make install && \ # sudo make install && \
# popd # popd
# if [[ $? -ne 0 ]] # if [[ $? -ne 0 ]]
# then # then
# popd # popd
# echo "Failed to install libde265" >> /dev/stderr # echo "Failed to install libde265" >> /dev/stderr
@ -70,47 +65,44 @@ gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.
# sudo make && \ # sudo make && \
# sudo make install && \ # sudo make install && \
# popd # popd
# if [[ $? -ne 0 ]] # if [[ $? -ne 0 ]]
# then # then
# popd # popd
# echo "Failed to install libheif" >> /dev/stderr # echo "Failed to install libheif" >> /dev/stderr
# exit 1 # exit 1
# fi # fi
# echo "Installing ImageMagick..." echo "Installing ImageMagick..."
# pushd /usr/src/ && \ pushd /usr/src/ &&
# sudo wget https://www.imagemagick.org/download/ImageMagick.tar.gz && \ sudo wget https://www.imagemagick.org/download/ImageMagick.tar.gz &&
# sudo tar xf ImageMagick.tar.gz && \ sudo tar xf ImageMagick.tar.gz &&
# pushd ImageMagick-7* && \ pushd ImageMagick-7* &&
# sudo ./configure --with-heic=yes && \ sudo ./configure --with-heic=yes &&
# sudo make && \ sudo make &&
# sudo make install && \ sudo make install &&
# popd && \ popd &&
# popd popd
# if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
# then popd && popd
# popd && popd echo "Failed to install ImageMagick" >>/dev/stderr
# echo "Failed to install ImageMagick" >> /dev/stderr exit 1
# exit 1 fi
# fi
# sudo ldconfig sudo ldconfig
# if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
# then echo "ldconfig call failed" >>/dev/stderr
# echo "ldconfig call failed" >> /dev/stderr exit 1
# exit 1 fi
# fi
echo "Installing bellsoft Java 8..." echo "Installing bellsoft Java 8..."
pushd /usr/src/ && \ pushd /usr/src/ &&
wget -q -O - https://download.bell-sw.com/pki/GPG-KEY-bellsoft | sudo apt-key add - && \ wget -q -O - https://download.bell-sw.com/pki/GPG-KEY-bellsoft | sudo apt-key add - &&
echo "deb [arch=amd64] https://apt.bell-sw.com/ stable main" | sudo tee /etc/apt/sources.list.d/bellsoft.list && \ echo "deb [arch=amd64] https://apt.bell-sw.com/ stable main" | sudo tee /etc/apt/sources.list.d/bellsoft.list &&
sudo apt update && \ sudo apt update &&
sudo apt -y install bellsoft-java8-full && \ sudo apt -y install bellsoft-java8-full &&
popd popd
if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
then echo "Failed to install bellsoft java 8" >>/dev/stderr
echo "Failed to install bellsoft java 8" >> /dev/stderr
exit 1 exit 1
fi fi
@ -119,11 +111,11 @@ fi
# export JAVA_HOME=/usr/lib/jvm/bellsoft-java8-full-amd64 && \ # export JAVA_HOME=/usr/lib/jvm/bellsoft-java8-full-amd64 && \
# echo "Java home is now: $JAVA_HOME" && \ # echo "Java home is now: $JAVA_HOME" && \
# echo 'export JAVA_HOME=/usr/lib/jvm/bellsoft-java8-full-amd64' | tee ~/.profile ~/.bashrc # echo 'export JAVA_HOME=/usr/lib/jvm/bellsoft-java8-full-amd64' | tee ~/.profile ~/.bashrc
# if [[ $? -ne 0 ]] # if [[ $? -ne 0 ]]
# then # then
# echo "Failed to set up JAVA_HOME in bash_rc" >> /dev/stderr # echo "Failed to set up JAVA_HOME in bash_rc" >> /dev/stderr
# exit 1 # exit 1
# fi # fi
# echo "Java version is:" # echo "Java version is:"
# java -version # java -version

View File

@ -3,22 +3,22 @@
# this script does require sudo privileges # this script does require sudo privileges
# called like: build_tsk.sh -r <repo path to be created or existing> -b <tsk branch to checkout> # called like: build_tsk.sh -r <repo path to be created or existing> -b <tsk branch to checkout>
usage() { usage() {
echo "Usage: build_tsk.sh [-r repo_path] [-b tsk_branch]" 1>&2; echo "Usage: install_tsk_from_src [-r repo_path] [-b tsk_branch]" 1>&2
} }
while getopts "r:b:" o; do while getopts "r:b:" o; do
case "${o}" in case "${o}" in
r) r)
SLEUTHKIT_SRC_DIR=${OPTARG} SLEUTHKIT_SRC_DIR=${OPTARG}
;; ;;
b) b)
TSK_BRANCH=${OPTARG} TSK_BRANCH=${OPTARG}
;; ;;
*) *)
usage usage
exit 1 exit 1
;; ;;
esac esac
done done
@ -27,47 +27,43 @@ if [[ -z "${SLEUTHKIT_SRC_DIR}" ]] || [[ -z "${TSK_BRANCH}" ]]; then
exit 1 exit 1
fi fi
if [[ ! -d $SLEUTHKIT_SRC_DIR ]] if [[ ! -d $SLEUTHKIT_SRC_DIR ]]; then
then
TSK_REPO_PATH=$(dirname "$SLEUTHKIT_SRC_DIR") TSK_REPO_PATH=$(dirname "$SLEUTHKIT_SRC_DIR")
echo "Cloning Sleuthkit to $TSK_REPO_PATH..." echo "Cloning Sleuthkit to $TSK_REPO_PATH..."
mkdir -p $TSK_REPO_PATH && \ mkdir -p $TSK_REPO_PATH &&
pushd $TSK_REPO_PATH && \ pushd $TSK_REPO_PATH &&
git clone https://github.com/sleuthkit/sleuthkit.git && \ git clone https://github.com/sleuthkit/sleuthkit.git &&
popd popd
if [[ ! -d $SLEUTHKIT_SRC_DIR ]] if [[ ! -d $SLEUTHKIT_SRC_DIR ]]; then
then echo "Unable to successfully clone Sleuthkit" >>/dev/stderr
echo "Unable to successfully clone Sleuthkit" >> /dev/stderr
exit 1 exit 1
fi fi
fi fi
echo "Getting latest of Sleuthkit branch: $TSK_BRANCH..." echo "Getting latest of Sleuthkit branch: $TSK_BRANCH..."
pushd $SLEUTHKIT_SRC_DIR && \ pushd $SLEUTHKIT_SRC_DIR &&
git reset --hard && \ git reset --hard &&
git checkout $TSK_BRANCH && \ git checkout $TSK_BRANCH &&
git pull && \ git pull &&
popd popd
if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
then echo "Unable to reset Sleuthkit repo and pull latest on $TSK_BRANCH" >>/dev/stderr
echo "Unable to reset Sleuthkit repo and pull latest on $TSK_BRANCH" >> /dev/stderr
exit 1 exit 1
fi fi
echo "Installing Sleuthkit..." echo "Installing Sleuthkit..."
pushd $SLEUTHKIT_SRC_DIR && \ pushd $SLEUTHKIT_SRC_DIR &&
# export CPPFLAGS="-I/usr/local/opt/libpq/include" && \ # export CPPFLAGS="-I/usr/local/opt/libpq/include" && \
./bootstrap && \ ./bootstrap &&
./configure && \ ./configure &&
make && \ make &&
sudo make install && \ sudo make install &&
popd popd
if [[ $? -ne 0 ]] if [[ $? -ne 0 ]]; then
then echo "Unable to build Sleuthkit." >>/dev/stderr
echo "Unable to build Sleuthkit." >> /dev/stderr
exit 1 exit 1
fi fi
JAVA_INSTALLS=/usr/local/share/java JAVA_INSTALLS=/usr/local/share/java
echo "Sleuthkit in $JAVA_INSTALLS:" echo "Sleuthkit in $JAVA_INSTALLS:"
ls $JAVA_INSTALLS | grep sleuthkit ls $JAVA_INSTALLS | grep sleuthkit

View File

@ -25,13 +25,6 @@ while getopts "j:" o; do
done done
if [[ -z "${SLEUTHKIT_SRC_DIR}" ]] || [[ -z "${TSK_BRANCH}" ]]; then
usage
exit 1
fi
# In the beginning... # In the beginning...
echo "---------------------------------------------" echo "---------------------------------------------"
echo "Checking prerequisites and preparing Autopsy:" echo "Checking prerequisites and preparing Autopsy:"
@ -54,7 +47,8 @@ fi
echo -n "Checking for Java..." echo -n "Checking for Java..."
if [ -n "$JAVA_PATH"]; then if [ -n "$JAVA_PATH"]; then
if [ -x "$JAVA_PATH/bin/java" ]; then if [ -x "$JAVA_PATH/bin/java" ]; then
# TODO sed -Ei '/^#?\s*jdkhome=/d' etc/autopsy.conf
echo "jdkhome=$JAVA_PATH" >> etc/autopsy.conf
else else
echo "ERROR: Java was not found in $JAVA_PATH." echo "ERROR: Java was not found in $JAVA_PATH."
exit 1 exit 1