scapy: Der Vorgang ist beim Senden von Paketen nicht erlaubt

8

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?

    
lang2 15.03.2014, 08:07
quelle

2 Antworten

7

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.

    
RyPeck 15.03.2014, 15:58
quelle
6

Um Scapy mit cap_net_raw privilege auszuführen ...

Die sicherste und weniger komplizierte Art, die ich kenne, ist in der Reihenfolge:

  1. Erstellen Sie eine persönliche Kopie der Python-Binärdatei:

    $ sudo cp /usr/bin/python2.7 ~ / python_netraw

  2. Besitze es:

    $ sudo chown your user name ~ / python_netraw

  3. Lass es niemanden anders laufen lassen:

    $ chmod -x, u + x ~ / python_netraw

  4. Gib es cap_net_raw:

    $ sudo setcap cap_net_raw = eip / usr / bin / python_netraw

  5. 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.)

    
gatopeich 25.06.2014 15:38
quelle

Tags und Links