arp-scan - ARP kérések küldése a célállomásoknak és válaszok megjelenítése
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).
Az arp-scan ARP-kéréscsomagokat küld a megadott gazdagépeknek, és megjeleníti a kapott válaszokat. A hálózati interfész a --interface opcióval adható meg. Ha nincs megadva interfész, az arp-scan a legalacsonyabb számú, konfigurált interfészt választja (kivéve a visszahurkolást).
Az arp-scan nyers socketeket használ, ami bizonyos rendszereken jogosultságokat igényel:
Az arp-scan ismeri a képességeket. A CAP_NET_RAW szükséges az engedélyezett készletben, és csak a szükséges funkciókhoz engedélyezi ezt a képességet. használja a setcap cap_net_raw+p /path/to/arp-scan parancsot a CAP_NET_RAW hozzáadásához az arp-scan végrehajtható fájl engedélyezett készletéhez. A képességek támogatása a SUID root rendszert is sokkal biztonságosabbá teszi, mivel az arp-scan a CAP_NET_RAW kivételével minden funkciót eldob, és nem fut teljes root jogosultsággal.
Olvasási/írási hozzáférésre van szüksége a következőhöz: /dev/bpf*
A root vagy a SUID rootként való futtatás bármely operációs rendszeren működik, de ahol lehetséges, más módszereket kell előnyben részesíteni.
Az ARP csak a helyi hálózaton működik, és nem irányítható. Bár az ARP protokoll IPv4-címeket használ, ez nem IP-protokoll, és az arp-scan használható IPv4-cím nélküli interfészeken.
Minden célhoz egy ARP-kérés kerül elküldésre. Ha egy gazdagép nem válaszol, a kérést még egyszer elküldi. Az újrapróbálkozások száma a --retry opcióval módosítható. Az újrapróbálkozások számának csökkentése csökkenti a szkennelési időt, azzal a kockázattal, hogy a csomagvesztés miatt néhány eredmény elmarad.
A --bandwidth opcióval megadhatja az arp-scan által használni kívánt sávszélességet. Az alapértelmezett 256 000 bit/s. A sávszélesség növelése csökkenti a pásztázási időt, de a sávszélesség túl nagy beállítása magas sugárzási csomagsebességet okozhat. A csomagsebesség másik módja a --interval opció.
Az egyszeri szkennelés ideje (azaz --retry=1 esetén):
idő=n-szer i + t + o
Ahol az n a gazdagépek száma, az i pedig az intervallum (a --interval paraméterrel megadva, vagy a --sávszélességből számítva), t az időtúllépés (a --timeout paraméterrel van megadva), az o pedig a céllista betöltéséhez és olvasásához szükséges többletidő a MAC/Vendor leképezési fájlokat. A többletköltség általában elhanyagolható (általában 100 ms körüli), de tovább csökkenthető a --quiet opcióval. Kis hosztlisták esetén az időtúllépési érték dominál, de nagy listáknál a csomagintervallum a legfontosabb érték.
Az ARP-kérés bármely része módosítható az --arpXXX opciók használatával, az alábbi táblázatban látható módon:
ASZTAL
A leggyakoribb lehetőség az --arpspa, amely beállítja a forrás IPv4-címét az ARP-kérésben, lehetővé téve az ARP-kérés számára, hogy az interfész címétől eltérő forráscímet használjon. Ez lehetővé teszi az arp-scan használatát IPv4-cím nélküli interfészeken. Megjegyzés: Ha az ar$spa értéket a cél IP-címére állítja, egyes operációs rendszerek címütközést jelentenek, amikor ARP-kérést kapnak saját címükre.
Az Ethernet-keret fejlécének értékeit az alábbiak szerint is módosíthatja:
ASZTAL
A cél Ethernet-címét beállító --destaddr opció az egyetlen általánosan használt beállítás.
Alapértelmezés szerint az ARP-válaszok a következő formátumban jelennek meg:
| <IPv4 Address> | <MAC Address> | <Vendor Details> |
Ahol az IPv4-cím a válaszoló cél IP-címe, a MAC-cím a hivatkozási réteg címe, a Szállító adatai pedig a szállító adatai, amelyeket dekódoltak a hardver címét. A kimeneti mezőket egyetlen tabulátor karakter választja el. A kimeneti formátumot a --format opcióval módosíthatja.
A válaszok a beérkezésük sorrendjében jelennek meg, ami eltérhet a kérések elküldésének sorrendjétől, mert egyes gazdagépek gyorsabban válaszolhatnak, mint mások.
A szállítói dekódolás az ieee-oui.txt és a mac-vendor.txt fájlokat használja. Az ieee-oui.txt az IEEE MA-L (OUI), MA-M, MA-S fájlokból jön létre (OUI36) és IAB nyilvántartások. A mac-vendor.txt további MAC-t tartalmaz a szállítói leképezésekhez, és egyéni leképezések hozzáadására használható. A get-oui segítségével frissítheti az ieee-oui.txt fájlt az IEEE nyilvántartások legfrissebb adataival.
Minden IPv4-állomásnak válaszolnia kell az ARP-kéréscsomagokra, beleértve a csomagszűréssel rendelkező gépeket is, például a tűzfalakat. Ezáltal az arp-scan hasznos eszköz a helyi hálózat összes aktív IPv4 gazdagépének felfedezéséhez.
Ha egy opció értéket vesz fel, az érték szögletes zárójelben lévő betűként van megadva. A levél a várt adatok típusát jelzi:
Karakterlánc.
Decimális egész szám, vagy hex, ha 0x előzi meg pl. 2048 vagy 0x800.
Lebegőpontos tizedes szám.
MAC cím, pl. 01:23:45:67:89:ab vagy 01-23-45-67-89-ab (kis- és nagybetűk megkülönböztetése)
IPv4 cím pl. 10.0.0.1
Hex kódolású bináris adat. Nincs vezető 0x. (nem érzékeny a kis- és nagybetűkre).
Valami más – lásd az opció leírását.
Jelenítse meg ezt a használati üzenetet, és lépjen ki.
Bőbeszédű folyamatüzenetek megjelenítése. Egyszer is használható a bőbeszédűség növelésére. Max=3.
A program verziójának megjelenítése és kilépés. Megjeleníti a verziót, a licenc részleteit, a libpcap verziót, és azt, hogy a POSIX.1e támogatást tartalmazza-e.
Használja a <s> hálózati interfészt. Ha ez az opció nincs megadva, az arp-scan megkeresi a rendszerinterfész listában a legalacsonyabb számú, konfigurált felfelé irányuló interfészt (kivéve a visszahurkolást).
Hostnevek vagy címek olvasása a megadott fájlból. Soronként egy név vagy címminta. Használja a "-" jelet az stdin-hez.
Címek generálása az interfész konfigurációjából. Listát generál az interfész címéből és hálózati maszkból (a hálózatot és a szórást is beleértve). Nem használhatja a --file opciót, és nem adhat meg célokat a parancssorban. Az interfész megadásához használja a --interface parancsot.
Használja az IEEE beállításjegyzék-szállító leképezési fájlját <s>. Az alapértelmezett ieee-oui.txt az aktuális könyvtárban. Ha ez nem található, a /usr/share/arp-scan/ieee-oui.txt fájl kerül felhasználásra.
Egyéni szállítóleképezési fájl használata <s>. Az alapértelmezett mac-vendor.txt az aktuális könyvtárban. Ha ez nem található, az /etc/arp-scan/mac-vendor.txt fájlt használja.
Minimális kimenet megjelenítése minden válaszoló gazdagéphez. Csak az IP-cím és a MAC-cím jelenik meg. Körülbelül 5 MB-al csökkenti a memóriahasználatot, mivel a gyártó leképezési fájljait nem használják. Ha - -quiet van megadva.
A fejléc és a lábléc szövegének letiltása. Csak a válaszoló gazdagép adatait jelenítse meg. Hasznos, ha a kimenetet egy szkript elemzi.
Ne jelenítsen meg ismétlődő csomagokat. Alapértelmezés szerint a duplikált csomagokat (DUP: n) jelzi, ahol az n az a szám, ahányszor a gazdagép válaszolt.
Számítsa ki és jelenítse meg a csomag oda-vissza idejét. Az idő ezredmásodpercben és töredék mikroszekundumban jelenik meg. Elérhetővé teszi a $ {rtt} mezőt a --formátum számára.
Adja meg a kimeneti formátum karakterláncát. A formátum egy karakterlánc, amely minden válaszoló gazdagéphez kerül kiadásra. A gazdagép részleteit a "$ {field[;width]}" szintaxist használó mezőkre való hivatkozások beszúrásával lehet megadni. A mezők jobbra igazítva jelennek meg, kivéve, ha a szélesség negatív, ebben az esetben a balra igazítás kerül alkalmazásra. A következő mezőneveket ismeri fel a rendszer, amelyek nem különböznek egymástól:
| 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 |
Csak a $ {ip} és $ {mac} mezők érhetők el, ha a --quiet beállítás meg van adva.
Minden olyan karakter, amely nem mező, szó szerint kerül kiadásra. "\" bevezeti a escape-ket:
| \n | newline |
| \r | carriage return |
| \t | tab |
| \ | suppress special meaning for following character |
A --format argumentumot „egyszeri idézőjelek” közé kell tennie, hogy megvédje a speciális karaktereket a shelltől.
Példa: --format='$ {ip}\t$ {mac}\t$ {vendor}'
Véletlenszerűsítse a célállomások listáját.
A pszeudo véletlenszám-generátor bevetése. Hasznos, ha reprodukálható --véletlen rendelést szeretne.
Állítsa be a gépenkénti próbálkozások teljes számát <i> értékre, alapértelmezett=2.
A visszalépési tényező beállítása <f> értékre, alapértelmezett=1,50. Megszorozza az időtúllépést a <f> értékkel minden egyes átlépésnél.
Állítsa be a kezdeti per host időtúllépést <i> ms-ra, alapértelmezett=500. Ez az időkorlát az egyes gazdagépnek elküldött első csomagra vonatkozik. a következő időtúllépések megszorozódnak a visszalépési tényezővel, amely a --backoff paraméterrel van beállítva.
Állítsa be a minimális csomagintervallumot a következőre: <x>. Ez szabályozza a kimenő sávszélesség-használatot a csomagsebesség korlátozásával. Ha egy adott sávszélességig szeretne használni, akkor egyszerűbb a --bandwidth opció használata. Az intervallum ezredmásodpercben van megadva, vagy mikroszekundumban, ha "u" van hozzáfűzve.
Állítsa a kimenő sávszélességet <x> értékre, alapértelmezett=256000. Az érték bit per másodpercben értendő. Hozzáfűzi a K-t kilobitekhez, vagy M-t a megabitekhez (tizedes többszörösek). Nem adhatja meg egyszerre a --interval és a --bandwidth elemet.
A célpontoknak IP-címeknek kell lenniük, nem állomásneveknek. Csökkentheti a nagy céllisták indítási idejét.
A válaszcímek feloldása gazdagépnevekre. Az alapértelmezett kimeneti formátum az IPv4-cím helyett a gazdagépnevet jeleníti meg. Ezzel az opcióval elérhetővé teszi a $ {name} mezőt a --formátum beállításhoz.
Állítsa be az ARP-forrás Ethernet-címét. Beállítja a 48 bites ar$sha mezőt, de nem változtatja meg a hardvercímet a keret fejlécében. A cím módosításáról lásd: --srcaddr. Az alapértelmezett a kimenő interfész Ethernet-címe.
Állítsa be az ARP cél Ethernet címét. Beállítja a 48 bites ar$tha mezőt. Az alapértelmezett érték nulla, mert ez a mező nem használható ARP-kéréscsomagokhoz.
Állítsa be az ARP hardver típusát, alapértelmezett=1. Beállítja a 16 bites ar$hrd mezőt. Az alapértelmezett érték 1 (ARPHRD_ETHER). Sok operációs rendszer a 6-ra is reagál (ARPHRD_IEEE802).
Állítsa be az ARP protokoll típusát alapértelmezett=0x0800 értékre. Beállítja a 16 bites ar$pro mezőt. A legtöbb operációs rendszer csak a 0x0800-ra (IPv4) reagál.
Állítsa be a hardvercím hosszát, alapértelmezett=6. Beállítja a 8 bites ar$hln mezőt. Ez a beállítás nem módosítja az ar$sha és az ar$tha mezők hosszát; csak az ar$hln mezőt módosítja.
Állítsa be a protokollcím hosszát, alapértelmezett=4. Beállítja a 8 bites ar$pln mezőt. Ez a beállítás nem módosítja az ar$spa és az ar$tpa mezők hosszát; csak az ar$pln mezőt módosítja.
Adja meg az ARP-műveletet, alapértelmezett=1. Beállítja a 16 bites ar$op mezőt. A legtöbb operációs rendszer csak az 1-es értékre válaszol (ARPOP_REQUEST).
Állítsa be a forrás IPv4-címét. A címnek pontozott négyes formátumban kell lennie, vagy a "dest" karakterláncnak, amely a forráscímet a cél gazdagép címére állítja be. Az alapértelmezett a kimenő interfész címe. Beállítja a 32 bites ar$spa mezőt. Egyes operációs rendszerek csak akkor válaszolnak, ha a forráscím a fogadó interfész hálózatán belül van. Ha az ar$spa-t a cél IP-címére állítja be, egyes operációs rendszerek címütközést jelenthetnek.
Állítsa be a forrás Ethernet MAC-címét. Az alapértelmezés az interfész MAC-címe. Ez beállítja a címet az Ethernet fejlécben. Nem változtatja meg az ARP-csomag címét: a --arpsha használatával módosíthatja a címet.
Állítsa be a cél MAC-címét. Beállítja a célcímet az Ethernet fejlécben. Az alapértelmezett érték: ff:ff:ff:ff:ff:ff (sugárzott) A gazdagépek akkor is válaszolnak, ha a kérést a saját unicast címükre vagy egy olyan csoportos küldési címre küldik, amelyen hallgatnak.
Beállítja az Ethernet protokoll típusát, alapértelmezett=0x0806. Ez beállítja a protokolltípus mezőt az Ethernet fejlécben.
Használjon RFC 1042 LLC/SNAP tokozást a 802.2 hálózatokhoz. Az arp-scan ettől a beállítástól függetlenül dekódolja és megjeleníti az ARP-válaszokat Ethernet-II és IEEE 802.2 formátumban is.
Használjon 802.1Q címkézést <i> VLAN azonosítóval. Az azonosítónak 0 és 4095 között kell lennie. Az arp-scan dekódolja és 802.1Q formátumban jeleníti meg az ARP válaszokat, ettől az opciótól függetlenül.
Lépjen ki, miután a megadott számú gazdagép válaszolt. Az arp-scan 1-es állapottal kilép, ha a válaszoló gazdagépek száma kisebb, mint a korlát. Használható szkriptekben annak ellenőrzésére, hogy kevesebb hoszt válaszol-e a kimenet elemzése nélkül.
Írja be a fogadott csomagokat a pcap mentési fájlba <s>. Az ARP-válaszok a megadott fájlba íródnak, dekódolódnak és megjelennek.
Állítsa a pcap raszter hosszát <i> értékre. Alapértelmezett=64. Megadja a keretrögzítés hosszát, beleértve az Ethernet fejlécet is. Az alapértelmezett érték általában elegendő.
Állítsa be a küldési kísérletek számát, alapértelmezett=20.
Állítsa be a küldési kísérletek közötti intervallumot. Az intervallum ezredmásodpercben vagy mikroszekundumban értendő, ha "u" van hozzáfűzve. alapértelmezett=5.
Adja meg a kitöltést a csomagadatok után. Állítsa be az ARP-kérés utáni kitöltést hexadecimális értékre
Az arp-scan 0-val fejeződik be sikeres befejezés esetén, vagy >0-val, ha hiba történt.
Ha a --limit opció meg van adva, az arp-scan szintén nullától eltérő kilépési kóddal lép ki, ha a válaszoló gazdagépek száma kisebb, mint a megadott korlát.
Az IEEE OUI (Organizationally Unique Identifier) listája a szállítói leképezésekhez.
Egyéb Ethernet MAC-leképezések listája a gyártóhoz, beleértve a helyi kiegészítéseket.
Vizsgálja meg az alapértelmezett hálózatot az interfész IPv4 konfigurációjával a vizsgálandó gazdagépek listájának létrehozásához.
$ 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 respondedVizsgálja meg az összes gazdagépet a 10.0.0.0/24-ben az eth0 interfész segítségével. Számítsa ki az oda-vissza utazási időt és jelenítse meg az igazított oszlopokban egyéni formátum használatával.
$ 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 respondedA --sima eltávolítja a felesleges kimenetet.
$ 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.