Ich versuche ein bisschen Paketgenerierung mit Scapy zu lernen. Es sieht ziemlich cool aus. Folgender Dokumentation folge ich:
%Vor%Aber nur um die Fehlermeldung zu bekommen von:
%Vor%Das Ausführen von scapy als root löste das Problem. Aber das wollte ich nicht. Liegt es daran, dass der normale Benutzer keinen RAW-Socket erstellen kann? Wenn ja, gibt es eine Lösung?
Scapy benötigt Root-Rechte, um rohe Sockets zu erstellen, da es die Python-Socket-Bibliothek verwendet. Raw-Sockets dürfen laut den Linux-Raw-Man-Pages nur "mit einer effektiven Benutzer-ID von 0 oder der CAP_NET_RAW-Fähigkeit" verwendet werden.
Ich kann nicht finden, was als zuverlässige Dokumentation zum Festlegen der CAP_NET_RAW
-Fähigkeit aussieht, aber wenn Sie nach einer laufenden Scapy-Scripts suchen, die rohe Sockets ohne root verwenden, müssen Sie das tun.
Um Scapy mit cap_net_raw
privilege auszuführen ...
Die sicherste und weniger komplizierte Art, die ich kenne, ist in der Reihenfolge:
Erstellen Sie eine persönliche Kopie der Python-Binärdatei:
$ sudo cp /usr/bin/python2.7 ~ / python_netraw
Besitze es:
$ sudo chown your user name
~ / python_netraw
Lass es niemanden anders laufen lassen:
$ chmod -x, u + x ~ / python_netraw
Gib es cap_net_raw:
$ sudo setcap cap_net_raw = eip / usr / bin / python_netraw
Scapy damit ausführen:
$ ~ / python_netraw-O / usr / bin / scapy
(Oder verwenden Sie sudo
jedes Mal, wenn Sie Scapy mit rohen Rechten ausführen müssen.)
Tags und Links scapy