SentinelOne Names LevelBlue Global Delivery Partner for Wayfinder Services. Learn More

BlackApex, SPY, and Counting: The Emerging Wave of Vibe-Coded Phishing Kits

Anyone who has signed in to a streaming app on a smart TV by typing a short code into a phone has used a device code flow. Microsoft supports the same mechanism for Microsoft 365 accounts, and attackers have turned it against the people it was designed to help. Through 2026, ready-made Phishing-as-a-Service (PhaaS) kits such as EvilTokens, Kali365, and Tycoon2FA have put the technique within reach of almost anyone willing to pay for it.

While following this activity, we came across a family of phishing kits that does not match any publicly documented kit, operating under panel names such as BlackApex, DarkApex, SPY, and XXX101. More than 70 instances share the same backend and admin panel, and we believe they point to a growing wave rather than isolated cases.

The attack logic is familiar, but the code is not. Across all of its lures, the source shows traits we associate with AI-generated code, whether from direct prompts to a language model or from a person working alongside an AI coding assistant. This post walks through the lures, sets out the evidence for that assessment, and looks at how weak operational security exposed the kit’s infrastructure and what it means for defenders.

 

One Engine, Many Disguises

The first sample we analyzed was an HTML page styled like SharePoint. It pretends to load a document, stepping through messages about document access, session authentication, and file metadata. When the fake loading finishes, embedded JavaScript forwards the browser to a Cloudflare Workers URL.

1-2
Figure 1. SharePoint-themed lure page and its embedded JavaScript.

Several of the phishing domains turned out to share one backend. They respond on identical URL paths and return JSON replies with the same structure.

2-2
Figure 2. Observed phishing kit HTTP traffic sequence.

The Turnstile check and loader stage add a multi-stage redirection pipeline that helps the kit evade email gateways and automated scanners. In random mode, each victim receives a unique URL, which makes URL-based blocking harder.

3-3
Figure 3. Network activity of the phishing kit.

The campaign deploys a portfolio of distinct lures, each tailored to a specific application service. The landing-path management functionality supports configurable URL paths and two routing modes:

  • Static: Directs all victims to the same configured URL (e.g., /documents/share/secure/).
  • Random: Assigns a different unique URL to each victim (e.g., /documents/share/secure/c/uuid-here/).

4-3
Figure 4. Hardcoded URL path used in phishing campaigns.

The management interface identifies paths by Path Name and Path Value. The active configuration is retrieved through GET /api/landing-paths/active, which returns the selected path, its active status, and the configured mode.

Behind this page sits a simple mechanism that we later found in every lure. The page asks the attacker’s backend for a device code, then checks in repeatedly to learn whether the victim has finished signing in.

5-2
Figure 5. The /start and /state endpoints shared by all lures, used to request a device code and poll its status.

On top of this shared engine sits a set of lures, each dressed as a different everyday business task. They look different on the surface but behave identically underneath. Two of them stand out.

6a
6b
Figure 6. SharePoint and Zoom lures.

The Zoom lure copies Microsoft’s “Permissions requested” screen, familiar from third-party app sign-ins, so that entering a device code looks like approving an ordinary app. It also personalizes itself, swapping in the victim’s company logo and name based on their email domain.

7-3
Figure 7. The updateBranding() function changes the logo and company name to match the victim’s email domain, taking the logo from a third-party favicon service.

8a
8b
8c
Figure 8. Adobe Acrobat Sign, Microsoft Excel, and OneDrive lures.

The OneDrive lure is the most carefully built of the set. It imitates a “Secure File Access” prompt that often serves as the first step of a two-stage operation, and it includes extensive error handling, steady polling logic, a full session ID system, and a fallback image if the logo cannot be fetched. That level of care matters for the AI-assistance assessment later in this post.

Dedicated to hunting and eradicating the world's most challenging threats.

SpiderLabs

The Hand-off: Where MFA Works Against the Victim

In every variant, the main button opens Microsoft’s real microsoft.com/devicelogin page in a popup rather than a copied site. The device code is placed on the victim’s clipboard just before the popup opens, so the victim only needs to paste it. Everything they see on the Microsoft page is genuine.

9-2
Figure 9. The “Continue” button handler. The device code is copied to the clipboard just before the popup opens.

Meanwhile, the attacker’s server polls every five seconds to see whether sign-in has completed. When it has, the victim is redirected to a real Microsoft Word page, so the session looks normal from both sides.

10-2
Figure 10. The polling loop. On success, the victim is sent to a real Microsoft Word page.

By then the attacker’s server has redeemed the code and holds a live access token and refresh token for the victim’s Microsoft 365 account. The victim completed MFA themselves, so the control meant to stop the attacker was satisfied by the wrong person.

The kit also captures a Primary Refresh Token (PRT), which is displayed in its administrative panel and used to access the victim’s mailbox. In Microsoft Entra ID, a PRT supports single sign-on across integrated applications, so its compromise can extend beyond a single session and give persistent access to the victim’s identity and resources.

11-3
Figure 11. Phishing kit admin panel displaying captured PRTs used to access victims’ mailboxes.

The impact is comparable to a Golden Ticket attack against an on-premises Active Directory environment.

 

Reaching the Victim Through Trusted Services

The campaign spreads through spearphishing. The two delivery chains we collected both begin with a business-themed email and both pass the victim through a trusted cloud service before the device code lure appears. This helps the message and its links get past reputation-based filtering.

In the first chain, the email arrives as a forwarded message from an external address, with a highlighted “Google Share Link” as the only call to action. The link leads to a page imitating a document-opening prompt that presents an access code.

8a
8b

Figure 12. Spearphishing email with a Google share link and fake "Opening in Word for desktop" page presenting an access code.

The second chain uses a PDF attachment. The PDF contains a little more than a sentence asking the reader to use a link to view an “encrypted document”, and a highlighted “GO TO MESSAGE >>>” link. The link opens a shared copy of a Microsoft Forms page on forms.cloud.microsoft, where the attacker has embedded a link. Selecting it triggers Microsoft’s own “Open link to an external site” warning, which reveals the real destination.

8a
8b
8c
13d
Figure 13. Spearphishing email with a PDF lure leading to a Microsoft Forms page, which links to the device code lure.

Both chains end at the same sign-in page: login.microsoftonline.com/common/oauth2/deviceauth. That page tells the user they are signing in to “Microsoft Authentication Broker” on another device in the United States. The wording is the giveaway, because the sign-in was started elsewhere by the attacker’s backend and the victim is only asked to approve it.

 

The AI Fingerprint

The attack logic is conventional, but the way the kit was built is not. Several traits in the code, taken together, point to the heavy use of AI assistance.

Style.Hand-written phishing kits tend to be terse and often have no comments at all. This one is suspiciously noisy with emoticons, verbose console logs and structured documentation comments, in lures, configuration files and API functions alike. It reads like a tutorial, with a “// Helper:” label above nearly every function, however simple.

14-3
Figure 14. AI-assisted code annotations and verbose console logs.

15-2
Figure 15. Code snippets showing detailed comments with AI-assisted development.

Defensive engineering. The scripts use an isPolling flag to prevent duplicate polling timers in the same tab, a retry counter with separate “retry” and “restart” paths, and a timer that refreshes the device code after 14 minutes, which is just before Microsoft’s own 15-minute expiry. The code also opens the sign-in window differently on mobile and desktop. Throwaway phishing infrastructure rarely gets this much polish.

16-2
Figure 16. Separate window-opening strategies for mobile and desktop, selected by user agent and viewport width.

Consistency across lures. In our view, this is the strongest signal. All five lures share the same backend contract, the same getSessionId() pattern and the same retry logic yet look entirely different on the surface. That is what one would expect if a single specification had been used to generate several skins for different services. People who adapt a kit by hand tend to leave traces, such as inconsistent naming and leftover dead code. Here all variants are clean, and none of the code is obfuscated.

17-1
Figure 17. The updateCompanyInfo() function from the OneDrive lure, which personalizes the page for each victim.

Weighing all the signals together, we assess with high confidence that the codebase was produced largely through AI-assisted development.

 

OPSEC Failure: Analysis of Phishing Kit Portals

The kit’s operators also left a trail of their own. The site’s robots.txt file lists /admin and /api paths along with an administrative HTML file. Although robots.txt is guidance for crawlers rather than access control, here it publicly pointed to the kit’s management portal.

18
Figure 18. Infrastructure discovery through robots.txt (Source: Shodan).

We pivoted through Censys using the SHA-256 body hash of that robots.txt content to find other servers serving the same file:

web.endpoints.http.body_hash_sha256 = "5ec645bf49961d0f1b14e5ddc354e44df42b75b4451c19c6362e6a1d829a917f" or host.services.endpoints.http.body_hash_sha256 = "5ec645bf49961d0f1b14e5ddc354e44df42b75b4451c19c6362e6a1d829a917f"

The search identified more than 70 URLs hosting the same admin panel and HTML lure, each forwarding visitors to a device code phishing domain. Most exposed services run on ports 5000 and 443, spread across multiple hosting providers, some associated with bulletproof hosting. The same IP addresses appear in the panel’s own settings as VPS addresses.

19-1
Figure 19. Administrative system settings showing command-and-control (C2) configuration.

20-1
Figure 20. Distribution of identified hosts by Autonomous System Number (ASN).

The panels share the same authentication logic, which gave us a second reliable pivot. Once inside the panels, we found that they identify themselves with distinct names, at least eight in total, including BlackApex, DarkApex, SPY, XXX101-TOKEN, OGPARKER1, W1-TOKEN, ALIBOBO-TOKEN, and @globaltoken1.

The code, endpoints, and interface are the same across all of them. We cannot say whether these names reflect separate operators, resellers or customers of a single kit, but the pattern is consistent with a shared product being rebranded and redeployed.

21-1
Figure 21. Phishing kit administrative panel interface.

The panels exhibit consistent authentication logic, providing a correlation point for identifying additional instances of the kit. This enabled further analysis of multiple administrative portals, revealing their internal interfaces, available management features, and exposed API endpoints. These similarities extend the code-level observations discussed in The AI Fingerprint section to the kit's administrative interface.

22-1
Figure 22. Inside of phishing kits’ panels.

Once inside the administrative interface, a further operational security weakness was identified: multiple API paths were reportedly accessible without authentication.

23
Figure 23. API endpoint response from the phishing kit’s administrative panel.

These endpoints expose functionality for dashboard statistics, configuration management, messaging integrations, template and domain management, anti-bot controls, landing-path configuration, access logging, session management, and other integrations that support the operation of the phishing campaign.

 

What This Means for Defenders

If AI-assisted kit development becomes more common, tracking named kit families will cover a shrinking share of what is out there. Independently generated, one-off kits are likely to multiply faster than they can be catalogued. What AI changes is how quickly the tooling can be built, not how the attack begins: every chain we observed still started with a spearphishing email, and as attackers adopt AI tools, they continue to depend on human weakness to set the attack in motion. Three practical points follow.

  • Static indicators age quickly. A new front end and fresh domains can be produced in minutes, so detection based on domains and page signatures will lag behind. Detection built on protocol behavior holds up better.
  • Identity logs are the best place to catch this. Review Microsoft Entra ID (formerly Azure AD) sign-in logs for unusual deviceCodeFlow events, especially from unmanaged devices, unexpected IP ranges, or unfamiliar user agents.
  • Restricting the flow is the most direct mitigation. Where practical, use Conditional Access to block device code authentication entirely. Where legitimate tools depend on it, limit it to compliant devices, named locations, or approved administrator groups.
  • Awareness remains a key control. No technical control fully replaces a user who pauses before acting. Train users to treat any unexpected request to enter an access or device code as suspicious, even when the sign-in page is genuine Microsoft, and to question documents that arrive through unfamiliar shared links or forms. Make it easy to report suspicious messages, since early reports can reveal a campaign before any sign-in is abused.

 

Conclusion

Device code phishing gets around MFA by having the victim complete it. AI assistance changes who can build the tooling and how fast: a convincing multi-brand phishing kit no longer takes much development skill or time. Defenders who watch how sign-ins happen, rather than how lures look, will be in a better position to spot the next one.

 

Indicators of Compromise

Note: The indicators listed below were collected during the investigation, including VPS IP addresses and associated landing-page domains observed in the phishing kit's administrative panel. IP addresses and domain names are presented as observed at the time of analysis; infrastructure ownership, hosting assignments, and domain resolution may change over time.

 

VPS IP

Landing Pages

Panel Name

95.133.228[.]253:5000

1mdrvpdf-rfqonlineinvite[.]com

@globaltoken1

95.133.231[.]24:5000

jeoandmass[.]com

@globaltoken1

95.133.230[.]128:5000

jeoangteam[.]com

@globaltoken1

95.133.228[.]162:5000

listingonreferral[.]com

@globaltoken1

95.133.229[.]220:443

reakonfilesharing[.]com

@globaltoken1

95.133.229[.]247:5000

scheduleprice[.]com

@globaltoken1

95.133.231[.]26:5000

vendorposter[.]com

@globaltoken1

95.133.228[.]139:5000

westernhud[.]com

@globaltoken1

95.133.228[.]241:5000

wrcribbs[.]com

@globaltoken1

94.103.188[.]232:443

login[.]mantanolo[.]online

403 Forbidden

47.237.131[.]61:443

ogin[.]murfin-drilling[.]com

403 Forbidden

172.86.113[.]213:5000

company-technicalrfqbooking[.]com

ALIBOBO-TOKEN

146.190.66[.]199:443

arcomplianceservices[.]cfd

BlackApex

64.224.17[.]40:5000

aviationcustom[.]top

BlackApex

104.223.79[.]210:5000

bloob-seattacfiile[.]info

BlackApex

40.160.141[.]14:5000

clouddecktech[.]online

BlackApex

140.150.232[.]52:5000

debittordis[.]top

BlackApex

104.194.155[.]42:5000

enduretech[.]sbs

BlackApex

64.224.17[.]244:5000

glabowlconstruction[.]work

BlackApex

146.19.49[.]245:5000

glouiside[.]pro

BlackApex

92.118.235[.]83:5000

microservices1[.]online

BlackApex

5.181.156[.]166:5000

miscrosoftonlinesecuredemandocument[.]com

BlackApex

91.235.234[.]221:5000

nricrostryfi[.]my

BlackApex

45.13.238[.]147:443

opttomie[.]com

BlackApex

5.83.138[.]204:443

pattwhitney[.]com

BlackApex

217.217.97[.]183:5000

rockleghindustries[.]com

BlackApex

149.28.221[.]141:5000

rvmlaws[.]com

BlackApex

87.251.79[.]252:443

securemsexcel[.]online

BlackApex

168.222.97[.]14:5000

selecteventsgroup[.]com

BlackApex

45.88.91[.]34:5000

shabenconstructions[.]com

BlackApex

40.160.143[.]25:5000

shubysf[.]live

BlackApex

159.65.76[.]137:5000

southvvesternpts[.]online

BlackApex

67.205.158[.]128:5000

viaquestincs[.]com

BlackApex

45.61.183[.]137:5000

waessote[.]com

BlackApex

201.79.49[.]120:5000

waystaffing[.]sbs

BlackApex

192.166.82[.]111:5000

login[.]championconstractors[.]com

DarkApex

47.236.86[.]160:5000

login[.]enchantingreality[.]com

DarkApex

85.120.216[.]225:5000

login[.]energiapd[.]online

DarkApex

178.83.121[.]58:5000

login[.]jyctruckings[.]com

DarkApex

47.237.131[.]61:5000

login[.]murfin-drilling[.]com

DarkApex

107.172.90[.]191:5000

login[.]video-call[.]cfd

DarkApex

74.0.32[.]5:5000

funitubes[.]com

OGPARKER1

185.56.45[.]250:5000

playersjjets[.]com

OGPARKER1

199.192.20[.]82:443

hsuonoormidimostrareguillarianmelengueleandoinfundieseis[.]fit

SPY

199.192.20[.]72:5000

ostiumbombicisappartamentocravatta[.]fit

SPY

37.10.71[.]120:5000

dvernoy-gigant[.]com

W1-TOKEN

37.10.71[.]147:443

aaqkadnmmwuxntg2l[.]apiaccoumtsvcdocushare[.]icu

XXX101-TOKEN

38.146.28[.]138:5000

acuvuemoist[.]my

XXX101-TOKEN

185.246.131[.]15:5000

consultantpafc[.]top

XXX101-TOKEN

45.61.134[.]94:5000

dglsolutions[.]co

XXX101-TOKEN

216.126.225[.]45:5000

docspecssharedfilcbcdfc0e[.]top

XXX101-TOKEN

45.59.126[.]32:5000

dokermainkel[.]info

XXX101-TOKEN

95.133.230[.]141:5000

dwwcuivvbvhofficial[.]icu

XXX101-TOKEN

144.172.98[.]174:443

file-shared[.]top

XXX101-TOKEN

45.61.183[.]132:5000

freshfarmfindsltd[.]info

XXX101-TOKEN

95.133.231[.]108:5000

gatheringsw[.]iotal-makngrovesmakiliyuhc[.]icu

XXX101-TOKEN

167.88.172[.]122:5000

growthingjustreiupi[.]info

XXX101-TOKEN

172.86.125[.]91:5000

harveyblindsdocxdrop[.]com

XXX101-TOKEN

95.133.231[.]90:5000

homecraftygen[.]icu

XXX101-TOKEN

64.44.157[.]97:5000

kolbhc[.]sbs

XXX101-TOKEN

45.61.157[.]154:443

pacificag0365[.]org

XXX101-TOKEN

45.61.170[.]139:443

securedocumentaccess[.]info

XXX101-TOKEN

45.61.178[.]231:5000

shared-b0fjhewe365filow[.]online

XXX101-TOKEN

45.61.148[.]52:5000

sharedhomedrlvepdfdocx[.]homes

XXX101-TOKEN

144.172.106[.]171:443

tenderdocuments[.]sbs

XXX101-TOKEN

95.133.230[.]85:5000

uixoxzxmisu[.]icu

XXX101-TOKEN

172.86.91[.]180:5000

undoc[.]sbs

XXX101-TOKEN

About LevelBlue

LevelBlue secures what's next with intelligence-led security delivering visibility and speed to stop threats faster. As the world’s largest and most analyst-recognized pure-play managed security services provider, our AI-powered managed services and cyber expertise across managed, advisory, and incident response services help clients operate with confidence. Learn more about us.

Discover how our specialists can tailor a security program to fit the needs of your organization.

Request a Demo