보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

침투 테스팅 도구 Cobalt Strike Part.2 실전편

2022.07.06

498






01. 침투 테스팅 도구 Cobalt Strike Part.1 기본편 Summary

월간정보보호동향 5월호에서는 ‘침투 테스팅 도구 Cobalt Strike Part.1 기본편’을 통해 Cobalt Strike에서 사용되는 Beacon의 방식과 주요기능, 그리고 주요 기능에 따른 공격기법과 적용기능을 매핑하는 방법들을 소개하였다.
APT 공격 및 침해사고 상황에서 Cobalt Strike가 활용되는 사례들을 분석하기 위해 앞선 기본편의 내용들을 간략하게 정리하면 다음과 같다. 확인된 기능으로는 스피어 피싱, 네트워크 탐지 우회를 위한 도메인 위장, Beacon을 이용한 C2와의 통신, 권한 상승을 통한 SYSTEM 권한 확보 및 계정 정보 탈취, 측면 이동, 지속성 작업 등 Beacon으로 활용 등 기능은 무궁무진하며 사용자 정의 스크립트 추가를 통해 공격자가 원하는 기능, 취약점을 손쉽게 추가하는 것이 가능하다. 사용 가능한 기능이 무수히 존재하는 만큼 공격자가 해당 기능들을 악용하여 자신들이 행하는 공격에 추가하는 경우가 다수 존재하고 있다.

현재 Cobalt Strike는 랜섬웨어 유포를 포함, 추가 PC감염을 목적으로 정상적인 프로그램으로 위장한 다방면의 공격에서 공격 경로 확보를 위해 주로 사용되고 있다. Part.2에서는 Beacon이 포함되었거나 C2에서 Beacon 데이터를 내려 받는 시도를 하는 악성코드를 수집하여 파일 데이터 내부에 삽입되어 있는 Beacon 상세 분석을 통해 Cobalt Strike가 어떻게 악용되고 있는가에 대해 알아보고자 한다.


[그림 1] Cobalt Strike 동작 구성도


목록

기능

Client

Teamserver에 접속하여 명령을 내리는 주체

Teamserver

Listener가 설치된 서버
Beacon 관리
Malleable C2 Profile을 이용한 Beacon 커스터마이징
Webserver 내장

Listener

Beacon과 연결되며 C2서버 역할을 수행하는 모듈

Beacon

공격 기능을 제공하는 Cobalt StrikePayload (Agent)
Teamserver에 설치된 Listener 와 통신 및 명령 수행

[표 1] Cobalt Strike 동작에 사용되는 기능


02. Beacon 상세 분석

Cobalt Strike에서 사용되는 Beacon의 경우 Part.1에서 설명한 것과 같이 ‘Malleable C2 profile’을 이용하여 네트워크 통신 및 공격실행에 필요한 설정들을 공격자인 사용자의 목적에 따라 설정이 가능하다. Beacon의 구동방식은 외부 C2 또는 공격자의 Teamserver에서 Beacon 데이터를 전달받아 사용하는 Stager 방식과 공격에 필요한 설정내용을 Beacon 실행파일 내부에 포함하고 있는 Stageless방식으로 분류할 수 있다.

Stageless 방식으로 실행되는 경우 Beacon 실행파일의 .data영역에 Beacon의 설정값이 포함되어 있으며, 4byte 키로 XOR 암호화된 형태로 저장되어 있다. .data영역에 존재하는 데이터를 복호화 하기 위해서는 GitHub등 오픈소스 레파지토리에 공개되어 있는 복호화 도구를 사용하여 Beacon의 설정값을 확인할 수 있다. 해당 호에서는 .data영역에 존재하는 데이터 복호화 도구로 미국 정보보안전문업체인 Sentinel-One에서 배포한 ‘CobaltStrikeParser’를 이용하여 [표 2]의 Beacon 샘플을 분석하여 실제 공격환경에서 Beacon을 어떤식으로 활용하는지 상세하게 분석해보고자 한다.

파일명

MD5

beacon.exe

571b8c951febb5c24b09e1bc944cdf5f


[표 2] beacon.exe 파일 정보


CobaltStrikeParser 실행 결과 최초로 확인되는 데이터는 Beacon의 통신방식, C2 서버 주소 및 PublicKey_MD5 값 등 통신에 필요한 값을 포함하고 있다. BeaconType은 Beacon의 통신 프로토콜을 정의하며 DNS, HTTP, HTTPS 중 1개를 기본으로 사용한다. DNS의 경우 HTTP 통신을 혼합하여 사용하는 하이브리드 모드를 지원하여 DNS로 통신이 불가능한 경우 HTTP 통신을 지원한다.

여기서 주목해야 하는 변수는 PublicKey_MD5로 Cobalt Strike의 Teamserver를 최초 실행 시 통신에 관련된 공개키(Public key)를 가지고 실행하며 Beacon의 공개키 해시와 Teamserver의 공개키 해시를 비교하여 일치하는 경우 통신을 시작하므로 만약 다수의 Beacon 샘플을 분석하는 경우 PublicKey_MD5 항목의 해시 값을 비교하여 동일한 공격자가 유포 중인 샘플로 유추 가능하다.


[그림 2] CobaltStrikeParser 동작 결과


Malleable C2 profile에서는 통신에 사용되는 메타데이터 설정이 가능하며, HTTP의 메소드(GET, POST)유형에 따라 Cookie, SessionID, 통신경로 등 정상통신으로 위장하기 위한 다수의 기능들이 포함되고 있다.


[그림 3] CobaltStrikeParser 동작 결과 중 Metadata 파트


그림 4]에서 주목할 변수는 Spawnto_x86, Spawnto_x64으로 추후 Beacon이 실행되는 운영체제의 비트에 따라 Injection 진행 대상을 미리 지정한 변수다. 샘플의 경우 실행 이후 권한 상승 작업등의 이유로 Injection이 필요한 경우 그룹 정책 설정을 업데이트에 사용되는 gpupdate.exe에 Injection 하는 과정을 거치게 된다. CryptoScheme는 데이터 전송 시 AES 암호화 사용 여부를 확인 가능하며 HttpPostChunk는 전송하는 데이터를 바이트 단위로 나눠서 보내는지 여부를 확인 가능하다.


[그림 4] CobaltStrikeParser 동작 결과 중 Spawn 파트


Reflective DLL Injection 기법을 통해 Injection 작업 시 사용될 메모리 최소 할당크기, RtlUserThreadStart를 통한 Thread 초기화 이후 SetThreadContext를 이용한 Injection 대상 코드섹션 지정, LoadLibraryA 함수 주소를 구한 이후 RtlCreateUserThread를 이용하여 대상 프로세스에 Injection된 코드가 실행되게 된다.


[그림 5] CobaltStrikeParser 동작 결과 중 Injection 관련 파트


03. Cobalt Strike를 이용한 공격사례 분석

Cobalt Strike를 이용하여 공격하는 사례는 매우 다양한데 2021년부터 현재까지 발생된 공격 유형 중 자주 발생되는 유형과 새롭게 발생된 유형을 포함하여 총 7가지 행위로 정리하였다. [표 3]은 7가지 대표적 유형을 정리한 내용으로 공격에 많이 사용되는 피싱, 트로이목마, 랜섬웨어부터 가짜(fake) 프로그램을 이용한 위장, 백도어 설치, 취약점 악용 등 다양한 방식을 사용한다. 최근에 발생한 Python 패키지 Repository에 업로드된 pymafka의 경우 사용자가 많은 Repository에 고의적으로 유사한 이름의 패키지를 업로드하면서 유포시키려는 사례까지 발생하고 있다.

이번 Part.2의 공격 사례 분석에서는 [표 3]에서 확인되는 7개의 행위 중 확보 가능한 샘플을 대상으로 공격에 사용된 포인트와 Beacon 설정값을 통해 공격자들의 공격 패턴에 대해 알아보려 한다.

NO

행위

 공격그룹

공격사례

1

피싱

스피어피싱

UAC-0098

우크라이나 정부 대상으로 한 스피어피싱 메일에

Cobalt Strike Beacon을 첨부하여 대량 유포 

공격주체 미확인

COVID-19 테마로 한 스피어피싱 메일에

Cobalt Strike Beacon을 첨부하여 대량 유포 

 Mustang Panda, UNC1151, SCARAB

러시아 반체제 인사 대상 스피어피싱 메일에

Cobalt Strike Beacon을 첨부하여 대량 유포 

2

트로이목마

Emotet, Zloader, Qakbot, IcedID, FormBook

트로이목마, Cobalt Strike Beacon이용한

랜섬웨어 감염 시도

3

랜섬웨어

Conti, Ryuk, Revil

Quantum, Hive

4

Python 패키지 Repository 업로드

공격주체 미확인

PypiPyKafka와 유사한 이름인

pymafka 패키지 내 Cobalt Strike Beacon

내려받는 파이썬 코드를 포함시켜 업로드

5

악성 프로그램

(Fake Program)

UAC-0056

가짜 번역 프로그램, 가짜 백신 업데이트 파일

Cobalt Strike Beacon을 포함하여 대량 유포

공격주체 미확인

CVE-2022-26809, CVE-2022-24500 취약점 검증 도구 내 Powershell 코드를 추가하여
Cobalt Strike Beacon 다운로드 시도

6

백도어 설치

A41APT

Ecipekac 악성코드를 이용한 공격 최종 단계에

QuasarRAT 또는 Cobalt Strike Beacon 설치

7

취약점 악용

DEV-0401

Log4Shell 취약점(CVE-2021-44228,

CVE-2021-45046)을 악용하여 VMware Horizon 장비에 Cobalt Strike Beacon 설치 시도 

DEV-0413, DEV-0193, DEV-0365

 MS OFFICE 취약점(CVE-2021-40444)

악용하여 Cobalt Strike Beacon 설치 시도


[표 3] Cobalt Strike Beacon을 포함시켜 공격에 사용된 공격 사례


1) Cobalt Strike를 이용한 Conti Ransomware 감염사례

2021년 12월 금융 정보 탈취에 사용되는 트로이목마인 IcedID DLL을 첨부파일에 포함시켜 메일을 전송하는 “Stolen Image Evidence” 캠페인 내용의 일부에서 Conti Ransomware가 포함되어 유포된 사례가 발견되었다. IcedID DLL 동작 이후 Cobalt Strike를 이용한 PC 권한 상승, Process Injection 등 거점 확보 및 Conti Ransomware를 다수의 PC에 실행하려는 목적으로 사용된 것으로 확인된다. 실제 공격에 사용된 파일 중 Stageless로 동작한 Beacon 샘플을 확보하여 Beacon에서 사용된 기법에 대해서 알아보려 한다.

파일명

MD5

Faicuy4.exe

fe4fb0b3ca2cb379d74cd239e71af44f


[표 4] Faicuy4.exe 파일 정보


Conti Ransomware 감염에 사용된 공격 구성도는 [그림 6]과 같다.


[그림 6] 스피어피싱, 트로이목마, 랜섬웨어 혼합 공격 구성도


Cobalt Strike Beacon 실행 이전의 행위는 IcedID DLL이 최초 실행된 이후 약 1시간 대기하면서 C2와 통신, 자기 자신을 작업 스케줄러에 등록, 시스템 정보 수집 등 정보 탈취성 행위를 보인다. 이후, 공격자가 C2에서 전달받아 설치된 원격 모니터링 및 관리 프로그램인 ‘Atera’를 이용하여 감염된 PC에 접근하여 Cobalt Strike Beacon을 내려받아 실행하게 된다.

Beacon이 포함된 EXE 파일의 경우 64비트 MFC 파일로 확인된다. EXE 상태에서 Beacon Parser를 사용할 경우 내부 연산 방식이 달라 작동을 하지 않았기 때문에 디버거에서 실제 메모리에 적재된 Beacon 데이터를 추출하여 확인하는 방법을 사용하였다.


[그림 7] Faicuy4.exe 파일 정보


추출된 Beacon 파일에서 설정값 확인 시 HTTP 80 포트로 통신 및 C2 주소 확인되며 Part.1에서 사용된 샘플과 유사하게 Beacon 통신을 위장하기 위해 jQuery 요청 및 특정 User-Agent를 이용한 통신 방식을 채택하고 있다.


[그림 8] Faicuy4.exe 파일에서 추출한 Beacon 데이터의 일부


통신 과정에서 Base64 및 XOR를 이용하여 통신 데이터를 보호하고 있으며 [그림 9]에서 사용된 User-Agent 이외에 Header, Metadata, SessionID까지 세부적으로 설정되어 있는 것으로 확인된다.


[그림 9] 네트워크 통신에 사용되는 Metadata 정보


Cobalt Strike 기능 중 Process Injection 기능이 필요한 경우 dllhost.exe를 이용하며 사용에 따른 API가 미리 선택되어 있는 것으로 확인된다. Beacon의 경우 explorer.exe에 Injection 하여 실행되며 DC(Domain Controller)정보 획득, 권한 상승 및 네트워크 내 다른 PC로의 Lateral Movement에 사용된 것으로 확인된다. 


[그림 10] Injection 작업에 사용되는 Beacon 데이터


2) PyPI Repository에 업로드 된 악성 패키지(Fake Program)

Python 패키지 인덱스인 PyPI 사이트에 pymafka 1.0이 업로드되어 다운로드된 사실이 2022년 5월 20일경 공급망 공격 보안 전문 업체인 Sonatype 블로그에 공개되었다. 공격자는 Kafka 클라이언트를 Python에서 사용할 때 사용되는 유명한 도구인 PyKafka를 노려 유사한 이름인 pymafka로 생성한 것으로 추측된다.

공격에서 사용된 공격 기법은 타이포스쿼팅 공격(Typo-squatting attack)이다. 타이포스쿼팅 공격은 사회공학적 기법의 일종으로, 비슷한 모양의 텍스트를 이용해 오타를 유발하여 공격하는 기법이다. 대표적인 공격사례로 2021년 'UA-Parser-JS' NPM 라이브러리 하이재킹으로 암호화폐 채굴 악성코드와 계정탈취 악성코드 삽입 시도가 발생한 이력이 있다. 현재 PyPI 사이트에서 pymafka 1.0는 삭제되었으나 공격에 사용된 샘플을 확보하여 실제 설치 이후 어떤 방식으로 Beacon이 설치되는지 알아보려 한다.

파일명

MD5

pymafka-1.0.tar

8f0cb7613421c4aa8523a190164a80a7

Win.exe

b81001487f3bfef91025c4c1b4961c12


[표 5] 분석에 사용된 파일 정보


타이포스쿼팅 공격을 이용한 공격 구성도는 [그림 11]과 같다.


[그림 11] 가짜(fake) 패키지를 이용한 공격 구성도


실제 다운로드 가능했던 pymafka 패키지 내 파일은 [그림 12]와 같으며 setup.py 실행 시 설치를 진행하게 된다.


[그림 12] 추가적으로 확인되는 Beacon 데이터


setup.py 실행 시 운영체제의 종류를 확인하며 Windows, MacOS(Linux/Unix는 제외)에 따라 서로 다른 파일을 내려받는 것으로 확인된다. Windows의 경우 특이하게 temp 폴더가 아닌 Public 폴더 하위에 iexplorer.exe로 저장 및 실행하게 된다.


[그림 13] setup.py 스크립트 내용


win.exe 파일 확보 후 확인 결과 64비트 실행 파일로 확인된다.


[그림 14] win.exe 파일 정보


현재 Beacon Parser로 확인 불가능하나 39.106.227[.]92 IP의 update.rss 요청 시도가 지속적으로 발생하고 있으며 동일한 User-Agent를 이용한 통신이 지속적으로 발생하고 있다. 또한, 메모리에서 추출한 파일의 경우 Stager 방식의 Beacon으로 최초 설정된 파일명 역시 beacon.dll로 확인된다.


[그림 15] Stager 방식의 Beacon 데이터 다운로드 시도



[그림 16] 메모리에서 추출한 파일 정보


3) PoC 테스트 파일로 위장한 공격사례

2022년 5월 20일 취약점 테스트에 사용되는 PoC 코드를 이용하여 Cobalt Strike Beacon을 유포하는 시도가 트위터(@haxor31337)를 통해 공유되었다. 


[그림 17] 정상 PoC 도구로 위장한 파일을 이용하여 Cobalt Strike Beacon 유포 시도를 공유하는 트윗


실제 유포에 사용되었던 페이지는(https://github.com/rkxxz/CVE-2022-26809) 삭제되어 확인 불가능하나 페이지 기록을 저장하는 WayBack Machine 사이트에서 확인 결과 CVE-2022-26809 취약점 관련한 PoC 테스트 파일을 업로드한 것으로 확인된다.


[그림 18] 페이지 저장 사이트를 이용하여 확인한 GitHub 페이지 화면


CVE-2022-26809는 Microsoft의 원격 프로시저 호출(RPC) 런타임 라이브러리의 취약점을 이용하여 RPC 서비스 권한으로 원격 코드 실행이 가능한 취약점인 것으로 확인된다.


[그림 19] CVE-2022-26809 취약점 정보 (출처: US NIST)


현재 확보 가능한 파일은 CVE-2022-26809.exe으로 [표 6]의 샘플을 이용하여 Cobalt Strike를 전파하는 방식에 대해서 확인해 보고자 한다.

파일명

MD5

CVE-2022-26809-main.zip

b4f43137b05f62f05b8a689858a9800d

CVE-2022-26809.exe

7e0c8be0d03c75bbdc6fd286a796434a


[표 6] 분석에 사용된 파일 정보


CVE-2022-26809 취약점 테스트 파일로 위장한 공격 구성도는 [그림 20]과 같다.


[그림 20] 가짜(fake) PoC 도구 업로드를 통한 공격 구성도


CVE-2022-26809.exe는 .NET 기반 파일로 확인되며 난독화되어 있는 것으로 확인된다.



[그림 21] CVE-2022-26809.exe 파일 정보

CVE-2022-26809.exe 최초 실행 시 취약점 테스트 중인 텍스트가 확인되며 Exploit Failed! 문자열과 함께 테스트가 실패한 내용으로 확인된다.


[그림 22] CVE-2022-26809.exe의 동작 화면


난독화 해제 후 확인 결과 실제 실행 화면과 동일한 텍스트가 출력되는 중간에 Powershell 코드가 실행되며 32비트 또는 64비트에 따라 다른 코드가 실행되는 것으로 확인된다.


[그림 23] CVE-2022-26809.exe 코드 난독화 해제 이후 실제 동작 코드의 일부


Powershell 코드 디코딩 결과 gzip으로 압축된 파일을 메모리에서 압축 해제 후 직접 실행 시도하려는 내용으로 확인된다.


[그림 24] Powershell 코드 실행 후 확인되는 gz 내부 데이터


Shellcode 실행 결과 Stager 방식의 Beacon을 사용하기 위한 요청 시도로 확인된다.


[그림 25] Shellcode 실행 결과 확인되는 C2 접근 시도 이력


4) CVE-2021-40444 취약점을 악용한 공격사례

Microsoft Office MSHTML의 원격 코드 실행 취약점 CVE-2021-40444가 최초 발표된 2021년 9월 8일 이전에 이미 취약점을 이용한 공격은 진행되고 있었다. 2021 년 8 월 21 일 Mandiant가 업로드한 내용 중 특정 MS Word 문서에 대한 정보를 제공하였으며 내부 절차를 통해 Microsoft에 전달되었다. 최초 발표일인 9월 8일 이후 취약점을 이용한 공격 시도가 급증하였다.
Microsoft 보안팀의 분석 결과 DEV-0413 그룹이 CVE-2021-40444 최초 발표 이후 가장 활발하게 사용하는 것으로 확인되며 개발자 모집, 소액 청구 관련 내용의 사회공학(social engineering) 방식의 피싱 메일을 주로 사용하였고 BazarLoader 및 Trickbot 페이로드 전달에도 관여한 것으로 확인된다.


[그림 26] CVE-2021-40444를 이용한 공격 추이 (출처: Microsoft Blog)


CVE-2021-40444 취약점을 악용한 공격 구성도는 [그림 27]와 같다.


[그림 27] CVE-2021-40444 취약점을 악용한 공격 구성도


Word 파일에 포함된 document.xml.rels에서 mhtml 요청 시도를 악용하여 공격자가 미리 설정한 C2로의 접근 시도가 확인된다.


[그림 28] Word 파일 내부에 포함된 mhtml 주소 및 실제 접근 결과


최종적으로 내려받는 파일은 differ.cab 파일이며 압축 해제 결과 research.inf 1종 확인되나 실제 inf 파일이 아닌 dll 파일로 확인된다.


[그림 29] differ.cab 내부 research.inf 파일 및 파일 정보


소켓 통신을 이용하여 sagoge.com/get_load 페이지를 대상으로 통신으로 시도하며 user-agent 값으로 bumblebee를 사용한다. 현재 C2(sagoge[.]com)로 연결 시도에 대한 응답값 확인이 불가능하며 정상 통신 가능 시 Windows Mail 클라이언트 실행 파일인 Wabmig.exe에 Code Injection를 진행하여 Stager 방식의 Beacon을 실행하게 된다.


[그림 30] C2 요청관련 코드 및 메모리 데이터에서 확인되는 Injection 대상 프로세스


동일한 취약점을 이용한 공격 시도에서 확보된 Shellcode 내용 확인 결과 rundll32.exe를 Injection 대상으로 하고 있으며 HTTPS 통신을 사용하는 것으로 확인된다. 


[그림 31] Shellcode에서 추출한 Beacon 데이터


정상 동작 여부와 관계없이 Powershell 명령어를 이용하여 research.inf 자기 자신을 삭제하는 명령을 수행한다.


[그림 32] research.inf 삭제를 위한 Powershell 코드


04. 마무리

Part.1에서는 침투 테스팅 도구인 Cobalt Strike의 전반적인 기능 및 사용할 수 있는 기술에 관해 서술하였으며 Part.2에서는 Cobalt Strike Beacon 설치를 위한 다양한 시도 중 일부를 분석하여 공격 방식에 관해 서술하였다.

공격자는 Beacon 유포를 위해 특정 취약점이나 공격 방식을 가리지 않으며 Beacon을 악성코드에 포함하거나 공격자가 설정한 C2에서 내려 받을 수 있는 방식을 통해 유포한다. 또한, 최근에 정상 파일을 위장한 악성코드 및 정상 패키지 이름과 유사한 이름으로 제작된 악성코드를 업로드하여 사용자의 입력 실수 등의 휴먼 에러(Human Error)로 인해 악성코드가 다운로드 및 실행된 사례가 발생하고 있어 사용자의 주의가 필요하다.

또한, Cobalt Strike Beacon이 통신하는 방식에서 jQuery 요청을 비롯한 정상 통신으로 위장하는 경우가 다수 확인됨에 따라 네트워크 통신 모니터링에 있어 [표 7]의 Snort 탐지 룰을 이용하여 Beacon 실행에 따른 통신 시도 여부를 파악할 수 있다.

순번

Code

내용

1

IGRSS.8.04254

alert tcp $EXTERNAL_NET $FILE_DATA_PORTS -> $HOME_NET any (msg:"IGRSS.8.04254 Hacking Tool, CobaltStrike, A Network Trojan was detected"; flow:to_client,establishedfile_datafast_pattern:only

2

IGRSS.8.04255

alert tcp $EXTERNAL_NET any -> $SMTP_SERVERS 25 (msg:"IGRSS.8.04255 Hacking Tool, CobaltStrike, A Network Trojan was detected"; flow:to_server,establishedfile_datafast_pattern:only

3

IGRSS.8.04312

alert udp $EXTERNAL_NET 53 -> $HOME_NET any (msg:"IGRSS.8.04312 CobaltStrike, A Network Trojan was detected"; flow:to_clientdsize:>282; byte_test:1,&,0x80,2; content:"|57 59 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49 37 51 5A 6A 41 58 50 30 41 30 41 6B 41 41|"; fast_pattern:only

4

IGRSS.8.05034

alert udp $HOME_NET any -> any 53 (msg:"IGRSS.8.05034 Malware,  Cobalt Strike, A Network Trojan was detected"; flow:to_servernocase


[표 7] Beacon 탐지를 위한 Snort Rule (출처 : 이글루코퍼레이션 CTI)


05. 참고자료

[1] Sentinel-One/CobaltStrikeParser
https://github.com/Sentinel-One/CobaltStrikeParser
[2] Stolen Images Campaign Ends in Conti Ransomware
https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/
[3] New 'pymafka' malicious package drops Cobalt Strike on macOS, Windows, Linux
https://blog.sonatype.com/new-pymafka-malicious-package-drops-cobalt-strike-on-macos-windows-linux
[4] Wayback Machine – GitHub rkxxz/CVE-2022-26809
[5] Analyzing attacks that exploit the CVE-2021-40444 MSHTML vulnerability