Найти в Дзене
Pentest tools

arp-scan

Инструмент создает и отправляет ARP запросы указанным IP адресам и отображает полученные ответы. arp-scan позволяет вам: Отправлять ARP-пакеты на любое количество хостов-получателей, используя настраиваемую пропускную способность или скорость передачи. Это полезно для обнаружения устройств, когда вам может потребоваться сканировать большие адресные пространства. Гибким способом конструировать исходящий ARP пакет. arp-scan предоставляет управление всеми полями пакета ARP и полями в заголовке Ethernet кадра. Декодировать и отображать любые возвращённые пакеты. arp-scan будет декодировать и отображать любые принятые ARP-пакеты и искать поставщика, используя MAC-адрес. Снимать отпечатки IP хостов, используя инструмент arp-fingerprint. Usage: arp-scan [options] [hosts...] Опции: Примечание: там, где опция принимает значение, это значение указано буквой в треугольных скобках. Буква показывает, какой тип данных: <s> Строка символов, например. --file=hostlist.txt. <i> Целое число, которо
Оглавление

Инструмент создает и отправляет ARP запросы указанным IP адресам и отображает полученные ответы.

arp-scan позволяет вам:

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

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

Гибким способом конструировать исходящий ARP пакет.

arp-scan предоставляет управление всеми полями пакета ARP и полями в заголовке Ethernet кадра.

Декодировать и отображать любые возвращённые пакеты.

arp-scan будет декодировать и отображать любые принятые ARP-пакеты и искать поставщика, используя MAC-адрес.

Снимать отпечатки IP хостов, используя инструмент arp-fingerprint.

Usage: arp-scan [options] [hosts...]

Опции:

Примечание: там, где опция принимает значение, это значение указано буквой в треугольных скобках. Буква показывает, какой тип данных:

<s> Строка символов, например. --file=hostlist.txt.

<i> Целое число, которое может быть в десятеричной или шестнадцатеричной

форме если перед ним стоит 0x, например, --arppro=2048 или --arpro=0x0800.

<f> Число с плавающей запятой, например --backoff=1.5.

<m> Ethernet MAC-адрес, который может быть записал либо в формате

01:23:45:67:89:ab, или как 01-23-45-67-89-ab. Алфавитные шестнадцатеричные

символы могут быть как заглавными, так и прописными. Напр., --arpsha=01:23:45:67:89:ab.

<a> IPv4 адрес, например, --arpspa=10.0.0.1

<h> Бинарные данные, указанные как шестнадцатеричная строка, которая не

должна включать начальные 0x. Алфавитные hex символы могут быть как

заглавные, так и прописные. Например --padding=aaaaaaaaaaaa

<x> Что-то еще. Подробности смотрите в описании опции.

--help или -h Показать справку и выйти.

--file=<s> или -f <s> Считать имена хостов или адресов из указанного файла,

а не из строки команды. Одно имя или IP

адрес на строку. Используйте "-" для стандартного ввода.

--localnet или -l Сгенерировать адреса из настройки сетевого интерфейса.

Использовать IP адрес сетевого интерфейса и маску сети

для генерации списка целевых хост адресов.

Этот список будет включать сетевые и широковещательные

адреса, так адрес 10.0.0.1 сетевого интерфейса с

маской сети 255.255.255.0 сгенерирует 256 целевых

хостов с 10.0.0.0 до 10.0.0.255 включительно. Если

вы используете эту опцию, вы не можете указать опцию

--file или указать любые целевые хосты в строке команды.

Спецификации интерфейса берутся с интерфейса,

на котором будет использоваться arp-scan, он

может быть изменён опцией --interface.

--retry=<i> или -r <i> Установить общее число попыток для каждого хоста на <i>,

по умолчанию=2.

--timeout=<i> или -t <i> Установить начальный на каждый хост таймаут в <i> мс, по

умолчанию=500.

Это таймаут для первого пакета, отправляемого каждому хосту.

последующие тайм-ауты умножаются на коэффициент

отсрочки, который устанавливается с --backoff.

--interval=<x> или -i <x> Установить минимальный пакетный интервал на <x>.

Это контролирует использование исходящей полосы

пропускания путем ограничения скорости, на которой отправляются

пакеты. Пакетный интервал будет на менее, чем это число.

Если вы хотите использовать до определённой полосы пропускания,

тогда вместо этой проще использовать опцию --bandwidth.

По умолчанию интервал указывается в миллисекундах,

или в микросекундах, если к значению добавить "u".

--bandwidth=<x> или -B <x> Установить желаемую полосу пропускания на <x>, по умолчанию=256000.

Это значение по умолчанию в битах в секунду. Если вы

добавите к значению "K", тогда значение будет в килобитах

в сек.; а если добавите к значению "M",

единица будет в мегабитах в секунду.

Суффиксы "K" и "M" представляют десятичное, а не двоичное

умножение. Поэтому 64K это 64000, а не 65536.

Вы не можете указать и --interval и --bandwidth

поскольку они являются просто разными способами задать

один и тот же базовый параметр

--backoff=<f> или -b <f> Установить коэффициент отсрочки таймаута на <f>, по умолчанию=1.50.

Таймаут для каждого хоста умножается на этот коэффициент

после каждого таймаута. Поэтому если количество попыток

равно 3, начальный таймаут хоста 500ms, а коэффициент

отсрочки 1.5, тогда первый таймаут будет

500ms, второй 750ms, а третий 1125ms.

--verbose или -v Отображать подробные сообщения о ходе выполнения.

Использование более чем один раз усиливает эффект:

1 — Показать используемые маску и сетевой адрес, когда

указана опция --localnet, отображать любое

ненулевое заполнение пакетов, отображать пакеты,

полученные неизвестных хостов, и показывать, когда

завершается каждый проход через список.

2 — Показывать каждый отправленный и полученный пакет,

когда записи удаляются из списка, строку фильтра pcap,

и подсчёт записей сопоставления MAC/Vendor.

3 — Показать список хостов перед началом сканирования.

--version или -V Показать версию программы и выйти.

--random или -R Рандомизировать список хостов.

Эта опция перемешивает порядок хостов в списке хостов,

поэтому ARP пакеты отправляются хостам в случайном

порядке. Используется алгоритм перетасовки Кнута.

--numeric или -N Только IP адреса, без имён хостов.

С этой опцией все хосты должны быть указаны как

IP адреса. Имена хостов не разрешены. Не будет

выполняться DNS преобразования.

--snap=<i> или -n <i> Установить длину snap в pcap на <i>. По умолчанию=64.

Это определяет длину фрейма захвата. Эта

длина включает data-link заголовок.

Значения по умолчанию обычно достаточно.

--interface=<s> или -I <s> Использовать сетевой интерфейс <s>.

Если эта опция не указана, arp-scan будет искать

самый нижний номер в списке системных интерфейсов,

среди только настроенных (за исключением loopback).

Указанный интерфейс должен поддерживать ARP.

--quiet или -q Отображать только минимальный вывод.

Если указана эта опция, тогда будет отображаться

только минимальная информация. С этой опцией

не используются файлы OUI.

--ignoredups или -g Не показывать повторяющиеся пакеты.

По умолчанию, повторяющиеся пакеты показываются

и помечаются флагом "(DUP: n)".

--ouifile=<s> или -O <s> Использовать IEEE Ethernet OUI файл <s> для определения производителя.

Если эта опция не указана, именем файлом по умолчанию

является ieee-oui.txt в текущей директории. Если он не

найден, тогда используется файл

/usr/share/arp-scan/ieee-oui.txt.

--iabfile=<s> или -O <s> Использовать IEEE Ethernet IAB файл <s> для определения производителя.

Если эта опция не указана, именем файлом по умолчанию

является ieee-iab.txt в текущей директории. Если он не

найден, тогда используется файл

/usr/share/arp-scan/ieee-iab.txt.

--macfile=<s> или -O <s> Использовать пользовательский Ethernet MAC файл <s> для

определения производителя.

Если эта опция не указана, именем файлом по умолчанию

является mac-vendor.txt в текущей директории. Если он не

найден, тогда используется файл

/usr/share/arp-scan/mac-vendor.txt.

--srcaddr=<m> или -S <m> Установить Ethernet MAC-адрес источника на <m>.

Это устанавливает 48-битный аппаратный адрес в заголовках

Ethernet фрейма для исходящих ARP пакетов. Опция не

меняет аппаратный адрес в ARP пакете, смотрите

--arpsha для подробностей как изменить этот адрес.

По умолчанию это Ethernet адрес исходящего

интерфейса.

--destaddr=<m> или -T <m> Отправлять пакеты на Ethernet MAC адрес <m>

Это устанавливает 48-битный аппаратный адрес в заголовках

Ethernet фрейма для пункта назначения.

По умолчанию это широковещательный адрес ff:ff:ff:ff:ff:ff.

Большинство операционных систем также ответят, если ARP

запрос отправлен ан их MAC-адрес, или на

многоадресный адрес, который они прослушивают.

--arpsha=<m> или -u <m> Использовать <m> как адрес источника ARP Ethernet

Это устанавливает 48-битное поле ar$sha в пакете ARP

Оно не меняет аппаратный адрес в заголовке

фрейма, смотрите --srcaddr для подробностей как изменить

этот адрес. Значением по умолчанию является Ethernet

адрес исходящего интерфейса.

--arptha=<m> или -w <m> Использовать <m> в качестве целевого ARP Ethernet адреса

Это устанавливает 48-битное ar$tha поле в ARP пакете

По умолчанию это ноль, поскольку это поле не используется

для пакетов ARP запросов.

--prototype=<i> или -y <i> Установить тип Ethernet протокола на <i>, по умолчанию=0x0806.

Это устанавливает 16-битное поле типа протокола в

заголовке Ethernet фрейма.

Установка на не-дефолтное значение приведёт к тому,

что пакет будет проигнорирован целью, или отправлен

в неправильный стек протокола.

--arphrd=<i> или -H <i> Использовать <i> для типа ARP железа, по умолчанию=1.

Это устанавливает 16-битное ar$hrd поле в ARP пакете.

Нормальным значением является 1 (ARPHRD_ETHER). Большинство,

но не все операционные системы также ответят на 6

(ARPHRD_IEEE802). Некоторые системы отвечают на любое значение.

--arppro=<i> или -p <i> Использовать <i> для типа ARP протокола, по умолчанию=0x0800.

Это устанавливает 16-битное поле ar$pro в ARP пакете.

Большинство операционных систем отвечают только на 0x0800 (IPv4)

но некоторые также ответят на другие значения.

--arphln=<i> или -a <i> Установить длину аппаратного адреса на <i>, по умолчанию=6.

Это устанавливает 8-битное поле ar$hln в ARP пакете.

Это устанавливает заявленную длину аппаратного адреса

в ARP пакете. Установка его на любое значение, отличное

от стандартного, сделает пакет не совместимым с RFC.

Хотя некоторые операционные системы ещё могут на него ответить.

Помните, что действительные длины полей arpsha и

arptha в ARP пакете не меняются этой опцией;

она изменяет только поле arphln.

--arppln=<i> или -P <i> Установить длину протокола адреса на <i>, по умолчанию=4.

Это устанвливает 8-битное поле arppln в пакете ARP.

Это устанавливает заявленную длину протокола адреса

в ARP пакете. Установка его на любое значение, отличное

от стандартного, сделает пакет не совместимым с RFC.

Хотя некоторые операционные системы ещё могут на него ответить.

Помните, что действительные длины полей ar$spa и ar$tpa

ar$tpa в ARP пакете не меняются этой опцией;

она изменяет только поле ar$pln.

--arpop=<i> или -o <i> Использовать <i> для ARP операций, по умолчанию=1.

Это устанвливает 16-битное поле ar$op в пакете ARP.

Большинство операционных систем ответят только на значение 1

(ARPOP_REQUEST). Хотя некоторые системы ответят

также и на другие значения.

--arpspa=<a> или -s <a> Использовать <a> как IP адрес источника.

Адрес должен быть в формате xxx.xxx.xxx.xxx;

или буквальная строка "dest", которая устанавливает

адрес источника на тот же, как адрес целевого хоста.

Это устанавливает 32-битное поле ar$spa в ARP пакете.

Некоторые операционные системы проверяют его, и

ответят только если адрес источника внутри сети

интерфейса приёма. Другие не заботятся и

отвечают на адреса из любого источника.

По умолчанию используется адрес исходящего интерфейса.

ПРЕДУПРЕЖДЕНИЕ: Установка arpspa на IP адрес назначения

может нарушить работу некоторых операционных систем,

поскольку они полагают, что есть конфликт в IP адресах, если

они получили ARP запрос для их собственного адреса.

--padding=<h> или -A <h> Указывает отступ после пакета данных.

Устанавливает отступ данных на шестнадцатеричное значение <h>.

Эти данные добавляются к концу ARP пакета, после данных.

Большинство, если не все, операционные системы проигнорируют

любой отступ. По умолчанию отступ отсутствует, хотя

Ethernet драйвер на отправляющей системе может

накладывать пакет на минимальную длину Ethernet фрейма.

--llc или -L Использовать RFC 1042 LLC фрейминг с SNAP.

Эта опция приводит к тому, что исходящие ARP пакеты используют

IEEE 802.2 фрейминг со SNAP заголовком как описано

в RFC 1042. По умолчанию используется Ethernet-II

фрейминг.

arp-scan будет декодировать и отображать полученные ARP

пакеты либо в Ethernet-II или в IEEE 802.2 форматах

независимо от этой опции.

--vlan=<i> или -Q <i> Использовать 802.1Q тэггинг с VLAN id <i>.

Эта опция приводит к тому, что исходящие ARP пакеты

802.1Q VLAN используют тэггинг с VLAN ID of <i>,

который должен быть в диапазоне от 0 до 4095 включительно.

arp-scan всегда будет декодировать и отображать полученные ARP

пакеты в 802.1Q формате независимо от этой опции.

--pcapsavefile=<s> или -W <s> Записывать полученные пакеты в pcap файл <s>.

Это опция приводит к тому, что полученные ARP ответы

записываются в казанный pcap файл, а также декодируются

и отображаются. Этот файл может быть проанализирован

программами, которые понимают формат pcap, такими

как "tcpdump" и "wireshark".

--rtt или -D Отображение времени прохождения пакета.

Примеры:

Просканировать локальную сеть, используя информацию от главного сетевого интерфейса:

arp-scan -l
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
172.16.193.1 00:50:56:c0:00:08 VMware, Inc.
172.16.193.2 00:50:56:f1:18:a8 VMware, Inc.
172.16.193.254 00:50:56:e5:7b:87 VMware, Inc.
3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 2.327 seconds (110.01 hosts/sec). 3 responded

Просканировать локальную сеть 192.168.0.0/24 используя интерфейс eth0:

sudo arp-scan --interface=eth0 192.168.0.0/24
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.4 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.0.1 00:c0:9f:09:b8:db QUANTA COMPUTER, INC.
192.168.0.3 00:02:b3:bb:66:98 Intel Corporation
192.168.0.5 00:02:a5:90:c3:e6 Compaq Computer Corporation
192.168.0.6 00:c0:9f:0b:91:d1 QUANTA COMPUTER, INC.
192.168.0.12 00:02:b3:46:0d:4c Intel Corporation
192.168.0.13 00:02:a5:de:c2:17 Compaq Computer Corporation
192.168.0.87 00:0b:db:b2:fa:60 Dell ESG PCBA Test
192.168.0.90 00:02:b3:06:d7:9b Intel Corporation
192.168.0.105 00:13:72:09:ad:76 Dell Inc.
192.168.0.153 00:10:db:26:4d:52 Juniper Networks, Inc.
192.168.0.191 00:01:e6:57:8b:68 Hewlett-Packard Company
192.168.0.251 00:04:27:6a:5d:a1 Cisco Systems, Inc.
192.168.0.196 00:30:c1:5e:58:7d HEWLETT-PACKARD

Просканировать подсеть, на указанном интерфейсе и используя пользовательский MAC адрес источника:

arp-scan -I eth0 --srcaddr=DE:AD:BE:EF:CA:FE 192.168.86.0/24
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.86.1 70:3a:cb:68:51:4c (Unknown)
192.168.86.3 00:08:9b:f6:f6:2f ICP Electronics Inc.
192.168.86.2 84:1b:5e:e5:66:af NETGEAR
192.168.86.4 00:11:32:4b:04:8a Synology Incorporated
192.168.86.7 b8:27:eb:89:ac:c3 Raspberry Pi Foundation