Coleção de exercícios e pequenos experimentos desenvolvidos em Python com foco em redes de computadores, segurança da informação, análise de dados e automação.
O projeto reúne códigos de estudo produzidos durante a formação em Python aplicado à Segurança, servindo como laboratório prático para conceitos que podem ser utilizados posteriormente em atividades de Blue Team, análise de redes, DFIR e segurança ofensiva em ambientes autorizados.
Status: projeto educacional / laboratório de estudos
Linguagem principal: Python 3
Plataforma: os exemplos variam entre multiplataforma e Windows
Este repositório tem como finalidade consolidar conhecimentos práticos em:
- comunicação e diagnóstico de redes;
- sockets TCP e UDP;
- endereçamento IPv4 e manipulação de redes;
- concorrência com
threading; - geração e comparação de hashes;
- criação de wordlists para estudos controlados;
- Web Scraping e Web Crawling;
- consulta de informações públicas de IP;
- análise básica de números telefônicos;
- automação de tarefas no Windows;
- utilização de interfaces gráficas simples com Tkinter.
PythonSeguranca/
├── README.md
│
├── recurso0/
│ ├── ping.ex.py
│ └── pingmultiplo.py
│
├── recurso1/
│ ├── clienteTCP.py
│ ├── Desenvolvimento_cliente_UDP.py
│ ├── import_socket.py
│ ├── servidor_UDP.py
│ └── socket.txt
│
├── recursos2/
│ ├── geradorHashes.py
│ ├── geradorWordList.py
│ ├── webCrawler.py
│ ├── WebScraping.py
│ └── 0/
│ ├── a.txt
│ ├── b.txt
│ ├── ch.py
│ ├── ips.py
│ └── threads.py
│
└── recursos3/
├── ferramentaGraficaParaAbrirNavegador.py
├── verificadorphone.py
├── verificador_IP_externo.py
└── ocultador/
├── ocultadorarquivo.py
└── ocultar.txt
Exemplos introdutórios utilizando o comando ping:
ping.ex.py— realiza um ping simples para um host ou endereço IP;pingmultiplo.py— lê uma lista de hosts a partir dehosts.txte testa a conectividade sequencialmente.
Observação: os comandos utilizam ping -n, sintaxe típica do Windows. Para Linux, normalmente deve-se utilizar ping -c.
Exemplos de comunicação utilizando o módulo nativo socket:
clienteTCP.py— cliente TCP que solicita host/IP e porta;import_socket.py— servidor TCP local na porta12345;Desenvolvimento_cliente_UDP.py— cliente UDP;servidor_UDP.py— servidor UDP;socket.txt— material de apoio sobre TCP, UDP e sockets.
Esses exemplos são úteis para compreender conceitos como:
- endereço IP;
- portas;
bind();listen();accept();connect();send()/sendto();recvfrom();- TCP x UDP.
Atenção: os exemplos UDP atualmente utilizam portas diferentes no cliente e no servidor (5432 e 432). Para executar a comunicação corretamente, os dois lados devem utilizar a mesma porta.
Reúne exercícios relacionados a processamento de dados e fundamentos de segurança:
geradorHashes.py permite gerar:
- MD5;
- SHA-1;
- SHA-256;
- SHA-512.
MD5 e SHA-1 são mantidos no projeto principalmente para estudo e compatibilidade histórica. Para aplicações modernas de integridade e segurança, prefira algoritmos atuais, como SHA-256 ou SHA-512, conforme o caso.
geradorWordList.py demonstra o uso de itertools.permutations() para gerar permutações de uma entrada.
O exercício é útil para estudar:
- iteração;
- permutações;
- geração de combinações;
- impacto do crescimento combinatório.
O uso em testes de autenticação deve ocorrer somente em sistemas próprios ou com autorização explícita.
WebScraping.py utiliza:
requests;BeautifulSoup.
O exemplo realiza uma requisição HTTP e interpreta o HTML recebido.
webCrawler.py demonstra uma abordagem simples de:
- solicitar uma página;
- extrair texto;
- limpar caracteres;
- contabilizar palavras;
- identificar palavras mais frequentes.
O exemplo utiliza uma URL fixa e deve ser adaptado para ambientes de laboratório ou páginas cujo acesso automatizado seja permitido.
0/ips.py utiliza o módulo ipaddress para:
- criar redes IPv4;
- enumerar endereços;
- manipular objetos de endereço IP.
0/threads.py apresenta um exemplo básico de execução concorrente utilizando threading.Thread.
0/ch.py calcula hashes RIPEMD-160 de dois arquivos e compara os resultados para demonstrar uma forma de verificar se conteúdos são diferentes.
verificador_IP_externo.py utiliza o serviço ipinfo.io para consultar informações associadas ao IP público observado pelo serviço.
A execução depende de acesso à Internet.
verificadorphone.py utiliza a biblioteca phonenumbers para analisar um número em formato internacional e obter uma descrição geográfica.
ferramentaGraficaParaAbrirNavegador.py demonstra uma interface simples com:
tkinter;webbrowser.
O programa cria uma janela com um botão que abre o navegador.
ocultador/ocultadorarquivo.py utiliza ctypes e a API do Windows para definir o atributo de ocultação de uma pasta.
Esse exercício é específico para Windows e demonstra interação entre Python e APIs nativas do sistema operacional.
Recomenda-se:
- Python 3.10 ou superior;
- acesso à Internet para os exemplos que utilizam serviços ou sites externos;
- Windows para os exemplos que dependem de comandos ou APIs específicos do Windows.
Instale as dependências com:
pip install requests beautifulsoup4 phonenumbersOs demais exemplos utilizam principalmente módulos da biblioteca padrão do Python, como:
os;time;socket;hashlib;itertools;ipaddress;threading;ctypes;tkinter;webbrowser.
A partir da raiz do projeto:
python recurso0/ping.ex.pyExemplo de sockets:
python recurso1/import_socket.pyEm outro terminal:
python recurso1/clienteTCP.pyPara os demais exercícios:
python recursos2/geradorHashes.py
python recursos2/geradorWordList.py
python recursos2/WebScraping.py
python recursos2/0/ips.py
python recursos2/0/threads.py
python recursos3/verificadorphone.py
python recursos3/ferramentaGraficaParaAbrirNavegador.pyEste repositório possui finalidade educacional. Os códigos relacionados a redes, coleta de informações, wordlists e automação devem ser utilizados somente:
- em máquinas próprias;
- em laboratórios;
- em ambientes de teste;
- ou mediante autorização explícita do responsável pelo sistema.
Antes de utilizar scripts de rede ou coleta de dados em terceiros, verifique autorização, escopo e regras aplicáveis.
O projeto representa uma coleção de exercícios de aprendizagem e alguns scripts podem exigir ajustes antes de serem utilizados em um ambiente moderno.
Entre os pontos identificados:
pingmultiplo.pydepende de um arquivohosts.txt, que não está presente na estrutura atual;- os exemplos de UDP usam portas diferentes entre cliente e servidor;
- alguns scripts possuem URLs fixas;
- algumas requisições HTTP não definem
timeout; - determinados exemplos não possuem tratamento completo de exceções;
verificador_IP_externo.pydepende de um serviço externo;ocultadorarquivo.pyé específico para Windows;WebScraping.pydepende da estrutura atual do site consultado, que pode mudar;- o projeto contém exemplos didáticos que podem ser refatorados para funções, argumentos de linha de comando e configuração externa.
Esses pontos fazem parte do processo natural de evolução do laboratório.
Como próximos passos, o projeto pode evoluir para uma estrutura mais próxima de um laboratório profissional, incluindo:
requirements.txt;- ambiente virtual com
venv; - organização por módulos e pacotes;
argparsepara parâmetros de linha de comando;- logging com
logging; - tratamento estruturado de exceções;
- testes automatizados com
pytest; - documentação técnica individual dos scripts;
- configuração por arquivos
.yamlou.json; - suporte multiplataforma;
- validação de entradas;
- integração com ferramentas de análise de segurança;
- exemplos voltados a monitoramento, DFIR e Blue Team;
- CI/CD e análise estática do código.
O projeto pode ser utilizado como registro prático de aprendizagem em Python aplicado à Segurança da Informação, demonstrando a evolução de conhecimentos de programação, redes, automação e fundamentos de segurança.
A intenção é transformar gradualmente os exercícios originais em ferramentas mais estruturadas, documentadas, testáveis e adequadas para compor um portfólio técnico.
Não há uma licença de software formal definida neste repositório no momento.
Até que uma licença seja adicionada, considere o conteúdo como material de estudo e respeite os direitos autorais de quaisquer serviços, sites, bibliotecas ou materiais externos utilizados nos exemplos.