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 공격은 오래된 공격 기법이지만, 다음과 같은 이유로 여전히 위협적입니다.

SMB Signing이란 무엇이며 왜 중요할까요?

SMB Signing (Server Message Block Signing)은 SMB 프로토콜을 사용하는 통신에 디지털 서명을 추가하여 무결성을 보장하는 보안 기능입니다. SMB는 파일 공유, 프린터 공유 등 윈도우 네트워크에서 널리 사용되는 프로토콜입니다. SMB Signing은 다음과 같은 이점을 제공합니다.

SMB Signing 우회 시나리오

SMB Signing이 활성화되어 있더라도 다음과 같은 시나리오에서 공격자가 이를 우회할 수 있습니다.

NTLM Relay 공격 실험 환경 구축

안전한 환경에서 NTLM Relay 공격을 실험하고 이해하는 것은 매우 중요합니다. 다음은 실험 환경을 구축하는 데 필요한 요소입니다.

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 공격으로부터 시스템을 보호하기 위해 다음과 같은 방어 방법을 적용할 수 있습니다.

흔한 오해와 사실 관계

전문가의 조언

보안 전문가들은 다음과 같은 조언을 합니다.

자주 묻는 질문과 답변

Q: NTLM Relay 공격을 탐지하는 방법은 무엇인가요?

A: 네트워크 트래픽을 모니터링하고, 비정상적인 인증 시도, 동일한 계정으로 여러 서버에 동시 접근, 권한 상승 시도 등을 탐지할 수 있습니다. 또한, 보안 정보 및 이벤트 관리 (SIEM) 시스템을 사용하여 로그를 분석하고 이상 징후를 식별할 수 있습니다.

Q: SMB Signing을 활성화하면 성능 저하가 발생하나요?

A: SMB Signing은 데이터에 서명을 추가하고 검증하는 과정에서 약간의 성능 저하를 유발할 수 있습니다. 하지만 최신 하드웨어 및 네트워크 환경에서는 그 영향이 미미할 수 있습니다. 성능 저하가 우려되는 경우, 테스트 환경에서 성능을 측정하고 적절한 설정을 조정하는 것이 좋습니다.

Q: NTLM Relay 공격에 대한 무료 도구가 있나요?

A: 예, Responder, Impacket, NTLMrelayx 등 다양한 무료 도구를 사용하여 NTLM Relay 공격을 실험하고 방어할 수 있습니다. 이러한 도구는 보안 연구 및 교육 목적으로 사용할 수 있습니다.

비용 효율적인 활용 방법

NTLM Relay 공격 방어를 위해 비용 효율적인 방법을 활용할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다