📚 네트워크 · 패킷 분석 › 02. 포트 · 프로토콜 분석 — 85편
이전 글: 84. Linux Service Port · 다음 글: 86. 내부망 주요 Port

1. 개념

Windows는 설치 직후부터 여러 서비스 포트를 엽니다. 파일 공유, 원격 관리, 이름 해석, 장치 탐색처럼 기본으로 동작하는 기능이 많기 때문입니다. 그래서 Linux 서버보다 "기본으로 보이는 포트"의 목록이 길고, 이 목록을 모르면 정상 포트를 의심하거나 반대로 비정상 포트를 정상으로 넘기게 됩니다.

이 글은 Windows에서 자주 보이는 포트를 역할별로 묶어 정리합니다. SMB·RDP·WinRM·LDAP의 동작은 개별 글에서 다뤘으므로, 여기서는 포트 목록과 "어디서 보이면 정상인가"에 집중합니다.

묶음포트개별 글
파일 공유445/TCP, (레거시) 137/UDP·138/UDP·139/TCP73. SMB와 445 포트 — 내부 확산의 통로
원격 호출135/TCP + 동적 RPC 포트이 글
원격 접속·관리3389/TCP·UDP(RDP), 5985/TCP·5986/TCP(WinRM)76. RDP와 3389 포트 — 원격 접속 노출 위험, 77. WinRM
도메인 인증88, 389, 636, 3268, 3269, 46472. LDAP·Kerberos 포트 — 인증 인프라 트래픽 개요
이름 해석·탐색5355/UDP(LLMNR), 5353/UDP(mDNS), 1900/UDP(SSDP), 3702/UDP(WS-Discovery)이 글

2. 동작 원리

Windows 포트에서 가장 헷갈리는 부분은 RPC(Remote Procedure Call) 입니다. 135번은 "어느 포트로 가면 원하는 서비스가 있는지" 알려 주는 안내 창구(Endpoint Mapper)이고, 실제 통신은 그때그때 배정되는 동적 포트에서 일어납니다.

클라이언트 192.168.10.30                      서버 192.168.10.10
  │                                            │ 서비스들이 동적 포트에 등록
  │ ── TCP 135 연결: "이 인터페이스(UUID) 어디?" ─→│ Endpoint Mapper
  │ ←──────────── "49xxx 포트로 오세요" ────────── │
  │                                            │
  │ ── TCP 49xxx 연결: 실제 RPC 호출 ───────────→ │ 해당 서비스
  ↓                                            ↓
  방화벽 로그에는 135 연결 직후 같은 서버의 49152 이상 포트 연결이 이어서 남음
  • Windows Vista / Server 2008 이후 기본 동적 포트 범위는 49152~65535입니다(IANA Dynamic 범위와 같음, 55. Dynamic Port 참고).
  • 도메인 컨트롤러 복제, 원격 서비스 관리, 원격 이벤트 로그 조회 같은 관리 기능이 RPC를 사용하므로 서버의 49152 이상 포트로 들어오는 연결이 항상 이상한 것은 아닙니다.

이름 해석 계열은 DNS 실패 시 로컬 네트워크에 멀티캐스트로 묻는 방식입니다. LLMNR(5355)과 NetBIOS 이름 서비스(137)는 같은 서브넷 안의 누구나 응답할 수 있어 보안상 약점이 됩니다(5절).


3. 주요 특징

역할별로 "정상적으로 보이는 위치"를 정리하면 다음과 같습니다.

포트프로토콜정상적으로 LISTEN하는 곳비고
135/TCPMS-RPC Endpoint Mapper거의 모든 Windows외부 노출 금지 대상
137/UDP, 138/UDP, 139/TCPNetBIOS 이름·데이터그램·세션NetBIOS over TCP/IP가 켜진 호스트최신 환경에서는 비활성화 권고
445/TCPSMB파일 서버, 도메인 컨트롤러, 대부분의 PCPC 간 445 연결은 확인 대상
3389/TCP·UDPRDP원격 데스크톱을 켠 서버·PCUDP는 전송 성능 향상용
5985/TCP, 5986/TCPWinRM (HTTP / HTTPS)서버 OS(기본 활성화되는 경우 많음), 설정한 PCPowerShell 원격 관리
88, 389, 636, 3268, 3269, 464Kerberos, LDAP 등도메인 컨트롤러일반 PC가 LISTEN하면 이상
53/TCP·UDPDNSDNS 역할을 가진 서버(대개 DC)
5355/UDPLLMNR대부분의 Windows 클라이언트멀티캐스트 224.0.0.252
1900/UDP, 3702/UDPSSDP, WS-Discovery클라이언트(장치 탐색)외부 노출 시 증폭 공격 악용 가능

Windows는 서비스 이름과 프로세스가 1:1이 아닙니다. 여러 서비스가 svchost.exe 하나를 공유하므로, 포트를 연 프로세스가 svchost.exe로만 보이면 서비스 이름을 한 번 더 확인해야 합니다. 또 445는 커널 드라이버가 처리하므로 PID가 4(System)로 표시됩니다.


4. 예시

실습 예시 — 본인 소유 Windows VM에서 LISTEN 포트와 서비스를 연결합니다(명령 프롬프트 / PowerShell).

# LISTEN 포트와 PID
netstat -ano | findstr LISTENING

# PowerShell: TCP LISTEN 목록과 프로세스 이름
Get-NetTCPConnection -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess,
    @{n='Process';e={(Get-Process -Id $_.OwningProcess).ProcessName}} |
  Sort-Object LocalPort

# UDP 엔드포인트
Get-NetUDPEndpoint | Sort-Object LocalPort

# svchost PID에 묶인 서비스 이름 확인 (PID는 예시)
tasklist /svc /fi "PID eq 1234"

# 동적 포트 범위 확인
netsh int ipv4 show dynamicport tcp

출력 형식 예시(값은 환경마다 다름, 일부 생략):

  TCP    0.0.0.0:135        0.0.0.0:0     LISTENING    1234
  TCP    0.0.0.0:445        0.0.0.0:0     LISTENING    4
  TCP    0.0.0.0:3389       0.0.0.0:0     LISTENING    1500
  TCP    0.0.0.0:5985       0.0.0.0:0     LISTENING    4
  TCP    0.0.0.0:49664      0.0.0.0:0     LISTENING    800
  TCP    192.168.10.30:139  0.0.0.0:0     LISTENING    4
줄해석 포인트
135, PID 1234tasklist /svc로 보면 RpcSs 등 RPC 관련 서비스가 묶인 svchost
445·5985, PID 4커널(HTTP.sys, SMB 드라이버)이 받는 포트라 System으로 보임
49664 이상동적 RPC 포트. 부팅 시 여러 시스템 서비스가 등록
139, 특정 IP에만NetBIOS over TCP/IP가 켜진 인터페이스에 바인딩

Linux와의 비교는 84. Linux Service Port를 참고합니다.


5. 보안 관점

  • 135·137~139·445는 외부 노출 금지 대상입니다. 인터넷에서 이 포트로 도달 가능하면 취약점 악용과 자격 증명 노출 위험이 큽니다(87. 내부망 필수 포트와 외부 노출 금지 포트 참고).
  • LLMNR·NetBIOS 이름 응답 위조: 같은 서브넷의 공격자가 "그 이름은 나"라고 응답하면 피해 PC가 공격자 쪽으로 인증을 시도할 수 있습니다. 그래서 도메인 환경에서는 LLMNR과 NetBIOS over TCP/IP를 끄는 것이 일반적 권고입니다.
  • 원격 관리 포트(3389, 5985/5986, 445+135) 는 내부 확산(Lateral Movement)의 통로입니다. 관리 서버·관리망에서만 접근하도록 제한하는 것이 기본입니다.

6. SOC 관점

흔적 위치확인할 수 있는 것
Windows 방화벽 로그 (pfirewall.log)허용·차단된 연결의 출발지·목적지 포트(로깅 설정 시)
보안 이벤트 5156/5157WFP가 허용/차단한 연결(필터링 플랫폼 감사 설정 시)
보안 이벤트 4624로그온 유형 3(네트워크, SMB·WinRM 등), 10(RDP)
Sysmon 이벤트 ID 3네트워크 연결을 만든 프로세스(설치·설정 시)
네트워크 방화벽·IDS135 → 동적 포트 연결, PC 간 445·3389·5985

관제자가 확인할 질문

  • 이 포트를 LISTEN하는 호스트가 그 역할(DC, 파일 서버, 관리 서버)을 가진 자산인가?
  • 일반 PC가 다른 PC의 445·3389·5985로 연결하는 것이 업무상 설명되는가?
  • svchost.exe로 보이는 포트는 어떤 서비스에 묶여 있는가?

오탐 주의: 도메인 환경에서는 PC → DC의 135·445·88·389, DC 간 동적 RPC 포트 연결이 대량으로 발생하는 것이 정상입니다. 백신·자산관리·배포 솔루션도 PC의 445·135에 주기적으로 접속하므로 출발지 자산부터 확인합니다.


7. 핵심 정리

  • Windows 기본 포트는 파일 공유(445), 원격 호출(135+동적), 원격 관리(3389, 5985/5986), 도메인 인증, 이름 해석·탐색 계열로 나뉩니다.
  • RPC는 135에서 안내받은 뒤 49152~65535 범위의 동적 포트로 실제 통신합니다.
  • 445·5985는 커널 드라이버가 받아 PID 4로 보이며, svchost.exe는 tasklist /svc로 서비스 이름을 확인합니다.
  • LLMNR·NetBIOS는 이름 응답 위조 위험이 있어 비활성화가 권고됩니다.
  • PC 간 원격 관리 포트 연결은 내부 확산 징후가 될 수 있지만, 관리 솔루션의 정상 접속인지 먼저 확인합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글