Bash Script: Paghambingin ang MAC ng lahat ng mga computer sa isang network na may isang tukoy

Dito ko pag-uusapan ang tungkol sa isang bash script na ginawa ko para sa isang napaka-tukoy na layunin, na duda ko na ang iba ay mayroong ganitong sitwasyon ngunit, dahil na-program ko ito ... wala akong gastos na ibahagi ito 🙂

Sa taas, tungkol saan ito?

Ito ay nangyayari na sa aking lungsod ay may isang medyo malaking network, marami sa atin ang kumokonekta sa isang wired na paraan (isang network cable sa isang switch, na naka-link sa isa pa, at maraming mga switch hehe), ngunit ang mga malalaking link (na hindi maaaring maging sa pamamagitan ng cable) Ginagawa nila ang mga kagamitan sa Wi-Fi, sa ganitong paraan mayroon kang isang network na may libu-libong mga gumagamit, na kahit na walang serbisyo sa mail at mas mababa sa internet, nagpe-play ka ng WoW (bukod sa iba pa), natututunan mo, nagbabahagi ng impormasyon, atbp.

Ang totoo ay naging kaso na ang ilang mga kagamitan sa Wi-Fi ay ipinagbabawal o pinatalsik mula sa network, alinman dahil ang may-ari nito ay lumalabag sa mga patakaran sa network, o kung ano pa man. Kaya, kinakailangang mag-scan tuwing X oras upang suriin kung may kumonekta muli sa MAC ng ejected computer, at dito pumapasok ang script na ito.

Sa madaling salita, ano ang ginagawa ng script?

  1. Una ay gumagawa ito ng pag-scan sa subnet kung saan ito tumatakbo at nakita ang mga live host (ang mga aktibong IP)
  2. Pagkatapos, suriin kung ang alinman sa mga IP ay isang Ubiquiti (kagamitan na ginamit para sa mga link). Talagang nakikita lamang kung ang port 443 ay bukas sa bawat isa sa itaas na mga IP.
  3. Tinatanggal nito ang MAC ng bawat live na aparato at may bukas na port 443, habang sabay na ihinahambing ang bawat MAC na nakuha sa hinahanap.
  4. Kung sakaling makakita ito ng isang tugma, bumubuo ito ng isang ulat.

Halika, sa code!

Valid upang linawin na para sa pagpapatakbo nito kailangan nito ang mga sumusunod na pakete na naka-install: nmap… nc… arping

Sa pamamagitan ng nmap ginagawa nito ang pagmamapa upang makita ang mga aktibong IP, kasama ang nc pagkatapos ay susuriin nito kung alin ang bukas na port 443, at sa wakas ay may arping na ito na kumukuha ng MAC.

Oo, alam ko na sa nmap magagawa mo ang lahat ng ito, ngunit tumagal ng ilang segundo (o minuto pa), ginusto kong gumamit ng maraming mga tool sa halip na isa lamang upang mas mabilis na gumana ang lahat.

Oo ngayon…. ang code!

#! / bin / bash # # Kinakailangan ang pagkakaroon ng mga naka-install na package: # nmap, arping, nc # # May-akda: KZKG ^ Gaara malinaw # Pagdeklara ng mga variable DATE = `date + '% Y-% m-% d_% H-% M '"INTERFACE =' wlo1 'WANTEDMAC =' C8: CB: B8: B1: DA: E6 'HISIP =` ifconfig | grep "192.168" | awk '{print $ 2}' "HISZONE =` echo $ HISIP | awk -F "." '{print $ 3}' "" # Pulling Alive Host sa network (iyong IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "ulat para sa" | awk '{print $ 5}'> host-ip # Nakikita kung alin sa mga Host na iyon ang maaaring maging isang Nano sa pamamagitan ng pagkakaroon ng port 443 bukas na rm host-nanos &> / dev / null para sa TMPVAR sa `cat host-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null kung [$? -ne 1]; pagkatapos ay i-echo ang "$ TMPVAR" >> host-nanos fi tapos # Pagkuha ng MAC mula sa Nanos sa network rm host-mac &> / dev / null para sa TMPVAR sa `cat host-nanos` do arping -I $ INTERFACE -f $ TMPVAR | grep "tugon mula sa" | awk '{print $ 5}' | gupitin -d '[' -f2 | cut -d ']' -f1 >> tapos ng host-mac # Paghahambing ng mga nakuha na MAC sa hinanap na MAC sa `cat host-mac` gawin kung [" $ MAC "=" $ WANTEDMAC "]; pagkatapos MACLINE = `cat host-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `cat host-nanos | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, nakita ng MAC ng ninakaw na aparato: $ MAC ... Sa IP: $ IPMAC" echo -e "\ t ... Bumubuo ng Ulat ... "echo -e" Ulat na binuo ng SpyMac \ n "> final_report_ $ HISZONE.info echo -e" Sandali ng pag-ulat: $ DATE \ n ">> final_report_ $ HISZONE.info echo -e" Nakita ng ninakaw na aparato: $ WANTEDMAC \ n ">> final_report_ $ HISZONE.info echo -e" IP na kasalukuyang ginagamit ng computer na ito: $ IPMAC \ n ">> final_report_ $ HISZONE.info echo -e" Ang ulat na nilikha ng: $ HISIP \ n ">> final_report_ $ HISZONE.info fi tapos exit

Kung sakaling matagpuan ang isang tugma, ipapakita nito sa amin ang nahanap na MAC at pati na rin ang IP na ginamit ng kagamitang iyon.

Ito (pa rin) ay may mga puwang hehe

server

Alam ko na may mga bagay na dapat pagbutihin, halimbawa ang mga MAC ay maaaring mapeke, ang MAC ay maaaring mapalitan ng kagamitan at iyon lang, naghahanap pa rin ako kung paano ko makikita ang totoong MAC at hindi ang huwad kung ganun ang kaso.

Gayundin, sa pamamagitan ng pagdaragdag ng isa pang para sa loop, makakagawa ako ng maraming mga MAC na maihahambing nang sabay at hindi ihambing / maghanap lamang para sa isang tukoy na isa, iyon ay, maghanap para sa mga MAC na nasa isang listahan, 5, 10, anuman ang mga ito. Ito ay isang bagay na wala pa akong magagawa.

Marahil ito ay isang Nano ngunit mayroon itong naka-block na port 443, alam ko kung paano ko ligtas na malaman kung ito ay isang aparato ng Ubiquiti o hindi, iyon ay, na may curl (o wget) maaari kong makuha ang form sa pag-login at ihambing ito sa isa sa isang Ubiquiti, ito ay isang mas ligtas na pamamaraan kaysa sa port 443. Ito ay isa pang detalye upang idagdag sa mga hinaharap na bersyon.

Gusto ko rin (na kung saan ay magiging mahirap para sa akin) upang makabuo ng isang maliit na script o kahit isang APK na magkaroon ng tool na ito sa aking Android. Alam kong hindi ko mailalagay sa Play Store ngunit .... bueh, hindi naman sa gusto ko 😀

Ah, mga gumagamit ng iPhone ... hindi kahit na kaya ko (para sa kaalaman at oras) ay ilalagay ko ang tool na ito sa iOS ... JUAZ JUAZ JUAZ ... tumingin sa iyong App Store Tingnan natin kung nagkakaroon sila ng isang bagay na katulad, na duda ko 😀

katapusan

Mabuti ang lahat. Uulitin ko, sa palagay ko ang tiyak na script ay maaaring hindi kapaki-pakinabang sa marami (ito ay para sa isang tiyak na sitwasyon), ngunit marahil ang mga bahagi ng code ay, sana at sa gayon


13 na puna, iwan mo na ang iyo

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   talim ng anghel dijo

    Sa nmap maaari mong makuha ang MAC ADDRESS nang hindi nangangailangan na gawin ang ips mapping na iyon at ang pagpapatunay gamit ang nc at ang paggamit ng arping

    ang pagpipilian ay -PR

    isang bagay na tulad nito
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{print $ 3}

    1.    eliotime3000 dijo

      Magandang tip, kahit na nangangailangan ito ng kinakailangang ugat.

  2.   dario dijo

    Ang bash ay karaniwang hindi nababasa maliban kung ginawa mo ang script sa iyong sarili. ngunit ang iyong mga code ay naiintindihan xD

    Ang isa pang bagay na maaari mong gawin ay isang simpleng ping sa iba't ibang mga IP pagkatapos ay titingnan mo ang mga talahanayan ng arp na may command arp -a (sa ilang mga kaso kailangan mong i-install ang mga net tool) at ang mga mac address na nai-ping sa palagay ko ito ay ang pinakamabilis na solusyon.

  3.   dario dijo

    o mas mabuti pa
    echo "test"> /dev/tcp/www.google.com/80
    kung nagbibigay ito ng isang error ang port (80) ay sarado

  4.   Mario dijo

    Kumusta, maipatupad mo ba ang SNMP upang makilala ang mga isyu tulad ng kung anong uri ng kagamitan ito, anong tatak, anong mga kakayahan mayroon ito, isang binago o virtual na MAC ay maaari ding maging sagot sa kaso; maaari ka ring makakuha upang "pamahalaan" kung ang conf. mahina ang serbisyo ng snmp. Isang opinyon lamang, binubuksan ang saklaw ng mga posibilidad ng iyong script. Napakagandang blog, natutuwa akong natagpuan ko sila, madalas ko silang binabasa! yakap.

  5.   Frank Alexander dijo

    Ang bash script na iyon ay napakasigla.

  6.   apoy dijo

    Ang script ay lubos na nauunawaan at napakahusay, salamat, binigyan ako nito ng magagandang ideya, Pagbati

  7.   pegasusonline dijo

    Maganda kung ilalagay mo ito sa GITHUB, kaya lahat kami makikipagtulungan doon.

    Salamat sa pagbabahagi!
    Regards

  8.   Luciano Lagassa dijo

    Kamusta, ang iyong bash script ay napakahusay, para sa aking bahagi inirerekumenda ko na upang mapabuti ang seguridad maaari kang magpatupad ng isang paraan ng pagpapatotoo, tulad ng wisps, upang maiwasan ang pagpasok ng mga hindi pinahintulutan o pinatalsik na mga gumagamit. maraming software na maaari nilang magamit.

  9.   dhunter dijo

    Kapag spoofing isang mac, kung ano ang gagawin mo ay ipadala ang pekeng mac sa mga packet (layer 2 OSI), hindi mo matutuklasan ang totoong maliban kung na-reset ang network card ng umaatake.

  10.   Alexander Seijas dijo

    Interesado ako sa iyong iskrip ... mabuti, naghahanap ako para sa isa nang medyo mas kumplikado o marahil ay simple.

    ang bagay ay mayroon akong isang malaking network ng 250 machine at may mga wifi point ngunit bumili sila ng parehong balangkas ...

    Malalaman mo kung paano ko makagagawa ang isang mac kumpara sa isang ip at dapat itong ideklara dati, kaya kapag may isang nakakatawang tao na nagbabago ng ip, magkaroon ng isang alerto na ang ip at ang mac ay hindi tumutugma.

    Sana ipinaliwanag ko ang aking sarili ....

    Kahit na tumingin ako saanman wala akong makitang anuman tungkol sa….

  11.   Hotmail dijo

    Salamat sa pagbabahagi ng iskrip, kakailanganin kong gumawa ng mga pagbabago dito ngunit karaniwang ito ang hinahanap ko, na muling pinahahalagahan. Cheers

  12.   Isidore dijo

    Kung ano ang hinahanap ko, dahil kailangan ko ang aking raspberry upang makita kapag kumonekta ang aking telepono sa wifi upang magpatakbo ng isa pang bash.
    Maraming salamat sa inyo