학사 나부랭이
WannaCryptor ~SMB vulnerability 본문
들어가기 전에
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 시스템은 인터넷에 연결되어 있는 것만으로도 감염될 수 있었다.
그림의 (2)에서, 자신의 로컬 IP 대역의 D클래스(xxx.xxx.xxx.*)를 스캔하거나 임의의 IP로 SMB 프로토콜 패킷을 반복해 전송한다.
이후 수신되는 데이터를 확인, 취약점이 발생하는 SMB 패킷 헤더에 실행코드를 추가한 데이터를 다시 전송한다. 만약 시스템이 취약점 패치가 되지 않은 환경이면 악의적인 쉘 코드가 동작한다.
이후, 다음의 IPC$ 공유폴더 경로가 사용된다.
\192.168.56.20IPC$
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에 접속 시도, 성공 시 악성코드가 종료된다.
한 분석가가 해당 도메인을 구매해 랜섬웨어의 전파를 차단한 케이스도 있었으나 이후 다른 도메인이 4개 더 확인되었다. 해당 케이스들은 파일에서 도메인 명만 수정한 형태였다.
인터넷에 접속되어 있지 않는 등 해당 사이트에 접속이 안 되면, 악성코드와 관련된 파일을 생성하고 파일 암호화를 진행한다. 실행 후, Microsoft 정상 서비스로 위장해 시스템에 등록되며, 시스템이 재시작될 때마다 자동으로 실행되게 한다. 등록하는 서비스 정보는 Microsoft의 정상적인 서비스 명을 위장한 형태로, "mssecsvc2.0" 이름을 사용하며, 서비스로 동작 시 "-m security" 인자로 실행된다. 이후 서비스로서 동작할 경우 SMB 취약점을 통한 자체 유포 루틴이 수행된다. 공격 대상은 자신의 로컬 IP나 랜덤으로 조합한 IP 대역을 스캔해 SMB 패킷을 전송한다. 이 과정에서 과도한 패킷이 발생해 네트워크에 트래픽 부하를 일으킬 수 있다.
[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 구조를 사용해 복호화할 수 있다.
참고자료
https://asec.ahnlab.com/ko/1067/
https://blog.naver.com/PostView.nhn?blogId=ysjin1212&logNo=110031611219
https://zetawiki.com/wiki/NETBIOS_over_TCP/IP
https://blog.naver.com/PostView.nhn?blogId=nforce7050&logNo=140120602286
'自習 > 입해킹' 카테고리의 다른 글
'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 |