hhkb.dev

BLOG

2025-11-26 / 호스트기반모의해킹 · 15

SMB 취약점 진단

1. 개요

SMB(Server Message Block)는 파일 공유, 프린터 공유, 원격 자원 접근에 널리 쓰이는 프로토콜이다.

  • 포트: TCP 445(Direct SMB), TCP 139(NetBIOS over TCP/IP)를 주로 본다.
  • 운영체제: Windows 환경에서 핵심 비중을 차지하고, 리눅스에서는 Samba로 구현되는 경우가 많다.

2. 주요 진단 항목

2.1 널 세션(Null Session) 인증

널 세션은 사용자 이름과 비밀번호 없이("")도 서버의 일부 공유 자원이나 사용자 정보를 볼 수 있는 잘못된 설정을 말한다.

주로 아래 도구로 확인한다.

  1. NetExec (구 CrackMapExec)
    nxc smb [Target_IP] -u "" -p "" --shares
    
    + 표시와 READ, WRITE 권한을 바로 확인하기 좋다.
  2. Enum4linux
    enum4linux -a [Target_IP]
    
    사용자 목록(RID Cycling)이나 그룹 정보를 정리할 때 자주 쓴다.

2.2 공유 폴더(Share) 접근 및 권한 확인

공유 폴더가 실제로 열리는지와 권한이 어디까지 허용되는지가 핵심이다.

  • 접근 방법: smbclient로 접속 가능 여부와 파일 접근 범위를 확인한다.
    smbclient //[Target_IP]/[Share_Name] -U ""
    
  • 위험 포인트
    민감한 설정 파일, 백업 데이터, SSH 키(id_rsa)가 노출될 수 있다. 쓰기 권한이 열려 있으면 다른 서비스와 연결된 추가 위험도 같이 봐야 한다.

2.3 알려진 취약점(Known Vulnerabilities)

버전별로 이미 잘 알려진 이슈도 같이 확인한다.

  • MS17-010 (EternalBlue): SMBv1의 대표적인 치명적 취약점으로, 워너크라이(WannaCry) 사태와 함께 자주 언급된다.
  • Samba 취약점: 리눅스 Samba 특정 버전에서도 symlink 관련 이슈처럼 점검할 항목이 있다.

3. 실무에서는?

실무에서는 결과를 너무 단정하지 않는 편이 중요하다.

  1. Enum4linux는 구형 도구라 최신 환경에서 오류가 잦다. NetExecSMBMap으로 교차 검증하는 편이 안정적이다.
  2. 배너에 보이는 Samba 버전만 보고 바로 판단하면 안 된다. OS 벤더가 백포트(Backport) 패치를 넣었을 수 있어서 실제 영향 여부를 다시 확인해야 한다.
  3. IPC$, PRINT$ 같은 기본 공유보다, 실제 파일이 쌓여 있는 일반 공유(Data, Backup 등)에 집중하는 편이 효율적이다.