MALWARE ANALYSIS REPORT WannaCry 랜섬웨어분석 #2 SMB 취약점분석
목차 1. 개요... 3 1.1 배경... 3 1.2 파일정보... 3 2. 상세분석... 4 2.1 SMB 취약점공격흐름... 4 2.2 특징적인행위... 11 3. 대응... 12-2 -
1. 개요 1.1 배경 2017년 5월 17일배포한 WannaCry 분석보고서에도언급되었듯이, WannaCry 랜섬웨어의경우 SMB 취약점을이용하여웜과같이다른 PC로확산되어추가감염을발생시키고있다. 또한, Check Payment 등의외부서버와통신이필요한경우에는 Tor 네트워크를이용하는특징이있으며, 랜섬웨어내부리소스에서 Tor 프로그램을생성하여사용한다. 이에소만사악성코드분석센터에서는 SMB 취약점에관하여자세히분석하여보고서를작성하게되었다. 본보고서에는 WannaCry 랜섬웨어에서사용하는 SMB 취약점공격의동작흐름과, 대상이되는 PC에서감염이어떤방식으로이루어지는지기술한다. [ 참고 ] 2017 년 5 월 17 일배포한월간악성코드리포트 1.2 파일정보 Name Type Size Sha256 Behavior Description mssecsvc.exe Windows 실행파일 3,723,264 바이트 24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c WannaCry Ransomware SMB 취약점공격및 tasksche.exe 생성 Name Type Size Sha256 Behavior Description tasksche.exe Windows 실행파일 3,514,368 바이트 ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa WannaCry Ransomware 파일암호화 - 3 -
2. 상세분석 WannaCry 랜섬웨어의가장큰특징인 SMB 원격코드실행취약점을이용한전파기능의전체적 인동작흐름에대해서기술한다. SMB(Server Message Block) 도스나윈도우에서파일이나디렉터리및주변장치들을공유하는데 사용되는메시지형식이다. WannaCry 랜섬웨어는 SMB 메시지를대상 PC 에전송하여취약점을 공격하고, 랜섬웨어를전파한다. 2.1 SMB 취약점공격흐름 [ 그림 1] SMB 취약점공격흐름 WannaCry 랜섬웨어의취약점공격흐름은대상 PC 의취약여부를확인후취약하다고판단되면 shellcode 를전송하여취약점공격및악성코드감염을시도한다. 1) 대상 PC의취약여부확인 SMB Message Value Description SMB_COM_NEGOTIATE 0x72 서버와클라이언트간 SMB 연결을시작한다. SMB_COM_SESSION_SETUP_ANDX 0x73 SMB 세션을구성하는데사용된다. SMB_COM_TREE_CONNECT_ANDX 0x75 서버공유에대한클라이언트연결을설정한다. SMB_COM_TRANSACTION 0x25 서버에서메일슬롯및 namedpipe를생성 [ 취약여부판단에사용되는 SMB 메시지 ] - 4 -
WannaCry 랜섬웨어는대상 PC의취약여부를판단하기위해 SMB_COM_NEGOTIATE 메시지를시작으로하는일반적인 SMB 연결과정을거치고, SMB_COM_TRANSACTION 메시지의 response 값을참조한다. 해당메시지는서버에서메일슬롯및 Namedpipe를생성하기위해사용하는메시지이다. [ 그림 2] SMB_COM_TRANSACTION Request Message (0x25) 대상 PC 에 send 함수를이용하여 [ 그림 2] 의 SMB 메시지를전송하고 response 메시지를받는다. [ 그림 3] Response 값의 NTSTATUS 값확인 (0xC0000205) Response 메시지의 NTSTATUS 값을확인하여 0xC0000205 와일치하면대상이되는 PC 는취약 (SMB 취약점에대한업데이트가되지않은경우 ) 하다고판단한다. (0xC0000205 : STATUS_INSUFF_SERVER_RESOURCES) - 5 -
2) 대상 PC 손상확인 SMB Message Value Description SMB_COM_NEGOTIATE 0x72 서버와클라이언트간 SMB 연결을시작한다. SMB_COM_SESSION_SETUP_ANDX 0x73 SMB 세션을구성하는데사용된다. SMB_COM_TREE_CONNECT_ANDX 0x75 서버공유에대한클라이언트연결을설정한다. SMB_COM_TRANSACTION2 0x32 서버에서특정작업실행 ( 디렉토리검색등 ) [ 손상여부확인에사용되는 SMB 메시지 ] 대상 PC 가취약하다고판단되면해당시스템이이미손상되었는지확인하기위하여 SMB_COM_TRANSACTION2 Request 메시지를전송한다. [ 그림 4] SMB_COM_TRANSACTION2 Request Message (0x32) [ 그림 5] Response 값의 Multiplex ID 값확인 해당메시지의 Response 값에서 Multiplex ID 값을확인하여대상 PC 의손상여부를확인한다. 이미손상된 PC 는 0x51 이반환되고, 손상되지않은 PC 에서는 0x41 이반환된다. - 6 -
3) 대상 PC의취약점공격 SMB Message Value Description SMB_COM_NEGOTIATE 0x72 서버와클라이언트간 SMB 연결을시작한다. SMB_COM_SESSION_SETUP_ANDX 0x73 SMB 세션을구성하는데사용된다. SMB_COM_TREE_CONNECT_ANDX 0x75 서버공유에대한클라이언트연결을설정한다. SMB_COM_NT_TRANSACT 0xA0 서버에작업을지정하는데사용한다. SMB_COM_TRANSACTION2_SECON DARY 0x33 SMB_COM_TRANSACTION2 요청에의해시작된데이터전송을완료하는데사용된다. SMB_COM_ECHO 0x2B 서버와클라이언트간전송계층연결테스트 [ 취약점발생유도에사용되는 SMB 메시지 ] 대상 PC 가손상되지않았다고판단되면취약점공격을발생시키는메시지를전송한다. 메시지 에는쉘코드가포함되어있으며, 해당쉘코드가실행되면대상 PC 에서취약점공격이실행된다. [ 그림 6] SMB_COM_TRANSACTION2_SECONDARY Request Message (0x33) 상기메시지전송이완료되면 2) 대상 PC 손상확인동작을다시실행하여대상시스템이손상된 것을확인하고랜섬웨어전파동작으로넘어간다. 4) 악성코드전파 SMB Message Value Description SMB_COM_NEGOTIATE 0x72 서버와클라이언트간 SMB 연결을시작한다 SMB_COM_SESSION_SETUP_ANDX 0x73 SMB 세션을구성하는데사용된다 SMB_COM_TREE_CONNECT_ANDX 0x75 서버공유에대한클라이언트연결을설정한다 SMB_COM_TRANSACTION2 0x32 서버에서특정작업실행 ( 디렉토리검색등 ) [ 악성코드전파에사용되는 SMB 메시지 ] - 7 -
[ 그림 7] SMB_COM_TRANSACTION2 Request Message (0x32) 최종적으로악성 DLL 파일이포함된 SMB 메시지를대상 PC 에전송한다. 대상 PC 에서 DLL 파일 이실행되면 WannaCry 랜섬웨어에감염되게된다. 5) 대상 PC 에서악성코드실행 악성코드는 DLL 형태의실행파일이며대상 PC 로전송시암호화되어전송된다. 복호화되면 launcher.dll 로생성되어악성동작을하게된다. [ 그림 8] 대상 PC 감염동작 취약점발생코드에의해패치된 SMB 드라이버 Srv.sys 에의해서유저모드에서실행중인 lsass.exe 에 launcher.dll 이인젝션되게된다. 인젝션후해당 launcher.dll 에존재하는 Export 함수인 PlayGame 이실행된다. - 8 -
[ 그림 9] lsass.exe 에인젝션된 launcher.dll [launcher.dll PlayGame 함수 ] [ 그림 10] 내부리소스의 mssecsvs.exe 생성 Launcher.dll 의 Export 함수인 PlayGame 을살펴보면내부리소스에서 PE 실행파일을로드하여 mssecsvc.exe 이름으로생성한다. - 9 -
[ 그림 11] Ransomware 메인실행 생성된 mssecsvc.exe 를 CreateProcessA 를호출하여실행시킨다. 해당프로세스가실행되면시스템 의감염은완료된다. [ 감염확인 ] [ 그림 12] 대상 PC 감염 대상 PC 에서감염동작을확인하면 lsass.exe 하위로 mssecsvc.exe 가실행되는것을확인할수 있다. 이후로파일암호화동작및추가감염동작이실행된다. [ 그림 13] 랜섬노트실행 파일암호화가완료되면위와같이바탕화면을변경하고, 랜섬노트를실행한다. - 10 -
2.2 특징적인행위 [Tor 를이용한외부통신 ] WannaCry 랜섬웨어는디코딩및추가동작을위하여외부서버와통신을해야할경우 Tor 네트 워크를이용한다. [ 그림 14] Tor 파일확인 아래의경로에서 Taskhsvc.exe 파일이존재하는지확인한다. 해당파일은 tor 파일을이름만변경 한것으로네트워크통신시이파일을사용한다. [ 그림 15] Tor 프로세스실행 해당파일이존재하지않으면다시생성하고, CreateProcessA 를호출하여해당파일을프로세스로 실행한다. - 11 -
[ 그림 16] 로컬 9050 포트 Listening Tor 프로세스는 9050 포트를열고접속대기한다. 해당포트는랜섬웨어가외부통신을할경우 로컬프록시역할을한다. [ 그림 17] Check Payment 실행시의 Tor 를이용한외부서버와의통신 랜섬노트에서 Check Payment 버튼을눌렀을때 Tor 프로세스가생성한프록시를통해외부서버 와통신한다. 3. 대응 1. 시스템을네트워크와분리후방화벽설정에서 SMB 관련포트를차단한다. 관련포트 : 137, 138, 139, 445 2. MS에서제공하는보안업데이트를진행한다. (MS17-010) 랜섬웨어의전파는 SMB 취약점을이용하는것으로취약점발생의원인이되는취약한시스템에대한보안업데이트를진행하는것이근본적인해결방안이다. [Update Link] https://technet.microsoft.com/en-us/library/security/ms17-010.aspx 궁금하신점이나문의사항은 malware@somansa.com 으로해주세요. 본자료의전체혹은일부를소만사의허락을받지않고, 무단개제, 복사, 배포는엄격히금합니다. 만일이를어길시에는민형사상의손해배상에처해질수있습니다. 본자료는악성코드분석을위한참조자료로활용되어야하며, 악성코드제작등의용도로악용되어서는안됩니다. 소만사는이러한오남용에대한책임을지지않습니다. Copyright(c)2017 소만사 All rights reserved. - 12 -