Hogyan kapjak el ARP broadcast-et?
Ezzel próbálkozok: https://github.com/mscdex/cap, de egyelőre nem állt még össze a kép, hogy hogyan kéne beállítani ahhoz, hogy ARP broadcast-eket fogjon. Minden tippet szívesen fogadok. Úgy tudom, hogy elég ismeretlen lokális IP-vel pingelni a router-t, hogy kiküldjön egy ARP broadcast-et, szóval a tesztelés nem gond, viszont az elkapás nem igazán megy. Szerintem maga a cucc működhet, csak a beállításaimmal lehet a gond. A példakóddal próbálkoztam, csak az IP-t írtam át benne, az se volt világos, hogy mire kell átírni, de gondolom mást is át kéne állítani még ezen kívül, hogy menjen. Ma jobban beletúrok majd a dokumentációba, meg talán az elméleti részébe is, tegnap csak ennyire futotta.
■
Egyelőre addig jutottam, hogy
Problema
Az ARP csomag nem IP csomag.
Raadasul arra is erdemes figyelni, hogy az ethertype 1500 alatti ertekekre nem a csomagtipust, hanem a csomagmeretet jeloli.
Na
Köszi! Nem sokára lesz egy
Úgy néz ki működik, bár csak
Az normális, hogy néhány perc alatt több, mint 100 ilyen kérés jön-megy a hálózaton? Sokkal kevesebbre számítottam, meg arra, hogy csak a connect box felől és felé mennek ezek, de nagyjából minden küld mindennek ilyen ARP request-eket, broadcasteket. Ez lehet a neighbor discovery? Mindig ki akartam próbálni a neurális hálókat, hogy mire képesek, azzal tervezem, hogy elkülönítem az automata és emberi kéréseket. Kíváncsi vagyok mire jutok vele. Egyik ismerősöm ilyesmikkel dolgozik, és azt mondja olyat is el tudott már érni velük, hogy független változókat megmond a program, pl hogy milyen szögből fényképezték a kocsit, anélkül, hogy tudná milyen típusú kocsiról van szó.
Ami még érdekes, hogy egy eszközt nem tudtam beazonosítani MAC alapján. Gondolom a connect box lehet, mert az első 3 szám ugyanaz benne, mint amit az admin oldalán látok, de a többi mégis más.
Ami
Ami a tanulast illeti, igen, teljesen normalis hogy percenkent tobb szaz ilyen keres megy a halozaton, kulonosen ha tobb eszkozod van. Irhatsz erre a feladatra neuralis halot vagy genetikai tanulo algoritmust, de ez egyreszt agyuval verebre, masreszt az ARP csomagban onmagaban nincs elegendo informacio egy ilyen dontes meghozatalara, akarmilyen AI-t is teszel moge. Egy layer 3 proxy a megfelelo megoldas itt.
Ami a Neighbor Discoveryt illeti, nem, az IPv6 ONLY, IPv4-es halozatnal CSAK ARP van. Az elso harom szam a MAC addressekben a vendor prefix, vagyis nagyreszt azonos gyartotol szarmazo chipeid vannak
Ja, éreztem, hogy hiányos ez
Tudnál ajánlani olyan TCP, UDP proxy-t, amivel megoldható mindez? Gondolom azért bele kell valahogy fejleszteni az esemény kezelést.
Esetleg van rá mód, hogy ehhez az ismeretlen, de gyaníthatóan a connect box-hoz tartozó MAC address-hez IP címet rendeljek? Én is azért gondoltam, hogy a connect box lehet, mert ugyanaz a gyártója a chip-nek.
Érdekes, pedig nem tűnik IPv6-nak az itthoni háló a modem info, ipconfig, stb. alapján. Mellékelek egy részletet, amiből kiszűrtem minden felesleges sallangot, nagyjából ilyen a forgalom 2-3 perc alatt:
Wireshark
Közben már rájöttem, hogy a
Okés, kipróbálom wiresharkkal is, talán fent is van még a gépen.
ARP
Mint olyan, leggyakrabban egy Ethernet frameben fordul elo, viszont a benne talalhato informacio nemileg fuggetlen az ethernettol, igy erdekes mahinaciokat lehet vele csinalni.
A protokoll ugy kezdodik, hogy kimegy egy kerdes ("Kie ez az IP cim?", opcode 1) amire jon egy valasz ("Az enyem!", opcode 2). A kerdes broadcast formajaban megy ki, tehat a cel MAC address 00:00:00:00:00:00. A valasz viszont konkret geptol megy konkret gepre.
Mivel az ARP protokoll az IP szint alatt van, csak akkor fersz hozza, ha a tudsz raw socketre listenelni, vagyis Linux rendszereken legalabb NET_ADM capabilityvel kell rendelkezned, amit legegyszerubben rootkent indulva erhetsz el. Azt remelhetoleg mondanom sem kell, hogy nagyon rossz otlet netrol elerheto szolgaltatast rootkent futtatni, szoval itt egy kicsit izzadni kell majd.
Ezen felul a halozati interface mar hardver szinten szuri a nem neked erkezo csomagokat, tehat ha mindent latni akarsz, akkor az interface-t un. promisc modba kell kapcsolni, illetve ha switched van, nem hubod, akkor adott esetben port mirrort is kell confolni.
Szo mi szo, szerintem a NodeJS nem a legalkalmasabb eszkoz erre a feladatra, de megoldhato, majd ha lesz egy kis idom, kiprobalom hogy hogy van ez gondolva.
Egyelőre csak Windows-al
Kis adalék még, hogy elvileg 4 óránként is van automatikus broadcast, hogy frissítse az ARP cache-t a router-en, úgyhogy ezeket majd ki kell szűrnöm. Kíváncsi vagyok, hogyha összejön, akkor vajon megoldható e, hogy feláll a szerver és még timeout előtt kiszolgálja a kérést, ami az ARP broadcastet kiváltotta.
Sztem
En ehelyett azt csinalnam, hogy amelyik gepen futtatod ezt a kis izet, legyen egy mini tcp proxy is, ami szukseg eseten kikuldi a WOL-t. Ennek az is az elonye, hogy bufferelni is tudod az adatokat amig felebred a gep.
Off: toljatok az ilyen nehez kerdeseket, szeretem oket. :)
Én is gondoltam már a
– a router which supports port mirroring + an arduino
– a router with some kind of debug interface or IP traffic export + open firmware on the router / arduino
– a raspberry proxy server with sleep proxy feature and a router which can deliver 1Gb/s speeds on 2 parallel connections
– catching ARP broadcasts sent by the router looking for the sleeping server + open firmware on the router / arduino
Ha nem megy el az Ordroidom, akkor abból lehetne egy jó kis proxy.
Odroid
Gigabites hálóról van szó, és
Felreertesz
Nem értettem félre. Én HTTP
Sub