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?
- 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 poveznice). Zapravo otkriva samo je li 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 s onim koji se pretražuje.
- 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
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
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}
Dobar savjet, iako nužno zahtijeva korijen.
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.
ili još bolje
echo "test"> /dev/tcp/www.google.com/80
ako da grešku, port (80) je zatvoren
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.
Taj bash scenarij izuzetno me nadahnjuje.
Scenarij je vrlo razumljiv i jako dobar, hvala, dao mi je dobre ideje, pozdrav
Bilo bi sjajno da ga stavite na GITHUB, pa bismo tamo svi surađivali.
Hvala što dijelite!
pozdravi
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.
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.
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 ...
Hvala što ste podijelili skriptu, morat ću je izmijeniti, ali u osnovi je ono što sam tražio, opet cijenjeno. Pozdrav
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