arp-scan - Kirim permintaan ARP ke host target dan tampilkan respons
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 mengirim paket permintaan ARP ke host yang ditentukan dan menampilkan respons apa pun yang diterima. Antarmuka jaringan dapat ditentukan dengan opsi --interface. Jika tidak ada antarmuka yang ditentukan, arp-scan akan memilih antarmuka terkonfigurasi bernomor terendah (tidak termasuk loopback).
arp-scan menggunakan soket mentah, yang memerlukan hak istimewa pada beberapa sistem:
arp-scan menyadari kemampuan. Itu membutuhkan CAP_NET_RAW dalam set yang diizinkan dan hanya mengaktifkan kemampuan itu untuk fungsi yang diperlukan. gunakan setcap cap_net_raw+p /path/to/arp-scan untuk menambahkan CAP_NET_RAW ke set yang diizinkan dari arp-scan yang dapat dieksekusi. Dukungan kapabilitas juga membuat root SUID jauh lebih aman karena arp-scan akan menghapus semua kapabilitas kecuali CAP_NET_RAW dan tidak akan berjalan dengan hak akses root penuh.
Anda memerlukan akses baca/tulis ke /dev/bpf*
Menjalankan sebagai root atau SUID root akan berfungsi pada OS apa pun tetapi metode lain lebih disukai jika memungkinkan.
ARP hanya beroperasi di jaringan lokal, dan tidak dapat dialihkan. Meskipun protokol ARP menggunakan alamat IPv4, ini bukan protokol IP dan arp-scan dapat digunakan pada antarmuka tanpa alamat IPv4.
Satu permintaan ARP dikirim untuk setiap target. Jika tuan rumah tidak merespons, permintaan akan dikirim ulang sekali lagi. Jumlah percobaan ulang dapat diubah dengan opsi --retry. Mengurangi jumlah percobaan ulang akan mengurangi waktu pemindaian dengan risiko kehilangan beberapa hasil karena kehilangan paket.
Anda dapat menentukan bandwidth yang akan digunakan arp-scan dengan opsi --bandwidth. Standarnya adalah 256000 bit per detik. Meningkatkan bandwidth akan mengurangi waktu pemindaian, tetapi menyetel bandwidth terlalu tinggi dapat menyebabkan laju paket siaran tinggi. Cara lain untuk menentukan tarif paket adalah dengan opsi --interval.
Waktu untuk pemindaian sekali jalan (yaitu dengan --retry=1) adalah:
waktu=n kali i + t + o
Di mana n adalah jumlah host, i adalah interval (diberikan dengan --interval atau dihitung dari --bandwidth), t adalah batas waktu (ditentukan dengan --timeout) dan o adalah waktu overhead yang diperlukan untuk memuat daftar target dan membaca file pemetaan MAC/Vendor. Overhead biasanya dapat diabaikan (biasanya sekitar 100 md) tetapi dapat dikurangi lebih lanjut dengan opsi --quiet. Untuk daftar kecil host, nilai batas waktu akan mendominasi, tetapi untuk daftar besar, interval paket adalah nilai yang paling penting.
Bagian apa pun dari permintaan ARP dapat dimodifikasi melalui penggunaan opsi --arpXXX seperti yang ditunjukkan pada tabel di bawah ini:
MEJA
Opsi yang paling umum adalah --arpspa, yang menetapkan alamat IPv4 sumber dalam permintaan ARP, memungkinkan permintaan ARP untuk menggunakan alamat sumber yang berbeda dari alamat antarmuka. Hal ini memungkinkan penggunaan arp-scan pada antarmuka tanpa alamat IPv4. Catatan: Menyetel ar$spa ke alamat IP target menyebabkan beberapa sistem operasi melaporkan bentrok alamat saat mereka menerima permintaan ARP untuk alamat mereka sendiri.
Anda juga dapat mengubah nilai di header bingkai Ethernet seperti yang ditunjukkan di bawah ini:
MEJA
Opsi --destaddr yang menetapkan alamat Ethernet tujuan adalah satu-satunya yang umum digunakan.
Secara default, respons ARP ditampilkan dalam format berikut:
| <IPv4 Address> | <MAC Address> | <Vendor Details> |
Di mana Alamat IPv4 adalah alamat IP dari target yang merespons, Alamat MAC adalah alamat lapisan tautannya dan Detail Vendor adalah detail vendor yang didekode dari alamat perangkat keras. Bidang keluaran dipisahkan oleh satu karakter tab. Anda dapat mengubah format keluaran dengan opsi --format.
Respons ditampilkan dalam urutan penerimaannya, yang mungkin berbeda dari urutan permintaan dikirim karena beberapa host mungkin merespons lebih cepat daripada yang lain.
Dekode vendor menggunakan file ieee-oui.txt dan mac-vendor.txt. ieee-oui.txt dihasilkan dari IEEE MA-L (OUI), MA-M, MA-S (OUI36) dan registry IAB. mac-vendor.txt berisi pemetaan MAC ke Vendor tambahan, dan dapat digunakan untuk menambahkan pemetaan khusus. get-oui dapat digunakan untuk memperbarui ieee-oui.txt dengan data terbaru dari pendaftar IEEE.
Semua host IPv4 harus menanggapi paket permintaan ARP, termasuk host dengan pemfilteran paket seperti firewall. Ini menjadikan arp-scan alat yang berguna untuk menemukan semua host IPv4 aktif di jaringan lokal.
Di mana opsi mengambil nilai, nilai itu ditentukan sebagai huruf dalam kurung sudut. Surat itu menunjukkan jenis data yang diharapkan:
String karakter.
Bilangan bulat desimal, atau hex jika diawali dengan 0x mis. 2048 atau 0x800.
Angka desimal titik mengambang.
alamat MAC, mis. 01:23:45:67:89:ab atau 01-23-45-67-89-ab (tidak peka huruf besar/kecil)
Alamat IPv4 mis. 10.0.0.1
Data biner yang disandikan hex. Tidak ada awalan 0x. (tidak peka huruf besar-kecil).
Sesuatu yang lain - lihat deskripsi opsi.
Tampilkan pesan penggunaan ini dan keluar.
Menampilkan pesan kemajuan verbose. Dapat digunakan lebih dari sekali untuk meningkatkan verbositas. Maks=3.
Tampilkan versi program dan keluar. Menampilkan versi, detail lisensi, versi libpcap, dan apakah dukungan kemampuan POSIX.1e disertakan.
Gunakan antarmuka jaringan <s>. Jika opsi ini tidak ditentukan, arp-scan akan mencari daftar antarmuka sistem untuk antarmuka terkonfigurasi bernomor terendah (tidak termasuk loopback).
Baca nama host atau alamat dari file yang ditentukan. Satu nama atau pola alamat per baris. Gunakan "-" untuk stdin.
Hasilkan alamat dari konfigurasi antarmuka. Menghasilkan daftar dari alamat antarmuka dan netmask (termasuk jaringan dan siaran). Anda tidak dapat menggunakan opsi --file atau memberikan target pada baris perintah. Gunakan --interface untuk menentukan antarmuka.
Gunakan file pemetaan vendor registri IEEE <s>. Standarnya adalah ieee-oui.txt di direktori saat ini. Jika tidak ditemukan /usr/share/arp-scan/ieee-oui.txt digunakan.
Gunakan file pemetaan vendor khusus <s>. Standarnya adalah mac-vendor.txt di direktori saat ini. Jika tidak ditemukan /etc/arp-scan/mac-vendor.txt digunakan.
Tampilkan output minimal untuk setiap host yang merespons. Hanya alamat IP dan alamat MAC yang ditampilkan. Mengurangi penggunaan memori sekitar 5MB karena file pemetaan vendor tidak digunakan. Hanya kolom $ {ip} dan $ {mac} yang tersedia untuk opsi --format jika - -quiet ditentukan.
Menekan teks header dan footer. Hanya tampilkan detail host yang merespons. Berguna jika output akan diuraikan oleh skrip.
Jangan tampilkan paket duplikat. Secara default, paket duplikat ditandai dengan (DUP: n) di mana n adalah berapa kali host ini merespons.
Menghitung dan menampilkan waktu pulang-pergi paket. Waktu ditampilkan dalam milidetik dan mikrodetik pecahan. Membuat bidang $ {rtt} tersedia untuk --format.
Tentukan string format output. Formatnya adalah string yang akan ditampilkan untuk setiap host yang merespons. Detail host dapat disertakan dengan memasukkan referensi ke kolom menggunakan sintaksis "$ {field[;width]}". Bidang ditampilkan rata kanan kecuali lebarnya negatif dalam hal mana perataan kiri akan digunakan. Nama bidang peka huruf besar-kecil berikut ini dikenali:
| 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 |
Hanya kolom $ {ip} dan $ {mac} yang tersedia jika opsi --quiet ditentukan.
Karakter apa pun yang bukan bidang adalah keluaran kata demi kata. "\" memperkenalkan jalan keluar:
| \n | newline |
| \r | carriage return |
| \t | tab |
| \ | suppress special meaning for following character |
Anda harus menyertakan argumen --format dalam 'tanda kutip tunggal' untuk melindungi karakter khusus dari shell.
Contoh: --format='$ {ip}\t$ {mac}\t$ {vendor}'
Acak daftar host target.
Benih generator nomor acak semu. Berguna jika Anda menginginkan urutan --random yang dapat direproduksi.
Setel jumlah percobaan per host ke <i>, default=2.
Tetapkan faktor mundur ke <f>, default=1,50. Mengalikan waktu tunggu dengan <f> untuk setiap lintasan.
Setel waktu tunggu awal per host ke <i> md, default=500. Batas waktu ini untuk paket pertama yang dikirim ke setiap host. timeout berikutnya dikalikan dengan faktor backoff yang diatur dengan --backoff.
Tetapkan interval paket minimum ke <x>. Ini mengontrol penggunaan bandwidth keluar dengan membatasi tingkat paket. Jika Anda ingin menggunakan bandwidth tertentu, lebih mudah menggunakan opsi --bandwidth. Intervalnya dalam milidetik, atau mikrodetik jika "u" ditambahkan.
Tetapkan bandwidth keluar ke <x>, default=256000. Nilainya dalam bit per detik. Tambahkan K untuk kilobit atau M untuk megabit (kelipatan desimal). Anda tidak dapat menentukan --interval dan --bandwidth.
Target harus berupa alamat IP, bukan nama host. Dapat mengurangi waktu startup untuk daftar target yang besar.
Selesaikan alamat yang merespons ke nama host. Format keluaran default akan menampilkan nama host alih-alih alamat IPv4. Opsi ini membuat bidang $ {nama} tersedia untuk opsi --format.
Tetapkan alamat Ethernet sumber ARP. Menyetel kolom ar$sha 48-bit tetapi tidak mengubah alamat perangkat keras di header bingkai, lihat --srcaddr untuk cara mengubah alamat tersebut. Default adalah alamat Ethernet dari antarmuka keluar.
Tetapkan alamat Ethernet target ARP. Menyetel bidang ar$tha 48-bit. Standarnya adalah nol, karena kolom ini tidak digunakan untuk paket permintaan ARP.
Setel jenis perangkat keras ARP, default=1. Menyetel bidang ar$hrd 16-bit. Standarnya adalah 1 (ARPHRD_ETHER). Banyak sistem operasi juga merespons 6 (ARPHRD_IEEE802).
Setel jenis protokol ARP, default=0x0800. Menyetel bidang ar$pro 16-bit. Sebagian besar sistem operasi hanya merespons 0x0800 (IPv4).
Tetapkan panjang alamat perangkat keras, default=6. Menyetel bidang ar$hln 8-bit. Panjang bidang ar$sha dan ar$tha tidak diubah oleh opsi ini; itu hanya mengubah bidang ar$hln.
Tetapkan panjang alamat protokol, default=4. Menyetel bidang ar$pln 8-bit. Panjang bidang ar$spa dan ar$tpa tidak diubah oleh opsi ini; itu hanya mengubah bidang ar$pln.
Tentukan operasi ARP, default=1. Menyetel bidang ar$op 16-bit. Sebagian besar sistem operasi hanya merespons nilai 1 (ARPOP_REQUEST).
Tetapkan alamat IPv4 sumber. Alamat harus dalam format dotted quad, atau string "dest" yang menetapkan alamat sumber ke alamat host target. Standarnya adalah alamat antarmuka keluar. Menyetel bidang ar$spa 32-bit. Beberapa sistem operasi hanya merespons jika alamat sumber berada di dalam jaringan antarmuka penerima. Menyetel ar$spa ke alamat IP tujuan dapat menyebabkan beberapa sistem operasi melaporkan bentrok alamat.
Tetapkan alamat MAC Ethernet sumber. Default adalah alamat MAC antarmuka. Ini menetapkan alamat di header Ethernet. Itu tidak mengubah alamat dalam paket ARP: gunakan --arpsha untuk mengubah alamat itu.
Tetapkan alamat MAC tujuan. Menetapkan alamat tujuan di header Ethernet. Standarnya adalah ff:ff:ff:ff:ff:ff (broadcast) Host juga merespons jika permintaan dikirim ke alamat unicast mereka, atau ke alamat multicast tempat mereka mendengarkan.
Menyetel jenis protokol Ethernet, default=0x0806. Ini menetapkan bidang jenis protokol di header Ethernet.
Gunakan enkapsulasi RFC 1042 LLC/SNAP untuk jaringan 802.2. arp-scan akan mendekode dan menampilkan respons ARP dalam format Ethernet-II dan IEEE 802.2 terlepas dari opsi ini.
Gunakan penandaan 802.1Q dengan id VLAN <i>. Id harus dalam rentang 0 hingga 4095. arp-scan akan mendekode dan menampilkan respons ARP dalam format 802.1Q terlepas dari opsi ini.
Keluar setelah jumlah host yang ditentukan telah merespons. arp-scan akan keluar dengan status 1 jika jumlah host yang merespons kurang dari batas. Dapat digunakan dalam skrip untuk memeriksa apakah lebih sedikit host yang merespons tanpa harus mengurai hasilnya.
Tulis paket yang diterima ke pcap savefile <s>. Tanggapan ARP akan ditulis ke file yang ditentukan serta diterjemahkan dan ditampilkan.
Setel panjang snap pcap ke <i>. Standar=64. Menentukan panjang tangkapan bingkai, termasuk header Ethernet. Standarnya biasanya cukup.
Tetapkan jumlah percobaan pengiriman, default=20.
Tetapkan interval antara upaya pengiriman. Interval dalam milidetik atau mikrodetik jika "u" ditambahkan. standar=5.
Tentukan padding setelah data paket. Setel padding setelah permintaan ARP ke nilai hex
arp-scan akan keluar dengan 0 jika berhasil diselesaikan atau >0 jika terjadi kesalahan.
Jika opsi --limit ditentukan, arp-scan juga akan keluar dengan kode keluar bukan nol jika jumlah host yang merespons kurang dari batas yang ditentukan.
Daftar IEEE OUI (Organisationally Unique Identifier) untuk pemetaan vendor.
Daftar MAC Ethernet lain untuk pemetaan vendor, termasuk tambahan lokal.
Pindai jaringan default menggunakan konfigurasi antarmuka IPv4 untuk menghasilkan daftar host yang akan dipindai.
$ 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 respondedPindai semua host di 10.0.0.0/24 menggunakan antarmuka eth0. Hitung waktu bolak-balik dan tampilkan dalam kolom yang disejajarkan menggunakan format khusus.
$ 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--plain menghapus keluaran asing.
$ 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.