ハッカーはarp-scanコマンドを利用して、ネットワーク内の隠れたデバイスを見つけます(Linuxコマンド説明)

ホワイトハッカーの知識

arp-scanはネットワークの仕組みを理解したり、不正な機械がつながっていないかをチェックするのに役立つツールです。

arp-scanとは

arp-scanは、ネットワーク内のデバイスを素早く検出するためのツールです。
このツールは、ARP(Address Resolution Protocol)を使用してネットワークスキャンを行い、同じサブネットにあるすべてのデバイスのIPアドレスや、MACアドレスを特定します。
通常のポートスキャンと異なり、ARPを直接使用するため、ファイアウォールにブロックされる可能性が低く、ローカルネットワーク内で非常に正確です。
※ARPは、IPアドレスからネットワーク上のMACアドレスを求めるためのプロトコルです。
 
 

機能と特徴

1.ARPプロトコルを利用
ARPプロトコルは、IPアドレスをMACアドレスに解決するために使用されるプロトコルで、ネットワーク内での通信に必要不可欠です。
→ arp-scanは、このプロトコルを利用してデバイスを検出します。
 
2.スキャン速度が速い
ARPリクエストは低レベルの通信であり、ネットワーク上でのスキャンが非常に高速に行えます。
 
3.同じサブネット内でのスキャンに特化
ARPは同じブロードキャストドメイン内でのみ機能するため、arp-scanはローカルネットワークでのスキャンに最適です。
 
4.MACアドレスのベンダー識別
結果として取得されたMACアドレスを基に、各デバイスのベンダー名を特定することが可能です。
 
 

ツールの場所

ターミナルで"arp-scan [options] [hosts…]"
と打ち込むだけです。
 
 

ツールと使用方法

基本的な使い方は、以下の通り。
 
1.ネットワーク内のデバイスをスキャン
次のコマンドを実行することで、ローカルネットワーク内のデバイスを検出できます
 
sudo arp-scan localnet 
localnet:現在のサブネット全体をスキャンするオプション。
結果には以下の情報が含まれます:
IPアドレス
MACアドレス
MACアドレスのベンダー名
 
2.特定の範囲をスキャン
任意のIPアドレス範囲を指定してスキャンする場合は、次のように指定します
 
sudo arp-scan 192.168.1.0/24
192.168.1.0/24はスキャン対象のIPアドレス範囲を示します。
 
3.特定のネットワークインターフェイスを指定
複数のネットワークインターフェイスがある場合、特定のインターフェイスを指定するには以下のようにします
 
sudo arp-scan interface=eth0 localnet
eth0 は使用するネットワークインターフェイス名です。
 
4.ベンダー名を解析しない場合
ベンダー名の解析をスキップしてMACアドレスだけを表示するには
sudo arp-scan plain localnet
 

オプション(options)

The data type for option arguments is shown by a letter in angle brackets
オプション引数のデータ型は、山括弧内の文字で示されます
 
<s> Character string.
<s> 文字列。
 
<i> Decimal integer, or hex if preceeded by 0x e.g. 2048 or 0x800.
<i> 10進整数、または先頭に"0x"が付く場合は、16進数(例:2048 または0x800)。
 
<f> Floating point decimal number.
<f> 浮動小数点数。
 
<m> MAC address, e.g. 01:23:45:67:89:ab or 01-23-45-67-89-ab (case insensitive)
<m> MACアドレス(例: 01:23:45:67:89:ab または 01-23-45-67-89-ab (大文字と小文字は区別されません))
 
<a> IPv4 address e.g. 10.0.0.1
<a> IPv4アドレス(例:10.0.0.1)
 
<h> Hex encoded binary data. No leading 0x. (case insensitive).
<h> 16進数でエンコードされたバイナリデータ。先頭に"0x"はありません(大文字と小文字は区別されません)。
 
<x> Something else – see option description.
<x> その他 – オプションの説明を参照してください。
 
General Options(一般オプション)

help or -h

Display this usage message and exit.
この使用方法メッセージを表示して終了します。
 

verbose or -v

Display verbose progress messages.
Can be used than once to increase verbosity. Max=3.
詳細な進行状況メッセージを表示します。
複数回使用して詳細度を上げることができます。最大 = 3。
 

version or -V

Display program version details and exit.
Shows the version, license details, libpcap version, and whether POSIX.1e capability support is included.
プログラムバージョンの詳細を表示して終了します。
バージョン、ライセンスの詳細、libpcapバージョン、および POSIX.1e機能サポートが含まれているかどうかを表示します。
 

interface=<s> or -I <s> 

Use network interface <s>.
If this option is not specified, arp-scan will search the system interface list for the lowest numbered, configured up interface (excluding loopback).
ネットワークインターフェイス<s>を使用します。
このオプションが指定されていない場合、arp-scanはシステムインターフェイスリストを検索して、最も番号が小さい、設定されているインターフェイス(ループバックを除く)を探します。
 
 
Host Selection(ホストの選択)

file=<s> or -f <s>

Read hostnames or addresses from the specified file One name or address pattern per line. Use “-" for stdin.
指定されたファイルからホスト名またはアドレスを読み取ります。1行につき、1つの名前またはアドレスパターン。stdinには、"-“を使用します。
 

localnet or -l

Generate addresses from interface configuration.Generates list from interface address and netmask(network and broadcast included). You cannot use the –file option or give targets on the command line. Use –interface to specify the interface.
インターフェース設定からアドレスを生成します。インターフェースアドレスとネットマスク(ネットワークとブロードキャストを含む)からリストを生成します。fileオプションを使用したり、コマンドラインでターゲットを指定したりすることはできません。インターフェースを指定するには、–interfaceを使用します。
 
 
MAC/Vendor Mapping Files(MAC/ベンダー マッピング ファイル)

ouifile=<s> or -O <s>

Use IEEE registry vendor mapping file <s>. Default is ieee-oui.txt in the current directory. If that is not found /usr/share/arp-scan/ieee-oui.txt is used.
IEEEレジストリベンダーマッピングファイル<s>を使用します。デフォルトは現在のディレクトリのieee-oui.txtです。見つからない場合は、/usr/share/arp-scan/ieee-oui.txtが使用されます。
 

macfile=<s> or -m <s>

Use custom vendor mapping file <s>. Default is mac-vendor.txt in the current directory. If that is not found /etc/arp-scan/mac-vendor.txt is used.
カスタムベンダーマッピングファイル<s>を使用します。デフォルトは現在のディレクトリのmac-vendor.txtです。見つからない場合は、/etc/arp-scan/mac-vendor.txtが使用されます。
 
Output Format Control(出力形式の制御)

quiet or -q

Display minimal output for each responding host. Only the IP address and MAC address are displayed. Reduces memory usage by about 5MB because the vendor mapping files are not used. Only the ${ip} and ${mac} fields are available for the –format option if –quiet is specified.
応答する各ホストの最小限の出力を表示します。IPアドレスと MACアドレスのみが表示されます。ベンダーマッピングファイルが使用されないため、メモリ使用量が約5MB削減されます。quiet が指定されている場合、formatオプションでは、${ip}フィールドと、${mac}フィールドのみ使用できます。
 

plain or -x

Supress header and footer text. Only display the responding host details. Useful if the output will be parsed by a script.
ヘッダーとフッターのテキストを抑制します。応答ホストの詳細のみを表示します。出力がスクリプトによって解析される場合に便利です。
 

ignoredups or -g

Don’t display duplicate packets. By default duplicate packets are flagged with “(DUP: n)" where n is the number of times this host has responded.
重複パケットを表示しません。デフォルトでは、重複パケットには「(DUP:n)」というフラグが付けられます。ここで、nはこのホストが応答した回数です。
 

rtt or -D

Calculate and display the packet round-trip time. The time is displayed in milliseconds and fractional microseconds. Makes the ${rtt} field available for –format.
パケットの往復時間を計算して表示します。時間はミリ秒とマイクロ秒の小数部で表示されます。formatで${rtt}フィールドを使用できるようになります。
 

format=<s> or -F <s>

Specify the output format string. The format is a string that will be output for each responding host. Host details can be included by inserting references to fields using the syntax “${field[;width]}". Fields are displayed right-aligned unless the width is negative in which case left alignment will be used. The following case-insensitive field names are recognised.
出力フォーマット文字列を指定します。フォーマットは、応答する各ホストに対して出力される文字列です。ホストの詳細は、構文「${field[;width]}」を使用してフィールドへの参照を挿入することで含めることができます。フィールドは、幅が負でない限り右揃えで表示されます。負の場合は左揃えが使用されます。大文字と小文字を区別しない次のフィールド名が認識されます。
 
IP           ホストドット付き4桁形式のIPv4アドレス
名前         resolveオプションが指定されている場合はホスト名
MAC          ホストMACアドレス xx:xx:xx:xx:xx:xx
HdrMAC       異なる場合はEthernetソースアドレス
ベンダー     ベンダーの詳細文字列
パディング   0以外の場合は16進数でARPパケット後のパディング
フレーミング Ethernet_II以外の場合はフレーミングタイプ
VLAN         802.1Q VLAD IDが存在する場合はID
Proto        0x0800以外の場合はARPプロトコル
DUP          重複パケットのパケット番号(>1)
RTT          rttオプションが指定されている場合はラウンドトリップ時間
 
Only the “ip" and “mac" fields are available if the quiet option is specified.
quietオプションが指定されている場合は、「ip」フィールドと「mac」フィールドのみが使用可能です。
 
Any characters that are not fields are output verbatim. “\" introduces escapes.
フィールドではない文字はそのまま出力されます。"\"はエスケープを導入します。
 
\n 改行
\r 復帰
\t タブ
\  後続の文字の特別な意味を抑制
 
You should enclose the –format argument in 'single quotes’ to protect special characters from the shell.
特殊文字をシェルから保護するには、format引数を「一重引用符」で囲む必要があります。
例:format=’${ip}\t${mac}\t${vendor}’
 
Host List Randomisation(ホストリストのランダム化)
 

random or -R

Randomise the target host list.
ターゲットホストリストをランダム化します。
 

randomseed=<i>

Seed the pseudo random number generator. Useful if you want a reproducible –random order.
疑似乱数ジェネレーターのシードを設定します。再現可能なランダムな順序が必要な場合に便利です。
 
Output Timing and Retry(出力タイミングと再試行)

retry=<i> or -r <i>

Set total number of attempts per host to <i>, default=2.
ホストごとの試行回数の合計を<i>に設定します(デフォルトは 2)。
 

backoff=<f> or -b <f>

Set backoff factor to <f>, default=1.50. Multiplies timeout by <f> for each pass.
バックオフ係数を<f>に設定します(デフォルト = 1.50)。パスごとにタイムアウトを<f>で乗算します。
 

timeout=<i> or -t <i>

Set initial per host timeout to <i> ms, default=500. This timeout is for the first packet sent to each host. subsequent timeouts are multiplied by the backoff factor which is set with –backoff.
ホストごとの初期タイムアウトを<i>ミリ秒に設定します(デフォルトは500)。このタイムアウトは、各ホストに送信される最初のパケット用です。後続のタイムアウトは、-backoffで設定されるバックオフ係数で乗算されます。
 

interval=<x> or -i <x>

Set minimum packet interval to <x>. This controls the outgoing bandwidth usage by limiting the packet rate. If you want to use up to a given bandwidth it is easier to use the –bandwidth option instead. The interval is in milliseconds, or microseconds if “u" is appended.
最小パケット間隔を<x>に設定します。これにより、パケットレートを制限することで送信帯域幅の使用が制御されます。指定された帯域幅まで使用したい場合は、代わりに、bandwidthオプションを使用する方が簡単です。間隔はミリ秒単位ですが、「u」が付加されている場合はマイクロ秒単位になります。
 

bandwidth=<x> or -B 

<x> Set outbound bandwidth to <x>, default=256000. The value is in bits per second. Append K for kilobits or M for megabits (decimal multiples). You cannot specify both –interval and –bandwidth.
<x> 送信帯域幅を<x>に設定します。デフォルトは256000です。値はビット/秒単位です。キロビットの場合はK、メガビットの場合はM(10進数の倍数)を追加します。intervalと–bandwidthの両方を指定することはできません。
 
DNS Resolution(DNS 解決)

–numeric or -N

Targets must be IP addresses, not hostnames. Can reduce startup time for large target lists.
ターゲットはホスト名ではなくIPアドレスである必要があります。ターゲットリストが大きい場合、起動時間を短縮できます。
 

resolve or -d

Resolve responding addresses to hostnames. The default output format will display the hostname instead of the IPv4 address. This option makes the ${name} field available for the –format option.
応答アドレスをホスト名に解決します。デフォルトの出力形式では、IPv4アドレスではなくホスト名が表示されます。このオプションにより、formatオプションで${name}フィールドが使用できるようになります。
 
Output ARP Packet(出力ARPパケット)

arpsha=<m> or -u <m>

Set the ARP source Ethernet address. Sets the 48-bit ar$sha field but does not change the hardware address in the frame header, see –srcaddr for how to change that address. Default is the Ethernet address of the outgoing interface.
ARP送信元イーサネットアドレスを設定します。48ビットの ar$shaフィールドを設定しますが、フレームヘッダーのハードウェアアドレスは変更しません。アドレスを変更する方法については、srcaddrを参照してください。デフォルトは、送信インターフェイスのイーサネットアドレスです。
 

arptha=<m> or -w <m>

Set the ARP target Ethernet address. Sets the 48-bit ar$tha field. The default is zero because this field is not used for ARP request packets.
ARPターゲットイーサネットアドレスを設定します。48ビットの ar$thaフィールドを設定します。このフィールドはARP要求パケットには使用されないため、デフォルトは0です。
 

arphrd=<i> or -H <i>

Set the ARP hardware type, default=1. Sets the 16-bit ar$hrd field. The default is 1(ARPHRD_ETHER). Many operating systems also respond to 6 (ARPHRD_IEEE802).
ARPハードウェアタイプを設定します。デフォルトは1です。16ビットのar$hrdフィールドを設定します。デフォルトは1 (ARPHRD_ETHER)です。多くのオペレーティングシステムは6 (ARPHRD_IEEE802)にも応答します。
 

arppro=<i> or -p <i>

Set the ARP protocol type, default=0x0800. Sets the 16-bit ar$pro field. Most operating systems only respond to 0x0800 (IPv4).
ARPプロトコル タイプを設定します。デフォルトは0x0800です。16ビットのar$proフィールドを設定します。ほとんどのオペレーティングシステムは0x0800(IPv4)にのみ応答します。
 

arphln=<i> or -a <i>

Set the hardware address length, default=6. Sets the 8-bit ar$hln field. The lengths of the ar$sha and ar$tha fields are not changed by this option; it only changes the ar$hln field.
ハードウェアアドレスの長さを設定します。デフォルトは6です。8 ビットのar$hlnフィールドを設定します。このオプションでは、ar$shaフィールドとar$thaフィールドの長さは変更されません。ar$hlnフィールドのみが変更されます。
 

arppln=<i> or -P <i>

Set the protocol address length, default=4. Sets the 8-bit ar$pln field. The lengths of the ar$spa and ar$tpa fields are not changed by this option. it only changes the ar$pln field.
プロトコルアドレスの長さを設定します。デフォルトは4です。8 ビットのar$plnフィールドを設定します。このオプションでは、ar$spaフィールドとar$tpaフィールドの長さは変更されません。ar$plnフィールドのみが変更されます。
 

arpop=<i> or -o <i>

Specify the ARP operation, default=1. Sets the 16-bit ar$op field. Most operating systems only respond to the value 1 (ARPOP_REQUEST).
ARP 操作を指定します。デフォルトは1です。16ビットのar$opフィールドを設定します。ほとんどのオペレーティングシステムは値 1(ARPOP_REQUEST)にのみ応答します。
 

arpspa=<a> or -s <a>

Set the source IPv4 address. The address should be in dotted quad format, or the string “dest", which sets the source address to the target host address. The default is the outgoing interface address. Sets the 32-bit ar$spa field. Some operating systems only respond if the source address is within the network of the receiving interface. Setting ar$spa to the destination IP address can cause some operating systems to report an address clash.
送信元IPv4アドレスを設定します。アドレスはドット区切りの4桁形式、または送信元アドレスをターゲットホストアドレスに設定する文字列"dest"である必要があります。デフォルトは送信インターフェイスアドレスです。32ビットのar$spaフィールドを設定します。一部のオペレーティングシステムは、送信元アドレスが受信インターフェイスのネットワーク内にある場合にのみ応答します。ar$spaを宛先IPアドレスに設定すると、一部のオペレーティング システムでアドレスの衝突が報告されることがあります。
 
Output Ethernet Header(出力イーサネットヘッダー)

srcaddr=<m> or -S <m>

Set the source Ethernet MAC address. Default is the interface MAC address. This sets the address in the Ethernet header. It does not change the address in the ARP packet: use –arpsha to change that address.
送信元イーサネットMACアドレスを設定します。デフォルトはインターフェイスMACアドレスです。これにより、イーサネットヘッダーのアドレスが設定されます。ARPパケットのアドレスは変更されません。そのアドレスを変更するには、arpshaを使用します。
 

destaddr=<m> or -T <m>

Set the destination MAC address. Sets the destination address in the Ethernet header. Default is ff:ff:ff:ff:ff:ff (broadcast) Hosts also respond if the request is sent to their unicast address, or to a multicast address they are listening on.
宛先MACアドレスを設定します。イーサネットヘッダーに宛先アドレスを設定します。デフォルトはff:ff:ff:ff:ff:ff(ブロードキャスト) です。ホストは、要求がユニキャストアドレスに送信された場合、またはリッスンしているマルチキャストアドレスに送信された場合にも応答します。
 

prototype=<i> or -y <i>

Sets the Ethernet protocol type, default=0x0806. This sets the protocol type field in the Ethernet header.
イーサネットプロトコルタイプを設定します(デフォルト = 0x0806)。これにより、イーサネットヘッダーのプロトコルタイプ フィールドが設定されます。
 

llc or -L

Use RFC 1042 LLC/SNAP encapsulation for 802.2 networks. arp-scan will decode and display ARP responses in both Ethernet-II and IEEE 802.2 formats irrespective of this option.
802.2ネットワークにはRFC 1042 LLC/SNAPカプセル化を使用します。arp-scanは、このオプションに関係なく、Ethernet-IIと IEEE 802.2の両方の形式でARP応答をデコードして表示します。
 

vlan=<i> or -Q <i>

Use 802.1Q tagging with VLAN id <i>. The id should be in the range 0 to 4095. arp-scan will decode and display ARP responses in 802.1Q format irrespective of this option.
VLAN ID<i>で802.1Qタグ付けを使用します。IDは0~4095の範囲にする必要があります。arp-scanはこのオプションに関係なく、ARP応答を802.1Q形式でデコードして表示します。
 
Misc Options(その他のオプション)
 

limit=<i> or -M <i>

Exit after the specified number of hosts have responded. arp-scan will exit with status 1 if the number of responding hosts is less than the limit. Can be used in scripts to check if fewer hosts respond without having to parse the output.
指定された数のホストが応答したら終了します。応答するホストの数が制限より少ない場合、arp-scanはステータス1で終了します。出力を解析せずに、応答するホストが少ないかどうかを確認するためにスクリプトで使用できます。
 

pcapsavefile=<s> or -W <s>

Write received packets to pcap savefile <s>. ARP responses will be written to the specified file as well as being decoded and displayed.
受信したパケットをpcap保存ファイル<s>に書き込みます。ARP応答は指定されたファイルに書き込まれるだけでなく、デコードされて表示されます。
 

snap=<i> or -n <i>

Set the pcap snap length to <i>. Default=64. Specifies the frame capture length, including the  Ethernet header. The default is normally sufficient.
pcapスナップの長さを<i>に設定します。デフォルトは64です。イーサネットヘッダーを含むフレームキャプチャの長さを指定します。通常はデフォルトで十分です。
 

retry-send=<i> or -Y <i>

Set number of send attempts, default=20.
送信試行回数を設定します。デフォルトは20です。
 

retry-send-interval=<i> or -E <i>

Set interval between send attempts. Interval is in milliseconds or microseconds if “u" is appended. default=5.
送信試行の間隔を設定します。間隔はミリ秒単位、または「u」が付加されている場合はマイクロ秒単位です。デフォルトは5です。
 

padding=<h> or -A <h>

Specify padding after packet data. Set padding after the ARP request to hex value <h>.
パケットデータの後のパディングを指定します。ARP要求の後のパディングを16進数値<h>に設定します。
 
 

arp-scanのまとめ

arp-scanはKali Linuxに登録されているネットワークスキャンツールで、ARP(Address Resolution Protocol)を利用して同じサブネット内のデバイスを検出します。IPアドレスやMACアドレス、ベンダー名を素早く取得でき、ファイアウォールにブロックされにくい特徴があります。
基本的な使い方は sudo arp-scanlocalnetで、現在のサブネット全体をスキャン可能です。特定の範囲やネットワークインターフェイスを指定するオプションも提供されています。スキャン結果はファイルに保存したり、フィルタリングして特定のデバイスを探すことも可能です。