Try Attack/Malware Analysis[basic]

[악성코드분석] 코로나바이러스

D4tai1 2020. 5. 1.

안녕하세요.

 

4월 30일은 치킨을 먹으면서 행복하게 마무리했고,

 

자고 일어나니 5월 첫 날 새벽이 되었네요.

 

 

코로나 핑계로 탱자탱자 놀면서 4월을 흘려버렸는데

 

5월부터는 3가지정도 계획하고 지켜볼까합니다.

 

사람이라면여..? 하하

 

 

아무리 바빠도 한 달에 한 번정도는 놀러다니면서 말이죠!!

 

 

오늘은 4월이 끝나기 전 나타난

 

시스템파괴형 스크린락커 악성코드를 분석해보려고 합니다.

 

자기자신을 코로나바이러스라고 부르는데요?

 

상세분석이라고하면 조금 거창?하고 

 

흐름만 살펴볼까 합니다.

 

악성코드 MD5 : 09387DAD1341F534AD51966168C0E4AF

 

 

매우 성가신 코로나 바이러스 스크린락커 발견돼

New Coronavirus screenlocker malware is extremely annoying 가짜 WiFi 해킹 프로그램이 코로나 바이러스를 악용한 새로운 악성코드를 배포하는 것으로 나타났습니다. 이 악성코드는 사용자가 윈도우를 사용하��

blog.alyac.co.kr

알약블로그에 게시도 되었네요!

 

그럼 G000000000000000!

 

 

1. 정적분석

 

1) 개발언어 및 링커확인

 

[그림1] Detect It Easy

▶ 스마트인스톨메이커는 설치파일이라고 생각하면 될 것 같습니다.

 

▶ 파스칼계열의 델파이로 작성되었네요.

 

▶ 터보링커를 사용해서 링킹이 되었구요.

 

▶ 헤더타입이 PE인 것을 보니 32비트 윈도우즈 실행파일이네요.

 

▶ ImageBase가 0x400000이며, 시작주소는 0x425468이겠죠?

 

[그림2] .tls섹션

▶ 총 8개의 섹션으로 구성되어 있으며 .tls섹션도 존재하네요.

 

 

2. 디버거를 이용한 분석

 

[그림3] EntryPoint

▶ 굉장히 간단해 보이죠?

 

 실제로 들어가보면 무수히 많은 함수들이 기다리고 있답니다.

 

▶ 하나씩 트레이싱하면서 분석할정도는 아닌 것 같네요.

 

▶ 순차적으로 분석을 시작해보도록 하겠습니다.

 

 

[1] 임시파일의 경로얻기

 

[그림4] 임시파일의 경로얻기

 임시파일의 경로를 먼저 얻어오는군요?

 

 

[2] 새로 생성할 파일의 절대경로얻기

 

[그림5] 새로 생성할 파일의 절대경로얻기

 이전에 2.tmp파일을 만들고 절대경로를 얻어옵니다.

 

 WriteFile()을 이용해서 생성하지 않았을까요?

 

 궁금하시면 직접 확인해보세요!

 

 

[3] 파일열기

 

[그림6] 파일열기

 파일을 열어서 핸들이 얻어졌는지 확인하고 핸들을 닫네요.

 

 

[4] 파일생성

 

[그림7] 4.tmp 파일생성

▶ 디렉터리에서 확인해보면 4.tmp라는 빈 파일을 생성합니다.

 

[그림8] 4.tmp라는 빈파일 생성

 0KB짜리 빈파일이 생성되었군요!!

 

 

[5] 파일쓰기

 

[그림8] 파일 내용 작성

 파일이 있다면 열어서..

 

 

[그림9] 파일 내용 작성

 비어있던 파일에 내용을 쓰네요.

 

 

[그림10] 4.tmp의 내용

 파일에 어떤내용을 적었는지 살짝 엿보면?

 

▶ 악 내 눈!!! 안과를 가야겠어요!

 

 

[그림11] 생성된 임시파일 4개

▶ 위와같은 방법으로 총 4개의 임시파일을 생성하네요.

 

 보통 이러한 tmp파일은 새로운 코드나 파일을 만들기위해 생성을 하죠!

 

 그러나 새로운 코드를 만들기 위해서라면 메모리 내에 작성해서 써도 될텐데 말이죠?

 

 

[6] allwh.reg 생성

 

[그림12] allwh.reg 파일생성

 "C:\Program Files (x86)\vb\wifi hacker\allwh.reg"를 생성하네요.

 

 참고로 .reg파일은 레지스트리 추가/수정/삭제를 위한 파일이랍니다.

(괜한 오지랖 살짝,,>_<)

 

 

[7] allwh.reg를 포함한 총 12개의 파일 생성

 

[그림13] allwh.reg를 포함한 총 12개의 파일 생성

 오!! 나쁜놈의 자식들이 12개나 생겼네요?

 

 생성된 방식은 [6]의 allwh.reg와 동일한 방식으로 생성되어 구지 캡쳐는 하지 않았으니 이해해주세요.

 

 

[8] allwh.reg의 내용

 

[그림14] allwh.reg의 내용

 우선 연두색으로 작성된 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]에서

윈도우즈 접속 시 보여지는 제목과 내용을 작성합니다.

 

"legalnoticecaption"="you are infected of corona virus.." 
"legalnoticetext"="computertricks2018@gmail.com"

 

▶ [그림14]와 같이 키와 값의 형태로 작성하려나봅니다.

 

 아마 나쁜짓을 하고 이 내용을 띄울 것으로 보이네요.


 파란색으로 작성된

[HKEY_CURRENT_USER\Control Panel\Desktop]에서

윈도우 접속 시 설정하는 바탕화면이미지의 위치를 저장합니다.


"Wallpaper"=“c:\\wh\\wh.jpg"

 

[그림15] wh.jpg

 보라색으로 작성된

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]에서

윈도우부팅 시 자동실행되는 프로그램 목록을 설정합니다.

 

"r"="c:\\wh\\speakwh.vbs" 
"o"="c:\\wh\\antiwh.vbs" 
"t"="c:\\wh\\diex.bat"

 

 위 3개 파일은 아래서 같이 설명하겠습니다.


▶ 분홍색으로 작성된

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]에서

필수프로그램인 explorer의 기능을 최소화합니다.

 

"StartMenuLogOff"=dword:00000001 
"NoDrives"=dword:03ffffff 
"NoClose"=dword:00000001 
"HideClock"=dword:00000001 
"NoViewContext"=dword:00000001 
"NoStartMenuPinnedList"=dword:00000001 
"NoStartMenuMorePrograms "=dword:00000001 
"NoDesktop"=dword:00000001 
"NocontrolPanel"=dword:00000001 
"NoRun"=dword:00000001 
"NoWinkeys"=dword:00000001


 흰색으로 작성된

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]에서

작업관리자 잠금 및 레지스트리편집기를 잠급니다.

 

"disabletaskmgr"=dword:00000001 
"disableregistrytools"=dword:00000001


 노란색으로 작성된

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR]에서 

USB포트를 잠궈버리는 설정을 합니다.

 

"Start"=dword:00000004


 여기까지만봐도 세상 나쁜짓은 다하네요!!

 

 

[9] 레지스트리 읽고 쓰기

 

[그림16] 레지스트리 읽기

▶ RegQueryValueEx()를 이용해서 

"HKEY_LOCAL_MACHINE"의 "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"에 있는

레지스트리 키값을 얻어오네요.

 

※ 7ip) RegQueryValueEx는 레지스트리 핸들을 얻어야하기 때문에 

RegOpenKeyEx라는 오른팔과 RegCloseKeyEx라는 왼팔과 함께 다닌답니다!

 

[그림17] 레지스트리 쓰기

 

 [8]에서 설명한 allwh.reg파일의 내용을 읽은 후 

RegSetValueEx()를 이용해서 레지스트리를 추가 및 수정하고 있습니다.

 

 아직 당황하시긴 이릅니다! 서막에 불과하기 때문이죠!

 

 이와같이 allwh.reg를 등록하고 나면?

 

 

[10] WinExec()

 

 "사랑해도 될까요?"의 가사가 떠오르는군요!

 

왠일인지 낯설지가 않아요~~~

설레고 있죠~ 내 시스템을 모두 가져간 그대애~~~

조심스럽게~ 얘기할래요~ 용기내볼래요~~~

나 오늘부터 그대 시스템을 망가뜨려볼래요~

 

[그림18] WinExec(&"wh.bat", SW_SHOW);

 wh.bat을 실행시키려고 하고 있습니다.

 

 

[11] wh.bat의 내용

 

[그림19] wh.bat

▶ [그림13]에서 생성된 나쁜놈의 자식들 12개 중 하나네요.

 

 attrib를 사용해서 "C:\wh"내 모든파일에 대해 읽기전용(-r), 보관(-a), 시스템(-s), 숨김(-h) 속성을 제거합니다.

 

▶ del을 사용해서 "C:\wh"내 모든파일을 읽기전용도 삭제(/f), 삭제할건지 묻지않고(/q) 싹다 지워버립니다.

 

 이후 새로 디렉터리를 만들고 7개 파일을 "C:\wh"에 복사, 1개 파일을 "C:\awh"에 복사합니다.

(디렉터리를 구지 구분하는 이유는 아마 역활이 다르지 않을까요?)

 

▶ 마지막으로 bar.vbs를 실행하네요.

 

 

[12] bar.vbs의 내용

 

[그림19] bar.vbs

 비주얼베이직스크립트 파일 내용은 생각보다 심플하네요.

 

 shell객체를 만들고 bara.bat을 실행시킵니다.

 

 

[13] bara.bat의 내용

 

[그림20] bara.bat

▶ 열심히 만들었지만 필요한것은 "C:\wh"에 복사해놓았기 때문에 삭제하나 봅니다.

 

 "shutdown -l"은 로그오프를 합니다.

 

 

[14] 레지스트리 등록한 자동시작프로그램

 

▶ [8]과 [그림14]의 보라색부분에서 등록한 3개 파일에 대해서 알아보겠습니다.

 

 

[그림21] speakwh.vbs

 "C:\wh\speakwh.vbs"는 "corona virus"를 sapi를 이용해 객체를 만들고 음성으로 출력하고 있습니다.

(윈도우 접속시 자동실행됩니다)

 

 글을 마무리하고 귀를 씻고 와야겠어요!

(들어보면 아실거라 생각?합니다..하하)

 

 

[그림22] diex.bat

▶ 보이는 것과 같이 explorer.exe 프로세스를 강제로 종료시킵니다.

 

※ 7ip) taskkill 옵션 중 /F는 "종료하시겠습니까?"를 묻지않고 강제종료를 하며,

/IM의 경우 "이미지파일"을 의미하며 프로세스이름을 적어주면 됩니다.

/PID 옵션을 사용하여 프로세스아이디를 적어주어도 무방합니다.

 

 

[그림23] antiwh.vbs

 "모든 파일이 코로나바이러스에 의해 암호화되었다.

아무도 나의 복호화코드없이 파일을 복구할 수 없다.

메일로 연락해서 복호화코드를 받아 입력하라"

라는 내용을 출력하는 inputbox를 생성합니다.

 

 이 후 복호화코드가 "vb"면 inputbox를 닫고 explorer.exe를 실행시킵니다.

 

▶ 사실 소름돋는 것은

나의 복호화코드 없이는 복구할 수 없다고 했는데

6라인은 영어단어만 알아도..

[만약(if) pass가 vb(pass="vb")면(then) 종료(exit) 하다(do)..?] 이렇게 해석되지 않나요?ㅋㅋㅋㅋㅋ

여기서 do는 반복문의 시작을 의미하지만 말이죠..

 

 ※ 7ip) "explorer.exe"는 윈도우즈에서 GUI를 사용해줄 수 있는 파일이며

이 프로세스가 꺼지면 화면은 검정색으로 변경되고 마우스는 기능을 할 수 없습니다.

 

3. 실행 시 모습

 

[그림24] 레지스트리에 등록한 공지와 내용

 윈도우 로그인 시 코로나바이러스에 감염되었다는 내용이 먼저 보입니다.

 

 

[그림25] 부팅 후 바탕화면과 inputbox

 "vb"를 입력하면 inputbox는 닫힙니다.

 

 

[그림26] 레지스트리편집기 및 작업관리자 비활성화

▶ 레지스트리편집기와 작업관리자 잠금은 [8]과 [그림14]를 통해서 이미 예견됐죠..

 

 

 

4. 복구방법

 

[그림27] 드라이브 접근불가

 위와 같이 드라이브에 접근이 불가합니다.

 

[그림28] 디스크관리를 이용한 드라이브 접근

 이건 제가 찾은 방법은 아니고, 저보다 많은 경험을 해보신 분께서 알려주셨습니다.

꿀팁이져 하하..

 

 

[그림29] anti.exe

▶ 아마 복구툴로 보이지만 실행시켜보겠습니다.

 

 

[그림30] 설치용 패스워드

 "vb"

 

 

[그림30] 복구방법

▶ "C:\awh\anti.exe"를 분석해보면 위와 같은 파일을 생성합니다.

 

 내용은 notepad++에 나온 것과 동일합니다.

 

 

위 영상은 [시스템파괴형]코로나바이러스 악성코드를 실행한모습입니다. 

 

 

댓글