Skip to main content

TCP port scanner with CLI and reusable Python API

Project description

🔍 SurfaceScan

Um scanner de portas TCP desenvolvido em Python, com foco em performance, organização de código e boas práticas profissionais.
Projeto pensado para demonstrar habilidades em redes, segurança, threading, design modular e uso real de CLI.


🚀 Visão Geral

Esta ferramenta permite escanear portas TCP de um host, identificando portas abertas de forma rápida e eficiente, com suporte a:

  • 🔹 Threading (scan paralelo)
  • 🔹 Timeout configurável
  • 🔹 Modo verbose
  • 🔹 Exportação de resultados (JSON / CSV)
  • 🔹 Estrutura modular (CLI + Library)

📦 Preparando para importar no SurfaceLog (mini-SIEM)

Para usar o SurfaceScan como dependência do seu surfacelog, agora existe uma API pública estável.

1) Instale como pacote local

No repositório do surfacelog:

pip install /caminho/para/SurfaceScan

Ou em modo desenvolvimento:

pip install -e /caminho/para/SurfaceScan

### 2) Use a API Python diretamente

```python
from scanner import ScanConfig, parse_ports, run_scan, export_results

config = ScanConfig(
    host="scanme.nmap.org",
    ports=parse_ports("22,80,443,8080-8090"),
    timeout=1.0,
    threads=80,
)

results = run_scan(config)
paths = export_results(results, output_dir="./data/imports", base_name="scan-siem")

print(results)
print(paths)  # {'csv': '.../scan-siem.csv', 'json': '.../scan-siem.json'}

3) Integração sugerida no fluxo do SIEM

  • Rodar run_scan() via job agendado.
  • Persistir JSON bruto em storage de ingestão.
  • Parsear eventos por porta/serviço no pipeline do SurfaceLog.
  • Correlacionar com logs de firewall/IDS para alertas.

🖥️ Uso da Ferramenta (CLI)

Execução básica

python -m scanner.cli 127.0.0.1 -p 1-1000

Com timeout customizado

python -m scanner.cli 127.0.0.1 -p 1-1000 --timeout 1

Modo verbose

python -m scanner.cli 127.0.0.1 -p 1-1000 -v

Exportação de resultados

# JSON
python -m scanner.cli scanme.nmap.org -p 1-1000 --json

# CSV
python -m scanner.cli scanme.nmap.org -p 1-1000 --csv

📁 Os arquivos são salvos automaticamente na pasta scans/.


⚙️ Tecnologias e Conceitos Utilizados

  • Python 3
  • argparse (CLI profissional)
  • socket (networking)
  • concurrent.futures.ThreadPoolExecutor
  • Threading e paralelismo
  • Design modular

🔐 Contexto de Segurança

Este projeto foi desenvolvido com foco educacional e defensivo para diagnóstico de rede e auditorias autorizadas.

  • Diagnóstico de rede
  • Auditorias básicas
  • Estudos de segurança
  • Troubleshooting

Não deve ser utilizado para atividades não autorizadas.


👤 Autor

Desenvolvido por Erick.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

surfacescan-0.1.0.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

surfacescan-0.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file surfacescan-0.1.0.tar.gz.

File metadata

  • Download URL: surfacescan-0.1.0.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for surfacescan-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8207daa93c22c19e7dc79e40ffe1a114449a869b82adab6f956e9c7d5c694e17
MD5 f8b63f88e7d24e0906f91bc65732bb66
BLAKE2b-256 607c47e2e98d59eaabc47740c49dbcb307d9729ead883bcc775af43df56351ec

See more details on using hashes here.

File details

Details for the file surfacescan-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: surfacescan-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for surfacescan-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 664ab24a5936c89db668234dbe5b63182b7d61bbdfd377509aeff28334847a5e
MD5 08ad5303befa49324c827a3ae90dcf1d
BLAKE2b-256 91035668738e81a359f3de68c86c67775c687fc3a238ee37bf26c16a45f3cbc7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page