Run full OSINT reconnaissance.
(
target: str = typer.Argument(..., help="Target domain"),
verbose: bool = typer.Option(False, "--verbose", "-v"),
)
| 354 | |
| 355 | @osint_app.command("full") |
| 356 | def osint_full( |
| 357 | target: str = typer.Argument(..., help="Target domain"), |
| 358 | verbose: bool = typer.Option(False, "--verbose", "-v"), |
| 359 | ): |
| 360 | """Run full OSINT reconnaissance.""" |
| 361 | setup_logging(debug=verbose) |
| 362 | from modules.osint import ( |
| 363 | DNSEnumerator, |
| 364 | EmailHarvester, |
| 365 | HeaderAnalyzer, |
| 366 | SubdomainScanner, |
| 367 | TechDetector, |
| 368 | WhoisLookup, |
| 369 | ) |
| 370 | |
| 371 | console.print(f"[bold]Full OSINT Recon:[/bold] {target}") |
| 372 | console.print() |
| 373 | |
| 374 | t = Target.from_string(target) |
| 375 | |
| 376 | scanners = [ |
| 377 | ("DNS Enumeration", DNSEnumerator()), |
| 378 | ("WHOIS Lookup", WhoisLookup()), |
| 379 | ("Subdomain Discovery", SubdomainScanner()), |
| 380 | ("Header Analysis", HeaderAnalyzer()), |
| 381 | ("Technology Detection", TechDetector()), |
| 382 | ("Email Harvesting", EmailHarvester()), |
| 383 | ] |
| 384 | |
| 385 | for name, scanner in scanners: |
| 386 | console.print(f"[cyan]Running {name}...[/cyan]") |
| 387 | result = run_async(scanner.run(t)) |
| 388 | display_result(result) |
nothing calls this directly
no test coverage detected