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.

66 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