Aquí us parlaré d'un script en bash que vaig fer per a una finalitat molt específica, que dubto que altres tinguin aquesta situació però, ja que ho vaig programar… no em costa gens compartir-lo
A dalt, ¿de què va això?
Passa que a la meva ciutat hi ha una xarxa bastant gran, molts ens connectem de manera cablejada (un cable de xarxa a un switch, enllaçat a un altre, ia si molts switches jeje), però els enllaços grans (que no poden ser per cable) es fan amb equips wifi, d'aquesta manera es té una xarxa amb diversos milers d'usuaris, que si bé no hi ha servei de correu ni moltíssim menys internet, si es juga WoW (entre d'altres), s'aprèn, comparteix informació, etc.
El cas és que s'ha donat el cas que es banea o expulsa de la xarxa a determinat equip wifi, bé perquè el seu amo incompleix normes de la xarxa, o pel que sigui. Llavors, es fa necessari fer un scan cada X temps per revisar si la MAC de l'equip expulsat algú ho ha tornat a connectar, i aquí és on entra aquest script.
De manera simple, què fa l'script?
- Primer fa un scan a la xarxa que executi i detecta els hosts vius (les IPs actives)
- Després, revisa si alguna d'aquestes IPs és un Ubiquiti (equips que s'usen per als enllaços). En realitat només detecta si el port 443 està obert en cadascuna de les IPs anteriors.
- Treu la MAC de cada equip viu i amb el port 443 obert, mentre que a el mateix temps va comparant cada MAC extreta amb la qual es busca.
- En cas que trobi una coincidència, genera un informe.
Va, a l'code!
Vàlid aclarir que per al seu funcionament necessita els següents paquets instal·lats: nmap ... nc ... arping
Doncs amb nmap fa el mapeig per detectar IPs actives, amb nc després comprova quin té el port 443 obert, i finalment amb arping extreu la MAC.
Sí, sé que amb nmap es pot fer tot això, però demorava diversos segons (o minuts més), vaig preferir usar diverses eines en comptes de solament una perquè funcioni tot més ràpid.
Ara sí .... el code!
#! / Bin / bash # # Requereix tenir instal·lats els paquets: # nmap, arping, nc # # Autor: KZKG ^ Gaara clear # Declarant variables DATE = `date + '% I-% m-% d_% H-% M ' `INTERFÍCIE =' wlo1 'WANTEDMAC =' C8: CB: B8: B1: DA: E6 'YOURIP =` ifconfig | grep "192.168" | awk '{print $ 2}' `YOURZONE =` echo $ YOURIP | awk -F "." '{Print $ 3}' `# Traient els Hosts Alive a la xarxa (la seva IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "report for" | awk '{print $ 5}'> hosts-ip # Veient quins d'eixos Hosts poden ser un Nano a l'tenir el port 443 obert rm hosts-nanos &> / dev / null for TMPVAR in `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null if [$? -ne 1]; then echo "$ TMPVAR" >> hosts-nanos fi done # Traient MAC de Nanos a la xarxa rm hosts-mac &> / dev / null for TMPVAR in `cat hosts-nanos` do arping -I $ INTERFÍCIE -f $ TMPVAR | grep "reply from" | awk '{print $ 5}' | cut -d '[' -F2 | cut -d ']' -f1 >> hosts-mac done # Comparant MACs extretes amb la buscada for MAC in `cat hosts-mac` do if [" $ MAC "=" $ WANTEDMAC "]; then MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `cat hosts-nanos | set $ MACLINE'q; d' `echo -e" \ n \ t ALERTA, MAC d'equip robat detectada: $ MAC ... Amb IP: $ IPMAC "echo -e" \ t ... Generant Informe ... "echo -e" informe generat per SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" Moment de l'informe: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" MAC d'equip robat detectada: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP que utilitza actualment aquest equip: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" Informe generat per: $ YOURIP \ n ">> final_report_ $ YOURZONE.info fi done exit
En cas que es trobi una coincidència, ens mostrarà la MAC trobada ia més, la IP que usa aquest equip.
Això (encara) té llacunes jeje
Sé que hi ha coses a millorar, per exemple les MACs es poden falsejar, se li pot canviar la MAC a l'equip i llest, encara estic buscant com veure la MAC real i no la falsa si es dóna el cas.
També, agregant un altre cicle for puc fer que es comparin diverses MACs a el mateix temps i no comparar / buscar només una a específic, és a dir, que es busquin les MACs que estiguin en un llistat, 5, 10, les que siguin. És una cosa que tinc per fer encara.
Potser és un Nano però té el port 443 bloquejat, sé com poder amb total seguretat saber si és un equip Ubiquiti o no, o sigui amb curl (o wget) puc treure el formulari de login i comparar-lo amb un d'un Ubiquiti, aquest és un mètode més segur que amb el port 443. és un altre detall a afegir en futures versions.
També m'agradaria (cosa que ja sí que em resultarà difícil) generar un petit script o inclusivament un APK per tenir aquesta eina en el meu Android. Sé que no podré posar-la en el Play Store però…. bou, tampoc és que vulgui
Ah, els usuaris d'iPhone ... ni encara que pugui (per coneixements i temps) portaria aquesta eina a iOS ... JUAZ JUAZ JUAZ ... busquin en la seva App Store a veure si de casualitat tenen alguna cosa semblant, cosa que dubto
Final
Bé és tot. Repeteixo, crec que l'script en específic potser no els serà d'utilitat a molts (és per a una situació força específica), però potser parts del code sí, tant de bo i sigui així