Scanner de portas TCP com banner grabbing
Project description
iPyScan
iPyScan é um scanner de portas TCP moderno escrito em Python 3. Ele oferece suporte a varredura multithread, captura de banners de serviços, exportação em JSON/CSV e uma interface de linha de comando completa.
Trata-se de uma aplicação voltada principalmente para sistemas GNU/Linux (embora o interpretador Python 3 no Windows também execute a aplicação normalmente), com o objetivo de realizar a varredura de portas. A aplicação verifica quais portas estão abertas em um intervalo de portas fornecido por argumentos, retornando OPEN em caso positivo. Os argumentos fornecidos consistem no endereço do host ou IP do alvo a ser analisado, seguido do intervalo de portas inicial e final.
OBS.: Se o objetivo for escanear apenas uma porta, basta fornecer o mesmo valor para os dois últimos parâmetros.
Estrutura do projeto:
PyScan/
├── ipyscan/ # Pacote principal renomeado
│ ├── main.py # Permite rodar com python -m ipyscan
│ ├── scanner/
│ │ └── input_validation.py
│ │ └── network_utils.py
│ │ └── port_scanner.py
│ ├── utils/
│ │ └── banner.py
│ │ └── exporter.py
│ └── ipyscan.py # Renomeie como ipyscan/main.py
├── tests/
│ └── test_core.py
├── pyproject.toml # Configuração moderna
├── setup.cfg # Metadados do projeto
├── README.md
├── LICENSE # MIT ou GPL
🚀 Funcionalidades
- ✅ Escaneamento de portas TCP (com multithread)
- ✅ Captura de banner de serviços (HTTP, FTP, SSH, etc)
- ✅ Exportação em JSON ou CSV
- ✅ Interface via
argparse - ✅ Testes automatizados com
unittest - ✅ Pronto para instalação via
pip
📦 Instalação local
git clone https://github.com/werdelesmarcio/ipyscan.git
cd ipyscan
pip install .
⚖️ Uso básico
ipyscan --target 127.0.0.1 --ports 20-80 --threads 100 --output json
Argumentos
| Flag | Descrição | Exemplo |
|---|---|---|
--target |
IP ou hostname do alvo | 127.0.0.1 |
--ports |
Faixa de portas (ex: 20-80) |
20-100 |
--threads |
Número de threads (default: 100) | --threads 200 |
--output |
Formato de exportação | json ou csv |
📅 Exemplo de Saída JSON
[
{
"port": 22,
"banner": "SSH-2.0-OpenSSH_8.4"
},
{
"port": 80,
"banner": "HTTP/1.1 200 OK"
}
]
💡 Roadmap de melhorias
- Banner grabbing com heurísticas por porta
- Testes automatizados com
unittest - Exportação JSON/CSV
- Ajuda CLI detalhada com
--help - Banner seguro com
subprocess - Scan UDP
- Modo silencioso
--quiet - Interface web (Flask ou GUI)
🌐 Licença
Este projeto está sob Licença GPL-3.0. Para mais informações, consulte a documentação de licença no link abaixo.
🚀 Contribuição
Pull requests são bem-vindos! Para grandes mudanças, abra uma issue antes.
Desenvolvido por Werdeles Marcio - 2025
Screenshot
Colaboradores
Um praise para os cúbicos que contribuíram neste projeto 👏
Werdeles Soares 💻 Desenvolvedor |
Fabi Gonçalves 👨💻 Colaboradora |
Matheus Oliveira 👨💻 Colaborador |
Como contribuir para o projeto
Caso tenha alguma dúvida confira este guia de como contribuir no GitHub
Contatos
Se quiser entrar em contato, crie um issue no GitHub ou envie um e-mail para gh05tb0y@disroot.org. Obrigado!
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 ipyscan-1.0.30.tar.gz.
File metadata
- Download URL: ipyscan-1.0.30.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f259f8615f481c2d61a93eb4372aba1da80b2ab8645d394c67f542e16de2773
|
|
| MD5 |
b7cf06d8f64e784661000dd7bce6cf65
|
|
| BLAKE2b-256 |
bfef776fd338a61f20ee9f980e1a375e4c3f8fe1ef7b200bf06fe0f00fa9a78e
|
File details
Details for the file ipyscan-1.0.30-py3-none-any.whl.
File metadata
- Download URL: ipyscan-1.0.30-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df94f6d3a99fbbef864b69cdec068df8707edc7e26b31f93010a43f54cf33766
|
|
| MD5 |
4e7a0da95d04166af5ec1c5b7d92036f
|
|
| BLAKE2b-256 |
8ea4798a158cf062e8cdaca22aacdb9d400183b986567f38676d2d59f8d7e5a7
|