Bash Script: Sammenlign MAC av alle datamaskiner i et nettverk med et bestemt

Her vil jeg snakke om et bash-skript som jeg laget for et veldig spesifikt formål, som jeg tviler på at andre har denne situasjonen, men siden jeg programmerte den ... koster det meg ingenting å dele den 🙂

Oppe, hva handler dette om?

Det hender at i byen min er det et ganske stort nettverk, mange av oss kobler seg på en kablet måte (en nettverkskabel til en bryter, koblet til en annen, og mange brytere hehe), men store lenker (som ikke kan være via kabel) De gjøre med Wi-Fi-utstyr, på denne måten har du et nettverk med flere tusen brukere, at selv om det ikke er noen posttjeneste og mye mindre internett, spiller du WoW (blant andre), du lærer, deler informasjon, etc.

Faktum er at det har vært slik at bestemt Wi-Fi-utstyr er utestengt eller utvist fra nettverket, enten fordi eieren bryter med nettverksbestemmelsene, eller hva som helst. Så det er nødvendig å gjøre en skanning hver X for å sjekke om noen har koblet til MAC på den utkastede datamaskinen på nytt, og det er her dette skriptet kommer inn.

Enkelt sagt, hva gjør manuset?

  1. Først skanner den i undernettet der den kjører og oppdager live-vertene (de aktive IP-ene)
  2. Sjekk deretter om noen av disse IP-ene er en Ubiquiti (utstyr som brukes til lenker). Den oppdager faktisk bare om port 443 er åpen på hver av IP-ene ovenfor.
  3. Den fjerner MAC for hver live enhet og med port 443 åpen, mens det samtidig sammenlignes hver MAC ekstrahert med den som det søkes etter.
  4. I tilfelle den finner samsvar, genererer den en rapport.

Kom til koden!

Gyldig for å avklare at den trenger følgende pakker for sin drift: nmap ... nc ... arping

Vel, med nmap gjør den kartleggingen for å oppdage aktive IP-er, med nc sjekker den hvilken som har port 443 åpen, og til slutt med arping trekker den ut MAC.

Ja, jeg vet at med nmap kan du gjøre alt dette, men det tok flere sekunder (eller minutter mer), jeg foretrakk å bruke flere verktøy i stedet for bare ett for å få alt til å fungere raskere.

Ja nå…. koden!

#! / bin / bash # # Krever at pakkene er installert: # 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 = `echo $ YOURIP | awk -F "." '{print $ 3}' '`# Fjerne levende verter på nettverket (din IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "rapport for" | awk '{print $ 5}'> hosts-ip # Å se hvilke av disse vertene som kan være en Nano ved å ha port 443 åpen rm hosts-nanos &> / dev / null for TMPVAR i `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null hvis [$? -ne 1]; deretter ekko "$ TMPVAR" >> hosts-nanos fi done # Fjerne MAC fra Nanos på nettverket rm hosts-mac &> / dev / null for TMPVAR i `cat hosts-nanos` do arping -I $ INTERFACE -f $ TMPVAR | grep "svar fra" | awk '{print $ 5}' | klipp -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Sammenligning av ekstraherte MAC-er med det søkte etter MAC i `cat hosts-mac` gjør hvis [" $ MAC "=" $ WANTEDMAC "]; deretter MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `cat hosts-nanos | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, MAC av stjålet enhet oppdaget: $ MAC ... Med IP: $ IPMAC" echo -e "\ t ... Genererer rapport ... "echo -e" rapport generert av SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" Rapporter øyeblikk: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" MAC av stjålet enhet oppdaget: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP som for øyeblikket brukes av denne datamaskinen: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" Rapport generert av: $ YOURIP \ n ">> final_report_ $ YOURZONE .info ferdig utgang

Hvis det blir funnet en kamp, ​​vil den vise oss MAC funnet og også IP-en som brukes av utstyret.

Dette (fremdeles) har hull hehe

server

Jeg vet at det er ting å forbedre, for eksempel kan MACene forfalskes, MAC kan endres til datamaskinen, og det er det, jeg ser fremdeles etter hvordan jeg kan se den virkelige MAC og ikke den falske hvis det er tilfelle .

Ved å legge til en annen for loop kan jeg få flere MAC-er til å bli sammenlignet samtidig og ikke bare sammenligne / søke etter en bestemt, det vil si søke etter MAC-ene som er i en liste, 5, 10, uansett hva de er . Det er noe jeg ennå ikke har gjort.

Kanskje det er en Nano, men den har port 443 blokkert, jeg vet hvordan jeg skal kunne vite med total sikkerhet om det er en Ubiquiti-enhet eller ikke, det vil si med curl (eller wget), jeg kan få påloggingsskjemaet og sammenligne det med en av en Ubiquiti, er dette en sikrere metode enn med port 443. Det er en annen detalj å legge til i fremtidige versjoner.

Jeg vil også (som vil være vanskelig for meg) å generere et lite skript eller til og med en APK for å ha dette verktøyet på min Android. Jeg vet at jeg ikke vil kunne legge det inn Play-butikken men…. bueh, det er ikke det jeg vil 😀

Ah, iPhone-brukere ... ikke engang om jeg kan (på grunn av kunnskap og tid) vil jeg portere dette verktøyet til iOS ... JUAZ JUAZ JUAZ ... se i din App Store La oss se om de ved en tilfeldighet har noe lignende, noe jeg tviler på 😀

end

Bra er alt. Jeg gjentar, jeg tror at det spesifikke skriptet kanskje ikke er nyttig for mange (det er for en ganske spesifikk situasjon), men kanskje deler av koden ja, forhåpentligvis, og det er slik 😀


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   engelblad sa

    Med nmap kan du få MAC-ADRESSEN uten å kreve at ips-kartlegging og verifisering med nc og bruk av arping

    alternativet er -PR

    noe sånt
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{skriv $ 3}

    1.    eliotime3000. sa

      Godt tips, selv om det nødvendigvis krever rot.

  2.   dario sa

    bash er vanligvis ganske uleselig med mindre du gjorde skriptet selv. men kodene dine er forståelige xD

    En annen ting du kan gjøre er en enkel ping til de forskjellige ipene, så ser du på arp-tabellene med kommandoen arp -a (i noen tilfeller må du installere nettverktøy) og mac-adressene som ble pinget. Jeg tror det er den raskeste løsning.

  3.   dario sa

    eller enda bedre
    ekko "test"> /dev/tcp/www.google.com/80
    hvis det gir en feil, er porten (80) lukket

  4.   Mario sa

    Hei, kan du implementere SNMP for å kunne identifisere problemer som hvilken type utstyr det er, hvilket merke, hvilke funksjoner det har, en endret eller virtuell MAC kan også være svaret på saken; du kan til og med komme til å "administrere" hvis konf. snmp-tjenesten er svak. Bare en mening som åpner muligheten til skriptet ditt. Veldig bra blogg, jeg er glad jeg fant dem, jeg leser dem ofte! Klem.

  5.   Frank alexander sa

    Det bash-skriptet er enormt inspirerende.

  6.   brannkaldt sa

    Manuset er veldig forståelig og veldig bra, takk, det ga meg gode ideer, hilsen

  7.   Pegasus på nett sa

    Det ville være flott om du legger det i GITHUB, så vi vil alle samarbeide der.

    Takk for at du delte!
    Hilsen

  8.   Luciano Lagassa sa

    Hei, bash-skriptet ditt er veldig bra, for min del anbefaler jeg at du for å forbedre sikkerheten kan implementere en autentiseringsmetode, for eksempel wisps, for å forhindre at uautoriserte eller utvist brukere kommer inn. det er mye programvare de kan bruke.

  9.   dhunter sa

    Når du spoofer en mac, det du gjør er å sende den falske mac-en i pakker (lag 2 OSI), kan du ikke oppdage den virkelige med mindre angriperens nettverkskort tilbakestilles.

  10.   Alexander Seijas sa

    Jeg er interessert i skriptet ditt ... vel, jeg har lett etter en litt mer kompleks eller kanskje enkel.

    tingen er at jeg har et stort nettverk med 250 maskiner, og det er Wi-Fi-poeng, men de kjøper samme tomt ...

    Du vil vite hvordan jeg kan få en mac til å sammenligne med en ip, og at den skal erklæres tidligere, så når det er en morsom person som endrer ip, må du varsle at ip og mac ikke stemmer overens.

    Jeg håper jeg har forklart meg selv ...

    Selv om jeg har søkt overalt, kan jeg ikke finne noe om det ....

  11.   Hotmail sa

    Takk for at du delte skriptet, jeg må gjøre noen endringer i det, men i utgangspunktet er det det jeg lette etter, igjen verdsatt. Jubel

  12.   Isidore sa

    Akkurat det jeg lette etter, fordi jeg trenger bringebæret mitt for å oppdage når telefonen min kobles til wifi for å kjøre en annen bash.
    Tusen takk