Режим монитора на Mac — со Scapy

Я пытаюсь понять, что происходит, когда я ставлю Mac в режим монитора. Без режима монитора, используя ifconfig, я обнаружил, что «en0» является активным интерфейсом. Однако в режиме монитора я получаю следующее:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=3<RXCSUM,TXCSUM>
    inet6 ::1 prefixlen 128 
    inet 127.0.0.1 netmask 0xff000000 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    nd6 options=1<PERFORMNUD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 70:56:81:b9:43:e5 
    nd6 options=1<PERFORMNUD>
    media: autoselect (<unknown type>)
    status: inactive
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
    options=60<TSO4,TSO6>
    ether 32:00:1a:7f:0a:40 
    media: autoselect <full-duplex>
    status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
    ether 02:56:81:b9:43:e5 
    media: autoselect
    status: inactive
awdl0: flags=8902<BROADCAST,PROMISC,SIMPLEX,MULTICAST> mtu 1484
    ether ee:85:08:e0:ba:17 
    nd6 options=1<PERFORMNUD>
    media: autoselect
    status: inactive
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=63<RXCSUM,TXCSUM,TSO4,TSO6>
    ether 72:56:81:9b:d1:00 
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x2
    member: en1 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 5 priority 0 path cost 0
    nd6 options=1<PERFORMNUD>
    media: <unknown type>
    status: inactive

Я пытаюсь использовать scapy для прослушивания беспроводной сети. Итак, когда я запускаю scapy, он показывает iface как «lo0» и не захватывает никаких пакетов. Я просмотрел много ответов по этому поводу, но большинство из них относятся к Ubuntu и говорят, что когда вы переводите свою систему в режим монитора, вы получаете интерфейс «mon0», а затем передаете его своему scapy и обнюхиваете. Но в Mac я не получаю ничего похожего на «mon0», фактически все интерфейсы становятся неактивными в режиме монитора. Может ли кто-нибудь помочь мне понять, что происходит?

PS: WireShark и Tcpdump прекрасно работают в режиме монитора, и scapy тоже захватывает кадры, когда не в режиме монитора. Но меня интересуют кадры управления, поэтому мне нужен scapy, чтобы захватить их в режиме монитора. ТИА :)


person KDK    schedule 24.07.2016    source источник


Ответы (3)


Это старый вопрос, вот ответ:

  • со старыми версиями scapy это было просто невозможно
  • с более новыми версиями scapy (2.4.0+) просто понюхайте, используя аргумент монитора

sniff([args], monitor=True)

Он показывает все пакеты!

person Cukic0d    schedule 11.05.2018
comment
Я подтверждаю, что он работает на OSX Mojave, но не работает на Ubuntu 18.04. - person sgiraz; 23.11.2018
comment
Вы должны попробовать использовать последнюю версию github dev. Это не реализовано для Linux на 2.4.0 - person Cukic0d; 23.11.2018

Я думаю, вы ищете что-то вроде этого: Как перевести интерфейс mac os x en1 в режим монитора для использования с python3 scapy?

Возможно, не должно быть проблем с переключением между python3 и python27.

person StephenG    schedule 24.07.2016
comment
Спасибо, StephenG, за ответ. Я прочитал этот вопрос, но я пытаюсь понять нечто иное. Я могу перевести свой Mac в режим монитора с помощью команды аэропорта, но когда он находится в режиме монитора, я не могу найти интерфейс, который находится в режиме монитора, например, в Ubuntu есть «mon0». Интерфейс en0, который я перевел в режим монитора, тоже становится неактивным, и я не вижу никакого интерфейса режима монитора. Это то, что меня немного смущает. - person KDK; 25.07.2016

Я знаю, что это старый вопрос, но у меня была такая же проблема. Я не уверен, почему en0 деактивируется после запуска airportd en0 sniff 1 или airport sniff.

Чтобы устройство оставалось активным во время мониторинга, вы можете вместо этого использовать tcpdump.

Пример:

$ sudo tcpdump -nnvs0 -I -i en0 -w output.pcap

$ ifconfig
...
en0: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 60:03:08:a5:fa:0c
    inet 192.168.1.33 netmask 0xffffff00 broadcast 192.168.1.255
    media: autoselect
    status: active

Надеюсь это поможет :)

person Menzo Wijmenga    schedule 25.07.2017