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.
iPyScan/
│
├── utils/
│ ├── __init__.py # Torna utils um pacote Python
│ ├── banner.py # Contém a função banner()
│
├── scanner/
│ ├── __init__.py # Torna scanner um pacote Python
│ ├── input_validation.py # Contém validação de argumentos
│ ├── network_utils.py # Contém as funções de rede como `connect` e `resolve_target`
│ ├── port_scanner.py # Contém a função de escaneamento `scan_ports`
│
├── main.py # Arquivo principal que faz a execução do código
└── README.md # Descrição do projeto (opcional)
Estas são as instruções para obter uma cópia do iPyScan em sua máquina para fins de desenvolvimento ou uso:
- Faça o download ou clone o repositório em sua máquina e descompacte-o no local de sua preferência.
- Não é necessário instalar o iPyScan.
- Se for utilizá-lo como executável, lembre-se de conceder permissão de execução (caso esteja usando uma distribuição GNU/Linux).
- O sistema foi ajustado para garantir funcionalidade multiplataforma.
- Para executar o projeto, atente-se às seguintes dependências:
- Ter o interpretador Python, versão 3.xx, e o pip3 instalados em sua máquina.
- Instalar as dependências listadas no arquivo requirements.txt.
- Se estiver utilizando uma distribuição Linux, recomenda-se realizar o update e o upgrade do sistema antes de rodar o projeto.
# Para dar permissão de execução.
sudo chmod +x ipyscan.py
# Clone o projeto
git clone https://github.com/werdelesmarcio/iPyScan.git
# Entre no diretório do projeto
cd iPyScan
# Instale as dependências
pip3 install requirements.txt
# Inicie a aplicação. Para executar a aplicação deve passar o argumento com o host do alvo, a porta inicial e a porta final.
# Linux
python3 ipyscan.py [target] [init_port] [final_port]
# Windows
python3.exe ipyscan.py [target] [init_port] [final_port]
-
Modularização por responsabilidade: Cada módulo contém funções que desempenham tarefas específicas:
- banner.py: Apenas exibe o banner.
- input_validation.py: Valida os argumentos de entrada.
- network_utils.py: Funções relacionadas a redes (conexão e resolução de nomes).
- port_scanner.py: Função que executa o loop de escaneamento.
-
Facilidade de manutenção: Agora o código está dividido em partes menores e mais fáceis de gerenciar. Se houver alguma mudança na lógica de rede, por exemplo, ela ficará confinada ao arquivo network_utils.py.
-
Reuso de código: Caso queira usar o código de conexão em outro projeto, basta importar o módulo adequado (network_utils) sem precisar alterar o código principal.
-
Legibilidade: Com funções bem definidas e módulos organizados, o código se torna mais legível e fácil de entender para outras pessoas que venham trabalhar nele.
Agora, cada arquivo é responsável por uma parte do código, o que melhora bastante a organização do projeto!
Este projeto está sob Licença GPL-3.0. Para mais informações, consulte a documentação de licença no link abaixo.
Um praise para os cúbicos que contribuíram neste projeto 👏
Werdeles Soares 💻 Desenvolvedor |
Fabi Gonçalves 👨💻 Colaboradora |
Matheus Oliveira 👨💻 Colaborador |
Ronayrton 👨💻 Colaborador |
Caso tenha alguma dúvida confira este guia de como contribuir no GitHub
Se quiser entrar em contato, crie um issue no GitHub ou envie um e-mail para [email protected]. Obrigado!