Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Segurança

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


Objetivos

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.

Estrutura do projeto

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

Conteúdo por módulo

recurso0 — Diagnóstico de rede

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 de hosts.txt e testa a conectividade sequencialmente.

Observação: os comandos utilizam ping -n, sintaxe típica do Windows. Para Linux, normalmente deve-se utilizar ping -c.


recurso1 — Sockets e comunicação de rede

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 porta 12345;
  • 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.


recursos2 — Python aplicado à Segurança

Reúne exercícios relacionados a processamento de dados e fundamentos de segurança:

Hashes

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.

Wordlists

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.

Web Scraping

WebScraping.py utiliza:

  • requests;
  • BeautifulSoup.

O exemplo realiza uma requisição HTTP e interpreta o HTML recebido.

Web Crawling

webCrawler.py demonstra uma abordagem simples de:

  1. solicitar uma página;
  2. extrair texto;
  3. limpar caracteres;
  4. contabilizar palavras;
  5. 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.

Endereçamento IP

0/ips.py utiliza o módulo ipaddress para:

  • criar redes IPv4;
  • enumerar endereços;
  • manipular objetos de endereço IP.

Threads

0/threads.py apresenta um exemplo básico de execução concorrente utilizando threading.Thread.

Comparação por hash

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.


recursos3 — Automação e coleta de informações

Consulta de IP externo

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.

Consulta de número telefônico

verificadorphone.py utiliza a biblioteca phonenumbers para analisar um número em formato internacional e obter uma descrição geográfica.

Interface gráfica

ferramentaGraficaParaAbrirNavegador.py demonstra uma interface simples com:

  • tkinter;
  • webbrowser.

O programa cria uma janela com um botão que abre o navegador.

Ocultação de pasta no Windows

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.


Requisitos

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.

Bibliotecas externas

Instale as dependências com:

pip install requests beautifulsoup4 phonenumbers

Os demais exemplos utilizam principalmente módulos da biblioteca padrão do Python, como:

  • os;
  • time;
  • socket;
  • hashlib;
  • itertools;
  • ipaddress;
  • threading;
  • ctypes;
  • tkinter;
  • webbrowser.

Execução

A partir da raiz do projeto:

python recurso0/ping.ex.py

Exemplo de sockets:

python recurso1/import_socket.py

Em outro terminal:

python recurso1/clienteTCP.py

Para 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.py

Boas práticas e segurança

Este 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.


Pontos de atenção do código atual

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.py depende de um arquivo hosts.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.py depende de um serviço externo;
  • ocultadorarquivo.py é específico para Windows;
  • WebScraping.py depende 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.


Possíveis evoluções

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;
  • argparse para 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 .yaml ou .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.

Contexto acadêmico

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.


Licença

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages