„Bash Script“: Palyginkite visų tinklo kompiuterių MAC su konkrečiu

Čia aš kalbėsiu apie bash scenarijų, kurį sukūriau labai konkrečiam tikslui, kurį abejoju, ar kiti turi tokią situaciją, bet kadangi aš jį užprogramavau ... man nieko nekainuoja ja dalytis 🙂

Viršuje, apie ką tai?

Būna, kad mano mieste yra gana didelis tinklas, daugelis iš mūsų jungiamės laidiniu būdu (tinklo kabelis prie jungiklio, susietas su kitu ir daugelis jungiklių hehe), tačiau didelės nuorodos (kurios negali būti kabeliu) darykite su „Wi-Fi“ įranga, tokiu būdu turite tinklą su keliais tūkstančiais vartotojų, kad nors nėra pašto paslaugos ir kur kas mažiau interneto, jūs žaidžiate „WoW“ (be kita ko), mokotės, dalijatės informacija ir t.t.

Faktas yra tas, kad tam tikra „Wi-Fi“ įranga yra uždrausta arba pašalinta iš tinklo dėl to, kad jos savininkas pažeidžia tinklo taisykles, ar bet ką. Taigi, kiekvieną kartą reikia atlikti nuskaitymą, norint patikrinti, ar kas nors iš naujo prijungė išmesto kompiuterio MAC, ir čia yra šis scenarijus.

Paprasčiau tariant, ką veikia scenarijus?

  1. Pirmiausia nuskaito potinklyje, kuriame veikia, ir aptinka tiesioginius kompiuterius (aktyvius IP)
  2. Tada patikrinkite, ar kuris nors iš šių IP yra „Ubiquiti“ (nuorodoms naudojama įranga). Iš tikrųjų jis aptinka tik tai, ar 443 prievadas atidarytas kiekviename iš aukščiau nurodytų IP.
  3. Jis pašalina kiekvieno veikiančio įrenginio MAC ir atidarius 443 prievadą, tuo pačiu metu lyginant kiekvieną išgautą MAC su ieškomu.
  4. Jei randa atitikimą, jis sugeneruoja ataskaitą.

Nagi, prie kodo!

Galioja norint paaiškinti, kad jo veikimui reikalingi šie paketai: nmap… nc ... arping

Na, naudodamas „nmap“, jis susieja žemėlapius, norėdamas aptikti aktyvius IP, su nc tada patikrina, kuriame iš jų yra atidarytas 443 prievadas, ir galiausiai, pažymėdamas jį, ištraukia MAC.

Taip, aš žinau, kad visa tai galite padaryti naudodami „nmap“, bet tai užtruko kelias sekundes (ar daugiau minučių), aš norėjau naudoti keletą įrankių, o ne tik vieną, kad viskas veiktų greičiau.

Taip dabar…. kodas!

#! / bin / bash # # Reikia įdiegti paketus: # nmap, arping, nc # # Autorius: KZKG ^ Gaara išvalyti # Kintamųjų deklaravimas '' INTERFACE = 'wlo1' WANTEDMAC = 'C8: CB: B8: B1: DA: E6' YOURIP = `ifconfig | grep "192.168" | awk '{print $ 2}' 'YOURZONE = `aidas $ YOURIP | awk -F "." '{print $ 3}' '# Gyvų šeimininkų traukimas tinkle (jūsų IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "ataskaita" | awk '{print $ 5}'> hosts-ip # Pažiūrėkite, kurie iš tų šeimininkų gali būti „Nano“, turėdami 443 prievadą „TMPVAR“ atidarę „Rm hosts-nanos &> / dev / null“ programoje „cat hosts-ip“ do nc -zv -w 2 $ TMPVAR 443 &> / dev / null jei [$? -ne 1]; tada atkartokite „$ TMPVAR“ >> hosts-nanos fi atlikta # MAC pašalinimas iš nanosų tinklo rm hosts-mac &> / dev / null, skirtas TMPVAR, naudojant „cat hosts-nanos“, darau -I $ INTERFACE -f $ TMPVAR | grep "atsakyti nuo" | awk '{print $ 5}' | supjaustyti -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Ištrauktų MAC palyginimas su ieškomais MAC, esančiais `cat hosts-mac` do, jei [" $ MAC "=" $ WANTEDMAC "]; tada MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `katės šeimininkai-nanos | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, aptiktas pavogto įrenginio MAC: $ ​​MAC ... Su IP: $ IPMAC" echo -e "\ t ... Generuojama ataskaita ... „SpyMac“ sugeneruota ataskaita \ n "> final_report_ $ YOURZONE.info echo -e" Ataskaitos laikas: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" Aptiktas pavogto įrenginio MAC: $ ​​WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP šiuo metu naudojamas šiame kompiuteryje: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" Ataskaitą sukūrė: $ YOURIP \ n ">> final_report_ $ YOURZONE .info fi padarytas išėjimas

Jei bus rasta atitiktis, ji parodys mums rastą MAC ir IP, kurį ta įranga naudoja.

Tai (vis dar) turi spragų hehe

serveris

Aš žinau, kad yra ką tobulinti, pavyzdžiui, MAC galima suklastoti, MAC galima pakeisti į kompiuterį ir viskas, aš vis dar ieškau, kaip pamatyti tikrąjį MAC, o ne klaidingą, jei taip yra .

Be to, pridėdamas kitą ciklui, galiu palyginti kelis MAC vienu metu ir nelyginti / ieškoti tik konkretaus, tai yra ieškoti sąraše esančių MAC, 5, 10, kad ir kokie jie būtų . Tai dar kažkas, ką dar turiu padaryti.

Galbūt tai yra „Nano“, bet jis užblokuotas 443 prievadas. Aš žinau, kaip su visišku saugumu žinoti, ar tai yra „Ubiquiti“ įrenginys, ar ne, tai yra su „curl“ (arba „wget“). Aš galiu gauti prisijungimo formą ir ją palyginti naudojant vieną iš „Ubiquiti“, tai yra saugesnis metodas nei naudojant 443 prievadą. Tai dar viena detalė, kurią reikia pridėti būsimose versijose.

Taip pat norėčiau (man bus sunku) sugeneruoti nedidelį scenarijų ar net APK, kad šis įrankis būtų mano „Android“. Žinau, kad negalėsiu jo įdėti Groti parduotuvė bet…. bueh, ne tai, kad norėčiau 😀

Ak, „iPhone“ vartotojai ... net jei galėčiau (žinių ir laiko), galėčiau perkelti šį įrankį į „iOS“ ... JUAZ JUAZ JUAZ ... pažvelk į savo "App Store" Pažiūrėkime, ar atsitiktinai jie turi kažką panašaus, dėl ko abejoju 😀

pabaiga

Geras yra viskas. Kartoju, manau, kad konkretus scenarijus gali būti nenaudingas daugeliui (jis skirtas gana konkrečiai situacijai), bet galbūt kodo dalys taip, tikiuosi ir taip


13 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   angelų ašmenys sakė

    Naudodami nmap galite gauti MAC ADDRESS nereikalaudami to ips atvaizdavimo ir patikrinimo su nc bei arping naudojimo

    variantas yra -PR

    kažkas panašaus
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{print $ 3}

    1.    3000 sakė

      Geras patarimas, nors tam būtinai reikia šaknies.

  2.   Daryo sakė

    „bash“ paprastai yra gana neįskaitomas, nebent scenarijų atlikote patys. bet jūsų kodai yra suprantami xD

    Kitas dalykas, kurį galite padaryti, yra paprastas pingas skirtingiems IP, tada jūs žiūrite į arp lenteles naudodami komandą arp -a (kai kuriais atvejais turite įdiegti tinklo įrankius) ir ping adresus, kurie buvo pinguoti, manau, kad tai greičiausias sprendimas.

  3.   Daryo sakė

    ar dar geriau
    echo "test"> /dev/tcp/www.google.com/80
    jei tai suteikia klaidą, prievadas (80) uždarytas

  4.   mario sakė

    Sveiki, ar galėtumėte įdiegti SNMP, kad galėtumėte nustatyti tokias problemas kaip kokio tipo įranga, koks prekės ženklas, kokias galimybes ji turi, tai taip pat gali būti atsakymas į pakeistą ar virtualų MAC; jūs netgi galite gauti "tvarkyti", jei konf. snmp paslauga silpna. Tiesiog nuomonė, atverianti savo scenarijaus galimybių spektrą. Tinklaraštis labai geras, džiaugiuosi, kad juos radau, dažnai skaitau! apkabinti.

  5.   Frankas Aleksandras sakė

    Tas bash scenarijus yra nepaprastai įkvepiantis.

  6.   ugnies šaltis sakė

    Scenarijus yra labai suprantamas ir labai geras, ačiū, jis man suteikė gerų idėjų, Sveikinimai

  7.   pegasusonline sakė

    Būtų puiku, jei įdėtumėte jį į GITHUB, taigi mes visi ten bendradarbiautume.

    Ačiū už dalinimąsi!
    saludos

  8.   Luciano Lagassa sakė

    Sveiki, jūsų „bash“ scenarijus yra labai geras. Savo ruožtu aš rekomenduoju, kad pagerintumėte saugumą, galite įdiegti autentifikavimo metodą, pvz., „Smartps“, kad išvengtumėte neteisėtų ar pašalintų vartotojų patekimo. yra daug programinės įrangos, kurią jie gali naudoti.

  9.   dunteris sakė

    Apgaulingai dirbant „Mac“ kompiuteriu, jūs siunčiate padirbtus „Mac“ paketuose (2 sluoksnio OSI), tikro atkurti negalėsite, nebent atkurta užpuoliko tinklo plokštė.

  10.   aleksandras seijas sakė

    Mane domina tavo scenarijus ... gerai, aš ieškojau šiek tiek sudėtingesnio, o gal paprasto ..

    Reikalas tas, kad turiu didelį 250 mašinų tinklą ir yra „wifi“ taškų, tačiau jie perka tą patį sklypą ...

    Jūs žinosite, kaip galėčiau palyginti „Mac“ su „IP“ ir kad tai turėtų būti iš anksto deklaruota, taigi, kai yra juokingas žmogus, kuris pakeičia „IP“, turėkite perspėjimą, kad „iPod“ ir „Mac“ neatitinka.

    Tikiuosi, kad paaiškinau sau….

    Nors ieškojau visur, nieko apie tai nerandu ...

  11.   "Hotmail" sakė

    Ačiū, kad pasidalijote scenarijumi, turėsiu atlikti kai kuriuos pakeitimus, bet iš esmės tai, ko aš ieškojau, vėl įvertinau. linkėjimais

  12.   Izidorius sakė

    Tiesiog tai, ko ieškojau, nes man reikia, kad mano avietė aptiktų, kai mano telefonas prisijungs prie „Wi-Fi“, kad paleisčiau kitą bashą.
    Labai ačiū