Minor refactor & v0.4-dev
This commit is contained in:
parent
be56f69e91
commit
390c0f6d43
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
__version__ = '0.3-dev'
|
__version__ = '0.4-dev'
|
||||||
|
|
||||||
print "\n \033[92m"
|
print "\n \033[92m"
|
||||||
print " ___ _ _____ __ "
|
print " ___ _ _____ __ "
|
||||||
|
@ -57,7 +57,7 @@ if args.update:
|
||||||
print 'update'
|
print 'update'
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
scanners = ['any', 'all', 'numverify', 'ovh', 'whosenumber', 'freecarrier', '411']
|
scanners = ['any', 'all', 'numverify', 'ovh', 'voiplist']
|
||||||
|
|
||||||
code_info = '\033[97m[*] '
|
code_info = '\033[97m[*] '
|
||||||
code_warning = '\033[93m(!) '
|
code_warning = '\033[93m(!) '
|
||||||
|
@ -67,12 +67,15 @@ code_error = '\033[91m[!] '
|
||||||
def saveToOutput(output):
|
def saveToOutput(output):
|
||||||
print 'save'
|
print 'save'
|
||||||
|
|
||||||
|
def formatNumber(number):
|
||||||
|
return re.sub("(?:\+)?(?:[^[0-9]*)", "", number)
|
||||||
|
|
||||||
def localScan(number):
|
def localScan(number):
|
||||||
print code_info + 'Running local scan...'
|
print code_info + 'Running local scan...'
|
||||||
|
|
||||||
PhoneNumber = dict();
|
PhoneNumber = dict();
|
||||||
|
|
||||||
FormattedPhoneNumber = number.replace("\n", "").replace("-", "").replace(" ", "")
|
FormattedPhoneNumber = "+" + formatNumber(number)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
PhoneNumberObject = phonenumbers.parse(FormattedPhoneNumber, None)
|
PhoneNumberObject = phonenumbers.parse(FormattedPhoneNumber, None)
|
||||||
|
@ -92,7 +95,6 @@ def localScan(number):
|
||||||
print code_result + 'Carrier: %s' % carrier.name_for_number(PhoneNumberObject, 'en')
|
print code_result + 'Carrier: %s' % carrier.name_for_number(PhoneNumberObject, 'en')
|
||||||
print code_result + 'Area: %s' % geocoder.description_for_number(PhoneNumberObject, 'en')
|
print code_result + 'Area: %s' % geocoder.description_for_number(PhoneNumberObject, 'en')
|
||||||
#print '\033[1;32m[+] Timezone: %s, %s' % (timezone.time_zones_for_number(PhoneNumberObject)[0],timezone.time_zones_for_number(PhoneNumberObject)[1])
|
#print '\033[1;32m[+] Timezone: %s, %s' % (timezone.time_zones_for_number(PhoneNumberObject)[0],timezone.time_zones_for_number(PhoneNumberObject)[1])
|
||||||
#print code_info + 'This is most likely a landline, or a fixed VoIP.'
|
|
||||||
|
|
||||||
if phonenumbers.is_possible_number(PhoneNumberObject):
|
if phonenumbers.is_possible_number(PhoneNumberObject):
|
||||||
print code_info + 'The number is valid and possible.'
|
print code_info + 'The number is valid and possible.'
|
||||||
|
@ -154,6 +156,9 @@ def numverifyScan(PhoneNumber):
|
||||||
print(code_result + "Carrier: %s") % data["carrier"]
|
print(code_result + "Carrier: %s") % data["carrier"]
|
||||||
print(code_result + "Line type: %s") % data["line_type"]
|
print(code_result + "Line type: %s") % data["line_type"]
|
||||||
|
|
||||||
|
if data["line_type"] == 'landline':
|
||||||
|
print(code_warning + "This is most likely a landline, or a fixed VoIP.")
|
||||||
|
|
||||||
def ovhScan(country, number):
|
def ovhScan(country, number):
|
||||||
if not args.scanner == 'ovh' and not args.scanner == 'all':
|
if not args.scanner == 'ovh' and not args.scanner == 'all':
|
||||||
return -1
|
return -1
|
||||||
|
@ -185,54 +190,21 @@ def repScan(countryCode, number):
|
||||||
print code_info + 'Running 411.com scan...'
|
print code_info + 'Running 411.com scan...'
|
||||||
print 'https://www.411.com/phone/%s-%s' % (countryCode,number)
|
print 'https://www.411.com/phone/%s-%s' % (countryCode,number)
|
||||||
|
|
||||||
def freecarrierlookupScan(countryCode, number):
|
def voiplistScan(number):
|
||||||
if not args.scanner == 'freecarrier' and not args.scanner == 'all':
|
print code_info + 'Running VoIP list scan...'
|
||||||
return -1
|
# voip search
|
||||||
|
|
||||||
print code_info + 'Running freecarrierlookup.com scan...'
|
def osintScan(countryCode, number):
|
||||||
|
print code_info + 'Running OSINT scan...'
|
||||||
|
# OSINT recon
|
||||||
|
|
||||||
payload = "phonenum=%s&cc=%s" % (number,countryCode)
|
# social profiles
|
||||||
headers = {
|
# websites
|
||||||
'host': "freecarrierlookup.com",
|
# emails
|
||||||
'connection': "keep-alive",
|
|
||||||
'content-length': "48",
|
|
||||||
'accept': "application/json, text/javascript, */*; q=0.01",
|
|
||||||
'origin': "https://freecarrierlookup.com",
|
|
||||||
'x-requested-with': "XMLHttpRequest",
|
|
||||||
'user-agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
|
|
||||||
'content-type': "application/x-www-form-urlencoded",
|
|
||||||
'referer': "https://freecarrierlookup.com/",
|
|
||||||
'accept-encoding': "gzip, deflate, br",
|
|
||||||
'accept-language': "en-US,en;q=0.9,fr;q=0.8,la;q=0.7,es;q=0.6,zh-CN;q=0.5,zh;q=0.4",
|
|
||||||
'cookie': "PHPSESSID=cdifm9u3ch2mqscdnj2pjqjfuq",
|
|
||||||
'cache-control': "no-cache",
|
|
||||||
'postman-token': "c81a7bb0-f338-c2e5-5f32-e1b94726cce5"
|
|
||||||
}
|
|
||||||
|
|
||||||
response = requests.request("POST", "https://freecarrierlookup.com/getcarrier.php", data=payload, headers=headers)
|
|
||||||
|
|
||||||
print response.content
|
|
||||||
|
|
||||||
data = json.loads(response.content)
|
|
||||||
|
|
||||||
if not data["status"] == "success":
|
|
||||||
print code_error + '0 result found.'
|
|
||||||
return -1
|
|
||||||
|
|
||||||
soup = BeautifulSoup(response.content, "html5lib")
|
|
||||||
tags = soup.find_all("p")
|
|
||||||
|
|
||||||
print code_result + 'Phone Number: ' + tags[0].string.replace('<\/p>\\n <\/div>\\n', '')
|
|
||||||
print code_result + 'Carrier: ' + tags[1].string.replace('<\/p>\\n <\/div>\\n', '')
|
|
||||||
print code_result + 'Is Wireless:'
|
|
||||||
print code_result + 'SMS Gateway Address: '
|
|
||||||
print code_result + 'MMS Gateway Address: '
|
|
||||||
|
|
||||||
def scanNumber(number):
|
def scanNumber(number):
|
||||||
print "\033[1m\033[93m[!] ---- Fetching informations for %s ---- [!]" % number
|
print "\033[1m\033[93m[!] ---- Fetching informations for %s ---- [!]" % number
|
||||||
|
|
||||||
print code_info + 'Parsing informations...'
|
|
||||||
|
|
||||||
PhoneNumber = localScan(number)
|
PhoneNumber = localScan(number)
|
||||||
|
|
||||||
if not PhoneNumber:
|
if not PhoneNumber:
|
||||||
|
@ -241,9 +213,10 @@ def scanNumber(number):
|
||||||
|
|
||||||
numverifyScan(PhoneNumber['full'])
|
numverifyScan(PhoneNumber['full'])
|
||||||
ovhScan('fr', PhoneNumber['full']) # TODO: replace 1st parameter to be dynamic
|
ovhScan('fr', PhoneNumber['full']) # TODO: replace 1st parameter to be dynamic
|
||||||
#freecarrierlookupScan(PhoneNumber['countryCode'], PhoneNumber['number'])
|
|
||||||
#whosenumberScan(PhoneNumber['countryCode'], PhoneNumber['number'])
|
#whosenumberScan(PhoneNumber['countryCode'], PhoneNumber['number'])
|
||||||
#repScan(PhoneNumber['countryCode'], PhoneNumber['number'])
|
#repScan(PhoneNumber['countryCode'], PhoneNumber['number'])
|
||||||
|
voiplistScan(PhoneNumber['full'])
|
||||||
|
osintScan(PhoneNumber['countryCode'], PhoneNumber['full'])
|
||||||
|
|
||||||
print '\n'
|
print '\n'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue