Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nu11secur1ty
GitHub Repository: nu11secur1ty/Kali-Linux
Path: blob/master/spoofinger/spoofinger.py
1303 views
1
#!/usr/bin/python
2
# nu11secur1ty 2024
3
4
import requests
5
import os
6
from config import API_KEY
7
from config import file
8
9
# Colors
10
class colors:
11
HEADER = '\033[1;35m'
12
OKBLUE = '\033[94m'
13
OKCYAN = '\033[96m'
14
OKCYANL = '\033[1;36m'
15
OKGREEN = '\033[92m'
16
OKGREENL = '\033[1;32m'
17
OKREDL = '\033[1;31m'
18
WARNING = '\033[93m'
19
FAIL = '\033[91m'
20
ENDC = '\033[0m'
21
BOLD = '\033[1m'
22
UNDERLINE = '\033[4m'
23
24
# Functions
25
def banner():
26
clear()
27
print(colors.OKBLUE + """
28
ad88 88
29
d8" ""
30
88
31
,adPPYba, 8b,dPPYba, ,adPPYba, ,adPPYba, MM88MMM 88 8b,dPPYba, ,adPPYb,d8 ,adPPYba, 8b,dPPYba,
32
I8[ "" 88P' "8a a8" "8a a8" "8a 88 88 88P' `"8a a8" `Y88 a8P_____88 88P' "Y8
33
`"Y8ba, 88 d8 8b d8 8b d8 88 88 88 88 8b 88 8PP""""""" 88
34
aa ]8I 88b, ,a8" "8a, ,a8" "8a, ,a8" 88 88 88 88 "8a, ,d88 "8b, ,aa 88
35
`"YbbdP"' 88`YbbdP"' `"YbbdP"' `"YbbdP"' 88 88 88 88 `"YbbdP"Y8 `"Ybbd8"' 88
36
88 aa, ,88
37
88 "Y8bbdP"
38
""" + colors.ENDC)
39
print(colors.WARNING + "spoofinger (SMS Bulk) - Bulk SMS using the textbelt API | " + colors.OKGREEN + "Author: " + colors.WARNING + "nu11secur1ty | " + colors.OKGREEN + "Website: " + colors.WARNING + "https://www.nu11secur1ty.com/" + colors.ENDC)
40
print(colors.WARNING + "Press Ctrl + C if you don't want to use the program!\n" + colors.OKGREEN + colors.ENDC)
41
42
43
def clear():
44
### For Windows 8,10, 11
45
# os.system("clear")
46
os.system("clear")
47
48
def error():
49
banner()
50
print("[" + colors.FAIL + "x" + colors.ENDC + "] Error, that answer was not expected.\n")
51
exit()
52
53
def main():
54
banner()
55
message = input("[" + colors.OKCYAN + ">" + colors.ENDC + "] Enter the message you want to send: ")
56
57
banner()
58
confirm = input("[" + colors.HEADER + "?" + colors.ENDC + "] Are you sure to send the message [y/n]: ")
59
60
if confirm in ['n', 'N', 'No', 'no', 'NO']:
61
banner()
62
confirm2 = input("[" + colors.HEADER + "?" + colors.ENDC + "] Do you want to leave Sulk [y/n]: ")
63
64
if confirm2 in ['n', 'N', 'No', 'no', 'NO']:
65
main()
66
67
elif confirm2 in ['y', 'Y', 'Yes', 'yes', 'YES']:
68
exit()
69
70
else:
71
error()
72
73
elif confirm in ['y', 'Y', 'Yes', 'yes', 'YES']:
74
banner()
75
76
script_dir = os.path.dirname(__file__)
77
path = os.path.join(script_dir, file)
78
79
with open(path) as f:
80
numbers = [x.strip() for x in f.readlines()]
81
82
true_count = 0
83
false_count = 0
84
85
for number in numbers:
86
payload = {
87
"phone": number,
88
"message": message,
89
"key": API_KEY
90
}
91
resp = requests.post(
92
'https://textbelt.com/text',
93
data = payload
94
)
95
96
if resp.json()['success']:
97
true_count += 1
98
else:
99
false_count += 1
100
101
print("[" + colors.OKCYAN + ">" + colors.ENDC + "] " + number + " ({})".format(colors.OKGREEN + 'Success' + colors.ENDC if resp.json()['success'] else colors.FAIL + 'Failed' + colors.ENDC))
102
103
print('\fTotal: {} ({}: {} | {}: {})'.format(len(numbers), colors.OKGREEN + 'Success' + colors.ENDC, true_count, colors.FAIL + 'Failed' + colors.ENDC, false_count))
104
quota = requests.get('https://textbelt.com/quota/'+ API_KEY)
105
quota = quota.json()['quotaRemaining']
106
quota = str(quota)
107
print('Remaining messages: {}\f'.format(colors.WARNING + quota + colors.ENDC))
108
109
else:
110
error()
111
112
if __name__ == '__main__':
113
try:
114
main()
115
except KeyboardInterrupt:
116
banner()
117
print("[" + colors.OKREDL + "x" + colors.ENDC + "] Leaving spoofinger ...\n")
118
exit()
119
120