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.
Files changed (27) hide show
  1. moriarty/__init__.py +1 -1
  2. moriarty/cli/app.py +4 -3
  3. moriarty/cli/domain_cmd.py +5 -1
  4. moriarty/modules/directory_fuzzer.py +25 -5
  5. moriarty/modules/web_crawler.py +448 -91
  6. {moriarty_project-0.1.22.dist-info → moriarty_project-0.1.24.dist-info}/METADATA +3 -3
  7. {moriarty_project-0.1.22.dist-info → moriarty_project-0.1.24.dist-info}/RECORD +9 -27
  8. moriarty/modules/wifippler/__init__.py +0 -92
  9. moriarty/modules/wifippler/cli/__init__.py +0 -8
  10. moriarty/modules/wifippler/cli/commands.py +0 -123
  11. moriarty/modules/wifippler/core/__init__.py +0 -94
  12. moriarty/modules/wifippler/core/attacks/__init__.py +0 -146
  13. moriarty/modules/wifippler/core/attacks/deauth.py +0 -262
  14. moriarty/modules/wifippler/core/attacks/handshake.py +0 -402
  15. moriarty/modules/wifippler/core/attacks/pmkid.py +0 -424
  16. moriarty/modules/wifippler/core/attacks/wep.py +0 -467
  17. moriarty/modules/wifippler/core/attacks/wpa.py +0 -446
  18. moriarty/modules/wifippler/core/attacks/wps.py +0 -474
  19. moriarty/modules/wifippler/core/models/__init__.py +0 -10
  20. moriarty/modules/wifippler/core/models/network.py +0 -240
  21. moriarty/modules/wifippler/core/scanner.py +0 -903
  22. moriarty/modules/wifippler/core/utils/__init__.py +0 -624
  23. moriarty/modules/wifippler/core/utils/exec.py +0 -182
  24. moriarty/modules/wifippler/core/utils/network.py +0 -262
  25. moriarty/modules/wifippler/core/utils/system.py +0 -153
  26. {moriarty_project-0.1.22.dist-info → moriarty_project-0.1.24.dist-info}/WHEEL +0 -0
  27. {moriarty_project-0.1.22.dist-info → moriarty_project-0.1.24.dist-info}/entry_points.txt +0 -0
moriarty/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  __all__ = ["__version__"]
4
- __version__ = "0.1.22"
4
+ __version__ = "0.1.24"
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, wifippler
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
- app.add_typer(wifippler.app, name="wifippler", help="Análise de redes WiFi.")
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
- main_entry()
133
+ app()
133
134
 
134
135
 
135
136
  def check_pipx_installed() -> bool:
@@ -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() as 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
- progress.update(task_id, advance=1)
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
- # Log descoberta
243
+ # Adiciona resultado à lista para exibição posterior
235
244
  color = self._get_status_color(response.status_code)
236
- console.print(
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,