24 de enero de 2012

Python Script: BssidFromPcap.py

BssidFromPcap.py

En esta entrada se presenta el código fuente del script BssidFromPcap.py desarrollado para obtener un listado de BSSIDs únicos contenidos en un archivo de captura PCAP que será pasado como argumento al script.

Sintaxis: ./BssidFromPcap.py archivo.pcap

Es necesario especificarle un archivo de captura PCAP como primer argumento del script donde leerá los paquetes secuencialmente para obtener la dirección MAC origen de los paquetes Beacon Frames que existan. El script no comprueba la existencia del fichero y tampoco existen un control de errores, try y execption, etc...

Código fuente:
#!/usr/bin/env python
#
# Name: BssidFromPcap.py
# Decription: List unique BSSIDs from pcap capture file.
# Date: 23 Jan 2012
# Author: Brixton Cat
# Version: 0.2
#

### Import modules

import sys
from scapy.all import *

### Declare variables and constants

# Open output file
outfile = open('./Out.txt', 'w')
# Obtain pcap capture file from first arguments
capfile = sys.argv[1]
# Open pcap capture file with scapy
capture = rdpcap(capfile)
# Filter for blank MAC address: 00:00:00:00:00:00
blank = '00:' * 5 + '00'
# Blank array for unique bssids
unique = []

### Script

# Read pcap capture file
for pcks in capture:

  # If pcks is Dot11 (802.11) package
  if pcks.haslayer(Dot11Beacon):
    # Obtain MAC address from package
    bssid = pcks.addr2
  
    # If bssid is blank go to next iteration
    if bssid == blank:
      continue
   
    # Check if exist bssid in unique array and append it
    else:
      if unique.count(bssid) == 0:
        unique.append(bssid)
        # Write bssid in outfile
        outfile.write(bssid + "\n")
 
  # Else go to next iteration
  else:
    continue

# Close output file
outfile.close()

#EOF
##FVE
En esta entrada puedes ver más información sobre el mismo así como unas imágenes con algunas pruebas realizadas.

Un saludo, Brixton Cat ; )

No hay comentarios:

Publicar un comentario

Bienvenid= si quieres dejar un comentario