65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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
 |