여기에서는 제가 아주 구체적인 목적을 위해 만든 bash 스크립트에 대해 말씀드리겠습니다. 다른 사람들도 이런 상황을 겪을지 의심스럽습니다. 하지만 제가 프로그래밍했기 때문에... 공유하는 데 비용이 전혀 들지 않습니다
위층,이게 무슨 소리 야?
우리 도시에는 상당히 큰 네트워크가 있고, 우리 중 많은 사람들이 유선 방식 (네트워크 케이블을 스위치에 연결, 다른 스위치에 연결)으로 연결하지만 큰 링크 (케이블로는 연결할 수 없음)가 있습니다. 그들은 Wi-Fi 장비를 사용합니다. 이렇게하면 수천 명의 사용자가있는 네트워크가 있고, 메일 서비스가없고 인터넷이 훨씬 적더라도 WoW를 플레이하고 (다른 것들 중에서) 배우고 정보를 공유하는 등의 작업을합니다.
사실 특정 Wi-Fi 장비는 소유자가 네트워크 규칙을 위반하거나 어떤 이유로 든 네트워크에서 금지되거나 추방 된 경우가 있습니다. 따라서 누군가가 꺼낸 컴퓨터의 MAC에 다시 연결되었는지 확인하기 위해 매 X 회 검사를 수행해야하며, 여기에서이 스크립트가 들어옵니다.
간단히 말해, 스크립트는 무엇을합니까?
- 먼저 실행중인 서브넷에서 스캔을 수행하고 라이브 호스트 (활성 IP)를 감지합니다.
- 그런 다음 해당 IP 중 Ubiquiti (링크에 사용되는 장비)가 있는지 확인합니다. 실제로 위의 각 IP에서 포트 443이 열려 있는지 여부 만 감지합니다.
- 각 라이브 장치의 MAC을 제거하고 포트 443이 열린 상태에서 동시에 추출 된 각 MAC을 검색중인 MAC과 비교합니다.
- 일치하는 항목을 찾으면 보고서를 생성합니다.
코드에 가자!
작동을 위해 다음 패키지가 설치되어야 함을 명확히하는 데 유효합니다. nmap… nc… arping
음, nmap을 사용하면 활성 IP를 감지하는 매핑을 수행하고 nc를 사용하여 포트 443이 열려있는 것을 확인하고 마지막으로 arping을 사용하여 MAC을 추출합니다.
예, nmap을 사용하면이 모든 작업을 수행 할 수 있지만 몇 초 (또는 몇 분 더)가 걸렸기 때문에 모든 도구가 더 빠르게 작동하도록 하나가 아닌 여러 도구를 사용하는 것을 선호했습니다.
네 지금 요…. 코드!
#! / bin / bash # # 패키지 설치 필요 : # nmap, arping, nc # # Author : KZKG ^ Gaara clear # 변수 선언 DATE =`date + '% Y- % m- % d_ % H- % M '`인터페이스 ='wlo1 'WANTEDMAC ='C8 : CB : B8 : B1 : DA : E6 'YOURIP =`ifconfig | grep "192.168"| awk '{print $ 2}'``YOURZONE =`echo $ YOURIP | awk -F "." '{print $ 3}'``# 네트워크 (귀하의 IP)에서 살아있는 호스트 가져 오기 nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "보고"| awk '{print $ 5}'> hosts-ip # 포트 443을 열어서 이러한 호스트 중 어느 것이 Nano가 될 수 있는지 확인합니다. 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 # 네트워크의 Nanos에서 MAC 제거 rm hosts-mac &> / dev / null for TMPVAR in`cat hosts-nanos` do arping -I $ INTERFACE -f $ TMPVAR | grep "답장"| awk '{print $ 5}'| cut -d '['-f2 | cut -d ']'-f1 >> hosts-mac done # 추출 된 MAC을`cat hosts-mac '에서 검색 한 MAC과 비교 do if [ "$ MAC"= "$ WANTEDMAC"]; 그러면 MACLINE =`cat hosts-mac | grep -n $ MAC | cut -d ':'-f1` IPMAC =`cat hosts-nanos | sed $ MACLINE'q; d'`echo -e "\ n \ t ALERT, 도난 된 장치의 MAC 감지 : $ MAC ... IP 사용 : $ IPMAC"echo -e "\ t ... 보고서 생성 중 ... "echo -e"SpyMac에서 생성 된 보고서 \ n "> final_report_ $ YOURZONE.info echo -e"보고 순간 : $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e"도난당한 장치의 MAC 감지 : $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e"이 컴퓨터에서 현재 사용중인 IP : $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e"생성 된 보고서 : $ YOURIP \ n ">> final_report_ $ YOURZONE.info fi 완료 종료
일치하는 항목이 발견되면 발견 된 MAC과 해당 장비에서 사용하는 IP도 표시됩니다.
이 (여전히) 간격이 있습니다 hehe
개선해야 할 점이 있다는 것을 알고 있습니다. 예를 들어 MAC이 위조 될 수 있고 MAC이 컴퓨터로 변경 될 수 있으며 그게 전부입니다. 그렇다면 실제 MAC이 아닌 실제 MAC을 보는 방법을 찾고 있습니다.
또한 다른 for 루프를 추가하여 여러 MAC을 동시에 비교하고 특정 MAC 만 비교 / 검색하지 않도록 할 수 있습니다. 즉, 목록에있는 MAC 5, 10 등 무엇이든 검색합니다. 아직해야 할 일입니다.
Nano 일 수도 있지만 포트 443이 차단되어 있습니다. Ubiquiti 장치인지 아닌지 전체 보안으로 알 수있는 방법을 알고 있습니다. 즉, curl (또는 wget)을 사용하여 로그인 양식을 가져 와서 Ubiquiti 중 하나와 비교할 수 있습니다. 이것은 포트 443보다 더 안전한 방법입니다. 향후 버전에 추가 할 또 다른 세부 사항입니다.
또한 Android에서이 도구를 사용하기 위해 작은 스크립트 또는 APK를 생성하기를 원합니다. 넣을 수 없다는 걸 알아 Play 스토어 하지만…. 글쎄, 내가 그러고 싶은 건 아니야
아, iPhone 사용자 ... 할 수 있어도 (지식과 시간을 위해)이 도구를 iOS로 이식 할 수 있습니까 ... JUAZ JUAZ JUAZ ... 앱 스토어 우연히 비슷한 것이 있는지 봅시다.
끝
그게 다야. 반복합니다. 특정 스크립트는 많은 사람들에게 유용하지 않을 수 있지만(매우 특정한 상황에 대한 것입니다) 아마도 코드의 일부는 유용할 것입니다. 그렇게 되기를 바랍니다