Вопрос или проблема
Когда я вводил команду ifconfig при запуске Kali Linux в VirtualBox, мне не присвоен MAC-адрес. Смотрите трассировку терминала ниже.
┌──(root㉿kali)-[/home/kali]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fd00::7648:cc8d:8ce9:810c prefixlen 64 scopeid 0x0<global>
inet6 fe80::e9e0:a628:3268:d555 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:ad:25:87 txqueuelen 1000 (Ethernet)
RX packets 5 bytes 2724 (2.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 25 bytes 3961 (3.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 8 bytes 480 (480.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 480 (480.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
unspec 06-F1-8D-DE-BA-70-00-94-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Затем я перезагружаю Kali Linux, введя команду reboot. И MAC-адрес присваивается, как показано в трассировке терминала ниже.
┌──(root㉿kali)-[/home/kali]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::e9e0:a628:3268:d555 prefixlen 64 scopeid 0x20<link>
inet6 fd00::7648:cc8d:8ce9:810c prefixlen 64 scopeid 0x0<global>
ether 08:00:27:ad:25:87 txqueuelen 1000 (Ethernet)
RX packets 6 bytes 3314 (3.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26 bytes 4610 (4.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 8 bytes 480 (480.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 480 (480.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether f2:d4:bd:ed:67:f3 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Теперь я включаю режим мониторинга на беспроводном адаптере, вводя следующие команды.
> ifconfig wlan0 down
> iwconfig wlan0 mode monitor
> ifconfig wlan0 up
Беспроводной адаптер переключается в режим мониторинга, как показано ниже.
┌──(root㉿kali)-[/home/kali]
└─# ifconfig wlan0 down
┌──(root㉿kali)-[/home/kali]
└─# iwconfig wlan0 mode monitor
┌──(root㉿kali)-[/home/kali]
└─# ifconfig wlan0 up
┌──(root㉿kali)-[/home/kali]
└─# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11 Mode:Monitor Frequency:2.412 GHz Tx-Power=20 dBm
Retry short limit:7 RTS thr=2347 B Fragment thr:off
Power Management:off
Теперь, если я введу команду ifconfig, MAC-адрес исчезает. Смотрите трассировку ниже.
┌──(root㉿kali)-[/home/kali]
└─# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::e9e0:a628:3268:d555 prefixlen 64 scopeid 0x20<link>
inet6 fd00::7648:cc8d:8ce9:810c prefixlen 64 scopeid 0x0<global>
ether 08:00:27:ad:25:87 txqueuelen 1000 (Ethernet)
RX packets 6 bytes 3314 (3.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28 bytes 4830 (4.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 8 bytes 480 (480.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 480 (480.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
unspec F2-D4-BD-ED-67-F3-00-9F-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Пожалуйста, помогите мне. Эта проблема мешает моим учебам в области кибербезопасности.
Строка с MAC-адресом все еще присутствует в вашем выводе:
unspec F2-D4-BD-ED-67-F3-00-9F-00-00-00-00-00-00-00-00
Режим мониторинга буквально означает, что интерфейс больше не использует эмулированные Ethernet (802.3) кадры – он теперь отправляет/принимает сырые 802.11 кадры (плюс дополнительную метаданных ‘radiotap’) – и, следовательно, это больше не тип ether
, а вместо этого становится типом ieee802.11/radiotap
; типом, который ifconfig не распознает.
Различные типы ссылок могут иметь адреса MAC разных размеров (например, FireWire использует 64/128-битные), поэтому инструменты, такие как ifconfig, должны знать о каждом типе ссылки: какой длины должен быть его адрес MAC, должен ли он быть отформатирован в шестнадцатеричном, ASCII или восьмеричном формате и т.д. В данном случае ifconfig не знает правильного имени и не знает, как отформатировать адрес, поэтому он выдает вам unspec
и “наилучшие попытки” отображения полного 16-байтового буфера, который он получает от ОС.
(Усложняя проблему, ifconfig использует устаревший интерфейс SIOCGIFHWADDR, который принимает буфер фиксированного размера и предоставляет только тип ссылки, но не размер адреса, поэтому все 16 байт должны быть показаны для неизвестных типов ссылок. Более новый интерфейс “netlink” хотя бы сообщил бы программе, какой длины фактически поле IFLA_ADDRESS.)
Более современные инструменты, такие как ip link
(из iproute2), знают, как отображать адреса 802.11:
$ ip link
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state ...
link/ether 28:df:eb:13:2a:81 brd ff:ff:ff:ff:ff:ff
$ sudo iw phy phy0 interface add mon0 type monitor
$ ip link
15: mon0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT ...
link/ieee802.11/radiotap 28:df:eb:13:2a:81 brd ff:ff:ff:ff:ff:ff
$ sudo iw mon0 del
Признание того, какие инструменты устарели и что делает их устаревшими, должно быть важной частью учёбы в области кибербезопасности.
Ответ или решение
Проблема с MAC-адресом WLAN-адаптера TP-Link TL-WN722N при переходе в мониторный режим
Когда вы работаете с Kali Linux и используете адаптер TP-Link TL-WN722N для обеспечения мониторного режима, часто возникают проблемы, связанные с отображением MAC-адреса. На первый взгляд, может показаться, что MAC-адрес пропадает, переходя в мониторный режим. Однако на самом деле это связано с тем, как различные интерфейсы и инструменты отображают информацию о сетевом адаптере.
Состояние сети до перехода в мониторный режим
В вашем первом выводе команды ifconfig
, видно, что адаптер wlan0 имеет неопределенный (unspec) MAC-адрес, что является типичным в ситуации, когда драйвера или инструменты управления не могут корректно распознать информацию о состоянии адаптера. Адаптер только что инициализирован, и системы не смогли присвоить стандартный MAC-адрес.
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
unspec 06-F1-8D-DE-BA-70-00-94-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
Однако, после перезагрузки, MAC-адрес успешно назначается, что видно в выводе:
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether f2:d4:bd:ed:67:f3 txqueuelen 1000 (Ethernet)
Проблема при переходе в мониторный режим
Когда вы переключаете адаптер в мониторный режим с помощью команд:
ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up
Вы меняете способ, которым адаптер обрабатывает пакеты. В мониторном режиме адаптер больше не работает в стандартном режиме Ethernet (802.3), а начинает принимать и отправлять "сырые" 802.11 кадры.
Это изменение повлияло на способ, которым ifconfig
отображает информацию о сетевом интерфейсе. В результате вы видите следующий вывод:
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
unspec F2-D4-BD-ED-67-F3-00-9F-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
Что означает, что ifconfig
не распознает новый тип интерфейса, и в результате отображает "unspec" в качестве представления MAC-адреса.
Почему это случается?
-
Неправильное распознавание типа интерфейса: Стандартные инструменты, такие как
ifconfig
, не умеют корректно отображать информацию для своеобразных типов интерфейсов, каковым является мониторный режим адаптера. -
Использование устаревших инструментов:
ifconfig
является устаревшим инструментом, который не совсем может справляться с новыми типов интерфейсов и методами обработки данных, в отличие от современных инструментов, таких какip link
.
Как это решить?
Рекомендуется использовать более современные инструменты для управления сетевыми интерфейсами. Например, вы можете использовать команды ip
:
sudo ip link show wlan0
Или переключить интерфейс через iw
:
sudo iw dev wlan0 interface add mon0 type monitor
sudo ip link set mon0 up
Теперь, используя ip link
, вы сможете увидеть MAC-адрес вашего адаптера даже в мониторном режиме.
Заключение
Проблема с отсутствием отображения MAC-адреса вашего TP-Link TL-WN722N в мониторном режиме не является ошибкой самого адаптера. Это следствие несовместимости устаревших инструментов с новыми функциями сетевого интерфейса. Использование более современных подходов и инструментов управления сетью гарантирует, что вы сможете получать всю необходимую информацию корректно. Это знание, безусловно, улучшит ваш опыт в области кибербезопасности.