꿈을꾸는 파랑새

오늘은 개인적으로 블로그에 악성코드를 제거하기 위한 보조 악성코드 제거 프로그램에 대해서 여러 가지 소개를 했습니다. 그중에서 Malware Zero Kit는 네이버 카페 바이러스 제로 시즌 2에서 보안카페매니저님으로 활동하고 계시는 ViOLeT님이 제작을 해서 무료로 배포하는 것으로 해당 도구는 네이버대표보안카페 바이러스 제로 시즌 2에서 만 배포를 할 수 있고 타 사이트/카페/블로그에 무단으로 파일을 첨부하시면 안 됩니다. (원본 게시물에 대한 링크만 허가하고 있습니다.)
Malware Zero 을 줄여서 MZK은 간단하게 보조 악성코드 제거스크립트 도구입니다. 해당 Malware Zero 은 기본적으로 악성코드와 유해가능 프로그램정보를 바탕으로 해서 루트킷 드라이브검사, 서비스, 폴더 검사, 레지스트리 검사를 통해서 삭제하는 방법을 사용하고 있습니다. 그리고 파밍(Pharming) 혹은 메모리 해킹 악성코드에 감염 등 증상이 발생할 때 유용하게 사용할 수가 있는 프로그램으로 보안 제품으로 해결되지 않는 악성 프로그램이나 불필요한 광고 프로그램(PUP)을 검사하여 문제를 해결해주는 프로그램으로서 상당히 좋은 프로그램입니다.

공식 Malware Zero 프로그램
공식 Malware Zero 프로그램

최근 티스토리(Tistory)를 블로그를 통해서 실제 ViOLeT님이 배포 하는 Malware Zero (멀웨로제로)처럼 유포를 하는 것을 확인했습니다.
MEGA 해외 파일 클라우드 서비스 링크를 통해 파일을 누구나 다운로드할 수 있도록 하게 할 수 있게 해놓은 것이 특징입니다. 해당 다운로드 한 파일을 압축프로그램을 통해서 열어 보면 기본적으로 10MB인 것을 확인할 수가 있습니다.

가짜 악성코드 제거 무료 프로그램 멀웨어 제로 유포
가짜 악성코드 제거 무료 프로그램 멀웨어 제로 유포


해당 악성코드는 열어보면 66.2MB (69,448,244바이트)이라는 것을 확인할 수가 있습니다.
해당 악성코드의 해쉬값은 다음과 같습니다.

가짜 Malware Zero 프로그램
가짜 Malware Zero 프로그램

유포 사이트

https://mega(.)nz/file/764TUIRI#5iQ1xefWqhZ-zTBM9BlYFZgG-l_TjZDzBvOVsV64zq4

파일명:Malware Zero.exe
사이즈:44.9 MB
CRC32:a09f3d7f
MD5:5cd13b3b46b4b6ba3639a25f97b97129
SHA-1:f8b842a9a45c9129f43546420f8c2853afb42a53
SHA-256:ded7bc9341918918224c76622b3b936f7d0f04ec1dbc563f097a32f073e71402

가짜 Malware Zero 프로그램 속성
가짜 Malware Zero 프로그램 속성

이며 다음 코드를 통해서 다음을 실행합니다.

void __fastcall sub_1400078A0(unk64_t param_1)
{
    int64_t iVar1;
    int32_t iVar2;
    int64_t iVar3;
    unk64_t uVar4;
    unk64_t *puVar5;
    int64_t iVar6;
    int64_t aiStackX24 [2];
    unk64_t uStack16;
    
    uStack16 = 0x14(0)0078B0;
    iVar3 = sub_14000(A)DB0();
    iVar3 = -iVar3;
    *(uint64_t *)(&stack0x00002058 + iVar3) =
         *(uint64_t *)0x14003D018 ^ (uint64_t)(&stack0(x)fffffffffffffff8 + iVar3);
    puVar5 = (unk64_t *)0x0;
    *(unk64_t *)(&stack0x00000030 + iVar3) = 0xFFFFFFFFFFFFFFFF;
    *(unk64_t *)(&stack0x00000038 + iVar3) = 0;
    *(unk32_t *)(&stack0x00000028 + iVar3) = 0;
    *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x1400078E6;
    uVar4 = (*_GetCurrentProcess)();
    *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x1400078F7;
    iVar2 = (*_OpenProcessToken)(uVar4, 8, &stack0x00000030 + iVar3);
    if (iVar2 != 0) {
        *(unk8_t **)((int64_t)aiStackX24 + iVar3) = &stack0x00000028 + iVar3;
        *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x140007919;
        iVar2 = (*_GetTokenInformation)(*(unk64_t *)(&stack0x00000030 + iVar3), 1, 0, 0);
        if (iVar2 == 0) {
            *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x140007923;
            iVar2 = (*_GetLastError)();
            if (iVar2 != 0x7A) goto loc_140007971;
        }
        *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x140007936;
        puVar5 = (unk64_t *)sub_140014094(1, *(unk32_t *)(&stack0x00000028 + iVar3));
        if (puVar5 != (unk64_t *)0x0) {
            *(unk8_t **)((int64_t)aiStackX24 + iVar3) = &stack0x00000028 + iVar3;
            *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x140007960;
            iVar2 = (*_GetTokenInformation)
                              (*(unk64_t *)(&stack0x00000030 + iVar3), 1, puVar5, 
                               *(unk32_t *)(&stack0x00000028 + iVar3));
            if (iVar2 != 0) {
                uVar4 = *puVar5;
                *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x140007971;
                ConvertSidToStringSidW(uVar4, &stack0x00000038 + iVar3);
            }
        }
    }
loc_140007971:
    *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x140007979;
    sub_14001409C(puVar5);
    if (*(int64_t *)(&stack0x00000030 + iVar3) != -1) {
        *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x14000798A;
        (*_CloseHandle)();
    }
    iVar1 = *(int64_t *)(&stack0x00000038 (+) iVar3);
    iVar6 = "S-1-3-4";
    if (iVar1 != 0) {
        iVar6 = iVar1;
    }
    *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x1400079B3;
    sub_1400075A0(&stack0x00000058 + iVar3, 0x1000, "D:(A;;FA;;;%s)", iVar6);
    *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x1400079BC;
    (*_LocalFree)(iVar1);
    *(unk32_t *)(&stack0x00000040 + iVar3) = 0x18;
    *(unk32_t *)(&stack0x00000050 + iVar3) = 0;
    *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x1400079E2;
    iVar2 = ConvertStringSecurityDescriptorToSecurityDescriptorW
                      (&stack0x00000058 + iVar3, 1, &stack0x00000048 + iVar3);
    if (iVar2 != 0) {
        *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x1400079F4;
        (*_CreateDirectoryW)(param_1, &stack0x00000040 + iVar3);
    }
    *(unk64_t *)((int64_t)&uStack16 + iVar3) = 0x140007A13;
    sub_14000AD80(*(uint64_t *)(&stack0x00002058 + iVar3) ^
                  (uint64_t)(&stack0xfffffffffffffff8 + iVar3));
    return;

GetTokenInformation
GetTokenInformation

대충 설명을 하면 다음과 같습니다.
코드는 함수(sub_1400078A0)의 구현이며 주요 기능은 다음과 같습니다.
1. 변수 및 초기화: 다양한 변수 및 배열을 초기화
2. GetCurrentProcess 및 OpenProcessToken 호출: 현재 프로세스의 핸들을 가져오고 해당 핸들을 사용하여 프로세스 토큰 열기
조건문과 함수 호출: 조건문을 통해 특정 조건을 확인하고 해당 조건에 따라 함수를 호출 주로 GetTokenInformation 함수를 호출하여 토큰 정보를 가져오고 ConvertSidToStringSidW 함수를 호출하여 보안 식별자(SID)를 문자열로 변환
함수 호출과 조건문: 다양한 함수를 호출 조건문을 사용하여 특정 조건을 확인 특히 sub_14001409C 함수를 호출하여 메모리를 해제하고, _CloseHandle 함수를 호출하여 핸들을 닫음
5.변수 값 설정: 특정 변수 값을 설정 주로 "S-1-3-4"와 같은 값으로 초기화되거나 다른 변수의 값에 따라 설정
6. 함수 호출: 주로 보안 기술 설정, 메모리 해제, 디렉터리 생성 등의 작업이 수행

가짜 Malware Zero 프로그램 크기
가짜 Malware Zero 프로그램 크기

2023-07-15 15:10:36 UTC 기준 바이러스토탈 에서 탐지하는 보안 업체들은 다음과 같습니다.
Avast:Win64:Evo-gen [Trj]
AVG:Win64:Evo-gen [Trj]
DeepInstinct:MALICIOUS
Elastic:Malicious (moderate Confidence)
Kaspersky:HEUR:Trojan-PSW.Python.Agent.gen
McAfee-GW-Edition:Artemis
Microsoft:Program:Win32/Wacapew.C!ml
Sophos:Generic Reputation PUA (PUA)
Symantec:Trojan.Gen.2
Tencent:Win32.Trojan-QQPass.QQRob.Jmnw
ZoneAlarm by Check Point:HEUR:Trojan-PSW.Python.Agent.gen
가상 환경 체크를 통해 분석 환경에서는 동작하지 않도록 제작되었으며 다음의 정보를 수집합니다.

AliExpress
Amazon
Binance Exchange
Brave
CentBrowser
Comodo Dragon
Crunchyroll
Discord
Disney
Ebay
Epic Games
ExpressVPN
Facebook
FileZilla
Firefox
Gmail
Google Chrome
HBO
Hotmail
Instagram
Kiwi Browser
Microsoft Edge
Minecraft
Naver Whaler
Netflix
Opera
Opera Neon
Origin
Outlook
Paypal
PlayStation
Pornhub
RIOT Games
Roblox
Sellix
Slimjet
Spotify
SRWare Iron
Steam
Telegram Desktop
TikTok
Torch Browser
Twitch
Twitter
Uber
Vivaldi
Xbox
Yahoo
Yandex Browser
YouTube

그리고 사용을 하는 IP 주소는 다음과 같습니다.

185.199.108(.)133:443(TCP)
185.199.111(.)133:443(TCP)
192.168.0(.)1:137(UDP)
192.229.211(.)108:80(TCP)
20.99.184(.)37:443(TCP)

신용 카드, 웹 브라우저, 게임, 암호 화폐 거래소(가상화폐 거래소), SNS, 이메일, 쇼핑몰 등 개인적으로 민감한 정보들에 접근하고 있으며 VPN, 넷플릭스 같은 정보도 훔쳐가니 항상 조심을 하는 것이 좋습니다. 즉 공식 사이트 이외에 파일을 다운로드 및 실행을 하는 것은 매우 위험한 행동입니다.

그리드형

공유하기

facebook twitter kakaoTalk kakaostory naver band