Bash Script: Hasonlítsa össze a hálózat összes számítógépének MAC-ját egy adott számítógéppel

Itt egy bash forgatókönyvről fogok beszélni, amelyet nagyon konkrét céllal készítettem, és kétlem, hogy másoknak is van ilyen helyzetük, de mivel én programoztam ... nekem nem kerül semmibe megosztani 🙂

Az emeleten miről van szó?

Előfordul, hogy az én városomban meglehetősen nagy a hálózat, sokan vezetékes módon csatlakozunk (hálózati kábel egy kapcsolóhoz, egy másikhoz van kapcsolva, és sok kapcsoló hehe), de nagy kapcsolatok (amelyek nem vezethetők át kábelen) Csinálják a Wi-Fi berendezéseket, ily módon több ezer felhasználóval rendelkező hálózatod van, hogy bár nincs mail szolgáltatás és sokkal kevesebb internet van, a WoW játékot játszod (többek között), tanulsz, információkat osztasz meg stb.

Tény, hogy előfordult, hogy bizonyos Wi-Fi-eszközöket tiltanak vagy kizárnak a hálózatból, vagy azért, mert tulajdonosa megsérti a hálózati szabályokat, vagy bármi más. Tehát minden egyes alkalommal meg kell vizsgálni, hogy valaki újracsatlakoztatta-e a kiadott számítógép MAC-ját, és ez az a hely, ahol ez a szkript bejön.

Egyszerűen fogalmazva, mit csinál a forgatókönyv?

  1. Először beolvassa a futó alhálózatot, és észleli az élő gazdagépeket (az aktív IP-ket)
  2. Ezután ellenőrizze, hogy ezen IP-k bármelyike ​​Ubiquiti-e (linkekre használt berendezés). Valójában csak akkor észleli, hogy a 443-as port nyitva van-e a fenti IP-k mindegyikén.
  3. Eltávolítja minden élő eszköz MAC-ját, és nyitva van a 443-as port, ugyanakkor összehasonlítja az egyes kivont MAC-okat a keresettekkel.
  4. Ha talál egyezést, jelentést generál.

Gyerünk, a kódhoz!

Érvényes annak tisztázására, hogy működéséhez a következő csomagokra van szükség: nmap… nc… arping

Nos, az nmap segítségével elvégzi a leképezést az aktív IP-k felderítésére, az nc-vel pedig azt, hogy melyiknek van nyitva a 443-as portja, végül arpolással kivonja a MAC-ot.

Igen, tudom, hogy az nmap segítségével mindezt megteheti, de több másodpercbe (vagy percekbe) is beletelt, inkább több eszközt használtam egy helyett, hogy minden gyorsabban működjön.

Igen, most…. a kód!

#! / bin / bash # # Szükséges a csomagok telepítése: # nmap, arping, nc # # Szerző: KZKG ^ Gaara törlés # Változók deklarálása DATE = `dátum + '% Y-% m-% d_% H-% M '' INTERFACE = 'wlo1' WANTEDMAC = 'C8: CB: B8: B1: DA: E6' YOURIP = `ifconfig | grep "192.168" | awk '{print $ 2}' 'YOURZONE = `echo $ YOURIP | awk -F "." '{print $ 3}' '# Alive Hostok meghúzása a hálózaton (az Ön IP-jén) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "jelentés" | awk '{print $ 5}'> hosts-ip # Ha látja, hogy ezek a Gazdák közül melyik lehet Nano, azáltal, hogy a 443-as port nyitott rm hosts-nanos &> / dev / null a TMPVAR számára a `cat cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null, ha [$? -ne 1]; majd visszhangozza a "$ TMPVAR" >> hosts-nanos fi kész # A MAC eltávolítása a nanókból a hálózaton rm hosts-mac &> / dev / null a TMPVAR számára a `macska gazdagépek-nanókban` do arping -I $ INTERFACE -f $ TMPVAR | grep "válasz a következőtől" | awk '{print $ 5}' | vágd -d '[' -f2 | kivágás -d ']' -f1 >> hosts-mac kész # A kinyert MAC-ok összehasonlítása a keresett MAC-kal a `cat hosts-mac` do-ban, ha [" $ MAC "=" $ WANTEDMAC "]; akkor MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `macska gazdanadrok | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, ellopott eszköz MAC-je észlelhető: $ MAC ... IP-vel: $ IPMAC" echo -e "\ t ... Jelentés készítése ... "echo -e" SpyMac által létrehozott jelentés \ n "> final_report_ $ YOURZONE.info echo -e" Jelentés pillanata: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" Az ellopott eszköz MAC-je észlelve: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" A számítógép által jelenleg használt IP: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" A jelentést létrehozta: $ YOURIP \ n ">> final_report_ $ A YOURZONE.info fi kilépett

Ha talál egyezést, megmutatja nekünk a megtalált MAC-ot és az adott berendezés által használt IP-t.

Ennek (még mindig) vannak hiányai hehe

szerver

Tudom, hogy van mit javítani, például meghamisíthatók a MAC-ok, a MAC számítógépre cserélhető és ennyi, én még mindig azt keresem, hogyan lehet a valódi MAC-t látni, és nem a hamisat, ha ez a helyzet.

Ezenkívül egy másik for ciklus hozzáadásával egyszerre több MAC-ot is összehasonlíthatok, és nem csak egy adotthoz hasonlítok / keresek, vagyis keresem azokat a MAC-okat, amelyek egy listában szerepelnek, 5, 10, bármi is legyen. Olyasmi, amit még meg kell tennem.

Lehet, hogy ez egy Nano, de blokkolva van a 443-as port, tudom, hogyan lehet teljes biztonsággal tudni, hogy Ubiquiti eszközről van-e szó, vagyis curl (vagy wget) segítségével megkaphatom a bejelentkezési űrlapot, és összehasonlíthatom egy Ubiquiti egyikével, ez biztonságosabb módszer, mint a 443-as portnál. Ez egy további részlet, amelyet hozzá kell adni a jövőbeni verziókhoz.

Azt is szeretném (ami számomra már nehéz) generálni egy kis szkriptet vagy akár egy APK-t, hogy ez az eszköz legyen az Android-on. Tudom, hogy nem fogom tudni betenni a Play Áruház de…. bueh, nem azért akarok 😀

Ah, iPhone-felhasználók ... még akkor sem, ha tudok (tudás és idő érdekében) portálom ezt az eszközt az iOS-re ... JUAZ JUAZ JUAZ ... nézd meg App Store Lássuk, véletlenül van-e valami hasonló, amiben kétlem

vég

A jó minden. Ismétlem, úgy gondolom, hogy az adott szkript sokak számára nem biztos, hogy hasznos (egészen konkrét helyzetre szól), de talán a kód egyes részei igen, remélhetőleg, és ez így van 😀


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   angyalpenge dijo

    Az nmap segítségével megkapja a MAC ADDRESS-t anélkül, hogy meg kellene tennie ezt az ips-leképezést és az ellenőrzést az nc-vel és az arping használatát

    opció a -PR

    valami hasonló
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{print $ 3}

    1.    eliotime3000 dijo

      Jó tipp, bár szükség van gyökérre.

  2.   dario dijo

    A bash általában elég olvashatatlan, hacsak nem maga csinálta a szkriptet. de a kódjai érthetőek xD

    Egy másik dolog, amit tehet, az egy egyszerű ping a különböző IP-knek, majd megnézi az arp táblákat az arp -a paranccsal (egyes esetekben telepítenie kell a net eszközöket) és a pingelt mac címeket. a leggyorsabb megoldás.

  3.   dario dijo

    vagy még jobb
    echo "test"> /dev/tcp/www.google.com/80
    ha hibát ad, akkor a (80) port zárva van

  4.   Mario dijo

    Helló, tudná-e megvalósítani az SNMP-t, hogy képes legyen azonosítani olyan kérdéseket, mint például milyen típusú berendezés, milyen márka, milyen képességekkel rendelkezik, ez lehet a válasz a megváltozott vagy virtuális MAC esetére is; akár "kezelni" is eljuthat, ha a konf. Az SNMP szolgáltatás gyenge. Csak egy vélemény, megnyitva a forgatókönyv lehetőségeinek skáláját. Nagyon jó blog, örülök, hogy megtaláltam őket, gyakran olvasom őket! Ölelés.

  5.   Frank Sándor dijo

    Ez a bash forgatókönyv rendkívül inspiráló.

  6.   tűzeset dijo

    A forgatókönyv nagyon érthető és nagyon jó, köszönöm, jó ötleteket adott, Üdvözlet

  7.   pegasusonline dijo

    Nagyon jó lenne, ha feltennéd a GITHUB-ra, így ott mindannyian együttműködnénk.

    Köszönet a megosztásért!
    Üdvözlet

  8.   Luciano Lagassa dijo

    Helló, a bash szkripted nagyon jó, a magam részéről azt javaslom, hogy a biztonság javítása érdekében hajtson végre egy hitelesítési módszert, például WIP-eket, hogy megakadályozza az illetéktelen vagy kiutasított felhasználók belépését. nagyon sok szoftver használható.

  9.   vadász dijo

    Ha hamisít egy mac-ot, akkor a hamis macot csomagokban küldi (2. réteg OSI), csak akkor találja meg a valódit, ha a támadó hálózati kártyáját visszaállítják.

  10.   Sándor seijas dijo

    Érdekel a forgatókönyve ... nos, kerestem egy kicsit összetettebbet vagy talán egyszerűbbet.

    a helyzet az, hogy van egy nagy hálózatom 250 géppel, és vannak Wi-Fi pontok, de ugyanazt a telket vásárolják ...

    Tudni fogja, hogyan tudnám összehasonlítani a mac-ot egy ip-vel, és hogy azt korábban be kell jelenteni, tehát ha van egy vicces ember, aki megváltoztatja az ip-t, legyen figyelmeztetés arra, hogy az ip és a mac nem egyezik.

    Remélem, elmagyaráztam magam….

    Annak ellenére, hogy bárhol kerestem, nem találok semmit erről.

  11.   Hotmail dijo

    Köszönöm, hogy megosztottad a szkriptet, módosítanom kell rajta, de alapvetően ez az, amit kerestem, megint nagyra értékeltem. Egészségére

  12.   Isidoro dijo

    Pont azt, amit kerestem, mert szükségem van a málnámra, hogy észleljem, amikor a telefonom csatlakozik a wifi-hez, hogy futtassak egy másik bash-t.
    Köszönöm szépen