학사 나부랭이

WannaCryptor ~SMB vulnerability 본문

自習/입해킹

WannaCryptor ~SMB vulnerability

태양왕 해킹 (14세) 2021. 6. 30. 17:10

들어가기 전에

 

445번 포트란?

 Server Message Block(=Common Internet File System)은 다른 시스템 간의 파일 및 프린터 공유에 사용하는 프로토콜이며 445 포트를 사용한다. TCP/IP 기반의 NetBIOS 프로토콜을 사용한다. SMB에는 SMB1, SMB2.0, SMB2.1, SMB3.0, SMB3.0.2, SMB3.1.1 버전이 있다. 그리고 이 SMB 네트워킹 프로토콜을 다시 구현한 자유 소프트웨어를 Samba라 한다.

 

NetBIOS란?

 일반적으로 TCP/IP 네트워크에서 사용하는 기기에 IP 주소를 부여하면 서로 통신 가능하지만 Windows 네트워크에서는 NetBIOS라는 기술을 시용해, IP 주소보다 NetBIOS 이름이 더 중요한 역할을 하고 있다.

이 NetBIOS는 네트워크 통신을 위한 기본적인 명령어 세트이며, 일반적으로 부팅 후 기본 입출력 장치를 실시하는 BIOS와 유사한 기능을 네트워크 용으로 수행한다. 초기에는 네트워크 카드의 ROM에 구현되어 있었다. 이러한 네트워크 인터페이스와 NetBIOS를 이용해 동일한 네트워크의 컴퓨터 사이에 다음과 같은 매우 기본적인 통신을 할 수 있다.

  • NetBIOS 이름 등록 및 해제: 네트워크에 NetBIOS 이름을 등록해 이 네트워크에 참가하는 것을 표한다. 다음부터 진행되는 통신은 NetBIOS 이름으로 서로를 식별한다. 해제 시, NetBIOS 이름을 삭제하고 이탈한다.
  • 세션 서비스: 세션 지향의 통신 서비스를 제공한다. 세션 지향은 먼저 두 컴퓨터 사이에 통신을 확립한 후에 통신이 가능하게 하는 방식이다. 즉, 먼저 전화를 해서 상대와의 연결을 성사시키고 통신하는 형태의 서비스이다. 일대일 통신이 가능하다.
  • 데이터 그램 서비스: 데이터 그램 지향의 통신 서비스를 제공한다. 데이터 그램 지향은 상대에게 데이터를 일방적으로 보내는 전송하는 방식이다. 상대로부터 응답은 확인하지 않으며 응답이 필요하면 데이터 그램 서비스에서 반환한다. 동시에 여러 상대에게 통지할 수 있어 일대다의 통신을 할 수 있다.

WannaCryptor 랜섬웨어

 위의 SMB 취약점을 이용한 유명한 악성코드이다. 제작자인 ShadowBrokers가 NSA로부터 해킹해서 2017년 4월 공개한 SMB 취약점 EternalBlue를 이용한 변형을 당해 5월 제작했다. 해당 취약점은 당해 3월 이미 보안 업데이트가 나와있었지만 업데이트하지 않은 시스템을 타깃, 영국과 스페인을 시작으로 전 세계에 퍼졌다.

 

감염 시나리오

 대부분의 랜섬웨어는 첨부 파일이나 홈페이지 방문 같은 "다운로드"에 의해 감염되지만 WannaCryptor는 SMBv2 원격코드실행 취약점을 통해 감염된다. 즉, 업데이트를 하지 않은 Windows 시스템은 인터넷에 연결되어 있는 것만으로도 감염될 수 있었다.

WannaCryptor 실행 흐름도

그림의 (2)에서, 자신의 로컬 IP 대역의 D클래스(xxx.xxx.xxx.*)를 스캔하거나 임의의 IP로 SMB 프로토콜 패킷을 반복해 전송한다.

SMB 원경실행코드 취약점이 발생하는 패킷

이후 수신되는 데이터를 확인, 취약점이 발생하는 SMB 패킷 헤더에 실행코드를 추가한 데이터를 다시 전송한다. 만약 시스템이 취약점 패치가 되지 않은 환경이면 악의적인 쉘 코드가 동작한다.

SMB 취약점 발생 이후 실행되는 쉘코드

이후, 다음의 IPC$ 공유폴더 경로가 사용된다.

\192.168.56.20IPC$

\IPC$로 공유된 폴더

IPC$란?

 시스템 관리자가 시스템을 관리하기 위한 목적으로 만들어진 공유폴더이며 Null session이라 불리는데, 이는 TCP 포트 139번에 만들어져 Windows 계정, 비밀번호, 그룹, 프로세서를 보여줘서 네트워크 프로그램 간의 통신에서 명명된 파이프를 통해 클라이언트와 서버 사이를 임시로 연결하는 데 사용, 네트워크 서버의 원격 관리에 사용된다. 이를 제거하면 네트워크 서비스에서 문제가 발생할 수 있다.

  • Null session share 취약점: Windows가 설치된 서버에 IPC$를 통한 원격 접속을 할 때, 패스워드를 Null로 설정해 접속할 수 있는 취약점이다. 공격자가 시스템의 유저명, 공유정보 등을 열람할 수 있고, 일부 레지스트리에 접근할 수도 있으며, 이를 통해 DoS 공격에도 활용될 수 있다.

감염된 시스템에서 랜섬웨어가 실행된 후 다시 SMB 취약점을 통한 유포를 수행해 마치 웜 프로그램처럼 감염자가 증가한다. 해당 랜섬웨어 최초 실행 이후 다음 중 존재하는 경로에 추가 악성코드 파일을 생성한다. 이는 Windows 운영체제 버전에 따라 달라질 수 있다.

1. C:ProgramData[Random]tasksche.exe

2. C:Intel[Random]tasksche.exe

3. C:Windowstasksche.exe

4. C:User(User's name)AppDataLocalTemp(Random).tmp

위 폴더 하위에 생성하는 [Random]이름의 폴더는 시스템 정보를 조합해 생성한 랜덤명으로, 그로 인해 각 시스템마다 유일한 이름이 생성된다. 생성된 tasksche.exe 파일은 실제 랜섬웨어 감염 행위를 수행하며 드로퍼에 의 해 "-i" 인자로 Install 모드가 실행된다.

  • 드로퍼는 타깃 시스템에 악성코드를 설치하기 위해 설계된 프로그램이다. 악성코드는 드로퍼 내에 포함되어 바이러스 스캐너를 피하고, 그 후 실행되면 드로퍼가 악성코드를 다운로드해서 최종적으로 악성코드가 설치될 수 있다.

증상

 다른 랜섬웨어와 같이 한 번 감염되면 수많은 확장자들을 암호화시킨 후, 확장자에 .WNCRY 또는 .WNCRYT 등의 글자를 추가하고, 바탕화면을 교체한다.

 악성코드가 실행되면  http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com에 접속 시도, 성공 시 악성코드가 종료된다.

URL 접속여부 확인 코드

한 분석가가 해당 도메인을 구매해 랜섬웨어의 전파를 차단한 케이스도 있었으나 이후 다른 도메인이 4개 더 확인되었다. 해당 케이스들은 파일에서 도메인 명만 수정한 형태였다.

 인터넷에 접속되어 있지 않는 등 해당 사이트에 접속이 안 되면, 악성코드와 관련된 파일을 생성하고 파일 암호화를 진행한다. 실행 후, Microsoft 정상 서비스로 위장해 시스템에 등록되며, 시스템이 재시작될 때마다 자동으로 실행되게 한다. 등록하는 서비스 정보는 Microsoft의 정상적인 서비스 명을 위장한 형태로, "mssecsvc2.0" 이름을 사용하며, 서비스로 동작 시 "-m security" 인자로 실행된다. 이후 서비스로서 동작할 경우 SMB 취약점을 통한 자체 유포 루틴이 수행된다. 공격 대상은 자신의 로컬 IP나 랜덤으로 조합한 IP 대역을 스캔해 SMB 패킷을 전송한다. 이 과정에서 과도한 패킷이 발생해 네트워크에 트래픽 부하를 일으킬 수 있다.

tasksche.exe가 생성하는 파일

[msg] 언어별 메시지 파일이 있는 폴더
[TaskData] tor 관련 파일이 있는 폴더.
00000000.eky 암호화된 개인키 파일
00000000.pky 공개키 파일
b.wnry 파일 암호화 후 바탕화면으로 설정하는 이미지 파일
c.wnry 접속 URL, 다운로드 URL 등 tor 관련 설정 파일
f.wnry 샘플로 복호화 해주기 위한 파일의 목록
r.wnry readme
s.wnry tor 모듈의 압축파일 (ZIP)
t.wnry 암호화 모듈 (암호화 되어있음)
taskdl.exe .WNCRYPT 확장자 파일 목록을 조회하기 위한 프로그램
taskse.exe 시스템 원격 세션 관련 조회 프로그램
u.wnry 비트코인 결재를 유도하는 @WanaDecryptor@.exe 프로그램과 동일한 파일

 

암호화 방식 흐름

암호화된 파일은 . "WANACRY!" 시그니쳐 + AES key 암호화 size + AES key 암호화 data + key size length + 원본 파일 length + 암호화된 파일 data로 구성되어 있고, 이후 복호화될 경우 아래의 data 구조를 사용해 복호화할 수 있다.

암호화된 파일의 구조 (예시: t.wnry)

참고자료

https://asec.ahnlab.com/ko/1067/

 

SMB 취약점으로 전파되는 워너크립터 (WannaCryptor) 랜섬웨어 - ASEC BLOG

AhnLab Security Emergency response Center

asec.ahnlab.com

https://blog.naver.com/PostView.nhn?blogId=ysjin1212&logNo=110031611219 

 

관리 목적 공유(IPC$, ADMIN$, FAX$, PRINT$, C$, D$)

Windows XP 컴퓨터는 관리자와 운영 체제 서비스가 네트워크에서 컴퓨터 환경을 관리하는 데 사용할 수 ...

blog.naver.com

https://raisonde.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-%EA%B3%B5%EC%9C%A0%ED%8F%B4%EB%8D%94-%EB%B3%B4%EC%95%88-IPC%EC%9D%98-Null-Session-Share-%EC%B7%A8%EC%95%BD%EC%A0%90

 

윈도우 공유폴더 보안 (IPC$의 Null Session Share 취약점)

Windows는 관리 목적상 ADMIN$, C$, D$, IPC$ 를 기본적으로 공유하도록 설정되어 있다. 관리측면에서 필요성이 있어서 공유가 되는 것 이겠지만 필수적인 부분은 아니므로 보안성 향상을 위해 공유 설

raisonde.tistory.com

https://zetawiki.com/wiki/NETBIOS_over_TCP/IP

 

NETBIOS over TCP/IP - 제타위키

다음 문자열 포함...

zetawiki.com

https://texit.tistory.com/32

 

Windows 컴퓨터 이름과 NetBios 이해하기

안녕하세요, 오늘은 Windows 의 네트워크 이름과 밀접한 관계에 있는 NetBIOS 대해 알아보도록 하겠습니다. NetBIOS 란? 일반적으로 TCP / IP 네트워크에서 사용하는 기기에 고유한 "IP 주소"를 부여하면

texit.tistory.com

https://blog.naver.com/PostView.nhn?blogId=nforce7050&logNo=140120602286 

 

port 139, 445번 이해,차단- 라우팅 및 원격 액세스 서비스 (RAS server)

포트 139와 445번은 해킹의 기초 단계에서 상대방의 시스템 정보를 알아내는데 이용될 수 있는 아주 중요하...

blog.naver.com

 

'自習 > 입해킹' 카테고리의 다른 글

'For you bro' SCAM  (0) 2022.02.08
CCE2021 Write up - rox  (0) 2021.09.27
CCE2021 Write up - ptmd  (0) 2021.09.27
ANOM ~Operation Trojan Sheild  (0) 2021.06.26
Comments