Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Z4nzu
GitHub Repository: Z4nzu/hackingtool
Path: blob/master/tools/wireless_attack_tools.py
1756 views
1
# coding=utf-8
2
import os
3
import subprocess
4
5
from core import HackingTool
6
from core import HackingToolsCollection
7
8
from rich.console import Console
9
from rich.theme import Theme
10
from rich.table import Table
11
from rich.panel import Panel
12
from rich.prompt import Prompt
13
14
_theme = Theme({"purple": "#7B61FF"})
15
console = Console(theme=_theme)
16
17
18
class WIFIPumpkin(HackingTool):
19
TITLE = "WiFi-Pumpkin"
20
DESCRIPTION = (
21
"The WiFi-Pumpkin is a rogue AP framework to easily create "
22
"these fake networks\n"
23
"all while forwarding legitimate traffic to and from the "
24
"unsuspecting target."
25
)
26
INSTALL_COMMANDS = [
27
"sudo apt install libssl-dev libffi-dev build-essential",
28
"sudo git clone https://github.com/P0cL4bs/wifipumpkin3.git",
29
"chmod -R 755 wifipumpkin3",
30
"sudo apt install python3-pyqt5",
31
"cd wifipumpkin3;sudo python3 setup.py install",
32
]
33
RUN_COMMANDS = ["sudo wifipumpkin3"]
34
PROJECT_URL = "https://github.com/P0cL4bs/wifipumpkin3"
35
36
37
class pixiewps(HackingTool):
38
TITLE = "pixiewps"
39
DESCRIPTION = (
40
"Pixiewps is a tool written in C used to bruteforce offline "
41
"the WPS pin\n "
42
"exploiting the low or non-existing entropy of some Access "
43
"Points, the so-called pixie dust attack"
44
)
45
INSTALL_COMMANDS = [
46
"sudo git clone https://github.com/wiire/pixiewps.git && apt-get -y install build-essential",
47
"cd pixiewps*/ && make",
48
"cd pixiewps*/ && sudo make install && wget https://pastebin.com/y9Dk1Wjh",
49
]
50
PROJECT_URL = "https://github.com/wiire/pixiewps"
51
52
def run(self):
53
os.system(
54
'echo "'
55
'1.> Put your interface into monitor mode using '
56
"'airmon-ng start {wireless interface}\n'"
57
"'2.> wash -i {monitor-interface like mon0}\'\n'"
58
"'3.> reaver -i {monitor interface} -b {BSSID of router} -c {router channel} -vvv -K 1 -f"
59
'| boxes -d boy'
60
)
61
print("You Have To Run Manually By USing >>pixiewps -h ")
62
63
64
class BluePot(HackingTool):
65
TITLE = "Bluetooth Honeypot GUI Framework"
66
DESCRIPTION = (
67
"You need to have at least 1 bluetooth receiver "
68
"(if you have many it will work with those, too).\n"
69
"You must install/libbluetooth-dev on "
70
"Ubuntu/bluez-libs-devel on Fedora/bluez-devel on openSUSE"
71
)
72
INSTALL_COMMANDS = [
73
"sudo wget https://raw.githubusercontent.com/andrewmichaelsmith/bluepot/master/bin/bluepot-0.2.tar.gz"
74
"sudo tar xfz bluepot-0.2.tar.gz;sudo rm bluepot-0.2.tar.gz"
75
]
76
RUN_COMMANDS = ["cd bluepot && sudo java -jar bluepot.jar"]
77
PROJECT_URL = "https://github.com/andrewmichaelsmith/bluepot"
78
79
80
class Fluxion(HackingTool):
81
TITLE = "Fluxion"
82
DESCRIPTION = "Fluxion is a remake of linset by vk496 with enhanced functionality."
83
INSTALL_COMMANDS = [
84
"git clone https://github.com/FluxionNetwork/fluxion.git",
85
"cd fluxion && sudo chmod +x fluxion.sh",
86
]
87
RUN_COMMANDS = ["cd fluxion;sudo bash fluxion.sh -i"]
88
PROJECT_URL = "https://github.com/FluxionNetwork/fluxion"
89
90
91
class Wifiphisher(HackingTool):
92
TITLE = "Wifiphisher"
93
DESCRIPTION = """
94
Wifiphisher is a rogue Access Point framework for conducting red team engagements or Wi-Fi security testing.
95
Using Wifiphisher, penetration testers can easily achieve a man-in-the-middle position against wireless clients by performing
96
targeted Wi-Fi association attacks. Wifiphisher can be further used to mount victim-customized web phishing attacks against the
97
connected clients in order to capture credentials (e.g. from third party login pages or WPA/WPA2 Pre-Shared Keys) or infect the
98
victim stations with malware..\n
99
For More Details Visit >> https://github.com/wifiphisher/wifiphisher
100
"""
101
INSTALL_COMMANDS = [
102
"git clone https://github.com/wifiphisher/wifiphisher.git",
103
"cd wifiphisher;sudo python3 setup.py install",
104
]
105
RUN_COMMANDS = ["cd wifiphisher;sudo wifiphisher"]
106
PROJECT_URL = "https://github.com/wifiphisher/wifiphisher"
107
108
109
class Wifite(HackingTool):
110
TITLE = "Wifite"
111
DESCRIPTION = "Wifite is an automated wireless attack tool"
112
INSTALL_COMMANDS = [
113
"sudo git clone https://github.com/derv82/wifite2.git",
114
"cd wifite2 && sudo python3 setup.py install",
115
]
116
RUN_COMMANDS = ["cd wifite2; sudo wifite"]
117
PROJECT_URL = "https://github.com/derv82/wifite2"
118
119
120
class EvilTwin(HackingTool):
121
TITLE = "EvilTwin"
122
DESCRIPTION = (
123
"Fakeap is a script to perform Evil Twin Attack, by getting"
124
" credentials using a Fake page and Fake Access Point"
125
)
126
INSTALL_COMMANDS = ["sudo git clone https://github.com/Z4nzu/fakeap.git"]
127
RUN_COMMANDS = ["cd fakeap && sudo bash fakeap.sh"]
128
PROJECT_URL = "https://github.com/Z4nzu/fakeap"
129
130
131
class Fastssh(HackingTool):
132
TITLE = "Fastssh"
133
DESCRIPTION = (
134
"Fastssh is an Shell Script to perform multi-threaded scan"
135
" \n and brute force attack against SSH protocol using the "
136
"most commonly credentials."
137
)
138
INSTALL_COMMANDS = [
139
"sudo git clone https://github.com/Z4nzu/fastssh.git && cd fastssh && sudo chmod +x fastssh.sh",
140
"sudo apt-get install -y sshpass netcat",
141
]
142
RUN_COMMANDS = ["cd fastssh && sudo bash fastssh.sh --scan"]
143
PROJECT_URL = "https://github.com/Z4nzu/fastssh"
144
145
146
class Howmanypeople(HackingTool):
147
TITLE = "Howmanypeople"
148
DESCRIPTION = (
149
"Count the number of people around you by monitoring wifi "
150
"signals.\n"
151
"[@] WIFI ADAPTER REQUIRED* \n[*]"
152
"It may be illegal to monitor networks for MAC addresses, \n"
153
"especially on networks that you do not own. "
154
"Please check your country's laws"
155
)
156
INSTALL_COMMANDS = [
157
"sudo apt-get install tshark"
158
";sudo python3 -m pip install howmanypeoplearearound"
159
]
160
RUN_COMMANDS = ["howmanypeoplearearound"]
161
162
163
class WirelessAttackTools(HackingToolsCollection):
164
TITLE = "Wireless attack tools"
165
DESCRIPTION = ""
166
TOOLS = [
167
WIFIPumpkin(),
168
pixiewps(),
169
BluePot(),
170
Fluxion(),
171
Wifiphisher(),
172
Wifite(),
173
EvilTwin(),
174
Fastssh(),
175
Howmanypeople(),
176
]
177
178
def pretty_print(self):
179
table = Table(title="Wireless Attack Tools", show_lines=True, expand=True)
180
table.add_column("Title", style="purple", no_wrap=True)
181
table.add_column("Description", style="purple")
182
table.add_column("Project URL", style="purple", no_wrap=True)
183
184
for t in self.TOOLS:
185
desc = getattr(t, "DESCRIPTION", "") or ""
186
url = getattr(t, "PROJECT_URL", "") or ""
187
table.add_row(t.TITLE, desc.strip().replace("\n", " "), url)
188
189
panel = Panel(table, title="[purple]Available Tools[/purple]", border_style="purple")
190
console.print(panel)
191
192
def show_options(self, parent=None):
193
console.print("\n")
194
panel = Panel.fit("[bold magenta]Wireless Attack Tools Collection[/bold magenta]\n"
195
"Select a tool to view options or run it.",
196
border_style="purple")
197
console.print(panel)
198
199
table = Table(title="[bold cyan]Available Tools[/bold cyan]", show_lines=True, expand=True)
200
table.add_column("Index", justify="center", style="bold yellow")
201
table.add_column("Tool Name", justify="left", style="bold green")
202
table.add_column("Description", justify="left", style="white")
203
204
for i, tool in enumerate(self.TOOLS):
205
title = getattr(tool, "TITLE", tool.__class__.__name__)
206
desc = getattr(tool, "DESCRIPTION", "—")
207
table.add_row(str(i + 1), title, desc or "—")
208
209
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
210
console.print(table)
211
212
try:
213
choice = Prompt.ask("[bold cyan]Select a tool to run[/bold cyan]", default="99")
214
choice = int(choice)
215
if 1 <= choice <= len(self.TOOLS):
216
selected = self.TOOLS[choice - 1]
217
if hasattr(selected, "show_options"):
218
selected.show_options(parent=self)
219
elif hasattr(selected, "run"):
220
selected.run()
221
else:
222
console.print("[bold yellow]Selected tool has no runnable interface.[/bold yellow]")
223
elif choice == 99:
224
return 99
225
except Exception:
226
console.print("[bold red]Invalid choice. Try again.[/bold red]")
227
return self.show_options(parent=parent)
228
229
230
if __name__ == "__main__":
231
tools = WirelessAttackTools()
232
tools.pretty_print()
233
tools.show_options()
234