GhostCode Phishing Kit Bypasses Microsoft 365 MFA to Hijack Accounts in 78 Seconds

Blog WriterCybersecurity News - Original News Source is cybersecuritynews.com

Spread the love

GhostCode is a newly identified phishing kit that turns a normal Microsoft 365 sign-in into an account takeover. It does not need to steal a password. Instead, it persuades people to approve a login that gives criminals access to their work account.

The campaign began with ordinary-looking messages submitted through business contact forms. Attackers posed as procurement staff, followed up with a request to sign a non-disclosure agreement, then sent a WeTransfer link holding a password-protected HTML attachment.

The file presented a document-sharing lure and directed the recipient to a Microsoft device-code sign-in. Analysts at eSentire identified the activity in late August and named the kit GhostCode. The name reflects its hidden code and the use of GHOSTnet-linked infrastructure during device enrolment.

eSentire said in a report shared with Cyber Security News (CSN) that the operation used a business-email-compromise style pretext to make the request appear routine.

The risk is immediate because the victim completes authentication, including multi-factor authentication, on a legitimate Microsoft page.

GhostCode then receives the resulting token, sends the victim to a decoy NDA, and begins operating before the victim has reason to suspect a problem. The case underlines why device code phishing campaigns are difficult to spot using familiar password-theft warning signs.

GhostCode attack chain (Source - eSentire)
GhostCode attack chain (Source – eSentire)

The campaign shows how trust in a familiar identity page, rather than a technical flaw, can become the attacker’s advantage. For cloud-dependent organisations, that distinction turns a routine approval request into a serious account-security event. It can unfold before investigators review the first alert.

GhostCode Phishing Kit Bypasses Microsoft 365 MFA

GhostCode abuses the OAuth device authorization process, which is intended for devices such as smart televisions that cannot easily display a full sign-in screen.

Its server requests a code using the Microsoft Authentication Broker application ID, inserts that code into a polished fake document portal, and asks the target to authenticate it. The user is effectively authorising the attacker’s device.

The attachment makes inspection harder. It is padded with junk data, breaks visible text with HTML comments, and keeps its redirect address encrypted until the correct password is supplied.

After the victim reaches the phishing server, a browser challenge and location checks filter automated scanners. This approach resembles techniques previously documented in the EvilTokens phishing service, but GhostCode combines them with targeted contact-form outreach.

Threat Actor message to sales platform (Source - eSentire)
Threat Actor message to sales platform (Source – eSentire)

Once the sign-in is approved, the kit uses residential proxy addresses selected to match the victim’s location. That makes the Microsoft prompt less alarming and can weaken location-based alerts.

In the observed intrusion, attackers made nine successful API calls, registered three devices in 78 seconds, and obtained a Primary Refresh Token in 32 seconds. That token can support sign-on across Microsoft 365 services without asking the user to authenticate again.

Containing a Fast-Moving Identity Attack

Speed matters because simply revoking a stolen token may not remove devices already registered in the tenant. The researchers found that enrolled devices remain until administrators explicitly disable or remove them.

Teams responding to suspicious device-code activity should invalidate tokens, reset affected credentials, review newly enrolled devices, and check mail and cloud-access logs for follow-on activity.

The recommended control is to block device-code authentication through Conditional Access for everyone who does not genuinely need it, while allowing tightly defined exceptions for approved service or provisioning workflows.

NDA Lure Pretext (Source - eSentire)
NDA Lure Pretext (Source – eSentire)

Organisations should also apply device-compliance controls where suitable. This reduces the number of employees who could be tricked by the same method used in passkey-themed phishing attacks.

Security teams should alert on successful device-code events followed by anomalous scripted requests or several device registrations from one non-interactive session. They should also hunt for device names matching a first-name, last-name, company-domain and hexadecimal suffix pattern.

User awareness remains important: an unexpected request to copy a code into a Microsoft page should be treated as suspicious, particularly as Microsoft 365 session theft campaigns continue to focus on tokens rather than passwords.

Indicators of Compromise (IoCs):-

Type Indicator Description
Domain bjssourcing[.]com Lookalike sender domain used in the procurement-officer pretext
Domain greenlightdlstribution[.]com Related impersonation domain registered during the campaign period
Email address jeremyarcher@voewo[.]com Disposable address associated with registration of a related lookalike domain
Domain voewo[.]com Domain tied to disposable registration personas
File name 3arhCt9c0p.html Password-protected HTML attachment used as the document-sharing lure
URL hxxps://chartered.flipbookonlinevault[.]com/scanna/200e61bfe54c92fb720c77c3a1661bc0/b5ea87c2ddac3aa141bc6794b8993d1e43bd064eaae591719612becea0d106d7 Decrypted relay URL used for tracking, filtering, and redirection
URL path /scanna/file001// Additional observed campaign path on the same relay infrastructure
Domain chartered.flipbookonlinevault[.]com Relay and bot-filtering infrastructure hosting the encrypted redirect destination
Domain account-access-rc3uenqi.elitechiropracticandrehab[.]com Device-code phishing server hosted under a likely compromised site
URL path /turnstile?return_url=%2F3OnOQubA2bS4o26p3MRXyYV3XuUZ6... Cloudflare Turnstile path used before serving the phishing portal
API path /api/harvester?action=geoip Backend request used to assess victim location and set proxy routing
API path /api/harvester?action=get_code Backend request used to obtain a device authorization code
API path /api/harvester?action=poll Backend request used to poll for completed device authentication
Application ID 29d9ed98-a469-4536-ade2-f981bc1d605e Microsoft Authentication Broker application ID abused in the device-code flow
User-Agent python-requests/2.34.2 Scripted request signature seen during token use and post-authentication activity
IP address 82.33.39[.]74 Residential proxy IP observed during token use
IP address 151.225.227[.]193 Residential proxy IP observed during token use
IP address 176.253.248[.]175 Residential proxy IP observed during token use
IP address 94.9.97[.]142 Residential proxy IP observed during token use
IP address 86.132.13[.]219 Residential proxy IP observed during token use
IP address 81.96.174[.]54 Residential proxy IP observed during token use
IP address 90.215.55[.]70 Residential proxy IP observed during token use
IP address 92.40.47[.]84 Residential proxy IP observed during token use
IP address 5.230.71[.]51 GHOSTnet-associated IP observed during final Intune enrolment
Device ID 4e537622-2514-48b8-84ed-0139549cfab0 First attacker-registered device
Device ID 6c290bcc-62d3-40bd-a774-816109af6729 Second attacker-registered device
Device ID 5e83a216-f67e-43b8-a129-f67666a001dd Third attacker-registered device, later enrolled in Intune

Note: IP addresses and domains are intentionally defanged (e.g., [.]) to prevent accidental resolution or hyperlinking. Re-fang only within controlled threat intelligence platforms such as MISP, VirusTotal, or your SIEM.

Cut every SOC alert investigation by 21 min. Power your SOC with instant IOC context for immediate response: Integrate TI Lookup in your SOC

The post GhostCode Phishing Kit Bypasses Microsoft 365 MFA to Hijack Accounts in 78 Seconds appeared first on Cyber Security News.