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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8207daa93c22c19e7dc79e40ffe1a114449a869b82adab6f956e9c7d5c694e17
|
|
| MD5 |
f8b63f88e7d24e0906f91bc65732bb66
|
|
| BLAKE2b-256 |
607c47e2e98d59eaabc47740c49dbcb307d9729ead883bcc775af43df56351ec
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
664ab24a5936c89db668234dbe5b63182b7d61bbdfd377509aeff28334847a5e
|
|
| MD5 |
08ad5303befa49324c827a3ae90dcf1d
|
|
| BLAKE2b-256 |
91035668738e81a359f3de68c86c67775c687fc3a238ee37bf26c16a45f3cbc7
|