Script Bash: vergelijk de MAC van alle computers in een netwerk met een specifieke

Hier zal ik het hebben over een bash-script dat ik heb gemaakt voor een heel specifiek doel, waarvan ik betwijfel of anderen deze situatie hebben, maar aangezien ik het heb geprogrammeerd ... kost het me niets om het te delen 🙂

Boven, waar gaat dit over?

Het komt voor dat er in mijn stad een vrij groot netwerk is, velen van ons verbinden via een bedrade manier (een netwerkkabel naar een switch, verbonden met een andere, en veel switches hehe), maar grote links (die niet via een kabel kunnen zijn) Dat doen ze met wifi-apparatuur, zo heb je een netwerk met enkele duizenden gebruikers, dat hoewel er geen mailservice is en veel minder internet, je wel WoW speelt (onder andere), je leert, informatie deelt, etc.

Feit is dat het zo is geweest dat bepaalde Wi-Fi-apparatuur is verbannen of van het netwerk wordt verwijderd, hetzij omdat de eigenaar de netwerkregels overtreedt, of wat dan ook. Het is dus nodig om elke X keer een scan uit te voeren om te controleren of iemand de MAC van de uitgeworpen computer opnieuw heeft aangesloten, en dit is waar dit script binnenkomt.

Simpel gezegd, wat doet het script?

  1. Eerst doet het een scan in het subnet waar het wordt uitgevoerd en detecteert het de live hosts (de actieve IP's)
  2. Controleer vervolgens of een van die IP-adressen een Ubiquiti is (apparatuur die voor links wordt gebruikt). Het detecteert eigenlijk alleen of poort 443 open is op elk van de bovenstaande IP's.
  3. Het verwijdert de MAC van elk live-apparaat en met poort 443 open, terwijl tegelijkertijd elke geëxtraheerde MAC wordt vergeleken met degene die wordt doorzocht.
  4. Als het een match vindt, genereert het een rapport.

Kom op naar de code!

Geldig om te verduidelijken dat het voor zijn werking de volgende geïnstalleerde pakketten nodig heeft: nmap… nc… arping

Welnu, met nmap doet het de mapping om actieve IP's te detecteren, met nc controleert het welke poort 443 open heeft, en tenslotte extraheert het met arping de MAC.

Ja, ik weet dat je dit allemaal met nmap kunt doen, maar het duurde een paar seconden (of minuten langer). Ik gebruikte liever meerdere tools in plaats van één om alles sneller te laten werken.

Ja nu…. de code!

#! / bin / bash # # Vereist dat de pakketten zijn geïnstalleerd: # nmap, arping, nc # # Auteur: KZKG ^ Gaara clear # Variabelen declareren 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}' `# Trekken van hosts op het netwerk (uw IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "rapport voor" | awk '{print $ 5}'> hosts-ip # Zien welke van deze Hosts een Nano kan zijn door poort 443 open rm hosts-nanos &> / dev / null voor TMPVAR in `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null als [$? -ne 1]; echo dan "$ TMPVAR" >> hosts-nanos fi done # MAC ophalen van Nanos in het netwerk rm hosts-mac &> / dev / null voor TMPVAR in `cat hosts-nanos` arping doen -I $ INTERFACE -f $ TMPVAR | grep "antwoord van" | awk '{print $ 5}' | cut -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Vergelijking van geëxtraheerde MAC's met de gezochte MAC in `cat hosts-mac` do if [" $ MAC "=" $ WANTEDMAC "]; dan MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `cat hosts-nanos | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, MAC van gestolen apparaat gedetecteerd: $ MAC ... Met IP: $ IPMAC" echo -e "\ t ... Rapport genereren ... "echo -e" Rapport gegenereerd door SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" Rapporttijd: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" MAC van gestolen apparaat gedetecteerd: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP momenteel gebruikt door deze computer: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" Rapport gegenereerd door: $ YOURIP \ n ">> final_report_ $ YOURZONE.info is klaar om af te sluiten

Als er een overeenkomst wordt gevonden, toont deze ons de gevonden MAC en ook het IP-adres dat door die apparatuur wordt gebruikt.

Dit heeft (nog) hiaten hehe

server

Ik weet dat er dingen zijn die verbeterd kunnen worden, de MAC's kunnen bijvoorbeeld worden vervalst, de MAC kan worden gewijzigd in de apparatuur en dat is het, ik ben nog steeds op zoek naar hoe ik de echte MAC kan zien en niet de valse als dat het geval is.

Door nog een for-lus toe te voegen, kan ik verschillende MAC's tegelijkertijd vergelijken en niet alleen naar één specifieke MAC zoeken / zoeken, dat wil zeggen, zoeken naar de MAC's die in een lijst staan, 5, 10, wat ze ook zijn. Het is iets dat ik nog moet doen.

Misschien is het een Nano, maar poort 443 is geblokkeerd, ik weet hoe ik met totale veiligheid kan weten of het een Ubiquiti-apparaat is of niet, dat wil zeggen, met curl (of wget) kan ik het inlogformulier krijgen en het vergelijken met een van een Ubiquiti, dit is een veiligere methode dan met poort 443. Het is een ander detail dat in toekomstige versies moet worden toegevoegd.

Ik zou ook graag (wat moeilijk voor me zal zijn) een klein script of zelfs een APK willen genereren om deze tool op mijn Android te hebben. Ik weet dat ik het niet in de Play Store maar…. bueh, het is niet dat ik wil 😀

Ah, iPhone-gebruikers ... zelfs niet als ik kan (voor kennis en tijd), zou ik deze tool naar iOS porteren ... JUAZ JUAZ JUAZ ... kijk in je App Store Laten we eens kijken of ze toevallig iets soortgelijks hebben, wat ik betwijfel 😀

uiteinde

Goed is alles. Ik herhaal, ik denk dat het specifieke script voor velen misschien niet nuttig is (het is voor een vrij specifieke situatie), maar misschien delen van de code ja, hopelijk en zo ook


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   engelenzwaard zei

    Met nmap kun je het MAC-ADRES krijgen zonder dat je die ips-mapping en die verificatie met nc en dat gebruik van arping hoeft te doen

    optie is -PR

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

    1.    eliotime3000 zei

      Goede tip, hoewel het noodzakelijkerwijs wortel vereist.

  2.   dario zei

    bash is meestal behoorlijk onleesbaar, tenzij je het script zelf hebt gemaakt. maar uw codes zijn begrijpelijk xD

    Een ander ding dat je kunt doen is een simpele ping naar de verschillende IP's, dan kijk je naar de arp-tabellen met het commando arp -a (in sommige gevallen moet je net tools installeren) en de mac-adressen die zijn gepingd, denk ik dat het is de snelste oplossing.

  3.   dario zei

    of nog beter
    echo "test"> /dev/tcp/www.google.com/80
    als het een fout geeft, is de poort (80) gesloten

  4.   Mario zei

    Hallo, zou u SNMP kunnen implementeren om problemen te kunnen identificeren zoals wat voor soort apparatuur het is, welk merk, welke mogelijkheden het heeft, een gewijzigde of virtuele MAC kan ook het antwoord zijn op de zaak; je kunt zelfs "beheren" als de conf. snmp-service is zwak. Gewoon een mening, waardoor het scala aan mogelijkheden van uw script wordt geopend. Zeer goede blog, ik ben blij dat ik ze heb gevonden, ik lees ze vaak! knuffel.

  5.   Frank Alexander zei

    Dat bash-script is enorm inspirerend.

  6.   vuurkoud zei

    Het script is erg begrijpelijk en erg goed, dank je, het gaf me goede ideeën, groeten

  7.   pegasusonline zei

    Het zou geweldig zijn als je het op GITHUB zou zetten, zodat we daar allemaal zouden samenwerken.

    Bedankt voor het delen!
    groeten

  8.   Luciano Lagassa zei

    Hallo, je bash-script is erg goed, van mijn kant raad ik aan dat je om de beveiliging te verbeteren een authenticatiemethode kunt implementeren, zoals dwaallichten, om te voorkomen dat onbevoegde of uitgesloten gebruikers binnenkomen. er is veel software die ze kunnen gebruiken.

  9.   djager zei

    Als je een mac vervalst, verstuur je de nep-mac in pakketten (laag 2 OSI), je kunt de echte niet ontdekken tenzij de netwerkkaart van de aanvaller wordt gereset.

  10.   Alexander Seijas zei

    Ik ben geïnteresseerd in je script ... nou, ik ben op zoek naar een iets ingewikkelder of misschien eenvoudiger.

    het punt is dat ik een groot netwerk van 250 machines heb en er wifi-punten zijn, maar ze kopen hetzelfde perceel ...

    Je zult weten hoe ik een mac kan laten vergelijken met een ip en dat het eerder moet worden gedeclareerd, dus als er een grappig persoon is die het ip verandert, moet je een waarschuwing krijgen dat het ip en het mac niet overeenkomen.

    Ik hoop dat ik mezelf heb uitgelegd….

    Ook al heb ik overal gezocht, ik kan daar niets over vinden….

  11.   Hotmail zei

    Bedankt voor het delen van het script, ik zal er enkele wijzigingen in moeten aanbrengen, maar eigenlijk is het wat ik zocht, opnieuw gewaardeerd. Proost

  12.   Isidoro zei

    Precies wat ik zocht, omdat ik mijn Raspberry nodig heb om te detecteren wanneer mijn telefoon verbinding maakt met wifi om nog een bash uit te voeren.
    heel hartelijk bedankt