Bash Script: Sammenlign MAC med alle computere på et netværk med en bestemt

Her vil jeg tale om et bash-script, som jeg lavede til et meget specifikt formål, som jeg tvivler på, at andre har denne situation, men da jeg programmerede det ... koster det mig ikke noget at dele det 🙂

Ovenpå, hvad handler det om?

Det sker, at der i min by er et ret stort netværk, mange af os forbinder på en kabelforbundet måde (et netværkskabel til en switch, forbundet til et andet og mange switches hehe), men store links (som ikke kan ske via kabel) De gør med Wi-Fi-udstyr, på denne måde har du et netværk med flere tusinde brugere, at selvom der ikke er nogen mailservice og meget mindre internet, spiller du WoW (blandt andre), du lærer, deler information osv.

Faktum er, at det har været tilfældet, at bestemt Wi-Fi-udstyr er forbudt eller udvist fra netværket, enten fordi dets ejer overtræder netværksregler eller hvad som helst. Så det er nødvendigt at foretage en scanning hver X gang for at kontrollere, om nogen har tilsluttet MAC på den udkastede computer igen, og det er her dette script kommer ind.

Kort sagt, hvad gør manuskriptet?

  1. Først scanner den i undernettet, hvor den kører, og registrerer liveværterne (de aktive IP'er)
  2. Kontroller derefter, om nogen af ​​disse IP'er er en Ubiquiti (udstyr, der bruges til links). Det registrerer faktisk kun, om port 443 er åben på hver af ovenstående IP'er.
  3. Det tager MAC for hver live enhed og med port 443 åben, samtidig med at man sammenligner hver MAC ekstraheret med den der søges.
  4. Hvis det finder et match, genererer det en rapport.

Kom videre til koden!

Gyldigt for at afklare, at det for dens drift har brug for følgende pakker installeret: nmap… nc… arping

Nå med nmap gør det kortlægningen for at detektere aktive IP'er, med nc kontrollerer den, hvilken der har port 443 åben, og til sidst med arping udtrækker den MAC.

Ja, jeg ved, at med nmap kan du gøre alt dette, men det tog flere sekunder (eller minutter mere), jeg foretrak at bruge flere værktøjer i stedet for kun et for at få alt til at fungere hurtigere.

Ja nu…. koden!

#! / bin / bash # # Kræver, at pakkerne er installeret: # nmap, arping, nc # # Forfatter: KZKG ^ Gaara clear # Erklærende variabler 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 = `ekko $ YOURIP | awk -F "." '{print $ 3}' '' # Pulling Alive Hosts på netværket (din IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "rapport for" | awk '{print $ 5}'> hosts-ip # At se, hvilken af ​​disse værter der kan være en nano ved at have port 443 åben rm-hosts-nanos &> / dev / null for TMPVAR i `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null hvis [$? -ne 1]; derefter ekko "$ TMPVAR" >> hosts-nanos fi done # Fjernelse af MAC fra Nanos på netværket rm hosts-mac &> / dev / null for TMPVAR i `cat hosts-nanos` gør arping -I $ INTERFACE -f $ TMPVAR | grep "svar fra" | awk '{print $ 5}' | klippe -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Sammenligning af udpakkede MAC'er med den søgte MAC i `cat hosts-mac` gør hvis [" $ MAC "=" $ WANTEDMAC "]; derefter MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `cat hosts-nanos | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, MAC for stjålet enhed opdaget: $ MAC ... Med IP: $ IPMAC" echo -e "\ t ... Genererer rapport ... "echo -e" Rapport genereret af SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" Rapportmoment: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" MAC af stjålet enhed opdaget: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP bruges i øjeblikket af denne computer: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" Rapport genereret af: $ YOURIP \ n ">> final_report_ $ YOURZONE.info er afsluttet

Hvis der findes et match, viser det os den MAC, der er fundet, og også den IP, der bruges af det udstyr.

Dette (har stadig) huller hehe

server

Jeg ved, at der er ting at forbedre, for eksempel kan MAC'erne forfalskes, MAC'en kan ændres til computeren, og det er det, jeg leder stadig efter, hvordan man ser den rigtige MAC og ikke den falske, hvis det er tilfældet.

Ved at tilføje en anden til loop kan jeg også få flere MAC'er til at blive sammenlignet på samme tid og ikke kun sammenligne / søge efter en bestemt, det vil sige søge efter de MAC'er, der er på en liste, 5, 10, uanset hvad de er. Det er noget, jeg endnu ikke skal gøre.

Måske er det en Nano, men den har blokeret port 443, jeg ved, hvordan man kan vide med total sikkerhed, om det er en Ubiquiti-enhed eller ej, det vil sige med curl (eller wget), jeg kan få loginformularen og sammenligne den med en af ​​en Ubiquiti, dette er en mere sikker metode end med port 443. Det er en anden detalje at tilføje i fremtidige versioner.

Jeg vil også gerne (hvilket vil være svært for mig) at generere et lille script eller endda en APK for at have dette værktøj på min Android. Jeg ved, at jeg ikke kan sætte det i Play butik men…. bueh, det er ikke det, jeg vil 😀

Ah, iPhone-brugere ... ikke engang hvis jeg kan (på grund af viden og tid) ville jeg portere dette værktøj til iOS ... JUAZ JUAZ JUAZ ... se i din App Store Lad os se om de tilfældigt har noget lignende, hvilket jeg tvivler på 😀

ende

Godt er alt. Jeg gentager, jeg tror, ​​at det specifikke script måske ikke er nyttigt for mange (det er til en ganske specifik situation), men måske dele af koden ja, forhåbentlig og det er sådan 😀


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   engelblad sagde han

    Med nmap kan du få MAC-ADRESSE uden at skulle kræve, at ips-kortlægning og denne verifikation med nc og brug af arping

    mulighed er -PR

    noget i den stil
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{udskriv $ 3}

    1.    eliotime3000 sagde han

      Godt tip, selvom det nødvendigvis kræver rod.

  2.   dario sagde han

    bash er generelt ret uleselig, medmindre du selv lavede scriptet. men dine koder er forståelige xD

    En anden ting, du kan gøre, er en simpel ping til de forskellige IP'er, så skal du se på arp-tabellerne med kommandoen arp -a (i nogle tilfælde skal du installere netværktøjer) og de mac-adresser, der blev pinget, jeg tror det er den hurtigste løsning.

  3.   dario sagde han

    eller endnu bedre
    ekko "test"> /dev/tcp/www.google.com/80
    hvis det giver en fejl, lukkes porten (80)

  4.   Mario sagde han

    Hej, kunne du implementere SNMP for at kunne identificere problemer som hvilken type udstyr det er, hvilket mærke, hvilke funktioner det har, det kan også være svaret på sagen en ændret eller virtuel MAC; du kan endda komme til "administrere", hvis conf. snmp-tjenesten er svag. Bare en mening, der åbner rækken af ​​muligheder for dit script. Meget god blog, jeg er glad for, at jeg fandt dem, jeg læste dem ofte! kram.

  5.   Frank Alexander sagde han

    Det bash-script er enormt inspirerende.

  6.   ildkoldt sagde han

    Manuset er meget forståeligt og meget godt, tak, det gav mig gode ideer, hilsner

  7.   Pegasus online sagde han

    Det ville være dejligt, hvis du anbragte det på GITHUB, så vi ville alle samarbejde der.

    Tak fordi du delte!
    hilsen

  8.   Luciano Lagassa sagde han

    Hej, dit bash-script er meget godt, for min del anbefaler jeg, at du for at forbedre sikkerheden kan implementere en godkendelsesmetode, såsom wisps, for at forhindre uautoriserede eller udviste brugere i at komme ind. der er en masse software, de kan bruge.

  9.   djæger sagde han

    Når du spoofer en mac, hvad du gør er at sende den falske mac i pakker (lag 2 OSI), kan du ikke finde den rigtige, medmindre angriberens netværkskort nulstilles.

  10.   Alexander Seijas sagde han

    Jeg er interesseret i dit script ... Nå, jeg har ledt efter en lidt mere kompleks eller måske simpel.

    sagen er, at jeg har et stort netværk på 250 maskiner, og der er Wi-Fi-punkter, men de køber det samme plot ...

    Du ved, hvordan jeg kunne få en mac til at sammenligne med en ip, og at den tidligere skulle erklæres, så når der er en sjov person, der ændrer ip, skal du have en advarsel om, at ip og mac ikke stemmer overens.

    Jeg håber, jeg har forklaret mig selv….

    Selvom jeg har søgt overalt, kan jeg ikke finde noget om det….

  11.   Hotmail sagde han

    Tak for at dele scriptet, jeg bliver nødt til at foretage nogle ændringer til det, men dybest set er det, hvad jeg ledte efter, igen værdsat. Skål

  12.   Isidore sagde han

    Lige hvad jeg ledte efter, fordi jeg har brug for min hindbær til at opdage, hvornår min telefon opretter forbindelse til wifi for at køre en anden bash.
    Mange tak