moriarty-project 0.1.22__py3-none-any.whl → 0.1.24__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- moriarty/__init__.py +1 -1
- moriarty/cli/app.py +4 -3
- moriarty/cli/domain_cmd.py +5 -1
- moriarty/modules/directory_fuzzer.py +25 -5
- moriarty/modules/web_crawler.py +448 -91
- {moriarty_project-0.1.22.dist-info → moriarty_project-0.1.24.dist-info}/METADATA +3 -3
- {moriarty_project-0.1.22.dist-info → moriarty_project-0.1.24.dist-info}/RECORD +9 -27
- moriarty/modules/wifippler/__init__.py +0 -92
- moriarty/modules/wifippler/cli/__init__.py +0 -8
- moriarty/modules/wifippler/cli/commands.py +0 -123
- moriarty/modules/wifippler/core/__init__.py +0 -94
- moriarty/modules/wifippler/core/attacks/__init__.py +0 -146
- moriarty/modules/wifippler/core/attacks/deauth.py +0 -262
- moriarty/modules/wifippler/core/attacks/handshake.py +0 -402
- moriarty/modules/wifippler/core/attacks/pmkid.py +0 -424
- moriarty/modules/wifippler/core/attacks/wep.py +0 -467
- moriarty/modules/wifippler/core/attacks/wpa.py +0 -446
- moriarty/modules/wifippler/core/attacks/wps.py +0 -474
- moriarty/modules/wifippler/core/models/__init__.py +0 -10
- moriarty/modules/wifippler/core/models/network.py +0 -240
- moriarty/modules/wifippler/core/scanner.py +0 -903
- moriarty/modules/wifippler/core/utils/__init__.py +0 -624
- moriarty/modules/wifippler/core/utils/exec.py +0 -182
- moriarty/modules/wifippler/core/utils/network.py +0 -262
- moriarty/modules/wifippler/core/utils/system.py +0 -153
- {moriarty_project-0.1.22.dist-info → moriarty_project-0.1.24.dist-info}/WHEEL +0 -0
- {moriarty_project-0.1.22.dist-info → moriarty_project-0.1.24.dist-info}/entry_points.txt +0 -0
moriarty/__init__.py
CHANGED
moriarty/cli/app.py
CHANGED
@@ -8,7 +8,8 @@ from rich.console import Console
|
|
8
8
|
from rich.theme import Theme
|
9
9
|
|
10
10
|
from ..logging.config import LogStyle, configure_logging
|
11
|
-
from . import dns, email, rdap, tls, user, domain_cmd, intelligence
|
11
|
+
from . import dns, email, rdap, tls, user, domain_cmd, intelligence
|
12
|
+
# Temporariamente removido para testes: wifippler
|
12
13
|
from .state import CLIState, GlobalOptions
|
13
14
|
|
14
15
|
console = Console(theme=Theme({
|
@@ -117,7 +118,7 @@ app.add_typer(rdap.app, name="rdap", help="Consultas RDAP.")
|
|
117
118
|
app.add_typer(tls.app, name="tls", help="Inspeções TLS.")
|
118
119
|
app.add_typer(intelligence.app, name="intelligence", help="Inteligência de ameaças.")
|
119
120
|
app.add_typer(domain_cmd.app, name="domain", help="Análise de domínios.")
|
120
|
-
|
121
|
+
# Temporariamente removido: wifippler.app
|
121
122
|
app.add_typer(user.app, name="user", help="User/IP reconnaissance and scanning.")
|
122
123
|
|
123
124
|
# Registra os comandos de inteligência
|
@@ -129,7 +130,7 @@ if __name__ == "__main__":
|
|
129
130
|
|
130
131
|
|
131
132
|
def main() -> None: # Console script compatibility
|
132
|
-
|
133
|
+
app()
|
133
134
|
|
134
135
|
|
135
136
|
def check_pipx_installed() -> bool:
|
moriarty/cli/domain_cmd.py
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
"""Comandos de scanning de domínios/IPs."""
|
2
|
+
|
3
|
+
import asyncio
|
2
4
|
import json
|
3
|
-
from typing import Optional
|
5
|
+
from typing import Optional, Dict, List
|
4
6
|
|
5
7
|
import typer
|
6
8
|
|
9
|
+
from moriarty.modules.web_crawler import WebCrawler
|
10
|
+
|
7
11
|
from moriarty.modules.port_scanner import PortScanner, PROFILES
|
8
12
|
from moriarty.modules.passive_recon import PassiveRecon
|
9
13
|
from rich.console import Console
|
@@ -160,10 +160,18 @@ class DirectoryFuzzer:
|
|
160
160
|
verify=False
|
161
161
|
) as client:
|
162
162
|
|
163
|
-
with Progress(
|
163
|
+
with Progress(
|
164
|
+
"[progress.description]{task.description}",
|
165
|
+
"•",
|
166
|
+
"[progress.percentage]{task.percentage:>3.0f}%",
|
167
|
+
"[dim]{task.fields[status]}",
|
168
|
+
refresh_per_second=10,
|
169
|
+
console=console
|
170
|
+
) as progress:
|
164
171
|
task_id = progress.add_task(
|
165
172
|
f"[cyan]Fuzzing {base_url.split('/')[-1] or 'root'}...",
|
166
|
-
total=len(urls_to_test)
|
173
|
+
total=len(urls_to_test),
|
174
|
+
status=""
|
167
175
|
)
|
168
176
|
|
169
177
|
tasks = [
|
@@ -197,7 +205,8 @@ class DirectoryFuzzer:
|
|
197
205
|
headers = self._get_headers()
|
198
206
|
response = await client.get(url, headers=headers)
|
199
207
|
|
200
|
-
|
208
|
+
# Atualiza o progresso
|
209
|
+
progress.update(task_id, advance=1, refresh=True)
|
201
210
|
|
202
211
|
# Filtra por status code
|
203
212
|
if response.status_code not in self.status_filter:
|
@@ -231,14 +240,25 @@ class DirectoryFuzzer:
|
|
231
240
|
elif url.endswith('/'):
|
232
241
|
self.found_dirs.add(url.rstrip('/'))
|
233
242
|
|
234
|
-
#
|
243
|
+
# Adiciona resultado à lista para exibição posterior
|
235
244
|
color = self._get_status_color(response.status_code)
|
236
|
-
|
245
|
+
result_str = (
|
237
246
|
f" [{color}]{response.status_code}[/{color}] "
|
238
247
|
f"[cyan]{url.replace(self.base_url, '')}[/cyan] "
|
239
248
|
f"[dim]({content_size} bytes)[/dim]"
|
240
249
|
)
|
241
250
|
|
251
|
+
# Atualiza a descrição da tarefa com o último resultado
|
252
|
+
progress.update(task_id, description=f"[cyan]Fuzzing {base_url.split('/')[-1] or 'root'}... {result_str}")
|
253
|
+
|
254
|
+
# Adiciona ao log estruturado
|
255
|
+
logger.info(
|
256
|
+
"fuzzer.found",
|
257
|
+
url=url,
|
258
|
+
status=response.status_code,
|
259
|
+
size=content_size
|
260
|
+
)
|
261
|
+
|
242
262
|
logger.info(
|
243
263
|
"fuzzer.found",
|
244
264
|
url=url,
|