arp-scan - 참조 설명서, 옵션, 명령 예제


이름

arp-scan - 대상 호스트에 ARP 요청을 보내고 응답을 표시합니다.

개요

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

Target hosts must be specified on the command line unless the --file or --localnet option is used.

Targets can be IPv4 addresses or hostnames. You can also use CIDR notation (10.0.0.0/24) (network and broadcast included), ranges (10.0.0.1-10.0.0.10), and network:mask (10.0.0.0:255.255.255.0).

설명

arp-scan은 지정된 호스트에 ARP 요청 패킷을 보내고 받은 응답을 표시합니다. 네트워크 인터페이스는 --interface 옵션으로 지정할 수 있습니다. 인터페이스가 지정되지 않은 경우 arp-scan은 가장 낮은 번호의 구성된 인터페이스를 선택합니다(루프백 제외).

arp-scan은 일부 시스템에 대한 권한이 필요한 원시 소켓을 사용합니다.

Linux with POSIX.1e capabilities support using libcap:

arp-scan은 기능을 인식합니다. 허용된 세트에 CAP_NET_RAW가 필요하며 필요한 기능에 대해서만 해당 기능을 활성화합니다. setcap cap_net_raw+p /path/to/arp-scan을 사용하여 허용된 arp-scan 실행 파일 집합에 CAP_NET_RAW를 추가합니다. 기능 지원은 또한 arp-scan이 CAP_NET_RAW를 제외한 모든 기능을 삭제하고 전체 루트 권한으로 실행되지 않기 때문에 SUID 루트를 훨씬 더 안전하게 만듭니다.

BSD and macOS:

/dev/bpf*에 대한 읽기/쓰기 권한이 필요합니다.

Any operating system:

루트 또는 SUID 루트로 실행하면 모든 OS에서 작동하지만 가능하면 다른 방법을 사용하는 것이 좋습니다.

ARP는 로컬 네트워크에서만 작동하며 라우팅할 수 없습니다. ARP 프로토콜은 IPv4 주소를 사용하지만 IP 프로토콜이 아니며 arp-scan은 IPv4 주소가 없는 인터페이스에서 사용할 수 있습니다.

각 대상에 대해 하나의 ARP 요청이 전송됩니다. 호스트가 응답하지 않으면 요청이 한 번 더 재전송됩니다. 재시도 횟수는 --retry 옵션으로 변경할 수 있습니다. 재시도 횟수를 줄이면 패킷 손실로 인해 일부 결과가 누락될 위험이 있는 스캔 시간이 줄어듭니다.

--bandwidth 옵션과 함께 arp-scan이 사용할 대역폭을 지정할 수 있습니다. 기본값은 초당 256000비트입니다. 대역폭을 늘리면 스캔 시간이 줄어들지만 대역폭을 너무 높게 설정하면 브로드캐스트 패킷 속도가 높아질 수 있습니다. 패킷 속도를 지정하는 또 다른 방법은 --interval 옵션을 사용하는 것입니다.

단일 패스 스캔 시간(즉, --retry=1)은 다음과 같습니다.

시간=n번 i + t + o

여기서 n은 호스트 수이고 i는 간격(--interval으로 지정하거나 --bandwidth 에서 계산됨)입니다. ), t는 시간 제한(--timeout으로 지정)이고 o는 대상 목록을 로드하고 읽는 데 걸리는 오버헤드 시간입니다. MAC/공급업체 매핑 파일. 오버헤드는 일반적으로 무시할 수 있지만(일반적으로 약 100ms) --quiet 옵션으로 더 줄일 수 있습니다. 작은 호스트 목록의 경우 시간 초과 값이 지배적이지만 큰 목록의 경우 패킷 간격이 가장 중요한 값입니다.

ARP 요청의 모든 부분은 아래 표와 같이 --arpXXX 옵션을 사용하여 수정할 수 있습니다.

테이블

가장 일반적인 옵션은 ARP 요청에서 소스 IPv4 주소를 설정하여 ARP 요청이 인터페이스 주소와 다른 소스 주소를 사용할 수 있도록 하는 --arpspa입니다. 이를 통해 IPv4 주소가 없는 인터페이스에서 arp-scan을 사용할 수 있습니다. 참고: ar$spa를 대상의 IP 주소로 설정하면 일부 운영 체제는 자신의 주소에 대한 ARP 요청을 받을 때 주소 충돌을 보고합니다.

아래와 같이 이더넷 프레임 헤더의 값을 변경할 수도 있습니다.

테이블

대상 이더넷 주소를 설정하는 --destaddr 옵션은 일반적으로 사용되는 유일한 옵션입니다.

기본적으로 ARP 응답은 다음 형식으로 표시됩니다.

<IPv4 Address> <MAC Address> <Vendor Details>

여기서 IPv4 주소는 응답 대상의 IP 주소이고 MAC 주소는 링크 계층 주소이며 공급업체 세부정보는 디코딩된 공급업체 세부정보입니다. 하드웨어 주소. 출력 필드는 단일 탭 문자로 구분됩니다. --format 옵션으로 출력 형식을 변경할 수 있습니다.

응답은 수신된 순서대로 표시되며 일부 호스트는 다른 호스트보다 빠르게 응답할 수 있으므로 요청이 전송된 순서와 다를 수 있습니다.

공급업체 디코딩은 ieee-oui.txt 및 mac-vendor.txt 파일을 사용합니다. ieee-oui.txt는 IEEE MA-L(OUI), MA-M, MA-S (OUI36) 및 IAB 레지스트리. mac-vendor.txt에는 공급업체 매핑에 대한 추가 MAC이 포함되어 있으며 사용자 지정 매핑을 추가하는 데 사용할 수 있습니다. get-oui는 IEEE 레지스트리의 최신 데이터로 ieee-oui.txt를 업데이트하는 데 사용할 수 있습니다.

모든 IPv4 호스트는 방화벽과 같은 패킷 필터링이 있는 호스트를 포함하여 ARP 요청 패킷에 응답해야 합니다. 따라서 arp-scan은 로컬 네트워크에서 모든 활성 IPv4 호스트를 검색하는 데 유용한 도구입니다.

옵션

옵션이 값을 취하는 경우 해당 값은 꺾쇠 괄호 안에 문자로 지정됩니다. 문자는 예상되는 데이터 유형을 나타냅니다.

<s>

문자열.

<i>

10진수 정수 또는 앞에 0x가 있는 경우 16진수입니다. 2048 또는 0x800.

<f>

부동 소수점 십진수.

<m>

MAC 주소, 예: 01:23:45:67:89:ab 또는 01-23-45-67-89-ab(대소문자 구분 안 함)

<a>

IPv4 주소 예: 10.0.0.1

<h>

16진수로 인코딩된 이진 데이터입니다. 선행 0x가 없습니다. (대소문자를 구분하지 않음).

<x>

다른 것 - 옵션 설명을 참조하십시오.

일반 옵션

--help or -h

이 사용법 메시지를 표시하고 종료합니다.

--verbose or -v

자세한 진행 메시지를 표시합니다. 자세한 정보를 높이기 위해 두 번 이상 사용할 수 있습니다. 최대=3.

--version or -V

프로그램 버전을 표시하고 종료합니다. 버전, 라이선스 세부 정보, libpcap 버전 및 POSIX.1e 기능 지원이 포함되었는지 여부를 표시합니다.

--interface=<s> or -I <s>

네트워크 인터페이스 <s>를 사용하십시오. 이 옵션을 지정하지 않으면 arp-scan은 시스템 인터페이스 목록에서 가장 낮은 번호로 구성된 인터페이스(루프백 제외)를 검색합니다.

호스트 선택

--file=<s> or -f <s>

지정된 파일에서 호스트 이름 또는 주소를 읽습니다. 한 줄에 하나의 이름 또는 주소 패턴. stdin에는 "-"를 사용하십시오.

--localnet or -l

인터페이스 구성에서 주소를 생성합니다. 인터페이스 주소 및 넷마스크(네트워크 및 브로드캐스트 포함)에서 목록을 생성합니다. --file 옵션을 사용하거나 명령줄에서 대상을 지정할 수 없습니다. --interface를 사용하여 인터페이스를 지정합니다.

MAC/공급업체 매핑 파일

--ouifile=<s> or -O <s>

IEEE 레지스트리 벤더 매핑 파일 <s>을 사용하십시오. 기본값은 현재 디렉터리의 ieee-oui.txt입니다. 그것이 발견되지 않으면 /usr/share/arp-scan/ieee-oui.txt가 사용됩니다.

--macfile=<s> or -m <s>

사용자 지정 공급업체 매핑 파일 <s>을 사용하십시오. 기본값은 현재 디렉터리의 mac-vendor.txt입니다. 이것이 없으면 /etc/arp-scan/mac-vendor.txt가 사용됩니다.

출력 형식 제어

--quiet or -q

각 응답 호스트에 대한 최소 출력을 표시합니다. IP 주소와 MAC 주소만 표시됩니다. 벤더 매핑 파일을 사용하지 않기 때문에 메모리 사용량이 약 5MB 줄어듭니다. --인 경우 $ {ip} 및 $ {mac} 필드만 --format 옵션에 사용할 수 있습니다. -조용한이 지정됩니다.

--plain or -x

머리글 및 바닥글 텍스트를 억제합니다. 응답 호스트 세부 정보만 표시합니다. 출력이 스크립트에 의해 구문 분석되는 경우에 유용합니다.

--ignoredups or -g

중복 패킷을 표시하지 마십시오. 기본적으로 중복 패킷은 (DUP: n) 플래그가 지정됩니다. 여기서 n은 이 호스트가 응답한 횟수입니다.

--rtt or -D

패킷 왕복 시간을 계산하고 표시합니다. 시간은 밀리초 및 분수 마이크로초로 표시됩니다. --format에 사용할 수 있는 $ {rtt} 필드를 만듭니다.

--format=<s> or -F <s>

출력 형식 문자열을 지정합니다. 형식은 각 응답 호스트에 대해 출력될 문자열입니다. "$ {field[;width]}" 구문을 사용하여 필드에 대한 참조를 삽입하여 호스트 세부 정보를 포함할 수 있습니다. 너비가 음수인 경우가 아니면 필드는 오른쪽 정렬로 표시되며 이 경우 왼쪽 정렬이 사용됩니다. 대소문자를 구분하지 않는 다음 필드 이름이 인식됩니다.

IP Host IPv4 address in dotted quad format
Name Host name if --resolve option given
MAC Host MAC address xx:xx:xx:xx:xx:xx
HdrMAC Ethernet source addr if different
Vendor Vendor details string
Padding Padding after ARP packet in hex if nonzero
Framing Framing type if not Ethernet_II
VLAN 802.1Q VLAN ID if present
Proto ARP protocol if not 0x0800
DUP Packet number for duplicate packets (>1)
RTT Round trip time if --rtt option given

--quiet 옵션이 지정된 경우 $ {ip} 및 $ {mac} 필드만 사용할 수 있습니다.

필드가 아닌 모든 문자는 그대로 출력됩니다. "\"는 이스케이프를 도입합니다.

\n newline
\r carriage return
\t tab
\ suppress special meaning for following character

셸에서 특수 문자를 보호하려면 --format 인수를 '작은따옴표'로 묶어야 합니다.

예: --format='$ {ip}\t$ {mac}\t$ {공급업체}'

호스트 목록 무작위화

--random or -R

대상 호스트 목록을 무작위로 지정합니다.

--randomseed=<i>

의사 난수 생성기를 시드합니다. 재현 가능한 --무작위 순서를 원하는 경우에 유용합니다.

출력 타이밍 및 재시도

--retry=<i> or -r <i>

호스트당 총 시도 횟수를 <i>(기본값=2)로 설정합니다.

--backoff=<f> or -b <f>

백오프 인자를 <f>으로 설정합니다. 기본값은 1.50입니다. 통과할 때마다 시간 제한에 <f>을 곱합니다.

--timeout=<i> or -t <i>

초기 호스트별 시간 제한을 <i>ms(기본값=500)로 설정합니다. 이 타임아웃은 각 호스트로 전송되는 첫 번째 패킷에 대한 것입니다. 후속 시간 제한에는 --backoff로 설정된 백오프 요소가 곱해집니다.

--interval=<x> or -i <x>

최소 패킷 간격을 <x>으로 설정합니다. 이는 패킷 속도를 제한하여 발신 대역폭 사용량을 제어합니다. 주어진 대역폭까지 사용하려면 대신 --bandwidth 옵션을 사용하는 것이 더 쉽습니다. 간격은 밀리초 또는 "u"가 추가된 경우 마이크로초입니다.

--bandwidth=<x> or -B <x>

아웃바운드 대역폭을 <x>(기본값=256000)로 설정합니다. 값은 초당 비트 수입니다. 킬로비트의 경우 K를 추가하고 메가비트의 경우 M을 추가합니다(십진수 배수). --interval 및 --bandwidth를 모두 지정할 수는 없습니다.

DNS 확인

--numeric or -N

대상은 호스트 이름이 아닌 IP 주소여야 합니다. 큰 대상 목록의 시작 시간을 줄일 수 있습니다.

--resolve or -d

응답 주소를 호스트 이름으로 확인합니다. 기본 출력 형식은 IPv4 주소 대신 호스트 이름을 표시합니다. 이 옵션을 사용하면 --format 옵션에 $ {name} 필드를 사용할 수 있습니다.

출력 ARP 패킷

--arpsha=<m> or -u <m>

ARP 소스 이더넷 주소를 설정합니다. 48비트 ar$sha 필드를 설정하지만 프레임 헤더의 하드웨어 주소는 변경하지 않습니다. 해당 주소를 변경하는 방법은 --srcaddr을 참조하십시오. 기본값은 발신 인터페이스의 이더넷 주소입니다.

--arptha=<m> or -w <m>

ARP 대상 이더넷 주소를 설정합니다. 48비트 ar$tha 필드를 설정합니다. 이 필드는 ARP 요청 패킷에 사용되지 않기 때문에 기본값은 0입니다.

--arphrd=<i> or -H <i>

ARP 하드웨어 유형을 기본값=1으로 설정합니다. 16비트 ar$hrd 필드를 설정합니다. 기본값은 1(ARPHRD_ETHER)입니다. 많은 운영 체제도 6(ARPHRD_IEEE802)에 응답합니다.

--arppro=<i> or -p <i>

ARP 프로토콜 유형을 기본값=0x0800으로 설정합니다. 16비트 ar$pro 필드를 설정합니다. 대부분의 운영 체제는 0x0800(IPv4)에만 응답합니다.

--arphln=<i> or -a <i>

하드웨어 주소 길이를 설정합니다(기본값=6). 8비트 ar$hln 필드를 설정합니다. ar$sha 및 ar$tha 필드의 길이는 이 옵션으로 변경되지 않습니다. ar$hln 필드만 변경합니다.

--arppln=<i> or -P <i>

프로토콜 주소 길이를 설정합니다(기본값=4). 8비트 ar$pln 필드를 설정합니다. ar$spa 및 ar$tpa 필드의 길이는 이 옵션으로 변경되지 않습니다. ar$pln 필드만 변경합니다.

--arpop=<i> or -o <i>

ARP 작업을 지정합니다(기본값=1). 16비트 ar$op 필드를 설정합니다. 대부분의 운영 체제는 값 1(ARPOP_REQUEST)에만 응답합니다.

--arpspa=<a> or -s <a>

소스 IPv4 주소를 설정합니다. 주소는 점으로 구분된 쿼드 형식이거나 소스 주소를 대상 호스트 주소로 설정하는 문자열 "dest"이어야 합니다. 기본값은 발신 인터페이스 주소입니다. 32비트 ar$spa 필드를 설정합니다. 일부 운영 체제는 소스 주소가 수신 인터페이스의 네트워크 내에 있는 경우에만 응답합니다. ar$spa를 대상 IP 주소로 설정하면 일부 운영 체제에서 주소 충돌을 보고할 수 있습니다.

출력 이더넷 헤더

--srcaddr=<m> or -S <m>

소스 이더넷 MAC 주소를 설정합니다. 기본값은 인터페이스 MAC 주소입니다. 이것은 이더넷 헤더에 주소를 설정합니다. ARP 패킷의 주소는 변경하지 않습니다. 해당 주소를 변경하려면 --arpsha를 사용하십시오.

--destaddr=<m> or -T <m>

대상 MAC 주소를 설정합니다. 이더넷 헤더에 대상 주소를 설정합니다. 기본값은 ff:ff:ff:ff:ff:ff(브로드캐스트)입니다. 요청이 자신의 유니캐스트 주소나 청취 중인 멀티캐스트 주소로 전송되면 호스트도 응답합니다.

--prototype=<i> or -y <i>

이더넷 프로토콜 유형을 기본값=0x0806으로 설정합니다. 이는 이더넷 헤더의 프로토콜 유형 필드를 설정합니다.

--llc or -L

802.2 네트워크에 RFC 1042 LLC/SNAP 캡슐화를 사용합니다. arp-scan은 이 옵션에 관계없이 Ethernet-II 및 IEEE 802.2 형식 모두에서 ARP 응답을 디코딩하고 표시합니다.

--vlan=<i> or -Q <i>

VLAN ID가 <i>인 802.1Q 태깅을 사용합니다. id는 0~4095 범위에 있어야 합니다. arp-scan은 이 옵션과 관계없이 802.1Q 형식으로 ARP 응답을 디코딩하고 표시합니다.

기타 옵션

--limit=<i> or -M <i>

지정된 수의 호스트가 응답한 후 종료하십시오. arp-scan은 응답 호스트 수가 제한보다 적으면 상태 1로 종료됩니다. 출력을 구문 분석하지 않고 응답하는 호스트가 더 적은지 확인하기 위해 스크립트에서 사용할 수 있습니다.

--pcapsavefile=<s> or -W <s>

받은 패킷을 pcap savefile <s>에 씁니다. ARP 응답은 지정된 파일에 기록되고 디코딩 및 표시됩니다.

--snap=<i> or -n <i>

pcap 스냅 길이를 <i>으로 설정합니다. 기본값은 64입니다. 이더넷 헤더를 포함하여 프레임 캡처 길이를 지정합니다. 일반적으로 기본값이면 충분합니다.

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

전송 시도 횟수를 설정합니다. 기본값은 20입니다.

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

전송 시도 사이의 간격을 설정합니다. 간격은 밀리초 또는 "u"가 추가된 경우 마이크로초입니다. 기본값은 5입니다.

--padding=<h> or -A <h>

패킷 데이터 뒤에 패딩을 지정합니다. ARP 요청 후 패딩을 16진수 값 으로 설정합니다.

종료 상태

arp-scan은 성공적으로 완료되면 0으로, 오류가 발생하면 >0으로 종료됩니다.

--limit 옵션이 지정된 경우 arp-scan도 응답 호스트 수가 지정된 제한보다 적은 경우 0이 아닌 종료 코드로 종료됩니다.

파일

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

공급업체 매핑에 대한 IEEE OUI(Organisationally Unique Identifier) 목록입니다.

/etc/arp-scan/mac-vendor.txt

로컬 추가를 포함하여 공급업체 매핑에 대한 다른 이더넷 MAC 목록입니다.

예

단순 스캔

인터페이스 IPv4 구성을 사용하여 기본 네트워크를 스캔하여 스캔할 호스트 목록을 생성하십시오.

$ arp-scan --localnet
Interface: eth0, type: EN10MB, MAC: 50:65:f3:f0:6d:7c, IPv4: 10.0.0.106
Starting arp-scan 1.9.9 with 256 hosts (https://github.com/royhills/arp-scan)
10.0.0.14       a4:1f:72:7f:25:bb       Dell Inc.
10.0.0.22       10:60:4b:73:43:de       Hewlett Packard
10.0.0.74       00:0c:29:90:07:e9       VMware, Inc.
10.0.0.75       00:0c:29:66:9e:c2       VMware, Inc.
10.0.0.76       00:0c:29:d0:e1:ea       VMware, Inc.
10.0.0.82       9c:b6:54:bb:f3:ec       Hewlett Packard
10.0.0.84       00:21:9b:fd:b9:b3       Dell Inc.
10.0.0.85       00:02:b3:eb:5a:f8       Intel Corporation
10.0.0.91       00:9c:02:a5:7b:29       Hewlett Packard
10.0.0.92       d4:ae:52:d0:07:6f       Dell Inc.
10.0.0.93       d4:ae:52:d0:04:9b       Dell Inc.
10.0.0.96       9c:b6:54:bb:f5:35       Hewlett Packard
10.0.0.97       00:0c:29:0e:95:20       VMware, Inc.
10.0.0.104      50:65:f3:f0:70:a4       Hewlett Packard

15 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.9: 256 hosts scanned in 1.532 seconds (167.10 hosts/sec). 14 responded

출력 형식

인터페이스 eth0을 사용하여 10.0.0.0/24의 모든 호스트를 스캔합니다. 왕복 시간을 계산하고 맞춤 형식을 사용하여 정렬된 열에 표시합니다.

$ arp-scan -I eth0 --rtt --format='|${ip;-15}|${mac}|${rtt;8}|' 10.0.0.0/24
Interface: eth0, type: EN10MB, MAC: 50:65:f3:f0:6d:7c, IPv4: 10.0.0.106
Starting arp-scan 1.9.9 with 256 hosts (https://github.com/royhills/arp-scan)
|10.0.0.14      |a4:1f:72:7f:25:bb|   0.280|
|10.0.0.22      |10:60:4b:73:43:de|   0.293|
|10.0.0.74      |00:0c:29:90:07:e9|   0.380|
|10.0.0.75      |00:0c:29:66:9e:c2|   0.311|
|10.0.0.76      |00:0c:29:d0:e1:ea|   0.326|
|10.0.0.82      |9c:b6:54:bb:f3:ec|   0.216|
|10.0.0.84      |00:21:9b:fd:b9:b3|   0.244|
|10.0.0.85      |00:02:b3:eb:5a:f8|   0.244|
|10.0.0.91      |00:9c:02:a5:7b:29|   0.209|
|10.0.0.92      |d4:ae:52:d0:07:6f|   0.289|
|10.0.0.93      |d4:ae:52:d0:04:9b|   0.278|
|10.0.0.96      |9c:b6:54:bb:f5:35|   0.255|
|10.0.0.97      |00:0c:29:0e:95:20|   0.288|
|10.0.0.104     |50:65:f3:f0:70:a4|   0.263|

14 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.9: 256 hosts scanned in 2.032 seconds (125.98 hosts/sec). 14 responded

CSV 출력

--plain 불필요한 출력을 제거합니다.

$ arp-scan -I eth0 --plain --format='${ip},${mac},"${vendor}"' 10.0.0.0/24
10.0.0.14,a4:1f:72:7f:25:bb,"Dell Inc."
10.0.0.22,10:60:4b:73:43:de,"Hewlett Packard"
10.0.0.74,00:0c:29:90:07:e9,"VMware, Inc."
10.0.0.75,00:0c:29:66:9e:c2,"VMware, Inc."
10.0.0.76,00:0c:29:d0:e1:ea,"VMware, Inc."
10.0.0.82,9c:b6:54:bb:f3:ec,"Hewlett Packard"
10.0.0.84,00:21:9b:fd:b9:b3,"Dell Inc."
10.0.0.85,00:02:b3:eb:5a:f8,"Intel Corporation"
10.0.0.91,00:9c:02:a5:7b:29,"Hewlett Packard"
10.0.0.92,d4:ae:52:d0:07:6f,"Dell Inc."
10.0.0.93,d4:ae:52:d0:04:9b,"Dell Inc."
10.0.0.96,9c:b6:54:bb:f5:35,"Hewlett Packard"
10.0.0.97,00:0c:29:0e:95:20,"VMware, Inc."
10.0.0.104,50:65:f3:f0:70:a4,"Hewlett Packard"

또한보십시오

get-oui(1)

arp-fingerprint(1)

http://www.royhills.co.uk/wiki/ The arp-scan wiki page.

https://github.com/royhills/arp-scan The arp-scan homepage.