image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image

BM

Bruno Menezes29/07/2024 13:57
Compartilhe
WEX - End to End EngineeringRecomendados para vocêWEX - End to End Engineering

Pentest Python - Automatizando Testes de Invasão

  • #Python

### Introdução

Pentest, ou teste de penetração, é uma prática essencial na segurança da informação. Ele envolve a simulação de ataques em sistemas para identificar vulnerabilidades e corrigi-las antes que sejam exploradas por invasores. Python, com sua simplicidade e poder, é uma linguagem ideal para automatizar muitos aspectos do Pentest. Neste eBook, exploraremos como você pode utilizar Python para automatizar testes de invasão, apresentando ferramentas e técnicas práticas com exemplos de código em contextos reais.

### Por que Python para Pentest?

Python é uma escolha popular entre os pentesters devido à sua simplicidade, legibilidade e vasto ecossistema de bibliotecas. Com Python, você pode criar scripts personalizados rapidamente, automatizar tarefas repetitivas e integrar facilmente outras ferramentas de segurança.

### Instalando Bibliotecas Essenciais

Antes de começar, certifique-se de ter Python instalado em sua máquina. Além disso, algumas bibliotecas serão necessárias para nossos exemplos:

pip install requests scapy nmap

### Explorando Redes com Scapy

#### Escaneamento de Rede

Scapy é uma poderosa biblioteca de manipulação de pacotes. Vamos começar com um exemplo simples de escaneamento de rede:

from scapy.all import ARP, Ether, srp

def scan_network(ip_range):
arp = ARP(pdst=ip_range)
ether = Ether(dst="ff:ff:ff:ff:ff:ff")
packet = ether/arp

result = srp(packet, timeout=2, verbose=False)[0]

devices = []
for sent, received in result:
  devices.append({'ip': received.psrc, 'mac': received.hwsrc})
 
return devices

devices = scan_network("192.168.1.0/24")
for device in devices:
print(f"IP: {device['ip']} MAC: {device['mac']}")

Este script escaneia a rede local e lista os dispositivos conectados, mostrando seus endereços IP e MAC.

### Automatizando Escaneamento de Portas com Nmap

#### Usando a Biblioteca python-nmap

Nmap é uma ferramenta popular para escaneamento de portas. Podemos automatizá-lo com Python usando a biblioteca python-nmap:

import nmap

def scan_ports(ip):
nm = nmap.PortScanner()
nm.scan(ip, '1-1024')
 
for host in nm.all_hosts():
  print(f"Host: {host} ({nm[host].hostname()})")
  print("State: ", nm[host].state())
   
  for proto in nm[host].all_protocols():
    print("Protocol: ", proto)
    lport = nm[host][proto].keys()
    for port in lport:
      print(f"Port: {port}\tState: {nm[host][proto][port]['state']}")

scan_ports("192.168.1.1")

Este script realiza um escaneamento de portas nos primeiros 1024 ports do IP especificado, listando o estado de cada porta.

### Exploração de Vulnerabilidades Web com Requests

#### Detectando SQL Injection

SQL Injection é uma das vulnerabilidades mais comuns em aplicações web. Vamos criar um script para detectar essa vulnerabilidade:

import requests

def detect_sql_injection(url):
payloads = ["'", "' OR '1'='1", "' OR '1'='1' --"]
for payload in payloads:
  r = requests.get(url + payload)
  if "error" not in r.text.lower():
    print(f"Possível vulnerabilidade de SQL Injection com payload: {payload}")

detect_sql_injection("http://example.com/login?username=")

Este script envia payloads maliciosos para a URL especificada e verifica se a resposta indica uma possível vulnerabilidade de SQL Injection.

### Conclusão

Automatizar testes de invasão com Python pode aumentar significativamente a eficiência e eficácia de seus esforços de segurança. As bibliotecas e técnicas apresentadas neste eBook são apenas o começo. Com Python, você pode criar ferramentas poderosas e personalizadas para qualquer necessidade de Pentest.

Lembre-se sempre de usar esses conhecimentos de maneira ética e responsável, apenas em ambientes onde você tem permissão para realizar testes de segurança.

Compartilhe
Recomendados para você
Suzano - Python Developer
BairesDev - Machine Learning Practitioner
Santander - Cibersegurança #2
Comentários (0)
Recomendados para vocêWEX - End to End Engineering