diff --git a/example_google.py b/example_google.py deleted file mode 100644 index 04224ed..0000000 --- a/example_google.py +++ /dev/null @@ -1,62 +0,0 @@ -import requests,random - -uagent=[] -uagent.append("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14") -uagent.append("Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0") -uagent.append("Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3") -uagent.append("Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)") -uagent.append("Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7") -uagent.append("Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)") -uagent.append("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1") -uagent.append("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0") - -proxy=[] -proxy.append("118.97.125.150:8080") -proxy.append("212.23.250.46:80") -proxy.append("197.149.128.190:42868") -proxy.append("87.128.41.56:80",) -proxy.append("197.149.129.252:32486") -proxy.append("159.69.211.173:3128") -proxy.append("197.149.128.190:44655") -proxy.append("196.13.208.23:8080") -proxy.append("196.13.208.22:8080") -proxy.append("82.136.122.127:80") -proxy.append("178.60.28.98:9999") -proxy.append("41.60.1.102:80") -proxy.append("212.56.139.253:80") - -number = '49495363899' - -dorks=[] -dorks.append('site%3Anuminfo.net+intext%3A"luciusunegbu%40gmail.com"') -dorks.append('site%3A"hs3x.com"+intext%3A"%2B61437954897"') -dorks.append('site:facebook.com intext:"%s" | "%s"' % (number,number)) -dorks.append('site:twitter.com intext:"%s" | "%s"' % (number,number)) -dorks.append('site:linkedin.com intext:"%s" | "%s"' % (number,number)) -dorks.append('site:instagram.com intext:"%s" | "%s"' % (number,number)) -dorks.append('site:whosenumber.info intext:"%s" intitle:"who called"' % number) -dorks.append('site:"hs3x.com" intext:"+%s"' % number) -dorks.append('site:"receive-sms-now.com" intext:"+%s"' % number) -dorks.append('site:"receive-sms-online.com" intext:"+%s"' % number) - -for req in dorks: - chosenProxy = random.choice(proxy) - chosenUserAgent = random.choice(uagent) - - s = requests.Session() - proxies = {"http": chosenProxy} - headers = { - 'User-Agent': chosenUserAgent, - 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', - 'Accept-Language': 'en-us,en;q=0.5', - 'Accept-Encoding': 'gzip,deflate', - 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', - 'Keep-Alive': '115', - 'Connection': 'keep-alive', - 'Cookie': 'Cookie: CGIC=Ij90ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwqLyo7cT0wLjg; CONSENT=YES+RE.fr+20150809-08-0; 1P_JAR=2018-11-28-14; NID=148=aSdSHJz71rufCokaUC93nH3H7lOb8E7BNezDWV-PyyiHTXqWK5Y5hsvj7IAzhZAK04-QNTXjYoLXVu_eiAJkiE46DlNn6JjjgCtY-7Fr0I4JaH-PZRb7WFgSTjiFqh0fw2cCWyN69DeP92dzMd572tQW2Z1gPwno3xuPrYC1T64wOud1DjZDhVAZkpk6UkBrU0PBcnLWL7YdL6IbEaCQlAI9BwaxoH_eywPVyS9V; SID=uAYeu3gT23GCz-ktdGInQuOSf-5SSzl3Plw11-CwsEYY0mqJLSiv7tFKeRpB_5iz8SH5lg.; HSID=AZmH_ctAfs0XbWOCJ; SSID=A0PcRJSylWIxJYTq_; APISID=HHB2bKfJ-2ZUL5-R/Ac0GK3qtM8EHkloNw; SAPISID=wQoxetHBpyo4pJKE/A2P6DUM9zGnStpIVt; SIDCC=ABtHo-EhFAa2AJrJIUgRGtRooWyVK0bAwiQ4UgDmKamfe88xOYBXM47FoL5oZaTxR3H-eOp7-rE; OTZ=4671861_52_52_123900_48_436380; OGPC=873035776-8:; OGP=-873035776:; GOOGLE_ABUSE_EXEMPTION=ID=5f05257564a6b82d:TM=1543414930:C=r:IP=165.227.163.116-:S=APGng0vsERIFITaqUYe9u-Uu9E6iJxUx-g' - } - - r = s.get('https://www.google.com/search?q=%s&gws_rd=ssl' % req, headers=headers, proxies=proxies) - #print(r.text) - - print "%s\nRequested %s using Proxy %s\nUser-Agent: %s" % (r, req, chosenProxy, chosenUserAgent) diff --git a/phoneinfoga.py b/phoneinfoga.py index 78fcaac..f4e9e97 100644 --- a/phoneinfoga.py +++ b/phoneinfoga.py @@ -18,6 +18,7 @@ banner() import sys import argparse +import random parser = argparse.ArgumentParser(description= "Advanced information gathering tool for phone numbers (https://github.com/sundowndev/PhoneInfoga) version %s" % __version__, @@ -64,7 +65,7 @@ try: from phonenumbers import carrier from phonenumbers import geocoder from phonenumbers import timezone - from googlesearch import search + #from googlesearch import search except KeyboardInterrupt: print '\033[91m[!] Exiting.' sys.exit() @@ -74,6 +75,84 @@ except: scanners = ['any', 'all', 'numverify', 'ovh'] +uagent=[] +uagent.append("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14") +uagent.append("Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0") +uagent.append("Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3") +uagent.append("Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)") +uagent.append("Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7") +uagent.append("Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)") +uagent.append("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1") +uagent.append("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0") + +proxy=[] +proxy.append("118.97.125.150:8080") +proxy.append("212.23.250.46:80") +proxy.append("197.149.128.190:42868") +proxy.append("87.128.41.56:80",) +proxy.append("197.149.129.252:32486") +proxy.append("159.69.211.173:3128") +proxy.append("197.149.128.190:44655") +proxy.append("196.13.208.23:8080") +proxy.append("196.13.208.22:8080") +proxy.append("82.136.122.127:80") +proxy.append("178.60.28.98:9999") +proxy.append("41.60.1.102:80") +proxy.append("212.56.139.253:80") + +GoogleAbuseToken = '' + +def search(req, stop): + global GoogleAbuseToken + global uagent + global proxy + + chosenProxy = random.choice(proxy) + chosenUserAgent = random.choice(uagent) + + s = requests.Session() + proxies = {"http": chosenProxy} + headers = { + 'User-Agent': chosenUserAgent, + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Language': 'en-us,en;q=0.5', + 'Accept-Encoding': 'gzip,deflate', + 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', + 'Keep-Alive': '115', + 'Connection': 'keep-alive', + 'Cookie': 'Cookie: CGIC=Ij90ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwqLyo7cT0wLjg; CONSENT=YES+RE.fr+20150809-08-0; 1P_JAR=2018-11-28-14; NID=148=aSdSHJz71rufCokaUC93nH3H7lOb8E7BNezDWV-PyyiHTXqWK5Y5hsvj7IAzhZAK04-QNTXjYoLXVu_eiAJkiE46DlNn6JjjgCtY-7Fr0I4JaH-PZRb7WFgSTjiFqh0fw2cCWyN69DeP92dzMd572tQW2Z1gPwno3xuPrYC1T64wOud1DjZDhVAZkpk6UkBrU0PBcnLWL7YdL6IbEaCQlAI9BwaxoH_eywPVyS9V; SID=uAYeu3gT23GCz-ktdGInQuOSf-5SSzl3Plw11-CwsEYY0mqJLSiv7tFKeRpB_5iz8SH5lg.; HSID=AZmH_ctAfs0XbWOCJ; SSID=A0PcRJSylWIxJYTq_; APISID=HHB2bKfJ-2ZUL5-R/Ac0GK3qtM8EHkloNw; SAPISID=wQoxetHBpyo4pJKE/A2P6DUM9zGnStpIVt; SIDCC=ABtHo-EhFAa2AJrJIUgRGtRooWyVK0bAwiQ4UgDmKamfe88xOYBXM47FoL5oZaTxR3H-eOp7-rE; OTZ=4671861_52_52_123900_48_436380; OGPC=873035776-8:; OGP=-873035776:;' + } + + if True: + URL = 'https://www.google.com/search?tbs=li:1&q=%s&gws_rd=ssl' % (req) + r = s.get(URL + GoogleAbuseToken, headers=headers, proxies=proxies) + + while r.status_code == 503: + print code_warning + 'You are temporary blacklisted from Google search. Complete the captcha at the following URL and copy/paste the content of GOOGLE_ABUSE_EXEMPTION cookie : %s' % URL + print '\n' + code_info + 'Need help ? Read the doc at https://github.com/sundowndev/PhoneInfoga' + token = raw_input('\nGOOGLE_ABUSE_EXEMPTION=') + GoogleAbuseToken = '&google_abuse=' + token + r = s.get(URL + GoogleAbuseToken, headers=headers, proxies=proxies) + + soup = BeautifulSoup(r.content, 'html.parser') + results = soup.find("div", id="search").find_all("div", class_="g") + + links=[] + counter=0 + + for result in results: + counter += 1 + + if int(counter) > int(stop): + break + + url = result.find("cite").string + links.append(url) + + return links + #except: + #print code_error + 'Failed search.' + def formatNumber(number): return re.sub("(?:\+)?(?:[^[0-9]*)", "", number) @@ -213,8 +292,9 @@ def osintScan(countryCode, number, internationalNumber): print(code_info + "Generating scan URL on 411.com...") print code_result + "Scan URL: https://www.411.com/phone/%s" % internationalNumber.replace('+', '').replace(' ', '-') - try: + if True: # Social profiles: facebook, twitter, linkedin, instagram + print(code_info + '[Social media footprints]') print(code_info + "Searching for footprints on facebook.com... (limit=5)") for result in search('site:facebook.com intext:"%s" | "%s"' % (number,number), stop=5): if result: @@ -230,15 +310,13 @@ def osintScan(countryCode, number, internationalNumber): if result: print(code_result + "Result found: " + result) - print code_warning + "Waiting 10 sec before sending new requests to avoid being blacklisted..." - time.sleep(10) - print(code_info + "Searching for footprints on instagram.com... (limit=5)") for result in search('site:instagram.com intext:"%s" | "%s"' % (number,number), stop=5): if result: print(code_result + "Result found: " + result) # Websites + print(code_info + '[Web pages footprints]') print(code_info + "Searching for footprints on web pages... (limit=5)") for result in search('%s | intext:"%s" | intext:"%s"' % (number,number,internationalNumber), stop=5): if result: @@ -250,9 +328,6 @@ def osintScan(countryCode, number, internationalNumber): if result: print(code_result + "Result found: " + result) - print code_warning + "Waiting 10 sec before sending new requests to avoid being blacklisted..." - time.sleep(10) - # Reputation print(code_info + "Searching for reputation report on whosenumber.info... (limit=1)") for result in search('site:whosenumber.info intext:"%s" intitle:"who called"' % number, stop=1): @@ -267,7 +342,14 @@ def osintScan(countryCode, number, internationalNumber): print(code_result + "Result found: " + result) print(code_info + "This usually mean you are not the first to search about this number. Check the URL for eventual comments.") + print(code_info + "Generating URL on scamcallfighters.com...") + print code_result + 'http://www.scamcallfighters.com/search-phone-%s.html' % number + + #print code_warning + "Waiting 10 sec before sending new requests to avoid being blacklisted..." + #time.sleep(10) + # Temporary number providers + print(code_info + '[Temporary number providers footprints]') print(code_info + "Searching for results on hs3x.com... (limit=1)") for result in search('site:"hs3x.com" intext:"+%s"' % number, stop=1): if result: @@ -275,9 +357,6 @@ def osintScan(countryCode, number, internationalNumber): print(code_result + "URL: " + result) askForExit() - print code_warning + "Waiting 10 sec before sending new requests to avoid being blacklisted..." - time.sleep(10) - print(code_info + "Searching for results on receive-sms-now.com... (limit=1)") for result in search('site:"receive-sms-now.com" intext:"+%s"' % number, stop=1): if result: @@ -285,14 +364,154 @@ def osintScan(countryCode, number, internationalNumber): print(code_result + "URL: " + result) askForExit() + print(code_info + "Searching for results on smslisten.com... (limit=1)") + for result in search('site:"smslisten.com" intext:"%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: smslisten.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on smsnumbersonline.com... (limit=1)") + for result in search('site:"smsnumbersonline.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: smsnumbersonline.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on freesmscode.com... (limit=1)") + for result in search('site:"freesmscode.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: freesmscode.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on catchsms.com... (limit=1)") + for result in search('site:"catchsms.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: catchsms.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on smstibo.com... (limit=1)") + for result in search('site:"smstibo.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: smstibo.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on smsreceiving.com... (limit=1)") + for result in search('site:"smsreceiving.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: smsreceiving.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on getfreesmsnumber.com... (limit=1)") + for result in search('site:"getfreesmsnumber.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: getfreesmsnumber.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on sellaite.com... (limit=1)") + for result in search('site:"sellaite.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: sellaite.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on receive-sms-online.info... (limit=1)") + for result in search('site:"receive-sms-online.info" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: receive-sms-online.info") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on receivesmsonline.com... (limit=1)") + for result in search('site:"receivesmsonline.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: receivesmsonline.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on receive-a-sms.com... (limit=1)") + for result in search('site:"receive-a-sms.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: receive-a-sms.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on sms-receive.net... (limit=1)") + for result in search('site:"sms-receive.net" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: sms-receive.net") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on receivefreesms.com... (limit=1)") + for result in search('site:"receivefreesms.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: receivefreesms.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on freeonlinephone.org... (limit=1)") + for result in search('site:"freeonlinephone.org" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: freeonlinephone.org") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on receive-sms.com... (limit=1)") + for result in search('site:"receive-sms.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: receive-sms.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on receivetxt.com... (limit=1)") + for result in search('site:"receivetxt.com" %s' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: receivetxt.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on receive-smss.com... (limit=1)") + for result in search('site:"receive-smss.com" intext:"+%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: receive-smss.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on freephonenum.com... (limit=1)") + for result in search('site:"freephonenum.com" intext:"%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: freephonenum.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on receivefreesms.com... (limit=1)") + for result in search('site:"receivefreesms.com" intext:"%s"' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: receivefreesms.com") + print(code_result + "URL: " + result) + askForExit() + + print(code_info + "Searching for results on freesmsverification.com... (limit=1)") + for result in search('site:"freesmsverification.com" %s' % number, stop=1): + if result: + print(code_result + "Found a temporary number provider: freesmsverification.com") + print(code_result + "URL: " + result) + askForExit() + print(code_info + "Searching for results on receive-sms-online.com... (limit=1)") - for result in search('site:"receive-sms-online.com" intext:"+%s"' % number, stop=1): + for result in search('site:"receive-sms-online.com" intext:"%s"' % number, stop=1): if result: print(code_result + "Found a temporary number provider: receive-sms-online.com") print(code_result + "URL: " + result) askForExit() - except: - print code_error + 'Impossible to fetch Google search API. This usually mean you\'re temporary blacklisted.' + #except: + #print code_error + 'Impossible to fetch Google search API. This usually mean you\'re temporary blacklisted.' print(code_info + "Searching for phone number on tempophone.com...") response = requests.request("GET", "https://tempophone.com/api/v1/phones")