Blog

러시아의 Turla 공격 그룹의 향기가 느껴지는 ANDROMEDA 맬웨어를 활용한 우크라이나 조직 공격

Sarah Hawley, Gabby Roncone, Tyler McLellan, Eduardo Mattos, John Wolfram 
Jan 05, 2023
10 min read
|   Last updated: Apr 03, 2023
Ukraine
Malware
Uncategorized Groups (UNC Groups)

맨디언트는 2022년 9월 ANDROMEDA 맬웨어를 이용해 우크라이나 조직에 침투하여 KOPILUWAK 정찰 유틸리티와 QUIETCANARY 백도어를 배포하는 작업을 발견하였습니다. 그리고 이를 UNC4210 위협 클러스터로 추적 중입니다. 맨디언트의 관찰에 따르면 이번 침해 활동의 배후에 러시아의 Turla 공격 그룹이 있는 것으로 보입니다. 맨디언트는 UNC4210이 최소한 3개의 만료된 ANDROMEDA 명령 및 제어(Command & Control, 이하 C2) 도메인을 재등록한 다음 2022년 9월에 KOPILUWAK와 QUIETCANARY를 배포할 잠재적 타깃을 찾기 위해 피해자 프로파일링 작업을 시작한 것을 발견했습니다.

ANDROMEDA는 2010년 초에 널리 퍼진 상용 맬웨어입니다. UNC4210이 하이재킹한 C2와 연계된 버전은 2013년에 VirusTotal에 처음 업로드되었으며, 이 버전의 맬웨어는 감염된 USB 키를 통해 확산되었습니다. 맨디언트 매니지드 디펜스(Mandiant Managed Defense)는 여러 산업 분야의 조직이 ANDROMEDA 맬웨어에 감염되는 것을 관찰하였습니다. 참고로 이번 포스팅은 우크라이나 조직을 노린 것으로 의심되는 Turla 공격 그룹의 페이로드에 대한 내용을 다룹니다.

Timeline of ANDROMEDA to Turla Team intrusion
그림 1: Turla 공격 그룹의 ANDROMEDA를 활용한 침해 타임라인

USB 장치를 통해 확산

맨디언트는 최근 한 블로그 게시물(Always Another Secret: Lifting the Haze on China-Nexus Espionage in Southeast Asia)에서 USB 장치를 통해 확산되는 맬웨어는 공격자가 초기 접근 권한을 얻는 데 유용하다는 내용을 소개한 바 있습니다.

이번 사건의 경우 2021년 12월 우크라이나의 한 조직에서 공개된 지 오래된 맬웨어에 감염된 USB 장치가 피해 조직의 시스템에 삽입되었습니다. 시스템 사용자는 USB 드라이브 내 폴더로 위장한 악성 링크 파일(LNK)을 클릭해 열었고, 이후 ANDROMEDA 맬웨어가 설치되어 C2와 통신을 시작하였습니다.

ANDROMEDA 맬웨어 활용

'C:\Temp\TrustedInstaller.exe(MD5: bc76bd7b332aa8f6aedbb8e11b7ba9b6'에 설치된 ANDROMEDA 버전은 2013년 3월 19일에 VirusTotal에 처음 업로드된 것으로 연계된 C2 도메인은 만료 및 보안 연구자들에 의해 차단되었습니다. 이 경로에 있는 파일을 실행하면 ANDROMEDA 바이너리는 'C:\ProgramData\Local Settings\Temp\mskmde.com (MD5:b3657bcfe8240bc0985093a0f8682703 )'에 다른 ANDROMEDA 샘플을 드롭하여 지속성을 확보합니다. 그리고 사용자가 시스템에 로그인할 때마다 실행하기 위해 레지스트리 실행 키를 추가합니다. 만료된 C2 도메인 중 하나인 'suckmycocklameavindustry[.]in'은 2020년 1월 19일에 Dynadot이라는 등록자 이름으로 재등록되었습니다. UNC4210은 이 C2를 사용해 먼저 피해자가 공격 가치가 있는지 살피기 위해 프로파일링을 하였습니다. 이후 타깃으로 삼을만하다 판단되면 KOPILUWAK 드롭퍼를 보냈습니다.

맨디언트는 비커닝 ANDROMEDA 스테이저 샘플을 사용해 여러 호스트를 식별하였습니다. C2는 초기 침투 후 다음 단계에서 페이로드를 배포하는 데 사용되었는데, 잠시 동안만 서버를 운영하고 이후 몇 주 간 오프라인 상태로 두었습니다. 여러 호스트를 관찰하는 동안 맨디언트는 Turla 공격 그룹 관련 맬웨어가 사용된 것을 한번 관찰할 수 있었습니다.

KOPILUWAK를 이용해 정찰

UNC4210은 2022년 9월 6일에 피해자 호스트에 KOPILUWAK(MD5: 2eb6df8795f513c324746646b594c019)가 포함된 WinRAR SFX(Self-Extracting Archive)를 다운로드해 실행하였습니다. 공격자는 KOPILUWAK가 포함된 동일한 WinRAR SFX 드롭퍼를 9월 6일과 9월 8일 사이에 7번 실행하였습니다. KOPILUWAK는 상당한 양의 데이터를 C2(manager.surro[.]am)로 전송하려 시도했습니다. 프로파일링 명령이 KOPILUWAK에 하드코딩되어 있고, 같은 호스트에서 다른 데이터 집합을 생성하지 않은 것에 미루어 볼 때 UNC4210이 이 작업을 수행한 이유는 명확하지 않습니다.

KOPILUWAK는 C2 통신 및 피해자 프로파일링에 사용한 자바 스크립트 기반 정찰 유틸리티입니다. 카스퍼스키에서 처음 발견해 보고서를 공개하였고, 맨디언트는 2017년부터 추적을 하였습니다. 이 유틸리티는 주로 악성 이메일의 첨부 파일을 통해 피해자에게 전달되었습니다. 참고로 Turla 공격 그룹은 사이버 작전을 펼칠 때 KOPILUWAK을 사용한 이력이 있습니다.

ANDROMEDA 맬웨어는 'wuauclt.exe'를 통해 GET 요청을 'yelprope.cloudns[.]cl'에 보냅니다. 이때 타깃 URL은 '/system/update/version'입니다. 참고로 'yelprope.cloudns[.]cl'은 UNC4210이 재등록한 CloudDNS 동적 DNS 하위 도메인입니다. 요청을 보낸 후 다음 과정으로 KOPILUWAK가 포함된 WinRAR SFX를 'C:\Users\[username]\AppData\Local\Temp\0171ef74.exe (MD5: 2eb6df8795f513c324746646b594c019)'에 다운로드하고 실행하는 작업이 이루어집니다. 참고로 이 파일 이름 형식은 Temp.Armageddon 작업에도 사용되는 것으로 관찰된 바 있습니다. WinRAR SFX 실행 시 자동 압축 해제 아카이브는 'C:\Windows\Temp\xpexplore.js (MD5: d8233448a3400c5677708a8500e3b2a0)'에 KOPILUWAK를 생성하고 실행합니다.

UNC4210은 KOPILUWAK을 1단계 프로파일링 유틸리티로 사용했습니다. KOPILUWAK는 ANDROMEDA와 마찬가지로 Turla 공격 그룹이 배후에 있는 것으로 보이는 UNC4210이 사용하는 맞춤형 맬웨어입니다. UNC4210은 KOPILUWAK를 통해 whoami, netstat, arp, net을 사용해 피해자 시스템에서 기본 네트워크 정찰을 수행하여 모든 PID를 포함한 모든 TCP 연결 및 네트워크 공유를 찾습니다. 공격자는 논리 디스크와 시스템에서 현재 실행 중인 프로세스 목록도 확인하였습니다. 각 명령 결과는 POST 요청을 통해 KOPILUWAK의 C2인 'manager.surro[.]am'로 업로드되기 전에 '%TEMP%\result2.dat'로 전달되었습니다.

QUIETCANARY 경량 백도어

맨디언트는 2022년 9월 8일에 UNC4210이 호스트에 .NET 기반 경량 백도어인 QUIETCANARY를 다운로드하는 것을 두 번 감지하였습니다. 이 백도어에 대한 상세 분석 내용은 부록을 참조 바랍니다. KOPILUWAK의 광범위한 피해자 프로파일링 이후 'wuauclt.exe'는 QUIETCANARY를 다운로드하고 실행합니다. 그리고 ‘/system/update/cmu’를 사용해 ‘yelprope.cloudns[.]cl’에 GET 요청을 했습니다. 그런 다음 QUIETCANARY(MD5: 403876977dfb4ab2e2c15ad4b29423ff)가 디스크에 기록되었습니다. UNC4210은 데이터 압축, 스테이징, 유출을 위해 이 백도어를 활용했습니다.

데이터 도용

맨디언트는 QUIETCANARY에 의해 전송되고 실행되는 명령을 관찰하다가 UNC4210이 명령에 오타를 내는 것(netstat -ano -p tcppp)도 관찰할 수 있었습니다. 이를 통해 자동화가 아니라 매뉴얼 방식으로 작업을 한다는 것을 유추할 수 있었습니다. UNC4210은 WinRAR를 사용해 문서 및 데이터 수집을 시도하였습니다. UNC4210은 2021년 1월 1일 이후 생성된 파일만 유출하였습니다.

데이터 수집 명령

설명

rar a c:\\programdata\\win_rec.rar "%appdata%\\microsoft\\windows\\" -u -y -r -m2 -inul

'% AppData%\Microsoft\Windows\”' 디렉토리에 'win_rec.rar' 아카이브 생성, 백도어가 실행되면 'C:\Users\[Username]\AppData\Roaming\Microsoft\Windows\'로 확장됨

 

rar a c:\\programdata\\win_rec.rar "c:\\users\\" -u -y -r -m2 -inul -n*.lnk

확장자가 '.ink'인 파일을 포함하는 'win_rec.rar' 아카이브 생성, 'C:\Users\' 디렉토리에서 발견됨

 

rar a c:\\programdata\\win_files.rar "c:\\users\\" "d:\\" -u -y -r -m2 -inul -n*.pdf -n*.xls* -n*.txt -n*.doc* -hp[redacted] -v3M -ta20210101000000

2021년 1월 1일 이후 수정된 확장자가 .pdf, .xls(x), .txt, .doc(x) 파일을 포함하는 'win_files.rar' 아카이브 생성(3MB 단위로 쪼개진 암호화된 패스워드 아카이브), 'C:\Users\'와 'D:\' 디렉토리에서 발견됨

 

rar a c:\\programdata\\win_txt.rar "c:\\users" "d:\\" -u -y -r -m2 -inul -n*.txt -hp[redacted] -v3M

.txt 파일을 포함한 'win_txt.rar' 아카이브 생성(3MB 단위로 쪼개진 암호화된 패스워드 아카이브), 'C:\Users\'와 'D:\' 디렉토리에서 발견됨

 

ANDROMEDA C2

맨디언트는 추가 ANDROMEDA 도메인을 검토하면서 재등록된 도메인을 관찰하였습니다. 'anam0rph[.]su' 도메인은 2022년 8월 12일에 재등록되었고 'yelprope.cloudns[.]cl'과 같은 IP로 확인되었습니다. 맨디언트는 'anam0rph[.]su' 도메인을 UNC4210이 제어하고 있다는 합리적 의심을 하고 있습니다.

도메인

재등록 시점

IP

anam0rph[.]su

2022년 8월 12일

212.114.52[.]24

yelprope.cloudns[.]cl

알 수 없음(다이나믹 DNS)

212.114.52[.]24

suckmycocklameavindustry[.]in

2022년 1월 19일

35.205.61[.]67

결론

등장한지 오래된 ANDROMEDA 맬웨어가 손상된 USB 장치를 통해 확산됨에 따라 재등록된 C2 도메인을 이용해 공격자가 새로운 맬웨어를 피해자 네트워크에 전달할 수 있는 새로운 위험이 등장하였습니다. 광범위하게 배포되었고, 금전적 동기가 있는 공격에 사용된 맬웨어를 재등록한 C2 서버를 통해 활용하는 것은 새로운 접근이라 할 수 있으며 이를 통해 ANDROMEDA 맬웨어 관련 후속 피해를 입을 수 있습니다. 방어자 입장에서 보면 오래된 맬웨어와 만료된 C2 도메인 관련 경보를 간과할 가능성이 높기 때문입니다.

맨디언트가 최근 관찰한 것은 우크라이나를 표적으로 삼는 Turla 공격 그룹과 관련이 있어 보이는 공격입니다. 이번 캠페인의 운영 전술은 과거 USB 장치를 활용하고, 광범위하게 피해자 프로파일링을 수행한 Turla 공격 그룹의 행위와 일치합니다. 이번 위협의 경우 2022년 1월 이후 진행한 광범위한 프로파일링을 통해 러시아에 전략적으로 중요한 정보를 수집하고 유출할 수 있는 시스템을 선별한 다음 맞춤형 공격을 한 예입니다. 참고로 맨디언트는 지금까지 관찰한 Turla 공격 그룹의 행동에서 벗어난 것으로 보이는 일부 요소인 KOPILUWAK과 QUIETCANARY 사용 방식에 주목하고 있습니다.

끝으로 본 포스팅 내용 관련 기술 검토를 해준 Nick Richard와 Parnian Najafi에 감사의 말을 전합니다. 그리고 우크라이나 고객을 지원하는 모든 맨디언트 컨설턴트, 맨디언트 매니지드 디펜스 그리고 Pokemon Masters에게도 특별한 감사의 뜻을 전합니다.

침해 지표

패밀리

지표

ANDROMEDA

bc76bd7b332aa8f6aedbb8e11b7ba9b6 TrustedInstaller.exe

ANDROMEDA

b3657bcfe8240bc0985093a0f8682703 mskmde.com

KOPILUWAK WinRAR SFX

2eb6df8795f513c324746646b594c019

KOPILUWAK

d8233448a3400c5677708a8500e3b2a0 xpexplore.js

QUIETCANARY

403876977dfb4ab2e2c15ad4b29423ff 00c3df3b.exe

QUIETCANARY

8954caa2017950e0f6269d6f6168b796file.exe16

UNC4210 ANDROMEDA C2

suckmycocklameavindustry[.]in

UNC4210 ANDROMEDA C2

yelprope.cloudns[.]cl

UNC4210 ANDROMEDA C2

anam0rph[.]su

UNC4210 ANDROMEDA C2

212.114.52[.]24

UNC4210 KOPILUWAK C2

manager.surro[.]am

QUIETCANARY C2 

194.67.209[.]186:443 

YARA 룰

KOPILUWAK

rule M_APT_Kopiluwak_Recon_1

{

    meta:

        author = "Mandiant"

    strings:

        $rc4_1 = ".charCodeAt(i %"

        $rc4_2 = ".length)) % 256"

        $b64_1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

        $b64_3 = ".charAt(parseInt("

        $recon_1 = "WScript.CreateObject"

        $recon_2 = ".Run("

        $Arguments = "WScript.Arguments"

    condition:

        ($rc4_1 and $rc4_2 and $b64_1) and ($Arguments or ($b64_3 and $recon_1 and $recon_2))

}

QUIETCANARY

rule M_HUNTING_QUIETCANARY_STRINGS {

  meta:

        author="Mandiant"

  strings:

    $pdb1 = "c:\\Users\\Scott\\source\\repos\\Kapushka.Client\\BrowserTelemetry\\obj\\Release\\CmService.pdb" ascii wide nocase

    $pdb2 = "c:\\Users\\Scott\\source\\repos\\Kapushka.Client\\BrowserTelemetry\\obj\\Release\\BrowserTelemetry.pdb" ascii wide nocase

    $pdb3 = "c:\\Users\\Scott\\source\\repos\\BrowserTelemetry\\BrowserTelemetry\\obj\\Release\\BrowserTelemetry.pdb" ascii wide nocase

    $orb1 = {  68 00 74 00 74 00 70 00 73 00 3A 00 2F 00 2F }

    $orb2 = {  68 00 74 00 74 00 70 00 3A 00 2F 00 2F }

    $command1 = "get_Command" ascii wide nocase

    $command2 = "set_Command" ascii wide nocase

    $command3 = "DownloadCommand" ascii wide nocase

    $command4 = "UploadCommand"  ascii wide nocase

    $command5 = "AddCommand" ascii wide nocase

    $command6 = "ExeCommand" ascii wide nocase

    $command7 = "KillCommand" ascii wide nocase

    $command8 = "ClearCommand"  ascii wide nocase

      $rc4 = {21 00 62 00 76 00 7A 00 65 00 26 00 78 00 61 00 62 00 72 00 39 00 7C 00 38 00 5B 00 3F 00 78 00 77 00 7C 00 7C 00 79 00 26 00 7A 00 6C 00 23 00 74 00 70 00

6B 00 7A 00 6A 00 5E 00 62 00 39 00 61 00 38 00 6A 00 5D 00 40 00 6D 00 39 00 6E 00 28 00 67 00 67 00 24 00 40 00 74 00 74 00 65 00 33 00 33 00 6E 00 28 00 32 00 72 00 7A

00 62 00 7A 00 69 00 74 00 75 00 31 00 2A 00 66 00 61 00 00 80 E9 4D 00 6F 00 7A 00 69 00 6C 00 6C 00 61 }

  condition:

    (1 of ($pdb*)) and (1 of ($orb*)) and (all of ($command*)) or ($rc4)

}

Network 룰: ANDROMEDA

alert tcp any any -> any any ( msg:"503 irc_bot_cmd Trojan.Downloader.Andromeda AI callback-trojan block"; content:".php HTTP/1"; nocase; content:"|0a|"; content:"|0a|"; within:4; content:"POST "; content:"Mozilla/4.0|0d 0a|"; content:!"Referer: "; nocase; content:!"Cookie: "; nocase; content:!"Accept-Language: "; nocase; content:!"Accept-Encoding: "; nocase; content:!"pharma"; nocase; content:!"|0d0a|TE:"; nocase; pcre:"/POST (http\:\/\/\S*\.[a-z0-9]{1,4})?/[a-z]{1,3}\.php HTTP/"; reference:fe_date,2013-07-11; reference:a_type,mal.dsh; reference:mal_hash,bc76bd7b332aa8f6aedbb8e11b7ba9b6; priority:90; sid:89039193; rev:3; )

MITRE ATT&CK

카테고리

기술

설명

Defense Evasion

 

T1027:

Obfuscated Files or Information

 

T1055:

Process Injection

 

T1070.004:

File Deletion

 

T1112:

Modify Registry

 

T1564.003:

Hidden Window

 

T1622:

Debugger Evasion

Persistence

 

T1547.001

Registry Run Keys / Startup Folder

Discovery

 

T1010:

Application Window Discovery

 

T1012:

Query Registry

 

T1033:

System Owner/User Discovery

 

T1049:

System Network Connections Discovery

 

T1057:

Process Discovery

 

T1082:

System Information Discovery

 

T1083:

File and Directory Discovery

 

T1518:

Software Discovery

Collection

 

T1560:

Archive Collected Data

 

T1560.001:

Archive via Utility

Resource Development

 

T1584:

Compromise Infrastructure

 

T1608.003:

Install Digital Certificate

Command and Control

 

T1071.001:

Web Protocols

 

T1573.002:

Asymmetric Cryptography

Impact

 

T1529:

System Shutdown/Reboot

부록: QUIETCANARY 분석

QUIETCANARY는 C2 명령을 처리할 수 있는 .NET 기반 백도어입니다. QUIETCANARY와 하드코딩된 C2 간의 통신은 RC4로 암호화되고 HTTPS를 통해 Base64로 인코딩됩니다. QUIETCANARY 샘플은 맬웨어의 PDB 경로에 'Kapushka' 아티팩트를 포함하는 경우가 많습니다. QUIETCANARY의 모든 샘플은 거의 동일하였고, 하드코딩된 C2와 RC4 키 정도만 차이를 보였습니다. 맨디언트가 발견한 QUIETCANARY의 각 샘플은 ServerInfoExtractor 클래스가 포함되어 있었지만 사용되지는 않습니다.

QUIETCANARY 실행

실행 시 QUIETCANARY는 RC4 키, 사용자 에이전트, C2 통신을 위해 하드코딩된 변수를 초기화한 다음 GET 요청을 통해 C2와 통신을 시도합니다. QUIETCANARY는 C2이 초기 응답이 13자보다 길고 문자열 'use'로 시작하는지 확인합니다. 내용이 맞는다면 세 번째와 열 번째 문자 사이의 하위 문자열을 가져와 RC4 키를 새 키로 바꿉니다. 새 RC4 키의 초기 연결/교환이 완료되지 않으면 맬웨어는 5분 대기 후 다시 시도합니다. 맬웨어가 C2에 다시 연결을 못하면 실행을 종료합니다. QUIETCANARY는 C2 응답을 기다리는 무한 루프를 시작하고 응답을 받으면 명령을 구분 분석하고 실행합니다. QUIETCANARY는 지속성을 유지하기 위한 방안을 포함하고 있지 않습니다. 따라서 지속성 확보를 위해 외부 도구나 다른 기술에 의존합니다.

QUIETCANARY 명령

QUIETCANARY는 사용자 지정 구문 분석 루틴을 사용해 명령을 수행하기 전에 C2에서 코드와 추가 매개변수를 디코딩 합니다. QUIETCANARY 관련 C2 명령 구조는 다음과 같습니다.

i

<id>

s

<code val>

l

<length of parameter>

c

< parameter>

  • 는 10진수 명령 ID이며 최대 10자리일 수 있습니다.
  • 은 3자리 명령 코드입니다.
  • 는 파라미터 길이로 최대 6자리일 수 있습니다.
  • 는 배열에서 'c' 문자 뒤에 오며 매개변수로 지정된 길이입니다.

예를 들어 'hellow world'를 출력하는 'i123456789s220l26ccmd.exe' 명령을 내릴 수 있습니다. 명령이 성공적으로 구문 분석되면 명령 코드가 쿼리 되고 반환됩니다. QUIETCANARY는 C2의 단일 응답에서 여러 명령을 구문 분석할 수 있습니다. 구문 분석에 성공하면 QUIETCANARY는 이를 명령 대기열에 추가합니다. QUIETCANARY는 C2에서 다음 명령 코드를 처리할 수 있습니다.

Command codes

명령 코드

명령 이름

설명

0

ClearCommand

현재 명령 스레드를 중단하고 새 스레드 시작

220

ExeCommand

인수를 사용해 명령 실행, 매개변수가 " 문자로 시작하는지 확인합니다. 그렇다면 "\" 문자로 시작하고 두 번째 " 문자에 도달할 때까지 매개변수의 다음 각 문자로 구성되는 새 문자열을 생성합니다. 매개변수가 " 문자로 시작하지 않으면 매개변수를 공백 문자와 하위 문자열로 분할합니다.

265

TimeoutCommand

C2 루프 실행 시간이 초과할 때까지 새 시간을 설정

420

UploadCommand

지정된 경로에 명령을 업로드, "|"로 구분된 매개변수와 하위 문자열로 구분됩니다. 첫 번째 하위 문자열은 명령을 업로드해야 하는 경로입니다. Base64에서 첫 번째 다음에 오는 각 하위 문자열을 변환한 다음 감염된 시스템의 지정된 경로에 씁니다.

479

DownloadCommand

파일 경로에서 모든 바이트를 읽고 Base64 인코딩으로 변환, 매개변수 내 함수에 전달된 파일이 존재하는지 확인합니다. 존재하는 ㄴ경우 지정된 파일 경로의 Base64 인코딩 앞에 "file:"을 추가합니다. 그렇지 않을 경우 "not found"를 반환합니다. 실행 결과는 메모리에 저장되고 나중에 C2로 전송됩니다.

666

KillCommand

지정된 지연 후 실행 종료, QUIETCANARY는 명령을 빠른 것과 긴 것으로 범주를 구분합니다. 빠른 명령은 시간 초과 명령 구조 외부에서 실행됩니다. 명령은 일단 수신되면 실행이 되며 실행 후 즉시 생성됩니다. QUIETCANARY는 ClearCommand, KillCommand를 빠른 명령으로 해석합니다.

QUIETCANARY 의 미사용 코드

맨디언트가 분석한 QUIETCANARY 샘플에는 ServerInfoExtractor라는 미사용 클래스가 있었습니다. 이 클래스에는 다음 레지스트리 키에서 일부 Base64 인코딩 값을 가져오는 함수가 포함되어 있습니다.

Key: HKCU\Software\Microsoft\Fax\Verification

키 내의 값이 'No'이면 함수는 결과 'No'를 반환합니다. 그렇지 않으면 Base64가 내용을 디코딩 하여 반환합니다. 이 레지스트리 값은 다른 버전의 QUIETCANARY에 일부 구성을 저장하는 데 사용될 수 있습니다. QUIETCANARY 샘플에는 이 구성 값을 설정하는 코드가 없으므로 다른 방법으로 설정한다고 가정할 수 있습니다.

QUIETCANARY 네트워크 통신

QUIETCANARY와 C2 간 모든 네트워크 통신은 RC4로 암호화된 다음 Base64로 인코딩됩니다. QUIETCANARY는 프록시를 인식하며 System.Net.HttpWebRequest 클래스를 사용해 피해자 컴퓨터에 지정된 기본 프록시를 가져옵니다. 또한, 맬웨어는 C2에 GET 요청을 보낼 때 사용할 임의의 PHP 세션 ID를 동적으로 생성하는데, 이 ID는 요청 헤더의 쿠키 필드에 추가됩니다.