NTLM Relay 공격 실험과 SMB Signing 우회 시나리오 완벽 가이드
NTLM Relay 공격은 네트워크 보안에서 오래되었지만 여전히 효과적인 공격 기법 중 하나입니다. 이 공격은 공격자가 희생자의 자격 증명을 가로채 다른 서버에 인증하는 데 사용하며, SMB Signing 우회는 이러한 공격의 성공 가능성을 높이는 데 사용될 수 있습니다. 이 글에서는 NTLM Relay 공격의 기본 원리부터 SMB Signing 우회 시나리오, 그리고 실질적인 방어 방법까지 자세히 살펴보겠습니다.
NTLM Relay 공격이란 무엇일까요?
NTLM Relay 공격은 공격자가 클라이언트와 서버 간의 NTLM 인증 트래픽을 가로채 다른 서버에 릴레이하여 권한을 획득하는 공격입니다. NTLM은 윈도우 환경에서 주로 사용되는 인증 프로토콜이며, 공격자는 이 프로토콜의 취약점을 이용하여 네트워크 내 다른 시스템에 접근할 수 있습니다.
간단히 말해, 공격자는 ‘중간자’ 역할을 수행하며, 다음과 같은 단계를 거칩니다.
- 희생자 (예: 사용자 A)가 서버 (예: 서버 B)에 인증을 시도합니다.
- 공격자는 이 인증 요청을 가로챕니다.
- 공격자는 가로챈 인증 정보를 사용하여 다른 서버 (예: 서버 C)에 사용자 A로 인증을 시도합니다.
- 만약 서버 C가 사용자 A의 인증을 받아들인다면, 공격자는 사용자 A의 권한으로 서버 C에 접근할 수 있게 됩니다.
왜 NTLM Relay 공격이 여전히 위험할까요?
NTLM Relay 공격은 오래된 공격 기법이지만, 다음과 같은 이유로 여전히 위협적입니다.
- 레거시 시스템 지원: 많은 기업 환경에서 NTLM 인증을 사용하는 레거시 시스템이 여전히 존재합니다.
- 잘못된 설정: 서버 설정 오류 또는 취약한 구성으로 인해 공격이 성공할 가능성이 있습니다.
- 패치 미적용: 최신 보안 패치가 적용되지 않은 시스템은 공격에 취약합니다.
- SMB Signing 미사용 또는 미적용: SMB Signing이 활성화되지 않았거나 제대로 적용되지 않은 경우, 공격자는 트래픽을 조작하여 인증을 우회할 수 있습니다.
SMB Signing이란 무엇이며 왜 중요할까요?
SMB Signing (Server Message Block Signing)은 SMB 프로토콜을 사용하는 통신에 디지털 서명을 추가하여 무결성을 보장하는 보안 기능입니다. SMB는 파일 공유, 프린터 공유 등 윈도우 네트워크에서 널리 사용되는 프로토콜입니다. SMB Signing은 다음과 같은 이점을 제공합니다.
- 데이터 무결성 보장: 통신 중 데이터가 변조되지 않았음을 확인합니다.
- 재생 공격 방지: 공격자가 과거의 통신 내용을 재전송하여 인증을 우회하는 것을 방지합니다.
- NTLM Relay 공격 완화: SMB Signing이 활성화되면 NTLM Relay 공격의 성공 가능성을 크게 줄일 수 있습니다.
SMB Signing 우회 시나리오
SMB Signing이 활성화되어 있더라도 다음과 같은 시나리오에서 공격자가 이를 우회할 수 있습니다.
- SMB Signing 강제 미사용: 서버 설정에서 SMB Signing을 필수로 요구하지 않는 경우, 공격자는 클라이언트가 서명 없이 통신하도록 유도할 수 있습니다.
- 중간자 공격: 공격자가 클라이언트와 서버 사이에 위치하여 SMB Signing을 제거하고 통신을 중계합니다.
- 취약한 알고리즘 사용: 오래된 또는 취약한 암호화 알고리즘을 사용하는 경우, 공격자가 서명을 위조할 수 있습니다.
- 클라이언트 설정 오류: 클라이언트 설정에서 SMB Signing을 사용하지 않도록 설정된 경우, 공격에 취약해집니다.
NTLM Relay 공격 실험 환경 구축
안전한 환경에서 NTLM Relay 공격을 실험하고 이해하는 것은 매우 중요합니다. 다음은 실험 환경을 구축하는 데 필요한 요소입니다.
- 가상 머신 (VM): 공격자, 희생자, 서버 역할을 할 VM을 준비합니다.
- 운영체제: 윈도우 서버 및 클라이언트 운영체제를 사용합니다. (예: Windows Server 2016, Windows 10)
- 공격 도구: Responder, Impacket 등의 공격 도구를 설치합니다.
- 네트워크 설정: VM들을 동일한 네트워크에 연결합니다.
Responder 설치 및 설정:
Responder는 NTLM Relay 공격에 사용되는 가장 유명한 도구 중 하나입니다. 다음은 Responder를 설치하고 설정하는 방법입니다.
- Kali Linux 또는 다른 Linux 배포판에 Responder를 설치합니다. (
apt-get install responder또는pip install Responder) - Responder.conf 파일을 편집하여 공격 설정을 조정합니다. (예: SMB, HTTP, DNS responder 활성화/비활성화)
- Responder를 실행합니다. (
responder -I eth0, 여기서 eth0는 네트워크 인터페이스입니다.)
실험 시나리오 예시
다음은 NTLM Relay 공격을 실험하는 간단한 시나리오입니다.
- Responder 실행: 공격자 VM에서 Responder를 실행하여 NTLM 인증 요청을 가로챌 준비를 합니다.
- 희생자 유도: 희생자 VM에서 공격자 VM의 SMB 공유 폴더에 접근하도록 유도합니다. (예:
\\공격자VM_IP\공유폴더) - 인증 정보 획득: Responder는 희생자의 NTLM 인증 정보를 가로채서 저장합니다.
- 릴레이 공격 실행: 가로챈 인증 정보를 사용하여 다른 서버에 릴레이 공격을 시도합니다. (예: Impacket의
smbrelayx.py도구 사용)
Impacket을 이용한 릴레이 공격 실행
Impacket은 네트워크 프로토콜 작업을 위한 Python 클래스 모음입니다. NTLM Relay 공격을 실행하는 데 유용한 도구를 제공합니다.
smbrelayx.py 사용 예시:
다음은 smbrelayx.py를 사용하여 릴레이 공격을 실행하는 방법입니다.
smbrelayx.py -h 192.168.1.100 -tf targets.txt -smb2support
여기서 192.168.1.100은 공격 대상 서버의 IP 주소이며, targets.txt는 공격 대상 서버 목록을 포함하는 텍스트 파일입니다. -smb2support 옵션은 SMB2 프로토콜을 지원하도록 설정합니다.
실질적인 방어 방법
NTLM Relay 공격으로부터 시스템을 보호하기 위해 다음과 같은 방어 방법을 적용할 수 있습니다.
- SMB Signing 활성화: SMB Signing을 필수로 활성화하여 데이터 무결성을 보장하고 공격자가 트래픽을 조작하는 것을 방지합니다.
- Extended Protection for Authentication (EPA) 활성화: EPA는 NTLM 인증에 추가적인 보안 계층을 제공하여 NTLM Relay 공격을 완화합니다.
- LDAP Signing 및 Channel Binding 활성화: LDAP (Lightweight Directory Access Protocol) 통신에 서명과 채널 바인딩을 적용하여 데이터 무결성을 보장하고 중간자 공격을 방지합니다.
- 계정 권한 최소화: 각 계정에 필요한 최소한의 권한만 부여하여 공격자가 권한 상승을 통해 시스템을 장악하는 것을 어렵게 만듭니다.
- 패치 관리: 운영체제 및 애플리케이션에 최신 보안 패치를 적용하여 알려진 취약점을 제거합니다.
- 네트워크 분할: 중요한 시스템을 네트워크 분할하여 공격자가 다른 시스템으로 확산되는 것을 방지합니다.
- 모니터링 및 로깅: 네트워크 트래픽 및 시스템 로그를 모니터링하여 이상 징후를 탐지하고 공격 시도를 식별합니다.
- 멀티 팩터 인증 (MFA) 도입: MFA는 사용자 인증에 추가적인 보안 계층을 제공하여 계정 탈취 시에도 시스템 접근을 어렵게 만듭니다.
- NTLM 인증 사용 제한: 가능하면 Kerberos 인증과 같은 더 안전한 인증 프로토콜을 사용하고, NTLM 인증 사용을 최소화합니다.
흔한 오해와 사실 관계
- 오해: NTLM Relay 공격은 오래된 공격 기법이므로 더 이상 위협적이지 않다.
- 사실: NTLM Relay 공격은 레거시 시스템 및 잘못된 설정으로 인해 여전히 효과적인 공격 기법이다.
- 오해: SMB Signing을 활성화하면 NTLM Relay 공격을 완전히 막을 수 있다.
- 사실: SMB Signing은 NTLM Relay 공격을 완화하는 데 도움이 되지만, 완벽한 방어책은 아니다. 다른 보안 조치와 함께 적용해야 효과적이다.
- 오해: 최신 운영체제는 NTLM Relay 공격에 안전하다.
- 사실: 최신 운영체제도 설정 오류 또는 패치 미적용으로 인해 NTLM Relay 공격에 취약할 수 있다.
전문가의 조언
보안 전문가들은 다음과 같은 조언을 합니다.
- “NTLM Relay 공격은 지속적인 위협이므로, 적극적인 방어 전략을 수립해야 합니다.”
- “SMB Signing, EPA, LDAP Signing 등 다양한 보안 기능을 함께 활성화하여 다층 방어 체계를 구축해야 합니다.”
- “정기적인 보안 감사를 통해 시스템의 취약점을 파악하고 개선해야 합니다.”
- “사용자 교육을 통해 공격에 대한 인식을 높이고, 의심스러운 링크나 파일에 접근하지 않도록 주의를 기울여야 합니다.”
자주 묻는 질문과 답변
Q: NTLM Relay 공격을 탐지하는 방법은 무엇인가요?
A: 네트워크 트래픽을 모니터링하고, 비정상적인 인증 시도, 동일한 계정으로 여러 서버에 동시 접근, 권한 상승 시도 등을 탐지할 수 있습니다. 또한, 보안 정보 및 이벤트 관리 (SIEM) 시스템을 사용하여 로그를 분석하고 이상 징후를 식별할 수 있습니다.
Q: SMB Signing을 활성화하면 성능 저하가 발생하나요?
A: SMB Signing은 데이터에 서명을 추가하고 검증하는 과정에서 약간의 성능 저하를 유발할 수 있습니다. 하지만 최신 하드웨어 및 네트워크 환경에서는 그 영향이 미미할 수 있습니다. 성능 저하가 우려되는 경우, 테스트 환경에서 성능을 측정하고 적절한 설정을 조정하는 것이 좋습니다.
Q: NTLM Relay 공격에 대한 무료 도구가 있나요?
A: 예, Responder, Impacket, NTLMrelayx 등 다양한 무료 도구를 사용하여 NTLM Relay 공격을 실험하고 방어할 수 있습니다. 이러한 도구는 보안 연구 및 교육 목적으로 사용할 수 있습니다.
비용 효율적인 활용 방법
NTLM Relay 공격 방어를 위해 비용 효율적인 방법을 활용할 수 있습니다.
- 무료 도구 활용: Responder, Impacket 등의 무료 도구를 사용하여 자체적으로 보안 점검을 수행하고 취약점을 식별합니다.
- 커뮤니티 활용: 보안 커뮤니티에 참여하여 정보를 공유하고 전문가의 도움을 받습니다.
- 클라우드 기반 보안 서비스 활용: 클라우드 기반 보안 서비스를 사용하여 비용 효율적으로 보안 기능을 강화합니다.
- 정기적인 교육 및 훈련: 직원들에게 NTLM Relay 공격 및 기타 보안 위협에 대한 교육을 제공하여 보안 의식을 높입니다.