웹사이트 검색

Linux에서 nmap을 사용하여 네트워크의 모든 장치를 보는 방법


홈 네트워크에 무엇이 연결되어 있는지 알고 계십니까? 당신은 놀랄 수 있습니다. 네트워크에 연결된 모든 장치를 탐색할 수 있는 Linux에서 nmap을 사용하여 확인하는 방법을 알아보세요.

홈 네트워크가 매우 단순하다고 생각할 수 있으며 자세히 살펴보면 배울 것이 없습니다. 당신이 옳을 수도 있지만, 당신이 몰랐던 것을 배울 가능성이 있습니다. 광대역 라우터, 랩탑, 데스크탑 컴퓨터와 같은 일반적인 네트워크 장치 외에도 사물 인터넷 장치, 전화 및 태블릿과 같은 모바일 장치, 스마트 홈 혁명의 확산으로 인해 눈을 뜨게 될 것입니다.

필요한 경우 nmap을 설치하십시오.

우리는 nmap 명령을 사용할 것입니다. 컴퓨터에 설치한 다른 소프트웨어 패키지에 따라 nmap이 이미 설치되어 있을 수 있습니다.

그렇지 않은 경우 우분투에 설치하는 방법입니다.

sudo apt-get install nmap

페도라에 설치하는 방법입니다.

sudo dnf install nmap

Manjaro에 설치하는 방법입니다.

sudo pacman -Syu nmap

Linux 배포용 패키지 관리자를 사용하여 다른 버전의 Linux에 설치할 수 있습니다.

IP 주소 찾기

첫 번째 작업은 Linux 컴퓨터의 IP 주소를 찾는 것입니다. 네트워크에서 사용할 수 있는 최소 및 최대 IP 주소가 있습니다. 이것은 네트워크의 IP 주소 범위입니다. nmap에 IP 주소 또는 IP 주소 범위를 제공해야 하므로 해당 값이 무엇인지 알아야 합니다.

편리하게도 Linux는 ip라는 명령을 제공하며 addr(주소)라는 옵션이 있습니다. ip, 공백, addr을 입력하고 Enter 키를 누릅니다.

ip addr

출력의 하단 섹션에서 IP 주소를 찾을 수 있습니다. inet이라는 레이블이 앞에 붙습니다.

이 컴퓨터의 IP 주소는 192.168.4.25입니다. /24는 서브넷 마스크에 8개의 1이 3개 연속으로 있음을 의미합니다. (그리고 3 x 8=24.)

바이너리에서 서브넷 마스크는 다음과 같습니다.

11111111.11111111.11111111.00000000

10진수로 255.255.255.0입니다.

서브넷 마스크와 IP 주소는 IP 주소의 어느 부분이 네트워크를 식별하고 어떤 부분이 장치를 식별하는지 나타내는 데 사용됩니다. 이 서브넷 마스크는 IP 주소의 처음 세 숫자가 네트워크를 식별하고 IP 주소의 마지막 부분이 개별 장치를 식별함을 하드웨어에 알립니다. 그리고 8비트 이진수로 저장할 수 있는 가장 큰 숫자는 255이므로 이 네트워크의 IP 주소 범위는 192.168.4.0에서 192.168.4.255까지입니다.

이 모든 것은 /24에 캡슐화됩니다. 다행스럽게도 nmap은 해당 표기법과 함께 작동하므로 nmap을 사용하기 위해 필요한 것이 있습니다.

nmap 시작하기

nmap은 네트워크 매핑 도구입니다. 제공할 범위의 IP 주소로 다양한 네트워크 메시지를 전송하여 작동합니다. 응답 유형을 판단하고 해석하여 탐색하는 장치에 대해 많은 것을 추론할 수 있습니다.

nmap으로 간단한 스캔을 시작해 봅시다. -sn(포트를 스캔하지 않음) 옵션을 사용하겠습니다. 이것은 nmap에게 지금은 장치의 포트를 조사하지 않도록 지시합니다. 가볍고 빠른 스캔을 수행합니다.

그렇더라도 nmap이 실행되는 데 약간의 시간이 걸릴 수 있습니다. 물론 네트워크에 있는 장치가 많을수록 더 오래 걸립니다. 모든 조사 및 정찰 작업을 먼저 수행한 다음 첫 번째 단계가 완료되면 결과를 제시합니다. 1분 정도 아무 일도 일어나지 않더라도 놀라지 마십시오.

우리가 사용할 IP 주소는 앞에서 ip 명령을 사용하여 얻은 주소이지만 최종 숫자는 0으로 설정됩니다. 이것이 이 네트워크에서 가능한 첫 번째 IP 주소입니다. /24는 nmap에게 이 네트워크의 전체 범위를 스캔하도록 지시합니다. 192.168.4.0/24 매개변수는 IP 주소 192.168.4.0에서 시작하여 192.168.4.255까지의 모든 IP 주소를 통해 바로 작동으로 변환됩니다.

우리는 sudo를 사용하고 있습니다.

sudo nmap -sn 192.168.4.0/24

잠시 기다린 후 출력이 터미널 창에 기록됩니다.

sudo를 사용하지 않고 이 검사를 실행할 수 있지만 sudo를 사용하면 최대한 많은 정보를 추출할 수 있습니다. 예를 들어 sudo가 없으면 이 스캔은 제조업체 정보를 반환하지 않습니다.

-sn 옵션을 사용하는 것의 장점은 빠르고 가벼운 스캔일 뿐만 아니라 라이브 IP 주소의 깔끔한 목록을 제공한다는 것입니다. 즉, IP 주소와 함께 네트워크에 연결된 장치 목록이 있습니다. 그리고 가능한 경우 nmap은 제조업체를 식별했습니다. 첫 시도치고는 나쁘지 않습니다.

다음은 목록의 맨 아래입니다.

우리는 연결된 네트워크 장치의 목록을 만들었으므로 얼마나 많은 장치가 있는지 알고 있습니다. 15개의 장치가 켜져 있고 네트워크에 연결되어 있습니다. 우리는 그들 중 일부에 대한 제조업체를 알고 있습니다. 또는 우리가 보게 될 것처럼 우리는 nmap이 제조업체로서 최선을 다해 보고한 것을 가지고 있습니다.

결과를 살펴보면 인식하는 장치가 표시될 수 있습니다. 당신이하지 않는 것이있을 수 있습니다. 이것들은 우리가 더 조사해야 할 것들입니다.

이러한 장치 중 일부는 나에게 분명합니다. Raspberry Pi Foundation은 자명합니다. Amazon Technologies 장치는 내 Echo Dot이 됩니다. 내가 가진 유일한 삼성 장치는 레이저 프린터이므로 범위를 좁힐 수 있습니다. Dell에서 제조한 것으로 나열된 몇 가지 장치가 있습니다. 그것들은 쉽습니다. 그것은 PC와 노트북입니다. Avaya 장치는 본사의 전화 시스템에서 확장 기능을 제공하는 Voice Over IP 전화입니다. 그것은 그들이 집에서 나를 더 쉽게 괴롭힐 수 있기 때문에 나는 그 장치를 잘 알고 있습니다.

하지만 여전히 질문이 남아 있습니다.

나에게 아무 의미가 없는 이름을 가진 여러 장치가 있습니다. 예를 들어 Liteon 기술 및 Elitegroup 컴퓨터 시스템.

하나 이상의 Raspberry PI가 있습니다. 네트워크에 연결되는 수는 이미지가 다시 지정되고 용도가 변경됨에 따라 지속적으로 교체되기 때문에 항상 달라집니다. 그러나 확실히 하나 이상의 표시가 있어야 합니다.

알 수 없음으로 표시된 장치가 두 개 있습니다. 분명히 그들은 조사가 필요할 것입니다.

심층 스캔 수행

-sn 옵션을 제거하면 nmap도 장치의 포트를 검색하려고 시도합니다. 포트는 장치의 네트워크 연결을 위해 번호가 매겨진 끝점입니다. 아파트 블록을 고려하십시오. 모든 아파트는 동일한 거리 주소(IP 주소에 해당)를 갖지만 각 아파트에는 자체 번호(포트에 해당)가 있습니다.

장치 내의 각 프로그램 또는 서비스에는 포트 번호가 있습니다. 네트워크 트래픽은 IP 주소뿐만 아니라 IP 주소와 포트로 전달됩니다. 일부 포트 번호는 미리 할당되거나 예약되어 있습니다. 이들은 항상 특정 유형의 네트워크 트래픽을 전달하는 데 사용됩니다. 예를 들어 포트 22는 SSH 연결용으로 예약되어 있고 포트 80은 HTTP 웹 트래픽용으로 예약되어 있습니다.

nmap을 사용하여 각 장치의 포트를 스캔하고 어떤 포트가 열려 있는지 알려줄 것입니다.

nmap 192.168.4.0/24

이번에는 각 장치에 대한 더 자세한 요약을 얻습니다. 네트워크에 13개의 활성 장치가 있다고 들었습니다. 잠깐 기다려요; 조금 전에는 15개의 장치가 있었습니다.

이러한 스캔을 실행하면 장치 수가 달라질 수 있습니다. 모바일 장치가 구내에 들어오고 나가거나 장비가 켜졌다 꺼졌기 때문일 수 있습니다. 또한 전원이 꺼진 장치의 전원을 켜면 마지막으로 사용했을 때와 동일한 IP 주소를 가지지 않을 수 있습니다. 그럴 수도 있지만 그렇지 않을 수도 있습니다.

출력이 많았습니다. 다시 한 번 파일에 캡처해 보겠습니다.

nmap 192.168.4.0/24 > nmap-list.txt

이제 less로 파일을 나열하고 원하는 경우 검색할 수 있습니다.

less nmap-list.txt

nmap 보고서를 스크롤하면서 설명할 수 없거나 이상해 보이는 것을 찾습니다. 목록을 검토할 때 추가로 조사하려는 장치의 IP 주소를 기록해 두십시오.

이전에 생성한 목록에 따르면 192.168.4.10은 Raspberry Pi입니다. 하나의 Linux 배포판 또는 다른 배포판을 실행하게 됩니다. 그렇다면 포트 445를 사용하는 것은 무엇입니까? microsoft-ds로 설명됩니다. Microsoft, Linux를 실행하는 Pi에서? 우리는 확실히 그것을 조사할 것입니다.

192.168.4.11은 이전 스캔에서 알 수 없음으로 태그되었습니다. 많은 포트가 열려 있습니다. 우리는 그것이 무엇인지 알아야 합니다.

192.168.4.18도 Raspberry Pi로 식별되었습니다. 그러나 그 Pi와 장치 192.168.4.21은 모두 sun-answerbook에서 사용하는 것으로 설명된 포트 8888을 열어 둡니다. Sun AnswerBook은 수년 동안 폐기된(기본) 문서 검색 시스템입니다. 말할 필요도 없이, 어디에도 설치되어 있지 않습니다. 살펴볼 필요가 있습니다.

장치 192.168.4.22는 이전에 삼성 프린터로 식별되었으며 여기에서 프린터라는 태그로 확인됩니다. 내 눈을 사로잡은 것은 HTTP 포트 80이 존재하고 열려 있다는 것입니다. 이 포트는 웹사이트 트래픽용으로 예약되어 있습니다. 내 프린터에 웹사이트가 포함되어 있습니까?

장치 192.168.4.31은 Elitegroup Computer Systems라는 회사에서 제조한 것으로 알려졌습니다. 나는 들어 본 적이 없으며 장치에 많은 포트가 열려 있으므로 조사하겠습니다.

장치가 더 많은 포트를 열수록 인터넷에 직접 노출되는 경우 사이버 범죄자가 침입할 가능성이 높아집니다. 그것은 집과 같습니다. 문과 창문이 많을수록 도둑이 들어올 가능성이 더 커집니다.

우리는 용의자를 정렬했습니다. 그들이 말하게 합시다

장치 192.168.4.10은 microsoft-ds로 설명되는 포트 445가 열려 있는 Raspberry Pi입니다. 인터넷 검색을 통해 포트 445가 일반적으로 Samba와 연결되어 있음을 알 수 있습니다. Samba는 Microsoft의 SMB(Server Message Block Protocol)를 무료로 구현한 소프트웨어입니다. SMB는 네트워크를 통해 폴더와 파일을 공유하는 수단입니다.

이것은 의미가 있습니다. 저는 그 특정 Pi를 일종의 미니 NAS(Network Attached Storage) 장치로 사용합니다. 내 네트워크의 모든 컴퓨터에서 연결할 수 있도록 Samba를 사용합니다. 네, 쉬웠습니다. 하나 아래로, 몇 개 더 가야 합니다.

열린 포트가 많은 알 수 없는 장치

IP 주소가 192.168.4.11인 장치는 제조업체를 알 수 없고 많은 포트가 열려 있습니다.

nmap을 더 적극적으로 사용하여 기기에서 더 많은 정보를 빼낼 수 있습니다. -A (적극적 스캔) 옵션은 nmap이 운영 체제 감지, 버전 감지, 스크립트 스캔 및 traceroute 감지를 사용하도록 강제합니다.

-T(타이밍 템플릿) 옵션을 사용하면 0에서 5까지의 값을 지정할 수 있습니다. 이는 타이밍 모드 중 하나를 설정합니다. 타이밍 모드에는 편집증(0), 은밀함(1), 공손함(2), 보통(3), 공격적(4), 미친(5) 등의 이름이 있습니다. 숫자가 낮을수록 nmap이 대역폭과 다른 네트워크 사용자에게 미치는 영향이 적습니다.

우리는 IP 범위와 함께 nmap을 제공하지 않는다는 점에 유의하십시오. 우리는 해당 장치의 IP 주소인 단일 IP 주소에 nmap을 집중하고 있습니다.

sudo nmap -A -T4 192.168.4.11

이 기사를 조사하는 데 사용된 시스템에서 nmap이 해당 명령을 실행하는 데 9분이 걸렸습니다. 출력을 보기 전에 잠시 기다려야 하는 경우 놀라지 마십시오.

불행히도 이 경우 출력은 우리가 원했던 쉬운 답을 주지 않습니다.

우리가 배운 추가 사항 중 하나는 Linux 버전을 실행하고 있다는 것입니다. 내 네트워크에서는 그다지 놀라운 일이 아니지만 이 버전의 Linux는 이상합니다. 꽤 오래된 것 같습니다. Linux는 거의 모든 사물 인터넷 장치에서 사용되므로 실마리가 될 수 있습니다.

출력 nmap에서 더 아래에 기기의 미디어 액세스 제어 주소(MAC 주소)가 표시되었습니다. 이것은 네트워크 인터페이스에 할당되는 고유한 참조입니다.

MAC 주소의 처음 3바이트는 OUI(Organizationally Unique Identifier)라고 합니다. 이는 네트워크 인터페이스의 공급업체 또는 제조업체를 식별하는 데 사용할 수 있습니다. 당신이 35,909개의 데이터베이스를 모은 괴짜라면 말입니다.

내 유틸리티는 Google에 속한다고 말합니다. 독특한 버전의 Linux에 대한 이전의 질문과 그것이 사물 인터넷 장치일지도 모른다는 의심과 함께 이것은 제 Google Home mini 스마트 스피커에 공정하고 정직하게 손가락을 가리킵니다.

Wireshark 제조업체 조회 페이지를 사용하여 온라인에서 동일한 종류의 OUI 조회를 수행할 수 있습니다.

다행히도 내 결과와 일치합니다.

장치의 ID를 확인하는 한 가지 방법은 스캔을 수행하고 장치를 끈 다음 다시 스캔하는 것입니다. 이제 두 번째 결과 집합에서 누락된 IP 주소는 방금 전원을 끈 장치입니다.

Sun AnswerBook?

다음 수수께끼는 IP 주소가 192.168.4.18인 Raspberry Pi에 대한 sun-answerbook 설명이었습니다. 동일한 sun-answerbook 설명이 192.168.4.21의 장치에 대해 표시되었습니다. 장치 192.168.4.21은 Linux 데스크톱 컴퓨터입니다.

nmap은 알려진 소프트웨어 연결 목록에서 포트 사용을 가장 잘 추측합니다. 물론 이러한 포트 연결 중 하나라도 더 이상 적용할 수 없는 경우(아마도 소프트웨어가 더 이상 사용되지 않고 수명이 다한 경우) 스캔 결과에 잘못된 포트 설명이 표시될 수 있습니다. Sun AnswerBook 시스템의 역사는 1990년대 초로 거슬러 올라가며, 들어본 사람에게는 머나먼 기억에 지나지 않습니다.

그렇다면 오래된 Sun Microsystems 소프트웨어가 아니라면 이 두 장치인 Raspberry Pi와 데스크탑의 공통점은 무엇일까요?

인터넷 검색은 유용한 정보를 반환하지 않았습니다. 히트작이 많았습니다. 포트 80을 사용하지 않으려는 웹 인터페이스가 있는 모든 항목은 대체 포트로 포트 8888을 선택하는 것 같습니다. 따라서 다음 논리적 단계는 브라우저를 사용하여 해당 포트에 연결을 시도하는 것이었습니다.

내 브라우저에서 주소로 192.168.4.18:8888을 사용했습니다. 브라우저에서 IP 주소와 포트를 지정하는 형식입니다. 콜론 :를 사용하여 IP 주소와 포트 번호를 구분하십시오.

실제로 웹 사이트가 열렸습니다.

Resilio Sync를 실행하는 모든 장치의 관리 포털입니다.

저는 항상 명령줄을 사용하므로 이 기능에 대해 완전히 잊어버렸습니다. 따라서 Sun AnswerBook 항목 목록은 완전한 청어였으며 포트 8888 뒤에 있는 서비스가 식별되었습니다.

숨겨진 웹 서버

살펴보기 위해 녹화한 다음 문제는 내 프린터의 HTTP 포트 80이었습니다. 이번에도 nmap 결과에서 IP 주소를 가져와 내 브라우저의 주소로 사용했습니다. 포트를 제공할 필요가 없었습니다. 브라우저는 기본적으로 포트 80으로 설정됩니다.

보라, 보라. 내 프린터에는 웹 서버가 내장되어 있습니다.

이제 나는 그것을 통과한 페이지 수, 토너 수준 및 기타 유용하거나 흥미로운 정보를 볼 수 있습니다.

또 다른 알 수 없는 장치

192.168.4.24의 장치는 지금까지 시도한 nmap 스캔에 아무 것도 공개하지 않았습니다.

-Pn(핑 없음) 옵션을 추가했습니다. 이로 인해 nmap은 대상 장치가 작동 중이라고 가정하고 다른 스캔을 진행합니다. 이는 예상대로 반응하지 않고 nmap이 오프라인이라고 생각하도록 혼동하는 장치에 유용할 수 있습니다.

sudo nmap -A -T4 -Pn 192.168.4.24

이것은 정보 덤프를 검색했지만 장치를 식별하는 것은 없었습니다.

Mandriva Linux에서 Linux 커널을 실행하는 것으로 보고되었습니다. Mandriva Linux는 2011년에 중단된 배포판이었습니다. OpenMandriva라는 새로운 커뮤니티에서 지원하고 있습니다.

또 다른 사물 인터넷 장치일까요? 아마도 그렇지 않을 것입니다. 저는 두 개만 가지고 있고 둘 다 설명되었습니다.

방별 워크스루와 물리적 장치 수는 나에게 아무것도 얻지 못했습니다. MAC 주소를 찾아봅시다.

그래서 알고 보니 내 휴대폰이었다.

Wireshark 제조업체 조회 페이지를 사용하여 이러한 조회를 온라인으로 수행할 수 있음을 기억하십시오.

엘리트그룹 컴퓨터 시스템

마지막 두 가지 질문은 제조업체 이름을 인식할 수 없는 Liteon 및 Elitegroup Computer Systems라는 두 장치에 관한 것이었습니다.

태세를 바꾸자. 네트워크에 있는 장치의 ID를 고정하는 데 유용한 또 다른 명령은 arp입니다. arp는 Linux 컴퓨터에서 주소 확인 프로토콜 테이블과 함께 작동하는 데 사용됩니다. IP 주소(또는 네트워크 이름)에서 MAC 주소로 변환하는 데 사용됩니다.

컴퓨터에 arp가 설치되어 있지 않다면 다음과 같이 설치할 수 있습니다.

Ubuntu에서는 apt-get을 사용합니다.

sudo apt-get install net-tools

Fedora에서는 dnf를 사용합니다.

sudo dnf install net-tools

Manjaro에서는 pacman을 사용합니다.

sudo pacman -Syu net-tools

장치 및 네트워크 이름 목록을 보려면(할당된 경우) arp를 입력하고 Enter 키를 누르십시오.

이것은 내 연구 기계의 출력입니다.

첫 번째 열의 이름은 장치에 할당된 시스템 이름(호스트 이름 또는 네트워크 이름이라고도 함)입니다. 그중 일부는 내가 설정했고(예: Nostromo, Cloudbase, Marineville) 일부는 제조업체에서 설정했습니다(예: Vigor.router).

출력은 nmap의 출력과 상호 참조하는 두 가지 방법을 제공합니다. 장치의 MAC 주소가 나열되어 있으므로 nmap의 출력을 참조하여 장치를 추가로 식별할 수 있습니다.

또한 ping과 함께 시스템 이름을 사용할 수 있고 ping이 기본 IP 주소를 표시하기 때문에 ping을 사용하여 시스템 이름을 IP 주소에 상호 참조할 수 있습니다. 각 이름에 차례로 를 입력합니다.

예를 들어 Nostromo.local을 ping하고 해당 IP 주소가 무엇인지 알아봅시다. 시스템 이름은 대소문자를 구분하지 않습니다.

ping nostromo.local

ping을 중지하려면 Ctrl+C를 사용해야 합니다.

출력은 IP 주소가 192.168.4.15임을 보여줍니다. 그리고 그것은 Liteon을 제조업체로 사용하여 첫 번째 nmap 스캔에 나타난 장치입니다.

Liteon 회사는 많은 컴퓨터 제조업체에서 사용하는 컴퓨터 구성 요소를 만듭니다. 이 경우 Asus 노트북 내부의 Liteon Wi-Fi 카드입니다. 따라서 앞에서 언급했듯이 nmap에서 반환되는 제조업체 이름은 최선의 추측일 뿐입니다. nmap은 Liteon Wi-Fi 카드가 Asus 노트북에 장착되었음을 어떻게 알았습니까?

그리고 마지막으로. Elitegroup Computer Systems에서 제조한 기기의 MAC 주소는 LibreELEC.local이라는 기기의 arp 목록에 있는 주소와 일치합니다.

이것은 LibreELEC 미디어 플레이어를 실행하는 인텔 NUC입니다. 이 NUC에는 Elitegroup Computer Systems 회사의 마더보드가 있습니다.

그리고 모든 수수께끼가 풀렸습니다.

모두 설명

이 네트워크에 설명할 수 없는 장치가 없음을 확인했습니다. 여기에 설명된 기술을 사용하여 네트워크를 조사할 수도 있습니다. 내부 괴짜를 만족시키기 위해 또는 네트워크에 연결된 모든 것이 거기에 있을 권리가 있다는 것을 스스로 만족시키기 위해 관심에서 이 작업을 수행할 수 있습니다.

연결된 장치는 모양과 크기가 다양하다는 점을 기억하십시오. 나는 원을 그리며 이상한 장치를 추적하는 데 시간을 보냈고 그것이 사실 내 손목의 스마트 워치라는 것을 깨닫기 전에.

RELATED: Best Linux Laptops for Developers and Enthusiasts