Bash skripta: Usporedite MAC svih računala u mreži s određenim

Ovdje ću govoriti o bash skripti koju sam izradio za vrlo određenu svrhu, a sumnjam da i drugi imaju ovu situaciju, ali, budući da sam je programirao ... ne košta me ništa da je podijelim 🙂

Gore, o čemu se radi?

Dogodi se da u mom gradu postoji prilično velika mreža, mnogi od nas povezuju se žičano (mrežni kabel na prekidač, povezan s drugim i mnogi prekidači hehe), ali velike veze (koje ne mogu biti kabelom) Oni rade s Wi-Fi opremom, na taj način imate mrežu s nekoliko tisuća korisnika, iako ne postoji usluga pošte, a još manje interneta, igrate WoW (između ostalih), učite, dijelite informacije itd.

Činjenica je da je slučaj da je određena Wi-Fi oprema zabranjena ili izbačena iz mreže, bilo zato što njezin vlasnik krši mrežna pravila, ili što već. Dakle, potrebno je svaki put napraviti skeniranje kako biste provjerili je li netko ponovno spojio MAC izbačenog računala i tu dolazi ova skripta.

Jednostavno rečeno, što skripta radi?

  1. Prvo izvrši skeniranje u podmreži gdje se izvodi i otkriva aktivne hostove (aktivne IP adrese)
  2. Zatim provjerite je li neka od tih IP adresa Ubiquiti (oprema koja se koristi za poveznice). Zapravo otkriva samo je li port 443 otvoren na svakoj od gore navedenih IP adresa.
  3. Uklanja MAC svakog aktivnog uređaja i s otvorenim priključkom 443, dok istovremeno uspoređuje svaki izvađeni MAC s onim koji se pretražuje.
  4. U slučaju da pronađe podudaranje, generira izvještaj.

Hajde, kod!

Valja pojasniti da su za njegov rad potrebni sljedeći paketi instalirani: nmap ... nc ... arping

Pa, s nmap vrši mapiranje kako bi otkrio aktivne IP adrese, s nc zatim provjerava kojem je otvoren port 443, a na kraju s arpingom izvlači MAC.

Da, znam da s nmapom možete sve to učiniti, ali trebalo je nekoliko sekundi (ili minuta više), radije sam koristio nekoliko alata umjesto samo jednog kako bih sve brže funkcioniralo.

Da sada…. kod!

#! / bin / bash # # Zahtijeva instaliranje paketa: # nmap, arping, nc # # Autor: KZKG ^ Gaara clear # Deklariranje varijabli DATUM = `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}' `` # Povlačenje živih hostova na mreži (vaš IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "izvještaj za" | awk '{print $ 5}'> hosts-ip # Vidjevši koji od ovih hostova može biti Nano tako što će imati port 443 otvoren rm hosts-nanos &> / dev / null za TMPVAR u `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null ako je [$? -ne 1]; zatim odjeknite "$ TMPVAR" >> hosts-nanos fi gotovo # Uklanjanje MAC-a iz Nanosa na mreži rm hosts-mac &> / dev / null za TMPVAR u `cat hosts-nanos` do arping -I $ INTERFACE -f $ TMPVAR | grep "odgovor od" | awk '{ispis $ 5}' | izrezati -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Usporedba izvađenih MAC-ova s ​​traženim MAC-om u `cat hosts-mac` učinite ako [" $ MAC "=" $ WANTEDMAC "]; tada MACLINE = `mačka domaćini-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `mačka domaćini-nanos | sed $ MACLINE'q; d'` echo -e "\ n \ t OBAVIJEST, otkriven je MAC ukradenog uređaja: $ MAC ... S IP-om: $ IPMAC" echo -e "\ t ... Generiranje izvještaja ... "echo -e" izvještaj generirao SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" Vrijeme izvještaja: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" Otkriven MAC ukradenog uređaja: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP trenutno koristi ovo računalo: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" Izvještaj generirao: $ YOURIP \ n ">> final_report_ $ YOURZONE.info fi gotov izlaz

U slučaju da se pronađe podudaranje, pokazat će nam pronađeni MAC i IP koji koristi ta oprema.

Ovo (još uvijek) ima praznine hehe

server

Znam da postoje stvari koje treba poboljšati, na primjer MAC-ovi se mogu falsificirati, MAC se može promijeniti u računalo i to je to, još uvijek tražim kako vidjeti stvarni MAC, a ne lažni ako je to slučaj.

Također, dodavanjem još jedne for petlje, mogu učiniti da se istovremeno uspoređuje nekoliko MAC-ova, a ne uspoređivati ​​/ tražiti samo jedan određeni, odnosno tražiti MAC-ove koji se nalaze na popisu, 5, 10, bez obzira na to koji su. To je nešto što još moram učiniti.

Možda je to Nano, ali ima blokirani port 443, znam kako mogu sigurno znati je li to Ubiquiti uređaj ili nije, odnosno s curlom (ili wgetom) mogu dobiti obrazac za prijavu i usporediti ga s jednim od Ubiquitija, ovo je sigurnija metoda nego kod porta 443. Još je jedan detalj koji ćete dodati u budućim verzijama.

Također bih volio (što će mi već biti teško) generirati malu skriptu ili čak APK da ima ovaj alat na mom Androidu. Znam da ga neću moći staviti u Trgovinu play ali…. bueh, nije da želim 😀

Ah, korisnici iPhonea ... čak i da mogu (zbog znanja i vremena) ne bih prenio ovaj alat na iOS ... JUAZ JUAZ JUAZ ... pogledajte u svoj App Store Da vidimo imaju li slučajno nešto slično, u što sumnjam 😀

kraj

Dobro je sve. Ponavljam, mislim da određena skripta možda neće biti korisna mnogima (to je za sasvim specifičnu situaciju), ali možda dijelovi koda, nadam se, pa tako i jesu


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   anđeoska oštrica dijo

    Pomoću nmap-a možete dobiti MAC ADRESU bez potrebe za ips preslikavanjem i provjerom s nc-om i upotrebom arpinga

    opcija je -PR

    nešto kao to
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{ispis $ 3}

    1.    eliotime3000 dijo

      Dobar savjet, iako nužno zahtijeva korijen.

  2.   dario dijo

    bash je obično prilično nečitljiv ako scenarij niste sami napravili. ali vaši su kodovi razumljivi xD

    Još jedna stvar koju možete učiniti je jednostavan ping na različite IP adrese, a zatim pogledate arp tablice naredbom arp -a (u nekim slučajevima morate instalirati mrežne alate) i mac adrese koje su pingirane, mislim da je najbrže rješenje.

  3.   dario dijo

    ili još bolje
    echo "test"> /dev/tcp/www.google.com/80
    ako da grešku, port (80) je zatvoren

  4.   Mario dijo

    Pozdrav, biste li mogli implementirati SNMP kako biste mogli prepoznati probleme poput vrste opreme, brenda, mogućnosti koje ima, to može biti i odgovor na promijenjeni ili virtualni MAC; možete čak i "upravljati" ako je konf. snmp usluga je slaba. Samo mišljenje, otvarajući niz mogućnosti vaše skripte. Blog je jako dobar, drago mi je što sam ih pronašao, često ih čitam! zagrliti.

  5.   Frank Aleksandar dijo

    Taj bash scenarij izuzetno me nadahnjuje.

  6.   vatrogasna dijo

    Scenarij je vrlo razumljiv i jako dobar, hvala, dao mi je dobre ideje, pozdrav

  7.   pegasusonline dijo

    Bilo bi sjajno da ga stavite na GITHUB, pa bismo tamo svi surađivali.

    Hvala što dijelite!
    pozdravi

  8.   Luciano Lagassa dijo

    Pozdrav, vaša bash skripta je vrlo dobra, sa svoje strane preporučujem da za poboljšanje sigurnosti možete implementirati metodu provjere autentičnosti, kao što su Wisps, kako biste spriječili neovlaštene ili protjerane korisnike da uđu. postoji puno softvera koji oni mogu koristiti.

  9.   dhunter dijo

    Kada lažirate mac, ono što radite je da lažni mac pošaljete u paketima (OSI sloja 2), ne možete otkriti pravog ako mrežna kartica napadača nije resetirana.

  10.   aleksander seijas dijo

    Zanima me vaša skripta ... pa tražio sam malo složeniju ili možda jednostavniju ..

    stvar je u tome što imam veliku mrežu od 250 strojeva i postoje wifi točke, ali oni kupuju istu parcelu ...

    Znat ćete kako bih mogao usporediti mac s ip-om i da ga prethodno treba deklarirati, pa kad postoji smiješna osoba koja promijeni ip, upozorite da se ip i mac ne podudaraju.

    Nadam se da sam objasnio ...

    Iako sam svugdje pretraživao, ne mogu pronaći ništa o tome ...

  11.   Hotmail dijo

    Hvala što ste podijelili skriptu, morat ću je izmijeniti, ali u osnovi je ono što sam tražio, opet cijenjeno. Pozdrav

  12.   Izidor dijo

    Baš ono što sam tražio, jer trebam svoju malinu da otkrije kada se moj telefon poveže s WiFi-jem da bih pokrenuo još jedan bash.
    Puno hvala