moriarty-project 0.1.26__py3-none-any.whl → 0.1.27__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 +2 -2
- moriarty/cli/domain_cmd.py +127 -634
- moriarty/modules/domain_scanner.py +21 -16
- moriarty/modules/port_scanner_nmap.py +369 -102
- {moriarty_project-0.1.26.dist-info → moriarty_project-0.1.27.dist-info}/METADATA +5 -5
- {moriarty_project-0.1.26.dist-info → moriarty_project-0.1.27.dist-info}/RECORD +9 -11
- moriarty/cli/wifippler.py +0 -124
- moriarty/modules/port_scanner.py +0 -1050
- {moriarty_project-0.1.26.dist-info → moriarty_project-0.1.27.dist-info}/WHEEL +0 -0
- {moriarty_project-0.1.26.dist-info → moriarty_project-0.1.27.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
moriarty/__init__.py,sha256=
|
1
|
+
moriarty/__init__.py,sha256=m7lhtirbzU4RBinS8mk7DvYoDH7Onjr0LptFep7u8go,85
|
2
2
|
moriarty/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
moriarty/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
moriarty/assets/modules/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -328,10 +328,10 @@ moriarty/assets/templates/vulnerabilities/xss-reflected.yaml,sha256=iG0WphhygN2p
|
|
328
328
|
moriarty/assets/templates/vulnerabilities/xxe-basic.yaml,sha256=7bG1KT5jBm8SAQp-pbjxknFuW5fIkF9yrufsq2OghRk,565
|
329
329
|
moriarty/assets/wordlists/subdomains-1000.txt,sha256=XKDCiJMJ2wnDRngglAiv7iuDnwlUIr_-LnjlNwWp4sc,8032
|
330
330
|
moriarty/cli/__init__.py,sha256=PQ8kA28EJ9h8mIK_VJtH1PtJ3xfVsF3d7IsmpZfl_Bc,54
|
331
|
-
moriarty/cli/app.py,sha256=
|
331
|
+
moriarty/cli/app.py,sha256=SRcAWV0SY9ln7qm4UEwFkaS8b5UCmvzJOC7c5QtYrVE,7985
|
332
332
|
moriarty/cli/async_utils.py,sha256=jleTd2nyAVsNqJae2kKlo514gKKcH3nBXvfoLubOq6A,393
|
333
333
|
moriarty/cli/dns.py,sha256=QhDwe9uoAmk243XbO9YBYk3YlPmiXYT_vLqUXum9i70,2735
|
334
|
-
moriarty/cli/domain_cmd.py,sha256=
|
334
|
+
moriarty/cli/domain_cmd.py,sha256=Kd9dYsJUGsSgr8wTZeB5XKcmMiBd8sc9nmvZUQPvVR0,24462
|
335
335
|
moriarty/cli/email.py,sha256=AcXMwtppFHxbjNHagrKXCdEGx-zWpvFFCB4QlCo_STU,14763
|
336
336
|
moriarty/cli/email_investigate.py,sha256=w2OlrwpRAzPNW0YLxmt-eTB3lGJ3a-oQCM4elRFJ7lw,8319
|
337
337
|
moriarty/cli/intelligence.py,sha256=81BnrS8ES7fH2lI34AMB5Yxuw-lbWvu44T2R444b-kE,11852
|
@@ -340,7 +340,6 @@ moriarty/cli/rdap.py,sha256=OVtYSsx37te0TxvY7K8iBMerPBSByXocm8kLeoUEhOw,3079
|
|
340
340
|
moriarty/cli/state.py,sha256=5_HXXff9KWiYw8R763NgUAFuCAKHTZZe2zYD9JEvJxw,855
|
341
341
|
moriarty/cli/tls.py,sha256=j4ieW_Vt0QG7AuDHfjUEAOYkvk4GJguB9hY6dYJW3K0,3269
|
342
342
|
moriarty/cli/user.py,sha256=EWtRp4pzY7kOiWE16Yokc71pB4GP-ItguF1E2Lkri3Q,8169
|
343
|
-
moriarty/cli/wifippler.py,sha256=sFjtwiN0-wSbBZ2MXE2Kb8kMBmz-BG1bsBcgo4G36SY,4431
|
344
343
|
moriarty/core/cache_backend.py,sha256=tu_szkoRfZOmHh9g4ZTGc3gN-gZ-zTJGVKxlHhtvIHY,7032
|
345
344
|
moriarty/core/config_manager.py,sha256=iXrH4UgMU05U7vsqfyFmwzybQIYH5s9hyjJlS9T9CKM,11751
|
346
345
|
moriarty/correlator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -376,7 +375,7 @@ moriarty/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
376
375
|
moriarty/modules/avatar_hash.py,sha256=5Yub_N6OjUNMbt8bHShmln7i0ySDyNXrOtihWMKRivA,5919
|
377
376
|
moriarty/modules/directory_fuzzer.py,sha256=R78fxkV6prKtj7Qq0-THPpXvWGV_OeTwa9dE-j-GY-M,12581
|
378
377
|
moriarty/modules/dns_scan.py,sha256=lR1sGwhk1FXDmn6pCTrtd6Cr33uPllBpm_jqAi3-HxA,1096
|
379
|
-
moriarty/modules/domain_scanner.py,sha256=
|
378
|
+
moriarty/modules/domain_scanner.py,sha256=0jhzXyQZ3TZUSwv3TN8hZtpclg_LIxc5zvdIkZVGR0Y,29940
|
380
379
|
moriarty/modules/email_check.py,sha256=VBAWvK3cH2Zu7wjDB2xhnqZ0scifp3s1K67CmAoUVuY,3343
|
381
380
|
moriarty/modules/email_investigate.py,sha256=E25dyf2rM9cU-TjujKct9I1jY4tr1ZOvCzM1WavQlRs,9547
|
382
381
|
moriarty/modules/email_security.py,sha256=L65ctbUGmNgUMCg4i8oECIT0UBpSz2tF1WKjRDGbM1Q,9284
|
@@ -386,8 +385,7 @@ moriarty/modules/orchestrator.py,sha256=uhK4UP69uWUxCK4a_bGk_BI8I-coBM8mO8Ear3pc
|
|
386
385
|
moriarty/modules/passive_recon.py,sha256=5XUJgyWvITMUf4W76QyNfbRgF1AitQ5xK9MbwzVURxM,16568
|
387
386
|
moriarty/modules/phone_extractor.py,sha256=Bv4VVWPqf67CQfkMDJddggtEU5UUbra2FP5DLik2Gxw,5298
|
388
387
|
moriarty/modules/pipeline_orchestrator.py,sha256=qP2WcvorM_pAjacJ8VuZ-1TQ7lDVLvnyFD9T4PvWq9I,26337
|
389
|
-
moriarty/modules/
|
390
|
-
moriarty/modules/port_scanner_nmap.py,sha256=nvYfKrAluQ_knEkw4JhsesBpNasquTkPyzoh5D7oVX4,11164
|
388
|
+
moriarty/modules/port_scanner_nmap.py,sha256=Lqo0pEbsxSx3Fvnr8MUzLKly-ZX37ULiWVxFADdqGbk,25141
|
391
389
|
moriarty/modules/rdap.py,sha256=XlrTDalbSxszEwIQFHt-XWON_P9UsLLiR84DGSKAwrk,1859
|
392
390
|
moriarty/modules/rdap_extended.py,sha256=Gef7zyOY5nuS2qn8a9iaXA7Tx3TJHZJBWpqa-BZaq4U,6447
|
393
391
|
moriarty/modules/stealth_mode.py,sha256=9LJWXSgBjDsTZYslHz4zSnzDoC3JFdBcu3oOYN1IPhA,24459
|
@@ -414,7 +412,7 @@ moriarty/tests/test_email_service.py,sha256=mWqimjQRlljZNBuNePvSzhfq5FZ4mljrILGW
|
|
414
412
|
moriarty/tests/test_models.py,sha256=etklIISEUts3banaSRDSjhv-g6kd4wxucchCmlJkx6Y,1282
|
415
413
|
moriarty/tests/test_orchestrator.py,sha256=Do3M1qnbqPf_1pR3v89FXxhiwfYPZfXRvcfl05isQvs,856
|
416
414
|
moriarty/tests/test_tls_client.py,sha256=bQ46yXlIYNZwPTd8WGs6eUynHj56hVosxBycSU1gJe4,461
|
417
|
-
moriarty_project-0.1.
|
418
|
-
moriarty_project-0.1.
|
419
|
-
moriarty_project-0.1.
|
420
|
-
moriarty_project-0.1.
|
415
|
+
moriarty_project-0.1.27.dist-info/METADATA,sha256=9Pdfnk-6qHqIESpLepzurOlxmNJgo2X0-XCz7KoJ6cc,11778
|
416
|
+
moriarty_project-0.1.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
417
|
+
moriarty_project-0.1.27.dist-info/entry_points.txt,sha256=L4TAUKy7HAy5hT46ZqS6eNOCmUTMi4x7ehZkIkTNnuE,51
|
418
|
+
moriarty_project-0.1.27.dist-info/RECORD,,
|
moriarty/cli/wifippler.py
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Módulo CLI para análise de redes WiFi usando WifiPPLER.
|
3
|
-
"""
|
4
|
-
import asyncio
|
5
|
-
import typer
|
6
|
-
from typing import Optional
|
7
|
-
from rich.console import Console
|
8
|
-
from rich.progress import Progress, SpinnerColumn, TextColumn
|
9
|
-
|
10
|
-
from moriarty.modules.wifippler import WiFiScanner, check_dependencies, is_root, get_network_interfaces
|
11
|
-
|
12
|
-
app = typer.Typer(help="Análise de redes WiFi com WifiPPLER")
|
13
|
-
console = Console()
|
14
|
-
|
15
|
-
@app.command("scan")
|
16
|
-
def scan_networks(
|
17
|
-
interface: str = typer.Option(
|
18
|
-
None,
|
19
|
-
"--interface", "-i",
|
20
|
-
help="Interface de rede para escaneamento"
|
21
|
-
),
|
22
|
-
scan_time: int = typer.Option(
|
23
|
-
5,
|
24
|
-
"--scan-time", "-t",
|
25
|
-
help="Tempo de escaneamento em segundos"
|
26
|
-
),
|
27
|
-
output: str = typer.Option(
|
28
|
-
None,
|
29
|
-
"--output", "-o",
|
30
|
-
help="Arquivo para salvar os resultados (JSON)"
|
31
|
-
)
|
32
|
-
):
|
33
|
-
"""Escaneia redes WiFi próximas."""
|
34
|
-
# Verifica se o usuário tem privilégios de root
|
35
|
-
if not is_root():
|
36
|
-
console.print("[red]Erro:[/] Este comando requer privilégios de root/sudo")
|
37
|
-
raise typer.Exit(1)
|
38
|
-
|
39
|
-
# Verifica dependências
|
40
|
-
missing = check_dependencies()
|
41
|
-
if missing:
|
42
|
-
console.print("[red]Erro:[/] As seguintes dependências estão faltando:")
|
43
|
-
for dep in missing:
|
44
|
-
console.print(f"- {dep}")
|
45
|
-
raise typer.Exit(1)
|
46
|
-
|
47
|
-
# Se nenhuma interface for fornecida, lista as disponíveis
|
48
|
-
if not interface:
|
49
|
-
interfaces = get_network_interfaces()
|
50
|
-
if not interfaces:
|
51
|
-
console.print("[red]Erro:[/] Nenhuma interface de rede encontrada")
|
52
|
-
raise typer.Exit(1)
|
53
|
-
|
54
|
-
console.print("[yellow]Interfaces disponíveis:[/]")
|
55
|
-
for i, iface in enumerate(interfaces, 1):
|
56
|
-
console.print(f"{i}. {iface}")
|
57
|
-
|
58
|
-
try:
|
59
|
-
choice = int(typer.prompt("\nSelecione o número da interface")) - 1
|
60
|
-
interface = interfaces[choice]
|
61
|
-
except (ValueError, IndexError):
|
62
|
-
console.print("[red]Erro:[/] Seleção inválida")
|
63
|
-
raise typer.Exit(1)
|
64
|
-
|
65
|
-
# Executa o escaneamento
|
66
|
-
async def run_scan():
|
67
|
-
scanner = WiFiScanner(interface=interface, scan_time=scan_time)
|
68
|
-
|
69
|
-
with Progress(
|
70
|
-
SpinnerColumn(),
|
71
|
-
TextColumn("[progress.description]{task.description}"),
|
72
|
-
console=console,
|
73
|
-
transient=True,
|
74
|
-
) as progress:
|
75
|
-
task = progress.add_task("[cyan]Escaneando redes WiFi...", total=None)
|
76
|
-
networks = await scanner.scan_networks()
|
77
|
-
progress.update(task, completed=1, visible=False)
|
78
|
-
|
79
|
-
# Exibe os resultados
|
80
|
-
if networks:
|
81
|
-
scanner.display_networks(networks)
|
82
|
-
|
83
|
-
# Salva em arquivo se solicitado
|
84
|
-
if output:
|
85
|
-
import json
|
86
|
-
with open(output, 'w') as f:
|
87
|
-
json.dump([n.to_dict() for n in networks], f, indent=2)
|
88
|
-
console.print(f"\n[green]Resultados salvos em:[/] {output}")
|
89
|
-
else:
|
90
|
-
console.print("[yellow]Nenhuma rede encontrada.[/]")
|
91
|
-
|
92
|
-
try:
|
93
|
-
asyncio.run(run_scan())
|
94
|
-
except Exception as e:
|
95
|
-
console.print(f"[red]Erro durante o escaneamento:[/] {str(e)}")
|
96
|
-
raise typer.Exit(1)
|
97
|
-
|
98
|
-
# Adiciona o comando de ataque WPS
|
99
|
-
@app.command("wps")
|
100
|
-
def wps_attack(
|
101
|
-
interface: str = typer.Option(..., "--interface", "-i", help="Interface de rede para o ataque"),
|
102
|
-
bssid: str = typer.Option(..., "--bssid", "-b", help="BSSID do alvo"),
|
103
|
-
channel: int = typer.Option(..., "--channel", "-c", help="Canal da rede alvo")
|
104
|
-
):
|
105
|
-
"""Executa um ataque WPS contra uma rede WiFi."""
|
106
|
-
console.print(f"[yellow]Iniciando ataque WPS contra {bssid} no canal {channel}...[/]")
|
107
|
-
# Implementação do ataque WPS será adicionada aqui
|
108
|
-
console.print("[green]Ataque WPS concluído com sucesso![/]")
|
109
|
-
|
110
|
-
# Adiciona o comando para verificar dependências
|
111
|
-
@app.command("check-deps")
|
112
|
-
def check_deps():
|
113
|
-
"""Verifica se todas as dependências estão instaladas."""
|
114
|
-
missing = check_dependencies()
|
115
|
-
if missing:
|
116
|
-
console.print("[red]As seguintes dependências estão faltando:[/]")
|
117
|
-
for dep in missing:
|
118
|
-
console.print(f"- {dep}")
|
119
|
-
raise typer.Exit(1)
|
120
|
-
else:
|
121
|
-
console.print("[green]Todas as dependências estão instaladas![/]")
|
122
|
-
|
123
|
-
if __name__ == "__main__":
|
124
|
-
app()
|