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?
- Prvo izvrši skeniranje u podmreži gdje se izvodi i otkriva aktivne hostove (aktivne IP adrese)
- 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.
- 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.
- 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
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 😀
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}
Dobar savjet, iako nužno zahtijeva root.
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.
ili još bolje
echo "test"> /dev/tcp/www.google.com/80
ako da grešku, port (80) je zatvoren
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.
Ta bash skripta je izuzetno inspirativna.
Scenarij je vrlo razumljiv i vrlo dobar, hvala, dao mi je dobre ideje, pozdrav
Bilo bi sjajno da ga stavite na GITHUB, pa bismo tamo svi surađivali.
Hvala na dijeljenju!
Saludos
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.
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.
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 ...
Hvala što ste podijelili skriptu, morat ću je izmijeniti, ali u osnovi je to ono što sam tražio, opet cijenjeno. Živjeli
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