네트워킹은 서버, 데스크톱, 휴대폰, 공유기, 태블릿PC 등 여러 장비나 단말에 의해 이뤄집니다. 패킷 덤프를 따서 어떤 유형의 Host(기기/시스템)들이 트래픽을 발생시켰는지 확인하고자 할 때 사용하는 총 6가지의 방법을 소개해드리겠습니다.
방법 1: 이더넷 프레임 확인
이더넷 프레임에는 맥 주소(MAC Address) 정보가 있습니다. 맥 주소는 6 bytes의 공간을 차지하며 이더넷의 물리적 주소를 가리키는 역할을 합니다. 맥 주소의 앞 3byte는 단말 또는 네트워크 장비의 제조사 식별번호(Organizational Unique Identifier, OUI)를 나타내며, 해당 필드값을 통해 트래픽을 발생시킨 노드가 어떤 제조사의 제품인지 유추할 수 있습니다.
아래 이미지에 보여진 패킷의 Ethernet Frame - Source 필드를 주목해보세요. (10:dd:b1:c5:04:de)에서 앞의 3자리 10:dd:b1 는 Apple_c5 이라는 식별번호에 해당하며, 대강 Apple사와 관련된 기기(맥, 아이폰, 아이패드 등)임을 짐작가능하실 겁니다.
방법 2: dhcp
공유기를 이용하는 환경은 DHCP 트래픽이 수집됩니다. DHCP 관련된 트래픽을 조회하려면 Wireshark 필터 조건 입력창에 dhcp 또는 ip=0.0.0.0을 입력해야 합니다. DHCP 요청을 한 단말은 DHCP 서버로부터 IP를 부여받기 전이라 ip=0.0.0.0으로 필터링이 가능한데요. DHCP Request 패킷 안에서 Host 명을 확인할 수 있습니다.
예시로 든 샘플을 보면, DHCP Request를 통해 DHCP서버(10.5.3.1)에게 10.5.3.177이라는 동적 IP를 요청하였고 그 과정에서 DHCP 필드 영역 끝자락에 Host Name "Greg-MacBookPro"라는 정보가 포함되었음을 확인 가능합니다. 따라서, 나중에 10.5.3.177이라는 IP를 사용하는 호스트를 발견한다면 "맥북프로 사용자가 네트워크를 쓰고 있구나" 정도의 정보를 파악할 수 있습니다.
방법 3. nbns
nbns는 NetBIOS Name Service의 약자로, 근거리 통신망 내에 있는 호스트 간에 이름이 충돌하지 않도록 매니징(Name Resolution)하는 서비스입니다. DNS와 얼추 비슷한 역할인데 기능이나 범위는 그보다는 제한적입니다.
nbns라는 필터링 조건으로 패킷을 조회해보면 어떤 호스트 명이 네트워크 상에 등록되려고 했는지를 볼 수 있습니다. nbns 패킷은 대체로 Windows OS를 사용하는 머신에서 주로 발견되고 간혹 MAC OS 제품에서도 나타나곤 합니다.
방법 4. TCP Stream
HTTP 프로토콜을 사용하는 웹 트래픽은 TCP Stream 분석을 통해 호스트의 기종뿐만 아니라 브라우저의 정보까지 탐색할 수 있습니다.
HTTP 패킷을 하나 우클릭하고 Follow ▶ TCP Stream을 선택하면 창 하나가 새로 띄워져 PlainText가 화면에 보여집니다 (아래 2번째 이미지 참조). 이 중에서 User-Agent 항목을 확인해보세요. 2번째 이미지를 예시로 들면, 해당 영역에 Mozilla/5.0 (Macintosh; ~)이라는 정보가 표기되어 있는데요. 이는 Mac 유저가 사파리 브라우저를 통해 인터넷을 하다가 발생시킨 트래픽임을 의미합니다.
마찬가지로 Windows에서 발생한 트래픽의 TCP stream 결과입니다. Windows 트래픽의 경우 Windows NT x.x라는 표기법을 사용합니다. 이 부분을 어떻게 해석할 수 있는지 찾아본 결과, 다음과 같이 OS 버전과 매핑된다고 하네요.
- Windows NT 5.1 - Windows XP
- Windows NT 6.0 - Windows Vista
- Windows NT 6.1 - Windows 7
- Windows NT 6.2 - Windows 8
- Windows NT 6.3 - Windows 8.1
- Windows NT 10.0 - Windows 10
Android와 같은 무선통신 기기는 해당 기종의 정보가 표시됩니다. LM-X210APM은 LG에서 출시했던 스마트폰 기종이더라구요.
방법 5. smb
Windows는 smb라는 파일/디렉토리/프린터 등의 네트워크 자원을 공유하는 프로토콜을 사용합니다. smb 통신을 하는 노드들은 넷바이오스(NetBIOS)를 통해 호스트 명이 등록되어 있어서 패킷 상에 해당 정보가 노출됩니다.
방법 6. 조건 ip contains "DESKTOP-" 으로 필터링
기타 몇몇 프로토콜은 호스트 명을 Plaintext로 담아 전송합니다. 일반 PC들은 호스트 명이 DESKTOP-으로 시작하는 경우가 많습니다. 필터링 조건으로 ip contains "DESKTOP-"을 입력하여 해당하는 패킷들을 조회 가능합니다.