Hollowgraph Backdoor Turns Microsoft 365 Calendars into a C2 Channel

benrothke1 pts0 comments

HOLLOWGRAPH Backdoor Turns Microsoft 365 Calendars Into a C2 Channel

HOLLOWGRAPH Backdoor Turns Microsoft 365 Calendars Into a C2 Channel

Umut Bayram

| 8 MIN READ

| July 29, 2026

Summarize with:

ChatGPT

perplexity

Google AI

Key Takeaways

HOLLOWGRAPH is a Windows espionage backdoor delivered as a .NET NativeAOT DLL masquerading as a Brotli library.

It uses compromised Microsoft 365 calendar events as a two-way dead drop for tasking and exfiltration.

Hybrid RSA-OAEP and AES-256-GCM encryption protects Graph payloads, with separate RSA key pairs for each direction.

DNS tunneling over IPv6 AAAA records refreshes Entra ID credentials and preserves mailbox access after secret rotation.

Picus Platform lets teams simulate HOLLOWGRAPH attacks and validate security controls against the malware.

HOLLOWGRAPH is a Windows espionage backdoor, delivered as a .NET NativeAOT-compiled DLL , that was first observed in early June 2026 [1].

Its defining trait is that it never talks to an attacker-owned server for command or payload traffic. Instead, it abuses the Microsoft Graph API against a compromised Microsoft 365 mailbox and treats that mailbox's calendar as a two-way dead drop.

Operator tasking arrives as calendar events, stolen files leave as encrypted event attachments, and every event is stamped with a far-future date so it stays out of the mailbox owner's view.

In this analysis, we break down what HOLLOWGRAPH is and walk through how it operates at each stage of its execution flow. In the end, we will show how Picus Platform helps you validate your security controls against this threat.

HOLLOWGRAPH at a Glance

Attribute

Detail

Malware type

Backdoor and data-exfiltration implant (espionage)

First seen

June 2026

Target platform

Windows

File format

.NET NativeAOT-compiled DLL , masquerading as a Brotli library

Commands

get (retrieve tasking), send (exfiltrate files)

Primary C2 channel

Microsoft Graph API against a compromised Microsoft 365 mailbox calendar (dead drop)

Secondary channel

DNS tunneling over IPv6 AAAA records for credential and config refresh

Encryption

Hybrid RSA-OAEP 2048-bit plus AES-256-GCM , separate RSA key pairs per direction

What Is HOLLOWGRAPH Malware?

HOLLOWGRAPH is a Windows backdoor and data-exfiltration implant. Technically, it is a .NET assembly compiled with NativeAOT and shipped as a DLL , and it is loaded on the victim by a separate framework component that acts as the orchestrator.

On disk, the DLL masquerades as a Brotli compression library so it blends in with legitimate dependencies.

The implant is deliberately minimal. It exposes only two commands, get and send , and routes both through Microsoft's own cloud rather than through dedicated attacker infrastructure. This design lets its malicious activity ride inside ordinary enterprise Microsoft 365 traffic.

At its core, HOLLOWGRAPH does three things [1]:

Receives tasking through a dead drop. The get command reads operator commands hidden inside calendar events on a compromised Microsoft 365 mailbox.

Exfiltrates files through the same dead drop. The send command encrypts a target file and uploads it as one or more attachments on a newly created calendar event.

Keeps its cloud access alive. A DNS tunneling channel over the attacker domain cloudlanecdn[.]com pulls down fresh Microsoft Entra ID (Azure AD) credentials and rewrites them into a local configuration file, so that expired or defender-rotated secrets do not sever its access to the mailbox.

How Does HOLLOWGRAPH Malware Work?

HOLLOWGRAPH operates through three core mechanisms: a Graph API dead drop, hybrid encryption, and DNS-based credential refresh.

We will detail these mechanisms in the sections below.

Local Configuration

The binary carries a hardcoded configuration blob. On execution, it writes that configuration to disk as logAzure.txt , a filename chosen to pass as a normal log artifact. The DNS tunneling channel later overwrites individual fields in this same file as credentials rotate.

The configuration holds everything the implant needs to reach its Graph dead drop:

Entra ID Tenant ID : Azure AD tenant of the compromised mailbox.

Entra ID Client (Application) ID : OAuth2 application identity used for authentication.

Entra ID Client Secret : Secret paired with the client ID for client-credentials auth.

Target mailbox : Compromised Microsoft 365 mailbox used as the dead drop.

C2 DNS domain : cloudlanecdn[.]com , used for the DNS credential-refresh channel.

RSA public key (2048-bit) : wraps the per-file AES-256 key used to encrypt exfiltrated data before upload (outbound direction).

RSA private key (2048-bit) : unwraps the AES-256 key needed to decrypt operator tasking pulled from the calendar (inbound direction).

Hybrid Cryptography With Directional Key Separation

HOLLOWGRAPH protects all Graph payloads with a hybrid scheme.

RSA-OAEP (SHA-256) wraps a freshly generated AES-256 key , and the payload itself is sealed...

hollowgraph microsoft mailbox channel dead drop

Related Articles