Bash skripta: Uporedite MAC svih računara u mreži sa određenim

Ovdje ću govoriti o bash skripti koju sam izradio za vrlo specifičnu svrhu, a za koju sumnjam da 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 se povezuju ožičeno (mrežni kabel na prekidač, povezan s drugim i mnogi prekidači hehe), ali velike veze (koje ne mogu biti kablom) Oni što se tiče Wi-Fi opreme, na taj način imate mrežu sa nekoliko hiljada 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 njen vlasnik krši mrežne propise, ili što već. Dakle, potrebno je svaki put napraviti skeniranje kako biste provjerili je li netko ponovo povezao MAC izbačenog računara i tu dolazi ova skripta.

Jednostavno rečeno, šta 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 veze). Zapravo otkriva samo ako je 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 sa onim koji se pretražuje.
  4. U slučaju da pronađe podudaranje, generira izvještaj.

Hajde na 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-ove, s nc zatim provjerava kojem je otvoren port 443, a na kraju arpingom izvlači MAC.

Da, znam da s nmapom možete sve ovo raditi, ali trebalo je nekoliko sekundi (ili minuta više), radije bih koristio nekoliko alata umjesto samo jednog kako bih sve ubrzalo rad.

Da sada…. kod!

#! / bin / bash # # Zahtijeva instaliranje paketa: # nmap, arping, nc # # Autor: KZKG ^ Gaara clear # Deklariranje varijabli DATUM = `datum + '% 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 tih 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 [$? -ne 1]; zatim odjeknite "$ TMPVAR" >> hosts-nanos fi gotovo # Preuzimanje MAC-a iz Nanosa u mreži rm hosts-mac &> / dev / null za TMPVAR u `cat hosts-nanos` do arping -I $ INTERFACE -f $ TMPVAR |. | grep "odgovor od" | awk '{print $ 5}' | cut -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Usporedba izvađenih MAC-ova sa traženim MAC-om u `cat hosts-mac` uradi ako [" $ MAC "=" $ WANTEDMAC "]; tada MACLINE = `mačka hosts-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 koji generira SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" Trenutak 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 ovaj računar: $ 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 ima stvari koje treba poboljšati, na primjer MAC se mogu falsificirati, MAC se može promijeniti u računar i to je to, još uvijek tražim kako vidjeti stvarni MAC, a ne lažni ako je to slučaj .

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

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

Također bih želio (što mi je već teško) generirati malu skriptu ili čak APK da ima ovaj alat na mom Androidu. Znam da to neću moći staviti Play Store 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 vašem Prodavnica aplikacija Da vidimo da li slučajno imaju 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 da, nadam se i tako je 😀


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   angel blade rekao je

    Pomoću nmap-a možete dobiti MAC ADRESU bez potrebe za ips mappingom i verifikacijom sa nc i upotrebom arpinga

    opcija je -PR

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

    1.    eliotime3000 rekao je

      Dobar savjet, iako nužno zahtijeva root.

  2.   dario rekao je

    bash je uglavnom prilično nečitljiv, osim ako skriptu niste napravili sami. ali vaši kodovi su 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 to najbrže rješenje.

  3.   dario rekao je

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

  4.   Mario rekao je

    Pozdrav, možete li implementirati SNMP kako biste mogli identificirati probleme poput vrste opreme, brenda, mogućnosti koje ima, to može biti i odgovor na slučaj 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. Vrlo dobar blog, drago mi je što sam ih pronašao, često ih čitam! zagrljaj.

  5.   Frank alexander rekao je

    Ta bash skripta je izuzetno inspirativna.

  6.   vatra hladna rekao je

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

  7.   pegasusonline rekao je

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

    Hvala na dijeljenju!
    Saludos

  8.   Luciano Lagassa rekao je

    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, poput Wisps-a, kako biste spriječili neovlaštene ili protjerane korisnike da uđu. postoji mnogo softvera koji oni mogu koristiti.

  9.   dhunter rekao je

    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 se mrežna kartica napadača ne resetira.

  10.   aleksander seijas rekao je

    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 mašina i postoje Wi-Fi točke, ali oni kupuju istu parcelu ...

    Znat ćete kako bih mogao usporediti mac s ip-om i da ga treba prethodno 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 svuda pretraživao, o tome ne mogu pronaći ništa ...

  11.   hotmail rekao je

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

  12.   Isidore rekao je

    Upravo ono što sam tražio, jer mi je potrebno da malina otkrije kada se moj telefon poveže na WiFi da bih pokrenuo još jedan bash.
    mnogo vam hvala