Files
Adventures-in-Antiforensics/bash_antiforensics_methods_test_scratch.sh
T
2026-05-26 20:50:50 -06:00

76 lines
2.0 KiB
Bash

#!/bin/bash
# supress all output
exec 1>/dev/null 2>&1
# unset vars
myvar="hiii"
unset $var
# make temp directory in /tmp
mytmpdir=$(mktemp -d)
# make temp file in /tmp
mytmpfile=$(mktemp)
# function to zero and delete file using only builtin
zero_delete_file () {
if [ -z "$1" ]; then
echo "ERROR: zero_delete_file must be passed with a file argument!"
exit 1
elif [ ! -f "$1" ]; then
echo "ERRORR: zer_delete_file's argument must be a file!"
exit 1
fi
find "$1" -type f -exec dd if=/dev/zero of="$1" bs=1M conv=notrunc
rm -f "$1"
}
# function to zero and delete directory using only builtin
zero_delete_dir () {
if [ -z "$1" ]; then
echo "ERROR: zero_delete_dir must be passed with a directrory argument!"
exit 1
elif [ ! -d "$1" ]; then
echo "ERRORR: zer_delete_dir's argument must be a directory!"
exit 1
fi
find "$1" -type f -exec dd if=/dev/zero of={} bs=1M conv=notrunc \;
rm -rf "$1"
}
# a function to securely zero out and unset a variable# wip;
secure_unset_var () {
truncate_str=$(printf "%600s" | sed 's/ /0/g') # 600 ascii zeros in a row
eval "\$$1=\"$truncate_str\"" # set the new var to the 600 zeros
eval "echo \$$1"
eval "unset \$$1" # unser string varname
unset truncate_str # unset zeros
}
# nuke file
## if shred is available, it zeros the file and deletes it, otherwise rm -f's it
shred -uz "$mytempfile" || rm -f "$mytempfile"
unset $mytmpfile # dont forget to unset da var
# nuke dir
## attempts to use find and shred to delete and zero the dir, or falls back to rm -rf
find "$mytmpdir" -type f -exec shred -uz {} + || rm -rf "$mytmpdir"
unset $mytmpdir # dont forget to unset da var
# silently fork to background and dont exit if terminal closes
nohup my_script.sh > /dev/null 2>&1 &
echo "somefile.tmp"
touch "somefile.tmp"
echo "someotherfile.tmp"
touch "someotherfile.tmp"
echo "somethirdfile.tmp"
touch "somethirdfile.tmp"
exit 0 # safe clean exit