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

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

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…. vel, det er ikke det at 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 tilfeldigvis har noe lignende, noe jeg tviler på 

end

Vel det er alt. Jeg gjentar, jeg tror at det spesifikke skriptet kanskje ikke er nyttig for mange (det er for en veldig spesifikk situasjon), men kanskje deler av koden er det, håper jeg 