Bash Script: Porovnajte MAC všetkých počítačov v sieti s konkrétnym

Tu budem hovoriť o bash skripte, ktorý som vytvoril pre veľmi konkrétny účel, o ktorom pochybujem, že túto situáciu majú iní, ale keďže som ho naprogramoval ... zdieľanie s ním ma nestojí 🙂

O poschodie vyššie, o čo ide?

Stáva sa, že v mojom meste existuje pomerne veľká sieť, mnohí z nás sa pripájajú káblovým pripojením (sieťový kábel k prepínaču, prepojený s iným a veľa prepínačov hehe), ale veľké odkazy (ktoré nemôžu byť káblom) Využívajú vybavenie Wi-Fi, takže máte sieť s niekoľkými tisíckami používateľov, že aj keď neexistuje poštová služba a oveľa menej internetu, budete hrať WoW (okrem iných), naučíte sa, zdieľate informácie atď.

Faktom je, že určité zariadenia Wi-Fi sú zakázané alebo vylúčené zo siete, buď preto, že ich vlastník porušuje sieťové predpisy, alebo čokoľvek iné. Je teda potrebné každých X vykonať kontrolu, aby ste skontrolovali, či niekto znova pripojil MAC vysunutého počítača, a práve tu prichádza na rad tento skript.

Zjednodušene povedané, čo robí scenár?

  1. Najskôr vykoná skenovanie v podsieti, kde je spustená, a zistí aktívnych hostiteľov (aktívne adresy IP).
  2. Potom skontrolujte, či niektorá z týchto adries IP nie je Ubiquiti (zariadenie používané na odkazy). Vlastne zistí iba to, či je port 443 otvorený na každej z vyššie uvedených adries IP.
  3. Trvá MAC každého živého zariadenia a s otvoreným portom 443, pričom sa súčasne porovnáva každý extrahovaný MAC s hľadaným.
  4. V prípade, že nájde zhodu, vygeneruje správu.

Poď ku kódu!

Platné na objasnenie, že pre svoju činnosť potrebuje nainštalované nasledujúce balíčky: nmap… nc… arping

S nmap robí mapovanie na detekciu aktívnych IP adries, s nc potom kontroluje, ktorý z nich má otvorený port 443 a nakoniec pomocou arpingu extrahuje MAC.

Áno, viem, že s nmap to všetko môžete urobiť, ale trvalo to niekoľko sekúnd (alebo minút viac), radšej som použil niekoľko nástrojov, nie iba jeden, aby všetko fungovalo rýchlejšie.

Ano teraz…. kód!

#! / bin / bash # # Vyžaduje nainštalované balíčky: # nmap, arping, nc # # Autor: KZKG ^ Gaara clear # Deklarovanie premenných DATE = `date + '% 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}' '# # Pulling Alive Hosts on the network (your IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "správa pre" | awk '{print $ 5}'> hosts-ip # Pozrieť sa, ktorý z týchto hostiteľov môže byť Nano, mať port 443 otvorených rm hosts-nanos &> / dev / null pre TMPVAR v `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null, ak [$? -ne 1]; potom echo "$ TMPVAR" >> hosts-nanos fi hotovo # Odstránenie MAC z Nanos v sieti rm hosts-mac &> / dev / null pre TMPVAR v `cat hosts-nanos` do arpingu -I $ INTERFACE -f $ TMPVAR | grep "odpoveď od" | awk '{print $ 5}' | cut -d '[' -f2 | cut -d ']' -f1 >> hosts-mac hotovo # Porovnanie extrahovaných MAC s hľadaným MAC v `cat hosts-mac` urobiť if [" $ MAC "=" $ WANTEDMAC "]; potom MACLINE = `mačka hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `mačka hostitelia-nanos | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, detekovaný MAC ukradnutého zariadenia: $ MAC ... s IP: $ IPMAC" echo -e "\ t ... generovanie správy ... "echo -e" Správa vygenerovaná SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" Okamžik správy: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" Zistilo sa MAC ukradnutého zariadenia: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP, ktoré tento počítač momentálne používa: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" Správa vygenerovaná: $ YOURIP \ n ">> final_report_ $ Výstup YOURZONE.info je hotový

V prípade, že sa nájde zhoda, zobrazí sa nám nájdený MAC a tiež IP použitá týmto zariadením.

Toto (stále) má medzery hehe

server

Viem, že sú veci na zlepšenie, napríklad MAC sa dajú sfalšovať, MAC sa dá zmeniť na počítač a to je všetko, stále hľadám, ako vidieť skutočný MAC, a nie falošný, ak je to tak.

Tiež pridaním ďalšej slučky for môžem vytvoriť niekoľko MAC súčasne, aby som ich mohol porovnávať a neporovnávať / vyhľadávať iba konkrétny, to znamená vyhľadávať MAC, ktoré sú v zozname, 5, 10, nech sú akékoľvek. Je to niečo, čo ešte musím urobiť.

Možno je to Nano, ale má blokovaný port 443, viem, ako môžem s úplnou bezpečnosťou vedieť, či je to zariadenie Ubiquiti alebo nie, teda s curl (alebo wget), môžem získať prihlasovací formulár a porovnať ho s jedným z Ubiquiti, toto je bezpečnejšia metóda ako pri porte 443. Je to ďalší detail, ktorý treba pridať v budúcich verziách.

Tiež by som chcel (čo je pre mňa už ťažké) vygenerovať malý skript alebo dokonca súbor APK, aby som mal tento nástroj na svojom Androide. Viem, že to nebudem môcť vložiť Play Store ale…. bueh, nie je to tak, že by som chcela 😀

Ah, používatelia iPhonov ... ani keby som mohol (pre znalosti a čas) preniesol by som tento nástroj na iOS ... JUAZ JUAZ JUAZ ... pozrite sa do App Store Uvidíme, či náhodou nemajú niečo podobné, o čom pochybujem 😀

koniec

Dobré je všetko. Opakujem, myslím si, že konkrétny skript nemusí byť pre mnohých užitočný (je to pre celkom konkrétnu situáciu), ale možno časti kódu áno, dúfajme, a je to tak 😀


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   anjelská čepeľ dijo

    Pomocou nmap môžete získať MAC ADRESU bez toho, aby ste museli robiť toto mapovanie ips a toto overovanie pomocou nc a toho použitia arpingu

    možnosť je -PR

    niečo také
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{print $ 3}

    1.    eliotime3000 dijo

      Dobrý tip, aj keď to nevyhnutne vyžaduje koreň.

  2.   dario dijo

    bash je všeobecne dosť nečitateľný, pokiaľ ste si skript neurobili sami. ale tvoje kódy sú zrozumiteľné xD

    Ďalšia vec, ktorú môžete urobiť, je jednoduchý príkaz ping na rôzne adresy IP, potom sa pozriete na tabuľky arp pomocou príkazu arp -a (v niektorých prípadoch musíte nainštalovať sieťové nástroje) a adresy mac, ktoré boli pingované, myslím, že je najrýchlejšie riešenie.

  3.   dario dijo

    alebo ešte lepšie
    echo "test"> /dev/tcp/www.google.com/80
    ak urobí chybu, port (80) je zatvorený

  4.   mario dijo

    Dobrý deň, mohli by ste implementovať SNMP, aby ste boli schopní identifikovať problémy, ako napríklad o aký typ zariadenia ide, akú značku, aké má schopnosti, môže to byť odpoveď aj na prípad zmeneného alebo virtuálneho MAC; môžete dokonca získať "spravovať", ak je konf. služba snmp je slabá. Len názor, ktorý otvára možnosti vášho skriptu. Veľmi dobrý blog, som rád, že som ich našiel, často ich čítam! objať.

  5.   Frank Alexander dijo

    Ten bash skript je nesmierne inšpiratívny.

  6.   ohňostroj dijo

    Scenár je veľmi zrozumiteľný a veľmi dobrý, ďakujem, priniesol mi dobré nápady, Zdravím vás

  7.   pegasusonline dijo

    Bolo by skvelé, keby ste to dali na GITHUB, takže by sme tam všetci spolupracovali.

    Vďaka za zdieľanie!
    pozdravy

  8.   Luciano Lagassa dijo

    Dobrý deň, váš bash skript je veľmi dobrý. Pokiaľ ide o mňa, odporúčam vám, aby ste zlepšili zabezpečenie a implementovali metódu overovania, napríklad wisps, aby ste zabránili vstupu neoprávneným alebo vylúčeným používateľom. existuje veľa softvéru, ktorý môžu použiť.

  9.   lovec dijo

    Keď spoofujete mac, čo robíte, je posielať falošné mac v paketoch (vrstva 2 OSI), nemôžete odhaliť ten pravý, pokiaľ nie je resetovaná sieťová karta útočníka.

  10.   Alexander Seijas dijo

    Zaujíma ma váš scenár ... hľadal som trochu zložitejší alebo možno jednoduchý.

    vec je, že mám veľkú sieť 250 strojov a sú tam wifi body, ale kupujú rovnaký pozemok ...

    Budete vedieť, ako by som mohol urobiť mac porovnanie s ip a že by to malo byť predtým deklarované, takže keď je vtipný človek, ktorý zmení ip, upozornite, že ip a mac sa nezhodujú.

    Dúfam, že som si vysvetlil ...

    Aj keď som sa už pozrel všade, nenájdem nič o tom ...

  11.   Hotmail dijo

    Ďakujem za zdieľanie skriptu, budem ho musieť trochu upraviť, ale je to v podstate to, čo som hľadal, opäť ocením. Na zdravie

  12.   Izidor dijo

    Presne to, čo som hľadal, pretože potrebujem, aby moja malina zistila, keď sa môj telefón pripája k wifi, aby som spustil ďalšiu bash.
    Ďakujem moc