내부 네트워크 활성 호스트 탐색 기법

1. NetBIOS 프로토콜을 이용한 탐색

NetBIOS (Network Basic Input/Output System) 프로토콜은 내부 네트워크에서 호스트의 이름과 MAC 주소 등 기본 정보를 얻는 데 활용될 수 있습니다.

1.1 Nmap 활용

Nmap은 NetBIOS 관련 정보를 스캔하기 위한 스크립트를 제공합니다. 다음 명령어는 UDP 포트 137을 사용하여 지정된 대역의 호스트에서 NetBIOS 통계를 수집합니다.

nmap -sU --script nbstat.nse -p137 172.16.80.0/21 -T4

1.2 Metasploit 활용

Metasploit Framework의 보조 모듈을 사용하여 NetBIOS 이름을 스캔할 수 있습니다.

msf5 > use auxiliary/scanner/netbios/nbname
msf5 > set RHOSTS 172.16.80.0/24
msf5 > run

1.3 NBTScan 도구 활용

NBTScan은 NetBIOS 이름 테이블 정보를 빠르고 효율적으로 스캔하는 전용 도구입니다. 프로젝트 페이지에서 자세한 정보를 확인할 수 있습니다: http://www.unixwiz.net/tools/nbtscan.html

nbtscan-1.0.35.exe -m 172.16.80.0/24

2. ICMP 프로토콜을 이용한 탐색

ICMP(Internet Control Message Protocol)는 TCP/IP 프로토콜 스택의 핵심 구성 요소로, IP 호스트 및 라우터 간에 제어 메시지를 전달하는 데 사용됩니다. 네트워크 연결성, 호스트 도달 가능성 등 네트워크 자체의 상태를 확인하는 데 중요한 역할을 합니다.

2.1 명령 프롬프트(CMD)에서 Ping 스캔

Windows 명령 프롬프트에서는 ping 명령어를 루프와 결합하여 특정 IP 대역 내의 활성 호스트를 탐색할 수 있습니다. 다음 예시는 172.16.80.1부터 172.16.80.255까지의 모든 IP 주소에 대해 Ping을 시도하고 응답하는 호스트를 식별합니다.

for /l %host_id in (1,1,255) do @ping 172.16.80.%host_id -n 1 -w 50 | findstr /i "TTL="

활성 및 비활성 호스트 목록을 별도의 파일로 저장하려면 다음과 같이 명령어를 사용할 수 있습니다:

@for /l %h in (1,1,255) do @ping -n 1 -w 50 172.16.80.%h > nul && (echo 172.16.80.%h >> active_hosts.txt) || (echo 172.16.80.%h >> inactive_hosts.txt)

2.2 Nmap 활용

Nmap의 핑 스캔(Ping Scan) 기능은 포트 스캔 없이 호스트의 활성 여부만 빠르게 확인합니다. -sn 옵션은 포트 스캔을 비활성화하고, -PE는 ICMP 에코 요청을 사용합니다.

nmap -sn -PE -T4 172.16.80.0/24

스캔 결과에서 IP 주소만 추출하려면 grep 명령어를 함께 사용할 수 있습니다.

nmap -sn -PE -T4 172.16.80.0/24 | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'

3. UDP 프로토콜을 이용한 탐색

UDP(User Datagram Protocol) 기반 스캔은 특정 UDP 서비스가 활성화된 호스트를 찾거나, UDP 포트에 응답하는 호스트를 식별하는 데 사용될 수 있습니다.

3.1 Nmap 활용

Nmap은 UDP 포트 스캔을 지원하며, -sU 옵션으로 UDP 스캔을 수행할 수 있습니다. 다음 예시는 UDP 포트 137에서 서비스 버전 정보를 확인하는 스캔입니다.

nmap -sU -T5 -sV --max-retries 1 -p 137 172.16.80.0/24

3.2 Metasploit 활용

Metasploit Framework는 UDP 기반 호스트 탐색을 위한 다양한 보조 모듈을 제공합니다.

msf5 > use auxiliary/scanner/discovery/udp_probe
msf5 > set RHOSTS 172.16.80.0/24
msf5 > run

msf5 > use auxiliary/scanner/discovery/udp_sweep
msf5 > set RHOSTS 172.16.80.0/24
msf5 > run

4. SMB 프로토콜을 이용한 탐색

SMB(Server Message Block) 프로토콜은 주로 Windows 환경에서 파일 공유, 프린터 공유 등에 사용됩니다. SMB 서비스를 통해 활성 호스트를 탐지할 수 있습니다.

4.1 Metasploit 활용

Metasploit의 smb_version 모듈을 사용하여 지정된 대역의 호스트에서 SMB 서비스의 버전 정보를 스캔할 수 있습니다.

msf5 > use auxiliary/scanner/smb/smb_version
msf5 > set RHOSTS 172.16.80.0/24
msf5 > run

5. Metasploit Framework 탐색 보조 모듈

Metasploit Framework는 다양한 프로토콜과 서비스를 기반으로 내부 네트워크에서 활성 호스트와 서비스를 탐색하는 데 유용한 여러 보조(auxiliary) 모듈을 제공합니다. 다음은 주요 모듈 목록과 그 기능입니다.

  • auxiliary/scanner/discovery/arp_sweep: ARP 프로토콜 기반으로 내부 네트워크의 활성 호스트를 탐지합니다 (프록시 사용 불가).
  • auxiliary/scanner/portscan/ack: TCP ACK 응답을 기반으로 포트 스캔을 수행합니다 (기본 1-10000 포트).
  • auxiliary/scanner/portscan/tcp: TCP 연결을 기반으로 포트 스캔을 수행합니다 (기본 1-10000 포트).
  • auxiliary/scanner/discovery/udp_sweep: UDP 프로토콜 기반으로 내부 네트워크의 활성 호스트를 탐지합니다.
  • auxiliary/scanner/discovery/udp_probe: UDP 프로토콜을 사용하여 호스트를 탐지합니다.
  • auxiliary/scanner/netbios/nbname: NetBIOS 프로토콜을 사용하여 내부 호스트의 NetBIOS 이름을 탐지합니다.
  • auxiliary/scanner/ftp/ftp_version: 기본 21번 포트를 통해 내부 네트워크의 FTP 서비스를 탐지하고 버전을 확인합니다.
  • auxiliary/scanner/ssh/ssh_version: 기본 22번 포트를 통해 내부 네트워크의 SSH 서비스를 탐지하고 버전을 확인합니다.
  • auxiliary/scanner/telnet/telnet_version: 기본 23번 포트를 통해 내부 네트워크의 Telnet 서비스를 탐지하고 버전을 확인합니다.
  • auxiliary/scanner/dns/dns_amp: 기본 53번 포트를 통해 DNS 서비스를 탐지합니다.
  • auxiliary/scanner/http/http_version: 기본 80번 포트를 통해 내부 네트워크의 HTTP 서비스를 탐지하고 버전을 확인합니다.
  • auxiliary/scanner/http/title: 내부 네트워크 HTTP 서비스의 웹 페이지 제목을 탐지합니다.
  • auxiliary/scanner/smb/smb_version: 기본 445번 포트를 통해 내부 네트워크의 SMB 서비스를 탐지하고 버전을 확인합니다.
  • auxiliary/scanner/mssql/mssql_schemadump: 기본 1433번 포트를 통해 내부 네트워크의 SQL Server 서비스를 탐지합니다.
  • auxiliary/scanner/oracle/oracle_hashdump: 기본 1521번 포트를 통해 내부 네트워크의 Oracle 서비스를 탐지합니다.
  • auxiliary/scanner/mysql/mysql_version: 기본 3306번 포트를 통해 내부 네트워크의 MySQL 서비스를 탐지하고 버전을 확인합니다.
  • auxiliary/scanner/rdp/rdp_scanner: 기본 3389번 포트를 통해 내부 네트워크의 RDP(원격 데스크톱) 서비스를 탐지합니다.
  • auxiliary/scanner/redis/redis_server: 기본 6379번 포트를 통해 내부 네트워크의 Redis 서비스를 탐지합니다.
  • auxiliary/scanner/db2/db2_version: 기본 50000번 포트를 통해 내부 네트워크의 DB2 서비스를 탐지합니다.

태그: Nmap Metasploit NetBIOS ICMP UDP

9월 28일 22:27에 게시됨