From Keyboard Smash to Device Control

A glowing server connects to digital warning icons and data windows, including a URL and API symbol. A colorful virtual Keyboard Smash effect animates the bottom, while Research Insights appears at the top left.

Dissecting hundreds of Domain Tech Support Scam Built on Laravel Forge, RMM, and more.

Our threat research team tracks dozens of active campaigns every week. We monitor phishing trends, credential harvesting operations, and abuse infrastructure patterns across hundreds of managed environments. Some of what we find follows familiar playbooks, but others are very malicious. But every once in a while, a single data point opens a thread that unravels something much bigger. This is one of those threads.

During a routine telemetry sweep across our managed fleet, one query caught our attention. A Windows domain controller at a specific customer site had resolved the domain name hssp://ikdnknskfjnsnflsjnfljsdls-uynmyovf.on-forge[.]com. A 36-character random subdomain, resolved by a domain controller.

What followed was a deep dive into a sprawling tech support scam operation that ran dozens of phishing domains, rotated vishing phone numbers, employed five URL evasion variants, and had a confirmed ScreenConnect compromise on a production domain controller. All of it is hosted on Laravel Forge for $12/month.

This is the full technical breakdown. All IOCs, domains, phone numbers, and attack infrastructure are published as found. Customer identifiers and device names have been anonymized.


The Initial Finding: A Suspicious DNS Resolution

We run continuous threat hunts across our SentinelOne Deep Visibility telemetry. One of our standing queries monitors endpoints that resolve subdomains on hosting platforms commonly abused for phishing. The query that triggered this investigation:

FieldValue
Timestamp2026-04-XXXXXX
Agent[REDACTED] (Windows Domain Controller)
Organization[REDACTED] (Customer XXX)
DNS Requestikdnknskfjnsnflsjnfljsdlsjd-uynmyovf.on-forge.com
Resolved IPs104.18.11.251, 104.18.10.251 (Cloudflare)

A domain controller resolving a random subdomain on a hosting platform. That alone warranted a deeper look. We had seen on-forge.com appear in other campaigns we track, but never from a DC.

What is ‘on-forge.com?’

Our first assumption was about C2. The subdomain pattern, 36 random characters, looked like DNS tunneling or C2 beaconing. But on-forge.com is actually a legitimate service domain owned by Laravel Forge, a popular PHP server management platform.

Every site created on Forge gets a free <name>.on-forge.com subdomain with automatic HTTPS via Cloudflare. The documentation confirms:

“Forge provides every site with a free on-forge.com domain. These vanity domains are automatically available as soon as a site is created and receive free HTTPS encryption.”

So the domain is legitimate infrastructure. But the subdomain, ikdnknskfjnsnflsjnfljsdlsjd-uynmyovf, is not a typical developer staging site. We had already been tracking abuse of Forge subdomains in our campaign database. Time to correlate.


Keyboard Mashing

We pulled every on-forge.com subdomain we could find across our threat feeds with our CTI platforms. We collected 45 unique malicious subdomains on different campaigns and ran character frequency analysis across all 845 alphabetic characters:

A heatmap of a keyboard shows key usage frequency: the home row is most used at 79.5%, especially the S, D, F, J, K, and L keys; top row 9.3%, bottom row 11.1%. Warmer colors indicate more use—perfect for analyzing Keyboard Smash or Device Control patterns.

79.5% of all characters are home row keys (expected random: 38%). The top 5 characters, D(122), J(110), K(106), A(79), F(72), are all home row keys. This is not a random string generator. This is a human resting their hands in a home position and smashing keys.

We have seen this pattern in other campaigns we track. Keyboard mashing is a reliable operator fingerprint. In this case, we classified three mashing styles, possibly indicating multiple operators or multiple keyboard sessions:

StylePrevalenceExample
Home Row Dominant (>65% home)~80%gbukukkaksdjfkasj32axxxxxx
Top Row Dominant (>40% top)~10%gityuiuyt66xxxxxxx
Bottom Row Dominant (>40% bottom)~5%nbvcxcghjmmnxxxxxxx

The forensic profile, a single right-handed QWERTY keyboard operator, deploying sites at high velocity without caring about URL aesthetics. This matches operator behavior we have observed in several other tech support scam campaigns across our tracking portfolio.


Pulling the Thread with Malicious Subdomains

We correlated our findings with our internal threat intelligence, open-source feeds, and historical campaign data. The picture expanded dramatically.

Still have questions before choosing a plan?
Talk to a real human. No forms. No waiting. No Slack account needed.

No Slack account needed.

What Our Research Revealed

By sweeping DNS records, scanning live pages, and cross referencing historical phishing data in our tracking databases, we identified unique malicious on-forge.com subdomains across a 30 days campaign window. At least 15 pages were titled “Microsoft Security”, all serving identical scam content from the same template.

The real discovery was the five distinct URL pattern variants, each using a different parameter name for the phone number to evade detection:

VariantPhone ParamPathEvasion Technique
Aph0ne=/index.htmlLeet zero in “ph0ne”
BAnph=/w2i4n234rjnkeferf/index.htmlObfuscated “phone”
Cbcda=/whelpxxx/index.htmlAlphabetic substitution
DKuph=/win01help01/index.htmlAnother obfuscation
EAnph=/Wi0nHelpSh0errc0de030/index.htmlLeet encoded path
A table showing five scam variants using different phone parameters, paths, and evasion techniques to bypass detection. Each row covers a letter, phone param, path, Device Control methods, or Keyboard Smash as an evasion technique.

Each variant uses a different URL structure to defeat pattern matching blocklists. If you block ph0ne=, the attacker switches to Anph=. Block that, they rotate to bcda=. Five variants means five detection rules needed. This level of evasion rotation is something we have been seeing more frequently across the campaigns we track in 2026.


Inside the Scam Page with the Trap Mechanisms

We captured a few live pages, like the hxxp://gbukukkaksdjfkasj32amsfn004.on-forge[.]com, downloading all 15 files (1.1 MB total) before it could be taken down. Our research team analyzed every file, every line of code, and every resource request. Here is what we found inside.

Infographic showing a 5-layer “scam page anatomy” stack, listing browser trap mechanisms like fullscreen, keyboard smash prevention, and device control, and explaining each layer’s role—from background image to modal overlay and phishing alert.

The Bait: Explicit Content

The page loads bg.png (530 KB), a screenshot of an adult website thumbnail grid. This is the first thing the victim sees. The purpose is pure social engineering because the victim believes their computer has been infected with malware that is displaying pornography.

The Trap: Fake Microsoft Alert

Overlaid on the explicit content is a fake “Do you want to close this site?” dialog. Both the No and Yes buttons trigger the real trap:

A screenshot of a code editor displaying JavaScript code that manipulates browser fullscreen mode, demonstrates device control, locks keyboard keys to prevent keyboard smash, and includes comments explaining each section.

Plus six more traps in the CSS and HTML:

#TrapEffect
1Fullscreen hijackBrowser goes fullscreen, no URL bar, no tabs, no close button
2Keyboard Lock APIEscape key captured, cannot exit fullscreen
3Key preventionALL keyboard shortcuts blocked (Ctrl+W, Alt+F4, etc.)
4Dual audio loopbeep1.mp3 alarm + alert-en.wav voice loop simultaneously
5Hidden cursorcursor: none !important, mouse pointer invisible
6beforeunloadBrowser “Leave page?” confirmation if navigation attempted
7Pulsing animationBlue warning box scales 110% every 4 seconds, demands attention
8Explicit backgroundPornographic content creates shame and panic
9Tawk.to live chatReal time scammer communication channel

Nine traps fire simultaneously. The victim is locked in a fullscreen fake Microsoft Security alert with alarms blaring, no keyboard shortcuts working, no visible mouse cursor, and a phone number displayed in three locations. Across all the campaigns we track, this is one of the most aggressive browser-lock implementations we have documented.

Endpoint Angle

A computer screen displays fake security alert pop-ups, mimicking Microsoft branding, and claiming device control is blocked due to spyware. The user is urged to call a toll-free number for Microsoft support.
A Windows File Explorer window displays the contents of the ms folder, featuring images, CSS, JavaScript, and HTML files. Details like Name, Date Modified, Type, and Size are shown—perfect for organized device control.

The Phone: Dynamic Injection

The phone number is never hardcoded in the deployed template. Instead, index.html contains a TreeWalker function that scans every text node in the DOM and replaces a default number (0800-088-4932) with whatever value is in the ph0ne URL parameter:

Screenshot of JavaScript code defining a function called replacePhoneNumbers that uses Device Control to search for 0800-088-4932 in the document text and replace it with a URL parameter named phone.

One template with unlimited phone numbers. Each phishing email gets a unique URL with a different number and a unique tracking ID. This is operationally elegant: the attacker deploys the template once and generates unlimited campaign URLs without touching the server.


Vishing Phone Numbers

This operation rotates 23 unique vishing numbers across UK freephone (0808/0800) and US toll free (833/844/855/866/877/888) prefixes. The numbers are never hardcoded in the scam page. Instead, they are injected dynamically via URL parameters (ph0ne=, Anph=, bcda=, Kuph=), allowing a single deployed template to serve unlimited numbers.

The largest cluster, 833-926-XXXX (7 numbers), was purchased as a block from one VoIP provider and serves as the primary US call center line. UK numbers use the 0808 prefix, which is free to call from all mobiles and landlines, removing the financial barrier for victims. The attacker also deploys an (0101) obfuscation format that regroups US numbers with an international prefix to defeat phone regex detection. Two geographic numbers (917 NYC, 574 Indiana) break the toll-free pattern, suggesting VoIP assigned local presence targeting. The total phone infrastructure cost is approximately $23 to $115 per month.

A pie chart displays UK Freephone (0808/0800) at 27%, Obfuscated (0101 prefix) at 32%, and US Toll Free (833/844/855/866/877/888) at 41%, highlighting device control insights across these numbers.

The Bridge Between Web and RMM

Here is the critical finding that our research team wants to highlight: the scam page contains zero references to ScreenConnect. No download links, .exe or .msi URLs, and no hidden iframes. We verified this across all captured files, all HTTP requests observed during page load, and the full DOM capture.

The ScreenConnect installation happens entirely during the phone call. Two delivery methods:

Method A, Verbal: The scam operator dictates a URL: “Go to screenconnect.com and enter code XXXXXX.”

Method B, Tawk.to Chat: The scam page embeds a live chat widget (Tawk.to property 69cd421fb8aa781c3b30ed16). The operator sends the ScreenConnect installer link through the chat. This is why the chat widget is embedded in a page that has no legitimate support function.

By keeping the page free of RMM references, the scam evades automated scanners that look for remote access tool delivery. URL scanners see a phishing page with audio tricks, not a malware dropper. The actual compromise happens on a separate channel.

This is where the investigation shifted from campaign tracking to active incident response. A few days after the managed customer domain controller resolved the scam domain, we ran a targeted hunt on that specific endpoint:

Why Laravel Forge? The $12/Month Scam Platform

Laravel Forge is a legitimate server management tool. But its feature set is almost purpose-built for this attack model:

Forge FeatureScam Benefit
Custom subdomainsType any name, keyboard mash accepted, no validation
Instant availabilitySite live in 30 seconds, zero DNS setup
Free HTTPSGoogle Trust Services cert via Cloudflare, padlock icon for free
Cloudflare CDNReal IP hidden behind trusted CDN infrastructure
Unlimited sitesAll plans ($12/month Hobby) allow unlimited sites
Git deploymentSame scam template deployed to 96+ subdomains with one git push
REST APIScript mass site creation programmatically
Easy teardownDelete flagged site, create replacement in 60 seconds

The attacker cost: $12/month, plus a disposable email and a prepaid card. For that, they get unlimited scam pages with trusted HTTPS, global CDN, and 60-second rotation capability. We are seeing similar patterns of platform abuse across Vercel, Netlify, and Cloudflare Pages in other campaigns we track.

The 522 Graveyard

We found 27+ subdomains returning an HTTP 522 (Connection Timeout) response. These are “DNS ghosts”. Cloudflare wildcard DNS (*.on-forge.com) continues resolving all subdomains even after the Forge site is deleted. The TLS handshake completes, but the origin is gone.

A flowchart showing stages: CREATED > ACTIVE > TORN DOWN > GHOST (522). Below, it explains t=0, hours/days after campaign, Device Control applies until report or forever. DNS resolves, origin dead—no more keyboard smash attempts.

These ghosts are forensic evidence of previous campaign waves. Each 522 subdomain was once a live scam page. Our team uses these ghosts to reconstruct campaign timelines.

Sequential Numbering

The attacker appends numeric suffixes for campaign tracking:

Base (mashed)Variants SeenImplication
kasdjfkasjd8uawkjnmzmnvmdsfhj27jajak03, 52~49 variants between, most undiscovered
asdlifjdsakdsljdafskj32773akjkjfdkjfdjk006, 007Consecutive deployments
gbukukkaksdjfkasj32amsfn004At least 3 prior variants existed

The gap between jajak03 and jajak52 suggests at least 49 deployments from that single base string that we have not found. This kind of volume tracking helps us estimate the true scale of campaigns that are only partially visible through any single data source.


Key Findings

  • 833-926-XXXX is the core call center block. 7 numbers from one VoIP account, highest campaign frequency. This single block is the backbone of the US operation.
  • Phone numbers map to URL variants. ph0ne= carries UK+US (oldest variant, both markets). bcda= is US only. Anph= uses (0101) obfuscation exclusively. This indicates a single developer progressively building evasion layers, not multiple independent operators.
  • The (0101) obfuscation is sophisticated. It regroups 1-833-926-2512 as (0101)-83392-62512, merging the area code and exchange into a single block with an international prefix. Standard phone regex cannot match this format. It only appears with the Anph= variant, confirming coordinated design.
  • Two non toll free numbers (917 NYC, 574 Indiana) are outliers. Geographic numbers in a toll-free scam suggest VoIP number pool exhaustion or intentional local targeting.
  • The hardcoded 0800-088-4932 is the highest value IOC. It is baked into the HTML template as the default, meaning it works even without the URL parameter. This is the attacker’s persistent “home number.”
  • Total phone cost: ~$23 to $115/month. Combined with $12/month for Forge, the entire operation runs under $130/month while potentially generating thousands of dollars per victim through wire transfers and gift card payments.

IOC’s

  • Domain: on-forge.com and its random sub-domains.
  • Phone: Toll-free and Freephone numbers.
  • URL Convention: https?://[a-z0-9\-]{5,60}\.on-forge\.com/.+\?(ph0ne|Anph|bcda|Kuph)=

To the full IOC’s list – IOC Package: OnForge – Tech Support Scam Campaign


Conclusion

Our threat research team tracks dozens of campaigns at any given time. Most follow predictable patterns. This one stood out because it connected three things we were tracking separately: Laravel Forge infrastructure abuse, tech support scam pages with evolving URL evasion, and ScreenConnect deployment from nonstandard relays. The DNS hit from a managed customer domain controller was the thread that tied them together.

The campaign exploits a chain of legitimate services: Laravel Forge for hosting, Cloudflare for CDN and TLS, Tawk[.]to for live chat, and ScreenConnect for remote access. Each is used within its terms of service, but chained together for fraud.

The attacker’s operational cost is minimal, with $12/month for unlimited scam pages with trusted HTTPS and global CDN. The victim cost is everything: banking credentials, identity, and, in the case we investigated, potentially an entire Active Directory domain.

The strongest defense against this attack chain is not to block individual domains, because the attacker generates new ones every 60 seconds. It is detecting the behavioral pattern: an endpoint resolving a random subdomain on a hosting platform, followed by the installation of an RMM tool from a nonstandard relay. That is the signal in the noise. That is what our team hunts for every day.

Categories:

Subscribe to
Our Newsletter.

Abstract image of two overlapping shield shapes, one dark blue and one green, with a soft glowing effect on a light background—perfect for enhancing your single post template with a modern, secure aesthetic.
Abstract image with a large dark blue, semi-circular shape overlapping a bright green, glowing circular shape on a light gray background. Perfect for enhancing your single post template, the green circle appears partially blurred and luminous.

Keep your clients secure.

A stylized, dark blue shield icon with a green gradient glow on the right side, set against a light gray background—ideal for enhancing your single post template design.
A person in a futuristic chair sits at a high-tech control panel, looking out at a starry space scene with planets and mountains. The dashboard glows with colorful buttons and screens, like the perfect single post template for exploring new worlds.

Guardz, Your Cybersecurity
Co-Pilot for MSPs

Demonstrate the value you bring to the table as an MSP and gain visibility into your clients’ external postures.

Holistic Protection.
Hassle-Free.
Cost-Effective.
Slack
Slack
Chat with us No Slack account needed.