Bash Script: confronta il MAC di tutti i computer su una rete con uno specifico

Qui parlerò di uno script bash che ho realizzato per uno scopo ben preciso, di cui dubito che altri abbiano questa situazione ma, da quando l'ho programmato ... non mi costa nulla condividerlo 🙂

Di sopra, di cosa si tratta?

Succede che nella mia città ci sia una rete abbastanza grande, molti di noi si connettono in modo cablato (un cavo di rete a uno switch, collegato a un altro, e molti switch hehe), ma collegamenti grandi (che non possono essere via cavo) Lo fanno con le apparecchiature Wi-Fi, in questo modo hai una rete con diverse migliaia di utenti, che sebbene non ci sia un servizio di posta e molto meno Internet, giochi a WoW (tra gli altri), impari, condividi informazioni, ecc.

Il fatto è che alcune apparecchiature Wi-Fi sono state bandite o espulse dalla rete, o perché il suo proprietario viola le regole della rete o altro. Quindi, è necessario eseguire una scansione ogni X volte per verificare se qualcuno ha ricollegato il MAC del computer espulso, ed è qui che entra in gioco questo script.

In poche parole, cosa fa lo script?

  1. Per prima cosa esegue una scansione nella sottorete in cui è in esecuzione e rileva gli host live (gli IP attivi)
  2. Quindi, controlla se uno di questi IP è un Ubiquiti (apparecchiatura utilizzata per i collegamenti). In realtà rileva solo se la porta 443 è aperta su ciascuno degli IP precedenti.
  3. Rimuove il MAC di ogni dispositivo live e con la porta 443 aperta, confrontando allo stesso tempo ogni MAC estratto con quello ricercato.
  4. Nel caso in cui trovi una corrispondenza, genera un rapporto.

Vieni al codice!

Valido per chiarire che per il suo funzionamento necessita dell'installazione dei seguenti pacchetti: nmap… nc… arping

Ebbene con nmap fa la mappatura per rilevare gli IP attivi, con nc poi controlla quale ha la porta 443 aperta, e infine con arping estrae il MAC.

Sì, lo so che con nmap puoi fare tutto questo, ma ci sono voluti diversi secondi (o minuti in più), ho preferito usare più strumenti invece di uno solo per far funzionare tutto più velocemente.

Si Adesso…. il codice!

#! / bin / bash # # Richiede l'installazione dei pacchetti: # nmap, arping, nc # # Autore: KZKG ^ Gaara clear # Dichiarazione delle variabili DATE = `date + '% Y-% m-% d_% H-% M '`INTERFACE =' wlo1 'WANTEDMAC =' C8: CB: B8: B1: DA: E6 'YOURIP =` ifconfig | grep "192.168" | awk '{print $ 2}' `` TUAZONA = `echo $ TUOIP | awk -F "." '{print $ 3}' `` # Pulling Alive Hosts sulla rete (il tuo IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "report per" | awk '{print $ 5}'> hosts-ip # Vedere quale di questi host può essere un Nano avendo la porta 443 aperta rm hosts-nanos &> / dev / null per TMPVAR in `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 e> / dev / null se [$? -ne 1]; quindi echo "$ TMPVAR" >> hosts-nanos fi done # Rimozione di MAC da Nanos sulla rete rm hosts-mac &> / dev / null per TMPVAR in `cat hosts-nanos` do arping -I $ INTERFACE -f $ TMPVAR | grep "risposta da" | awk '{print $ 5}' | cut -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Confronto tra i MAC estratti con il MAC cercato in `cat hosts-mac` do if [" $ MAC "=" $ WANTEDMAC "]; quindi MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `cat hosts-nanos | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, MAC del dispositivo rubato rilevato: $ MAC ... Con IP: $ IPMAC" echo -e "\ t ... Generazione rapporto in corso ... "echo -e" Report generato da SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" Report moment: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" MAC del dispositivo rubato rilevato: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP attualmente utilizzato da questo computer: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" Report generato da: $ YOURIP \ n ">> final_report_ $ YOURZONE .info fi fatto uscire

Nel caso in cui venga trovata una corrispondenza, ci mostrerà il MAC trovato e anche l'IP utilizzato da tale apparecchiatura.

Questo (ancora) ha delle lacune hehe

server

So che ci sono cose da migliorare, ad esempio i MAC possono essere falsificati, il MAC può essere cambiato nel computer e basta, sto ancora cercando come vedere il vero MAC e non quello falso se è così.

Inoltre, aggiungendo un altro ciclo for, posso confrontare più MAC contemporaneamente e non confrontare / cercare solo uno specifico, cioè cercare i MAC che sono in una lista, 5, 10, qualunque essi siano . È qualcosa che devo ancora fare.

Forse è un Nano ma ha la porta 443 bloccata, so come poter sapere in totale sicurezza se è un dispositivo Ubiquiti oppure no, cioè con curl (o wget) posso ottenere il form di login e confrontarlo con uno di un Ubiquiti, questo è un metodo più sicuro rispetto alla porta 443. È un altro dettaglio da aggiungere nelle versioni future.

Vorrei anche (cosa già difficile per me) generare un piccolo script o anche un APK per avere questo strumento sul mio Android. So che non sarò in grado di inserirlo Play Store ma…. bueh, non è che io voglia 😀

Ah, utenti iPhone ... nemmeno se potessi (per conoscenza e tempo) farei il port di questo strumento su iOS ... JUAZ JUAZ JUAZ ... guarda nel tuo App Store Vediamo se per caso hanno qualcosa di simile, di cui dubito 😀

fine

Il bene è tutto. Ripeto, penso che lo script specifico potrebbe non essere utile a molti (è per una situazione abbastanza specifica), ma forse parti del codice lo faranno, si spera e così via


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   lama d'angelo suddetto

    Con nmap puoi ottenere l'INDIRIZZO MAC senza dover fare quella mappatura ips e quella verifica con nc e quell'uso di arping

    l'opzione è -PR

    qualcosa del genere
    sudo nmap -sn IPAddress / netmask -PR | grep MAC | awk "{print $ 3}

    1.    eliotime3000 suddetto

      Buon consiglio, anche se richiede necessariamente il root.

  2.   dario suddetto

    bash è generalmente abbastanza illeggibile a meno che tu non abbia fatto lo script da solo. ma i tuoi codici sono comprensibili xD

    Un'altra cosa che puoi fare è un semplice ping ai diversi IP, quindi guardi le tabelle arp con il comando arp -a (in alcuni casi devi installare net tools) e gli indirizzi mac che sono stati pingati penso che sia la soluzione più rapida.

  3.   dario suddetto

    o meglio ancora
    echo "test"> /dev/tcp/www.google.com/80
    se dà un errore la porta (80) è chiusa

  4.   Mario suddetto

    Ciao, potresti implementare SNMP per essere in grado di identificare problemi come che tipo di apparecchiatura è, che marca, che capacità ha, può anche essere la risposta al caso di un MAC virtuale o modificato; puoi anche arrivare a "gestire" se il file conf. il servizio snmp è debole. Solo un'opinione, che apre la gamma di possibilità del tuo copione. Ottimo blog, sono contento di averli trovati, li leggo spesso! abbraccio.

  5.   Frank alexander suddetto

    Quella sceneggiatura di bash è tremendamente stimolante.

  6.   freddo di fuoco suddetto

    La sceneggiatura è molto comprensibile e molto buona, grazie, mi ha dato buone idee, saluti

  7.   Pegausonline suddetto

    Sarebbe fantastico se lo mettessi su GITHUB, quindi collaboreremmo tutti lì.

    Grazie per la condivisione!
    saluti

  8.   Luciano Lagassa suddetto

    Ciao, il tuo script bash è molto buono, da parte mia consiglio che per migliorare la sicurezza potresti implementare un metodo di autenticazione, come wisps, in modo da impedire l'ingresso di utenti non autorizzati o espulsi. c'è molto software che possono usare.

  9.   cacciatore suddetto

    Quando si falsifica un Mac, ciò che si fa è inviare il falso Mac in pacchetti (OSI di livello 2), non è possibile scoprire quello vero a meno che la scheda di rete dell'aggressore non venga ripristinata.

  10.   Alessandro Seijas suddetto

    Mi interessa il tuo copione ... beh, ne ho cercato uno un po 'più complesso o forse semplice ..

    il fatto è che ho una grande rete di 250 macchine e ci sono punti wifi ma acquistano la stessa trama ...

    Saprai come potrei confrontare un mac con un ip e che dovrebbe essere dichiarato in precedenza, quindi quando c'è una persona divertente che cambia l'ip, ricevi un avviso che l'ip e il mac non corrispondono.

    Spero di essermi spiegato….

    Anche se ho cercato ovunque non riesco a trovare nulla al riguardo….

  11.   Hotmail suddetto

    Grazie per aver condiviso la sceneggiatura, dovrò apportare alcune modifiche ma in fondo è quello che stavo cercando, ancora una volta apprezzato. Saluti

  12.   Isidoro suddetto

    Proprio quello che stavo cercando, perché ho bisogno che il mio lampone rilevi quando il mio telefono si connette al wifi per eseguire un'altra bash.
    grazie mille