You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.3 KiB
65 lines
1.3 KiB
#!/usr/bin/env bash |
|
|
|
# This script takes a payload and disguises it as an image. |
|
|
|
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" |
|
CURRENT=$(pwd) |
|
|
|
PAYLOAD="$1" |
|
IMAGETYPE="${2:-jpg}" |
|
# Make sure the image type is lower case |
|
IMAGETYPE=$(echo "$IMAGETYPE" | tr '[:upper:]' '[:lower:]') |
|
|
|
# This function prints the usage |
|
function printUsage(){ |
|
echo "Usage: $(basename "$0") PAYLOAD TYPE" |
|
echo "" |
|
echo "Disguises a payload as an image" |
|
echo "" |
|
echo -e "PAYLOAD\t\tThe payload to use, currently only supports a file in CWD (Required)" |
|
echo -e "TYPE\t\tThe type of image (jpg, png, gif) (default: jpg)" |
|
} |
|
|
|
function getPayload(){ |
|
local payload="$CURRENT/$PAYLOAD" |
|
echo "$payload" |
|
if [ -f "$payload" ]; then |
|
exit 0 |
|
else |
|
# Add stuff here if we want to look in another folder for payloads at some point |
|
exit 1 |
|
fi |
|
} |
|
|
|
function getTemplate(){ |
|
local template="$SCRIPTPATH/templates/payload.$IMAGETYPE" |
|
echo "$template" |
|
if [ -f "$template" ]; then |
|
exit 0 |
|
else |
|
exit 1 |
|
fi |
|
} |
|
|
|
function getDestination(){ |
|
echo "$CURRENT/$PAYLOAD.$IMAGETYPE" |
|
exit 0 |
|
} |
|
|
|
if template=$(getTemplate); then |
|
if payload=$(getPayload); then |
|
# Do copy stuff |
|
destination=$(getDestination) |
|
cp "$template" "$destination" |
|
cat "$payload" >> $destination |
|
else |
|
"No such payload $payload" |
|
echo "" |
|
printUsage |
|
fi |
|
else |
|
echo "No such template $template" |
|
echo "" |
|
printUsage |
|
exit 1 |
|
fi
|
|
|