GitHub – royhills/arp-scan: The ARP Scanner

Arp off-network attack test

arpspoof is an arp spoofing tool. The attacker poisons the victim arp cache and replaces the gateway mac with the attacker mac. Then the attacker can intercept the data packets sent and received by the victim, and obtain the victim account and password. Related sensitive information.

To usearpspoof command,-i , Network card, target (target) ip, gateway ip

arpspoof -i en0 -t

The following message appears and is constantly updated to indicate that the first step has been completed and the target host is now unable to connect to the Internet normally
Open the browser and visit the Baidu homepage at this time, open the cmd command window and try to ping Baidu official website
At this time, use in LinuxCtrl CThe spoofing is interrupted, and the physical machine can access the Internet again.

Select the attack target and use the nmap tool to obtain the other party’s IP

  • nmap -sP //-sP fill the network segment according to your own network

Tool installation

Before testing, some tools need to be installed to facilitate our testing.

Use the command arpspoof -i eth0 -t

arpspoof -i network card -t destination ip gateway

On the physical machine, the ARP cache before and after being deceived by ARP is used by the Windows system.arp -a Command to view the arp cache, used on Linux systemsarp Command to view.

Before physical machine (Windows system under attack) ARP spoofing:
After physical machine (Windows system attacked) ARP spoofing:
Mac address of the physical machine (Window system), use the commandipconfig/all View
After comparison, it was found that through the arpspoof command, the gateway Mac was finally modified into a physical machine Mac (in the arp table), and what we expected was to modify the gateway Mac to an attacker ( Virtual machine) Mac, so that the traffic can be transferred in the virtual machine to intercept the traffic. Analysis, it may be caused by the reason that the virtual machine shares the network of the physical machine (the virtual machine is set to the bridge mode), the specific reason is not clear,
mark mark

Arp spoofing test

Open the port forwarding function in Linux (disabled by default), otherwise the other party’s machine will be disconnected from the network.

Obtain basic information

In this experiment, you need to obtain the local ip, gateway ip, and destination host (physical machine) ip.

Use the command arpspoof -i eth0 -t

arpspoof -i network card -t gateway destination ip

After testing, the Mac address of the physical machine (in the arp table of the physical machine) has not changed, but the physical machine can communicate normally, and subsequent tests can be successfully completed. Description arp deception succeeded.
Guess, the arpspoof command may modify the arp table of the device at the gateway, the specific reason is temporarily unknown,
mark mark

Test the replacement device. Change the target host to another Linux host under the virtual machine. Use the commandarpspoof -i eth0 -t

arpspoof -i network card -t destination ip gateway

It can be clearly seen that in the arp table on the victim’s host, the gateway’s Mac address is modified to the attacker’s Mac address.

Arp cache table comparison

After testing, the virtual machine acts as the attacker and the physical machine acts as the victim

  • The virtual machine Mac address is 00:0c:29:2a:f9:ce
  • The Mac address of the gateway is c8:3a:35:2b:67:80
  • Windows Mac address is 68-EC-C5-C6-33-0B

there is a problem: After arp spoofing, in the arp cache table of the windows system, the Mac address corresponding to the gateway should be replaced with the Mac address of the virtual machine, but after actual testing, in the arp cache table on the Windows system (physical machine), The Mac address corresponding to the gateway is replaced with the Mac address of the physical machine.

ARP cache of virtual machine (attacker kali Linux system):
Mac address of virtual machine: availablecat /sys/class/net/eth0/address Command to view or useifconfigcommand

Arp deception-grab pictures

Syntax: driftnet [options] [filter code]

-bBeep when new picture is captured
-iinterface Select the monitoring interface
-ffile reads a picture in a specified pcap packet
-pDon’t let the monitored interface use promiscuous mode
-aBackground mode: Save the captured pictures to the directory (will not be displayed on the screen)
-mnumber specifies the number of saved pictures
-ddirectory specifies the path to save the picture
-xprefix specifies the prefix name of the saved image

Turn on arp spoofing and execute on new shelldriftnet -i network card Command, this command will automatically open a shell window and get the picture browsed by the destination host.

Arp protocol:

Address Resolution Protocol, or ARP (Address Resolution Protocol), is a TCP/IP protocol for obtaining physical addresses based on IP addresses. The host will include when sending informationDestination IP addressThe ARP request is broadcast to all hosts on the local area network, and the return message is received to determine the physical address of the target; after receiving the return message, the IP address and physical address are stored in the local ARP cache and retained for a certain period of time. Query the ARP cache directly during each request to save resources.

Arp spoofing

This test uses physical machine (Windows 10) and virtual machine (kali Linux) tests.

Arp spoofing test

principle: Make the target host think that the attacker’s network card is the gateway, so that all the data packets are sent to the attacker’s network card, and the attacker’s network card is then forwarded to pass the data packet to the real gateway to achieve the goal of continuous network. If the attacker directly discards the packet (without forwarding), it is a network disconnection attack.

Arp spoofing-get account password

Use ettercap to grab account passwords. Type in the terminal

ettercap -Tq -i eth0 //This command means to monitor the traffic of eth0 network card

-T Run in text mode -q Quiet mode -i network card, followed by network card name

ettercap Parameters and common operations

-lDisplay available network card interface devices
-iSelect interface
-tProtocol selection, tcp/udp/all, default is all
-pNo poisoning attacks, used to sniff local packets
-LLoad filter file
-Vtext displays the data packet on the screen as text
-Lfilename saves all data packets (the saved files can only be displayed with etterlog)

Arp: нюансы работы оборудования cisco и интересные случаи. часть 1

GitHub - royhills/arp-scan: The ARP Scanner

Привет habr! Каждый будущий инженер в процессе изучения сетевых технологий знакомится с протоколом ARP (Address Resolution Protocol, далее ARP). Основная задача протокола – получить L2 адрес устройства при известном L3 адресе устройства. На заре профессиональной карьеры начинающий специалист, как мне кажется, редко сталкивается с ситуациями, когда нужно вспомнить про существование ARP. Создаётся впечатление, что ARP – это некоторый автономный сервис, не требующий никакого вмешательства в свою работу, и при появлении каких-либо проблем со связью многие по неопытности могут забыть проверить работу ARP.

:/>  NET – управление сетевой конфигурацией Windows.

Я помню свой порядок мыслей, когда я начинал работать сетевым инженером: «Так, интерфейс поднялся, ошибок по физике вроде как не видно. Маршрут, куда слать пакеты, я прописал. Списков доступа никаких нет. Так почему же не идёт трафик? Что маршрутизатору ещё не хватает?» Рано или поздно каждый сетевой инженер столкнётся с проблемой, причина которой будет лежать именно в особенностях работы/настройки ARP на сетевом оборудовании. Простейший пример: смена шлюза на границе сети (например, вместо сервера MS TMG устанавливаем маршрутизатор). При этом конфигурация маршрутизатора была проверена заранее в лабораторных условиях. А тут, при подключении к провайдеру никакая связь не работает. Возвращаем MS TMG — всё работает. Куда смотреть после проверки канального и физического уровня? Наиболее вероятный ответ – проверить работу ARP.

В данной заметке я не буду подробно описывать принципы работы ARP и протоколов этого семейства (RARP, InARP, UnARP и т.д.). На эту тему уже существует уйма статей в Интернете (например, здесь не плохо описаны разновидности ARP). Единственный теоретический момент, на котором я заострю чуть больше внимания, – механизм Gratuitous ARP (GARP).

Статья будет состоять из двух частей. В первой части будет немного теории и особенности работы ARP на маршрутизаторах Cisco, связанные с правилами NAT и с функцией Proxy ARP. Во второй части опишу отличия в работе ARP между маршрутизаторами Cisco и межсетевыми экранами Cisco ASA, а также поделюсь несколькими интересными случаями из практики, связанными с работой ARP.

Чуть-чуть теории


Ниже представлен пример обмена ARP-запросом/ARP-ответом в программе-сниффере Wireshark:

GitHub - royhills/arp-scan: The ARP Scanner

GitHub - royhills/arp-scan: The ARP Scanner

ARP-запрос отправляется на широковещательный MAC-адрес ff:ff:ff:ff:ff:ff. В теле ARP-запроса поле с неизвестным значением Target MAC Address заполняется нулями.

ARP-ответ отправляется на MAC-адрес получателя, отправившего ARP-запрос. В поле Sender MAC Address указывается запрашиваемый MAC-адрес устройства.

Поле opcode в заголовке ARP может принимает значение 1 для ARP-запроса и значение 2 для ARP-ответа.

Чтобы два устройства могли начать передавать трафика между собой, в их ARP-таблицах должна существовать соответствующая запись о соседнем устройстве. Логично предположить, чтобы ARP-запись появилась в таблицах, для каждого устройства должна отработать процедура ARP-запрос/ARP-ответ. То есть перед передачей трафика в сети должны пройти по два ARP-запроса и два ARP-ответа (ARP-запрос/ARP-ответ для первого компьютера и ARP-запрос/ARP-ответ для второго компьютера). Однако, данное предположение верно не для всех случаев. Сетевое оборудование Cisco добавляет новую запись в ARP-таблицу сразу по приходу ARP-запроса от удалённого устройства.

Рассмотрим пример. В широковещательный домен добавляется новое устройство с адресом Запустим пинг с нового устройства и посмотрим debug arp на маршрутизаторе Cisco:

019383: Feb  4 10:38:55 UTC: IP ARP: rcvd req src 64e9.50c8.d6cd, dst GigabitEthernet0/0/1.7
019384: Feb  4 10:38:55 UTC: IP ARP: creating entry for IP address:, hw: 64e9.50c8.d6cd
019385: Feb  4 10:38:55 UTC: IP ARP: sent rep src d8b1.902e.e741,
                 dst 64e9.50c8.d6cd GigabitEthernet0/0/1.7

Как видно, сразу по пришествии ARP-запроса от неизвестного IP-адреса (rcvd req src, маршрутизатор создаёт соответствующую запись в своей ARP-таблице (creating entry for IP address:, hw: 64e9.50c8.d6cd).

Для текущей статьи я не проводил подробного исследования по вопросу, какое именно сетевое оборудование добавляет ARP-запись по пришествии ARP-запроса. Однако, предполагаю, описанное поведение присуще не только сетевому оборудованию Cisco, но и сетевому оборудованию других производителей, так как данный механизм позволяет существенно сократить ARP-трафик в сети.

Gratuitous ARP

Механизм Gratuitous ARP используется для оповещения устройств в рамках широковещательного домена о появлении новой привязки IP-адреса и MAC-адреса. Когда сетевой интерфейс устройства получает настройки IP (вручную или по DHCP), устройство отправляет Gratuitous ARP сообщение, чтобы уведомить соседей о своём присутствии. Gratuitous ARP сообщение представляет собой особый вид ARP-ответа. Поле opcode принимает значение 2 (ARP-ответ). MAC-адрес получается как в заголовке Ethernet, так и в теле ARP-ответа является широковещательным (ff:ff:ff:ff:ff:ff). Поле Target IP Address в теле ARP-ответа совпадает с полем Sender IP Address.

Механизм Gratuitous ARP используется для многих целей. Например, с помощью Gratuitous ARP можно уведомить о смене MAC-адреса или обнаружить конфликты IP-адресов. Другой пример — использование протоколов резервирования первого перехода (First Hop Redundancy Protocols), например, HSRP у Cisco. Напомню, HSRP позволяет иметь виртуальный IP-адрес, разделённый между двумя или более сетевыми устройствами. В нормальном режиме работы обслуживание виртуального IP-адреса (ответы на ARP-запросы и т.д.) обеспечивает основное устройство. При отказе основного устройства обслуживание виртуального IP-адреса переходит ко второму устройству. Чтобы уведомить о смене MAC-адреса ответственного устройства, как раз отправляется Gratuitous ARP-сообщения.

В примере ниже представлено Gratuitous ARP сообщение при включении сетевого интерфейса маршрутизатора с настроенным IP-адресов

GitHub - royhills/arp-scan: The ARP Scanner

Если на маршрутизаторе настроен secondary IP-адрес, при переходе интерфейса в состояние UP будут отправлены Gratuitous ARP уведомления для каждого IP-адреса интерфейса. В примере ниже представлены Gratuitous ARP сообщения, отправляемые при включении интерфейса маршрутизатора с основным IP-адресом и secondary IP-адресом

GitHub - royhills/arp-scan: The ARP Scanner

Безусловно, маршрутизатор будет отвечать на ARP-запросы как для основного, так и для secondary IP-адреса.

Логично предположить, что как только устройство получает Gratuitous ARP, сразу добавляется новая запись в ARP-таблицу. Однако это не так. Если в таблице устройства отсутствовала ARP-запись, связанная с IP-адресом из Gratuitous ARP сообщения, новая запись добавлена не будет. При необходимости отправить трафик будет сформирован ARP-запрос и получен ARP-ответ. Только после этой процедуры новая запись добавится в ARP-таблицу.

Пример на маршрутизаторе Cisco. Включим debug arp и подключим в широковещательный домен новое устройство с адресом До подключения нового устройства ARP-таблица маршрутизатора выглядит следующим образом:

cisco#sh arp | inc
<вывод пуст>

Включаем новое устройство с адресом Получаем debug-сообщение о приходе Gratuitous ARP:

IP ARP: rcvd rep src 64e9.50c8.d6cd, dst GigabitEthernet0/0/1

Проверяем ARP-таблицу:

cisco#sh arp | inc
<вывод пуст>

Новая запись не появилась. Делаем пинг до нового адреса:

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to, timeout is 2 seconds:

019275: Feb  4 10:23:06 UTC: IP ARP: creating incomplete entry for IP address: interface GigabitEthernet0/0/1
019276: Feb  4 10:23:06 UTC: IP ARP: sent req src d8b1.902e.e741,
                 dst 0000.0000.0000 GigabitEthernet0/0/1
019277: Feb  4 10:23:06 UTC: IP ARP: rcvd rep src 64e9.50c8.d6cd, dst GigabitEthernet0/0/1

Success rate is 80 percent (4/5), round-trip min/avg/max = 2/2/3 ms

Debug-сообщения показывают, что прошла процедура ARP-запрос/ARP-ответ. Проверяем ARP-таблицу:

cisoc#sh arp | i
Internet            6   64e9.50c8.d6cd  ARPA   GigabitEthernet0/0/1

Новая запись появилась.

ARP и NAT на маршрутизаторах Cisco

Теперь рассмотрим, как обстоят дела с ARP, если на маршрутизаторе используются правила трансляции сетевых адресов – NAT или PAT. В этом случае, мы можем транслировать адрес или адреса локальной сети либо в адрес интерфейса маршрутизатора, либо в какой-либо другой адрес, который будет называться в терминологии NAT внутренним глобальным адресом (inside global или inside mapped). Если трансляция происходит в адрес интерфейса, с ARP вопросов нет. В случае трансляции в адрес, отличный от адреса интерфейса, действуют следующие правила:

  1. Если внутренний глобальный адрес находится в той же IP-подсети, что и адрес интерфейса маршрутизатора, маршрутизатор будет отвечать на ARP-запросы к этому адресу. При этом в собственной arp-таблице маршрутизатора создаётся статическая запись для внутреннего глобального адреса.
  2. Если внутренний глобальный адрес находится в IP-подсети, отличной от адреса интерфейса маршрутизатора, маршрутизатор не будет отвечать на ARP-запросы к этому адресу. В собственной arp-таблице статическая запись не создаётся. Чтобы связь с таким IP-адресом заработала, требуется дополнительная настройка. Мы рассмотрим данный случай более подробно далее в статье.
:/>  Не удается удалить разделы реестра | Домострой

Отдельно следует упомянуть поведение Gratuitous ARP. Рассматривать варианты генерации Gratuitous ARP для различных случаев (переход интерфейса в состояние UP, изменение основного IP-адреса интерфейса, изменение Secondary IP-адреса и т.д.) не буду, так как получится слишком много вариантов. Хочу указать только два момента. Первый момент: настройка нового правила NAT не приводит к генерации Gratuitous ARP уведомления. Второй момент: с помощью команды

clear arp-cache

можно не только очистить все динамические записи arp в таблице маршрутизатора, но и заставить маршрутизатор отправить Gratuitous ARP для всех IP-адресов, на которые маршрутизатор должен отвечать, включая внутренние глобальные адреса из правил NAT.

Рассмотрим примеры на основании следующей простейшей топологии:

GitHub - royhills/arp-scan: The ARP Scanner

Примечание: для тестов использовался маршрутизатор C4321 с программным обеспечением 15.4(3)S3 и межсетевой экран Cisco ASA5505 c программным обеспечением 9.1(6)6.

Компьютер Wireshark с адресов в нашем случае будет обозначать подключение к внешней сети (например, к Интернет-провайдеру). С помощью сниффера Wireshark будем просматривать обмен сообщениями ARP между маршрутизатором и компьютером.

Настройки интерфейсов маршрутизатора:

interface GigabitEthernet0/0/0
 description === inside ===
 ip address
 no ip proxy-arp
 ip nat inside
interface GigabitEthernet0/0/1.7
 description === outside ===
 ip address
 no ip proxy-arp
 ip nat outside

Добавим правило динамического NAT, чтобы транслировать адрес компьютера из LAN ( во внутренний глобальный адрес при обращении к компьютеру во вне (Wireshark). Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под глобальным адресом

GitHub - royhills/arp-scan: The ARP Scanner

ip access-list standard acl-test-arp
ip nat pool test-pool netmask
ip nat inside source list acl-test-arp pool test-pool overload
ip nat inside source static tcp 3389 3389 extendable 

Посмотрим ARP-таблицу на маршрутизаторе:

cisco#sh arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
. . .
Internet              -   d8b1.902e.e741  ARPA   GigabitEthernet0/0/1.7
Internet              -   d8b1.902e.e741  ARPA   GigabitEthernet0/0/1.7
Internet              -   d8b1.902e.e741  ARPA   GigabitEthernet0/0/1.7
. . .

Видим, что в ARP-таблице присутствуют статические записи как для внешнего интерфейса маршрутизатора (, так и для внутренних глобальных адресов из правил динамического и статического NAT.

Сделаем clear arp-cache на маршрутизаторе и посмотрим в Wireshark, какие Gratuitous ARP уведомления будут отправлены с внешнего интерфейса:

GitHub - royhills/arp-scan: The ARP Scanner

Как видно, маршрутизатор уведомил о готовности обслуживать адрес интерфейса, адрес из правила динамического NAT и адрес из правила статического NAT.

А теперь представим ситуацию, когда провайдер расширяет пул публичных адресов, выданных клиенту, за счёт другой подсети. Предположим, дополнительно к IP-подсети на внешнем интерфейсе маршрутизатора мы получаем от провайдера новый пул и хотим публиковать наши внутренние сервисы под новыми IP-адресами. Для наглядности приведу схему с провайдером:

GitHub - royhills/arp-scan: The ARP Scanner

Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под новым глобальным адресом

ip nat inside source static tcp 3389 3389 extendable 

Если снова посмотреть ARP-таблицу маршрутизатора командой show arp, увидим, что статическая запись для IP-адреса не добавилась.

Чтобы иметь возможность отправлять ARP-запросы в новую сеть с компьютера Wireshark, расширим маску его сетевых настроек до (/16). Напомню, для нашего примера компьютер Wireshark выступает в роли маршрутизатора Интернет-провайдера.

После ввода clear arp-cache сниффер по-прежнему показывает Gratuitous ARP только для трёх IP-адресов:,, Для нового адреса Gratuitous ARP не срабатывает. Попробуем открыть tcp-порт 3389 адреса и одновременно посмотреть сниффер:

GitHub - royhills/arp-scan: The ARP Scanner

GitHub - royhills/arp-scan: The ARP Scanner

Неуспех. Проверим ARP-таблицу:

GitHub - royhills/arp-scan: The ARP Scanner

ARP-запись для нового IP-адреса не появилась. Причина – новый IP-адрес находится в IP-подсети, отличной от адреса интерфейса маршрутизатора. Как же нам заставить работать новый пул выданных провайдером IP-адресов? Есть четыре варианта:

  1. Попросить провайдера прописать статические ARP-записи для каждого IP-адреса из нового диапазона. Это не очень удобно, если выдаётся широкий диапазон как в нашем примере.
  2. Попросить провайдера прописать статический маршрут. Часто, чтобы выдать дополнительный диапазон белых IP-адресов, провайдер прописывает на интерфейсе своего оборудования secondary IP-адрес. Вместо этого мы можем попросить провайдера прописать статический маршрут к новой IP-подсети через IP-адрес внешнего интерфейса маршрутизатора. В этом случае оборудование провайдера будет знать, что новая подсеть доступна через IP-адрес интерфейса маршрутизатора, а маршрутизатор, в свою очередь, будет отвечать на ARP-запросы, отправленные к собственному интерфейсу.
  3. Прописать secondary IP-адрес из нового диапазона на внешнем интерфейсе маршрутизатора. В этом случае любой IP-адрес нового диапазона будет принадлежать той же подсети, что и IP-адрес (пусть и secondary) интерфейса маршрутизатора. Маршрутизатор автоматически добавит статические записи в свою ARP-таблицу, будет слать Gratuitous ARP и отвечать на ARP-запросы.
  4. Использовать механизм Proxy Arp на маршрутизаторе. На этом варианте остановимся чуть более подробно.

Proxy ARP на маршрутизаторах Cisco

Функциональность Proxy ARP позволяет маршрутизатору отвечать на ARP-запросы при выполнении трёх следующих условий:

  1. Целевой IP-адрес ARP-запроса находится в IP-подсети, отличной от IP-подсети, в которой ARP-запрос получен;
  2. Маршрутизатор имеет один или несколько маршрутов к целевому IP-адресу ARP-запроса;
  3. Маршруты к целевому IP-адресу ARP-запроса указывают на исходящий интерфейс, отличный от интерфейса, на который ARP-запрос был получен.

По умолчанию Proxy ARP включен на всех интерфейсах маршрутизатора. Однако использование механизма Proxy ARP имеет несколько недостатков. В первую очередь Proxy ARP вносит потенциальную уязвимость к атакам типа Man-in-the-middle, когда злоумышленник получит возможность перехватывать сетевой трафик. Поэтому, рекомендуется отключать Proxy ARP как минимум на интерфейсах, к которым подключены внешние сети.

Настройка Proxy ARP на интерфейсе маршрутизатора:

interface GigabitEthernet0/0/1.7
 ip proxy-arp

Отключить Proxy ARP на всех интерфейсах маршрутизатора можно глобально:

ip arp proxy disable

Данная настройка имеет приоритет над настройками Proxy ARP, применёнными на интерфейсах.

Помимо команды

ip proxy arp

в настройках интерфейса существует команда

ip local-proxy-arp

. Данная команда работает только когда

ip proxy arp

включён на интерфейсе и позволяет маршрутизатору отвечать на ARP-запросы, даже если целевой IP-адрес находится в той же IP-подсети, откуда ARP-запрос поступил. Пример настройки:

no ip arp proxy disable
interface GigabitEthernet0/0/1.7
 ip proxy-arp
 ip local-proxy-arp

Данная настройка может пригодится, если мы хотим, чтобы трафик в рамках одного широковещательного домена шёл через интерфейс нашего маршрутизатора. Данную задачу можно реализовать с использованием Protected port (PVLAN edge) настроек на L2-коммутаторе (

switchport protected


Включение Proxy ARP на внешнем интерфейсе маршрутизаторе позволит решить проблему с новым пулом адресов, выданных провайдером. Попробуем открыть tcp-порт 3389 адреса после включения Proxy ARP на интерфейсе маршрутизатора и одновременно посмотреть сниффер:

GitHub - royhills/arp-scan: The ARP Scanner

Успех. Маршрутизатор отвечает на ARP-запрос и порт открывается. Таким образом, функциональность Proxy ARP также можно использовать при необходимости трансляции адресов в новый пул.

:/>  Как открыть upnp на windows 10


Попробую тезисно обобщить основные моменты первой части статьи:

  1. Сетевое оборудование Cisco добавляет ARP-запись о новом удалённом устройстве в ARP-таблицу сразу по приходу ARP-запроса от удалённого устройства. Данное поведение позволяет сократить ARP-трафик в сети.
  2. Маршрутизатор Cisco будет отвечать на ARP-запросы к внутреннему глобальному IP-адресу правила NAT, если данный IP-адрес принадлежит той же IP-подсети, что и интерфейс маршрутизатора. Дополнительные настройки для работы ARP не требуются.
  3. Если внутренний глобальный IP-адрес правила NAT маршрутизатора не принадлежит IP-подсети интерфейса маршрутизатора, требуются дополнительные настройки. Существуют четыре варианта:
    1. Статические ARP-записи на внешнем оборудовании;
    2. Статический маршрут на внешнем оборудовании;
    3. Настройка secondary IP-адреса на интерфейсе маршрутизатора;
    4. Использование Proxy ARP.
      Первый и второй вариант подразумевают изменение настроек на «чужом» сетевом оборудовании и не всегда может быть приемлем.
      Третий вариант является наиболее предпочтительным.
      Четвёртый вариант может быть использован, но открывает уязвимость с точки зрения сетевой безопасности.
  4. Функциональность Proxy ARP включена на интерфейсах маршрутизатора по умолчанию. Рекомендуется отключать Proxy ARP как минимум на интерфейсах, подключаемых к Интернет-провайдерам.

Get destination ip address

  1. Open the cmd command window on the physical machine and typeipconfig View the target IP address and its gateway address
  2. Use on Linuxnmap Command to detect the ip in the LAN (need to wait for a while)

Get local ip address

Throughifconfig Command to view the local ip address

Install the driftnet tool

driftnet is a program that listens to network traffic and extracts images from the TCP stream it observes.driftnet is a software that captures images from network traffic and displays them in the X windowdriftnet is a simple and easy-to-use image capture tool that can easily capture images in network packets. The tool can capture pictures in specified packets in real time and offline.

The installation command is as follows:

apt-getinstall driftnet

Installdsniff tool

Dsniff is a well-known network sniffing toolkit, advanced password sniffing tool, and comprehensive network sniffing toolkit.

Nmap arp discovery

The following example using nmap is an ARP ping scan omitting  against all possibilities of the last octet, by using the wildcard (*), you can also set ranges separated by hyphens.

nmap-sP-PR 192.168.0.*

Where:-sP: Ping scans the network, listing machines that respond to ping.-PR: ARP discovery

The following example is an ARP scan against all possibilities of the last octet including port scan.

nmap-PR 192.168.0.*

The following example shows an ARP scan against all possibilities of the last octet

nmap-sn-PR 192.168.0.*

The following scan forces and ip scan over an arp scan, again the last octet using the wildcard.

nmap-sn–send-ip 192.168.0.*

As you can see while the scan made before took 6 seconds it took 23.

A similar output and timing happen if you disable the ARP protocol by adding the –disable-arp-ping flag:

nmap-sn–disable-arp-ping 192.168.0.*

Nping arp scan types

Former Nmap versions came with a variety of options to carry out ARP scans, currently Nmap doesn’t support these flags which are now usable through the tool Nping included in Nmap, if you have Nmap installed you already have this tool.

Nping allows to generate packet under many protocols, as it official website describes it can also be used for ARP poisoning, Denial of Service and more. Its website lists the following features:

Releases · royhills/arp-scan

  • Updated IEEE OUI and IAB MAC/Vendor files. There are now 18157 OUI entries and 4414 IAB entries.
  • Use autoconf 2.69 and automake 1.11 to add support for ARM 64-bit CPUs.
  • Use libpcap functions to obtain the interace IP address and send the ARP packet, instead of using our own link-layer specific functions. The only link-layer specific function that we still need is get_hardware_address() to obtain the interface MAC address. This means we now require libpcap 0.9.3 or later.
  • Added support for Dragonfly BSD.
  • The -u option to get-iab and get-oui scripts now works.
  • get-oui and get-iab scripts now get the OUI and IAB files from the new locations on the IEEE website, and allow whitespace at the beginning of the line.
  • If the MAC/Vendor file locations are not explicitly specified, look for them in the current directory and then in their default location.
  • Raised default timeout from 100ms to 500ms.
  • Added new –rtt (-D) option to display the packet round-trip time.
  • Include <net/bpf.h> header file early in link-bpf.c to avoid BPF symbol problems on some BSD based operating systems.
  • Added arp-fingerprint patterns for GNU/Hurd, Amazon Kindle (Linux 2.6), BeOS, Windows 8, Recent Linux, FreeBSD, NetBSD and OpenBSD versions, and RiscOS.
  • Added data file “pkt-custom-request-vlan-llc.dat” to the tarball to allow the ARP request packet generation self test to complete successfully.
  • Various minor bug fixes and improvements.
  • Updated IEEE OUI and IAB MAC/Vendor files. There are now 14707 OUI entries and 3542 IAB entries.
  • Added support for trailer ARP replies, which were used in early versions of BSD Unix on VAX.
  • Added support for ARP packets with both 802.1Q VLAN tag and LLC/SNAP framing.
  • The full help output is only displayed if specifically requested with arp-scan –help. Usage errors now result in smaller help output.
  • Added support for Apple Mac OS X with Xcode 2.5 and later. This allows arp-scan to build on Tiger, Leopard and Snow Leopard.
  • Changed license from GPLv2 to GPLv3.
  • Added warning about possible DoS when setting ar$spa to the destination IP address to the help output and man page.
  • Added arp-fingerprint patterns for 2.11BSD, NetBSD 4.0, FreeBSD 7.0, Vista SP1, Windows 7 and Blackberry OS.
  • Enabled compiler security options -fstack-protect, -D_FORTIFY_SOURCE=2 and -Wformat-security if they are supported by the compiler. Also enabled extra warnings -Wwrite-strings and -Wextra.
  • Added new “make check” tests to check packet generation, and packet decoding and display.
  • Modified get-oui and get-iab perl scripts so they will work on systems where the perl interpreter is not in /usr/bin, e.g. NetBSD.
  • Various minor bug fixes and improvements.
  • arp-scan wiki at This contains detailed documentation on arp-scan, and is intended to be the primary documentation resource.
  • Added support for Sun Solaris. Tested on Solaris 9 (SPARC). arp-scan may also work on other systems that use DLPI, but only Solaris has been tested.
  • New arp-fingerprint patterns for ARP fingerprinting: IOS 11.2, 11.3 and 12.4; ScreenOS 5.1, 5.2, 5.3 and 5.4; Cisco VPN Concentrator 4.7; AIX 4.3 and 5.3; Nortel Contivity 6.00 and 6.05; Cisco PIX 5.1, 5.2, 5.3, 6.0, 6.1, 6.2, 6.3 and 7.0.
  • Updated IEEE OUI and IAB MAC/Vendor files. There are now 10,214 OUI entries and 1,858 IAB entries.
  • Added HSRP MAC address to mac-vendor.txt.

Оставьте комментарий