python - examples - scapy
Network sniffing con python (2)
Voy a construir un software de olfateo para la universidad. Tengo algunas ideas, pero quiero escuchar un poco más. La idea es usar un toque pasivo en el frente del firewall y obtener todos los datos ...
Sé que C es más rápido, pero quiero hacer con Python todas las buenas ideas como bibliotecas, etc.
Refs:
Usa pylibcap
. Proporciona una interfaz para libpcap que es el estándar de facto para la detección de paquetes en Linux. Para analizar paquetes, es posible que desee utilizar la biblioteca de construct
, ya que contiene un analizador para paquetes TCP.
Aquí hay un pequeño ejemplo de programa:
import pcap
from construct.protocols.ipstack import ip_stack
def print_packet(pktlen, data, timestamp):
if not data:
return
stack = ip_stack.parse(data)
payload = stack.next.next.next
print payload
p = pcap.pcapObject()
p.open_live(''eth0'', 1600, 0, 100)
p.setfilter(''dst port 80'', 0, 0)
print ''Press CTRL+C to end capture''
try:
while True:
p.dispatch(1, print_packet)
except KeyboardInterrupt:
print # Empty line where ^C from CTRL+C is displayed
print ''%d packets received, %d packets dropped, %d packets dropped by interface'' % p.stats()
¿Por qué no usar Scapy? Son los métodos más simples que conozco, mira el siguiente enlace: