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 |
|
# |
|
# 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
|
|
|