Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Lucksi
GitHub Repository: Lucksi/Mr.Holmes
Path: blob/master/Core/Support/Websites/Scanner.py
1071 views
1
# ORIGINAL CREATOR: Luca Garofalo (Lucksi)
2
# AUTHOR: Luca Garofalo (Lucksi)
3
# Copyright (C) 2021-2023 Lucksi <[email protected]>
4
# License: GNU General Public License v3.0
5
6
import socket
7
from Core.Support import Font
8
from Core.Support import Language
9
from time import sleep
10
11
filename = Language.Translation.Get_Language()
12
filename
13
14
class Port:
15
16
@staticmethod
17
def Get_Port(Server, report, port, Open_Ports):
18
print(Font.Color.GREEN +
19
"\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Check", "None").format(port))
20
host = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
21
host.settimeout(2)
22
Result = host.connect_ex((Server, port))
23
if Result == 0:
24
print(Font.Color.YELLOW + "[v]" + Font.Color.WHITE +
25
Language.Translation.Translate_Language(filename, "Ports", "Port", "None").format(port) + Font.Color.GREEN + Language.Translation.Translate_Language(filename, "Ports", "Open", "None"))
26
Open_Ports.append(port)
27
f = open(report, "a")
28
f.write("Port: {}\n".format(port))
29
f.close()
30
else:
31
print(Font.Color.RED + "[!]" + Font.Color.WHITE +
32
Language.Translation.Translate_Language(filename, "Ports", "Port", "None").format(port) + Font.Color.RED + Language.Translation.Translate_Language(filename, "Ports", "Closed", "None"))
33
host.close()
34
35
@staticmethod
36
def Scan(username, report):
37
Open_Ports = []
38
Server = socket.gethostbyname(username)
39
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
40
Language.Translation.Translate_Language(filename, "Ports", "Host", "None").format(username))
41
print(Font.Color.GREEN +
42
"[+]" + Font.Color.WHITE + "{} IP: {}".format(username, Server))
43
nPorts = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Text", "None") +
44
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
45
if nPorts == 1:
46
Min = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Pstart", "None") +
47
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
48
while Min == "":
49
Min = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Pstart", "None") +
50
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
51
Max2 = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Pfinish", "None") +
52
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
53
while Max2 == "":
54
Max2 = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Pfinish", "None") +
55
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
56
Max = Max2 + 1
57
Def = True
58
elif nPorts == 2:
59
Min = 1
60
Max = 1024
61
Def = True
62
elif nPorts == 3:
63
Ports_List = []
64
amount = 0
65
Def = False
66
i = 0
67
amount = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Amounts", "None") +
68
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
69
while amount == "":
70
amount = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Amounts", "None") +
71
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
72
for i in range(amount):
73
port = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Number", "None") +
74
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
75
while port == "":
76
port = int(input(Font.Color.BLUE + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Number", "None") +
77
Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
78
Ports_List.append(port)
79
elif nPorts == 4:
80
inp = input(Language.Translation.Translate_Language(filename,"Configuration","Main","Exit"))
81
#holmes.Main.Menu(Mode)
82
if nPorts != 4:
83
try:
84
if Def:
85
for port in range(Min, Max):
86
Port.Get_Port(Server, report, port, Open_Ports)
87
else:
88
for port in Ports_List:
89
Port.Get_Port(Server, report, port, Open_Ports)
90
except Exception as e:
91
print(Font.Color.RED +
92
"[!]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Ports", "Error", "None"))
93
if len(Open_Ports):
94
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE +
95
Language.Translation.Translate_Language(filename, "Ports", "OpenPorts", "None").format(username))
96
sleep(4)
97
for ports in Open_Ports:
98
print(Font.Color.YELLOW +
99
"[v]" + Font.Color.WHITE + "PORT: {}".format(ports))
100
101
else:
102
print(Font.Color.RED + "\n[!]" + Font.Color.WHITE +
103
Language.Translation.Translate_Language(filename, "Ports", "NoPorts", "None").format(username))
104