Monitorizarea Rețelei cu Scapy în Python

Configurare noua (How To)

Situatie

În acest tutorial vom crea un script Python care va monitoriza traficul de rețea și va afișa informații despre pachetele capturate folosind biblioteca scapy.

Pasul 1: Instalarea Bibliotecii Scapy

Pentru a utiliza “scapy”, trebuie să îl instalăm mai întâi. Puteți face acest lucru folosind pip:

pip install scapy

Pasul 2: Importarea Bibliotecii Scapy

Importați biblioteca “scapy” și alte module necesare în scriptul dvs. Python.

from scapy.all import sniff, ARP, IP, TCP, UDP

Pasul 3: Definirea Funcției de Monitorizare

Creați o funcție care va fi apelată pentru fiecare pachet capturat. Această funcție va procesa pachetele și va afișa informații relevante despre acestea.

def packet_callback(packet):
if ARP in packet:
print(f”ARP Packet: {packet[ARP].summary()}”)
elif IP in packet:
ip_src = packet[IP].src
ip_dst = packet[IP].dst
if TCP in packet:
print(f”TCP Packet: {ip_src} -> {ip_dst} (Port: {packet[TCP].sport} -> {packet[TCP].dport})”)
elif UDP in packet:
print(f”UDP Packet: {ip_src} -> {ip_dst} (Port: {packet[UDP].sport} -> {packet[UDP].dport})”)
else:
print(f”IP Packet: {ip_src} -> {ip_dst}”)

Pasul 4: Capturarea Pachetelor

Folosiți funcția “sniff” din scapy pentru a captura pachetele de rețea. Puteți specifica interfața de rețea pe care să se facă capturarea și numărul de pachete pe care doriți să le capturați.

def start_sniffing(interface):
print(f”Sniffing on {interface}…”)
sniff(iface=interface, prn=packet_callback, store=0)

Pasul 5: Rularea Scriptului

Creați un bloc principal care va rula funcția de monitorizare a rețelei. Specificați interfața de rețea pe care doriți să faceți capturarea. Puteți afla interfața dvs. de rețea folosind comanda “ifconfig” pe Linux sau “ipconfig” pe Windows.

if __name__ == “__main__”:
import sys
if len(sys.argv) != 2:
print(“Usage: python network_monitor.py <interface>”)
sys.exit(1)

interface = sys.argv[1]
start_sniffing(interface)

Pasul 6: Testarea Scriptului

Rulați scriptul și specificați interfața de rețea pe care doriți să o monitorizați. De exemplu, pe Linux ar putea fi “eth0” sau “wlan0”, iar pe Windows ar putea fi ceva de genul “Ethernet” sau “Wi-Fi”.

python network_monitor.py eth0

Acest script va începe să captureze și să afișeze informații despre pachetele de rețea care trec prin interfața specificată. Puteți extinde funcționalitatea pentru a include alte tipuri de pachete sau pentru a salva rezultatele într-un fișier de jurnal.

Solutie

Tip solutie

Permanent

Voteaza

(3 din 9 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?