Make That Smart TV into a Computer


The media in this post is not displayed to visitors. To view it, please log in.

The smart TV is a fixture in most houses, variously an entertainment portal, corporate data gathering tool, or sometimes an outright spy. It’s a nice monitor with a computer built in, so can that computer be released to do something else? It’s a question [Xen’on] is answering, on an Android-based TV.

The guide is not too different from many others relating to Android phones, with a few quirks. An Android Debug Bridge (ADB) connection is established, root access is gained using Shizuku, and then it’s a case of installing a more conventional Linux front end with the Openbox window manager through Termux. There are some TV-specific things to do with handling power cycles, but the TV is now a usable Linux box.

It’s always good to see someone retrieve the Linux underneath a locked-down device, but the system spec tells the real story. By the looks of things this TV is a few years old as it had an Android version that’s a bit long in the tooth, and thus it also packs an aged version 4.x kernel. Couple that with a more seat-of-your-pants experience compared to a regular distro where many of the annoyances are taken care of, this isn’t an easy route to a trouble free desktop. Instead it has a lot of potential for making the TV what it was intend to be, an entertainment device. Merely one that gives much more software freedom.

Meanwhile, this isn’t the first Termux guide we’ve seen.


hackaday.com/2026/06/25/make-t…


Increasing Photon Upconversion Efficiency with Structural Exciton Localization


The media in this post is not displayed to visitors. To view it, please log in.

In structures like photovoltaic cells there is only a limited spectrum of wavelengths that can perform useful work, with the remaining wavelengths of electromagnetic radiation effectively wasted. If the energy of such wavelengths could be coaxed into this useful spectrum, this could then correspondingly boost the performance of the devices, but doing so is not straightforward. Going from lower-energy photons to higher-energy photons is very inefficient, with a recent study by [Thilini Ishwara] et al. demonstrating a liquid triplet medium that has a conversion efficiency of about 8.2%.

Generally the absorption and emission of electromagnetic radiation involves a shift to a lower energy state, the Stokes shift, but the inverse anti-Stokes shift – the goal of photon upconversion – is decidedly less common, even if it finds uses today in for example industrial pigments that can absorb in the near-infrared and re-emit in the visible spectrum. This is practical in luminescent displays and anti-counterfeiting measures, where details like conversion efficiency aren’t paramount.

Unlike the Stokes shift, the mechanisms that underlie the anti-Stokes shift either require cooperation from the material’s lattice, or – in the case of organic molecules – what is termed triplet-triplet annihilation (TTA), also known as photochemical upconversion (PUC). This involves an absorbing species, a sensitizer and an emitting species, allowing for the summing of multiple lower-energy photons into a higher-energy photon, with this 2023 review article by [Jiale Feng] et al. providing a good primer.

In the study by [Ishwara] et al. this triplet medium is 9,10-bis(n-octyl-diisopropylsilylethynyl)anthracene (NODIPS-An), affixed to a nanostructured alumina scaffold (see top image). After characterizing the assembled device and taking internal losses due to e.g. reabsorption into account, the final conversion efficiency of 8.2% was established.

Of course, TTA isn’t the only way to do PUC, with SOMET (singlet oxygen mediated energy transfer) being an alternative approach, with [Roslyn Forecast] et al. comparing the two in a 2023 article. As noted in its conclusion SOMET is currently most suited to PUC to the red and infrared regions of the spectrum. For now research continues with no clear path to commercialization visible yet.


hackaday.com/2026/06/25/increa…


Fixing a Warped Paperback Spine With Gentle Heating


The media in this post is not displayed to visitors. To view it, please log in.

Although paperbacks are a much-loved aspect of the literary world, they are not really intended to last the decades the way that hardcover books are. Beyond the typical ravaged covers, paperbacks also tend to suffer from a warped spine, where the formally flat spine gets a definite inwards curve due to the ravages of moisture, temperature, failing glue and the passing of time in general. If this bothers you, then [Book Care Studio] shows a simple technique using which these spines can be flattened again.

All that you need for this approach are two cutting boards and two clamps to provide some clamping force on the book, along with a heat gun and some patience.

The book is clamped between the two boards with the spine sticking out. By putting said spine flat on e.g. a table and pushing on the opposite side while alternatingly briefly releasing the clamps, the spine can be forced into a flatter state. Without forcing this and then flipping the paperback sandwich around to heat the spine with the heat gun, the glue of the binding in the spine can then be softened sufficiently that a few of these push-heat cycles should be enough to straighten the spine.

Other than rebinding the book as for example public libraries are wont to do with a hardcover conversion of flimsy paperbacks, this simple approach should clean up a ratty-looking paperback collection. While one can definitely argue that half the charm of old paperbacks are the wrinkles, curves and intense smell of acidifying paper, it’s always good to have options like this at one’s disposal.

youtube.com/embed/cwDkkQcX28I?…


hackaday.com/2026/06/25/fixing…


Cheap 80s Keyboard Gets Modern Brain Upgrade


The media in this post is not displayed to visitors. To view it, please log in.

The 1981 Casio VL-1 was a fine cheap keyboard. It had a robust build, though an admittedly limited sound palette. [Max Vega] had one of these charming instruments, and decided to use modern tech to rebrain it for the modern world.

The original electronics of the VL-1 were largely surplus to requirements for this build. The original interface and speaker were kept in service, while the rest of the monophonic sound synthesis hardware was removed. [Max Vega] enlisted an ESP32-C3 to run the show, turning the VL-1 into a ROMpler instead. If you’re unfamiliar with the term, it refers to a keyboard or other instrument that relies on hardcoded sample playback instead of raw synthesis. The ESP32 loads its samples from a microSD card, which provides an enormous amount of storage for different sound packs. Selecting different instruments is handled with a simple interface built around the original buttons and a OLED screen. Playing the instrument is still the same using the simple keyboard, though [Max] also implemented some extra fun modes that play chords at a single touch.

If you want a fun, versatile keyboard instrument that fits perfectly in a backpack, it’s hard to go wrong with a build like this. We’ve seen similar Casio keyboard hacks before, too. Video after the break.

youtube.com/embed/JbmBMPSxh24?…


hackaday.com/2026/06/25/cheap-…


CSS On The ESP32


The media in this post is not displayed to visitors. To view it, please log in.

There are lots of graphics libraries available for the ESP32, and lots of ways to program one to boot. Even still, most of us wouldn’t immediately think to CSS when it comes to embedded products — yet that’s now a thing on the Espressif platform, apparently.

The Gea stack allows one to compose CSS and TypeScript code that is then turned into generated C++ code that compiles to native firmware. The team behind Gea have demoed this ability by running a 3D cube animation on an ESP32 at up to 60 FPS. This isn’t some ugly, low-res wireframe demo, either. It’s a full-color animation running on a 410×502 AMOLED screen. It’s very fluid, and can even handle transparency on the cube faces (albeit with a performance penalty).

It’s worth noting that this isn’t a full browser engine. As you might expect, some concessions had to be made to get it running on the ESP32. Namely, it doesn’t handle “:hover” states because it’s designed for touchscreen use, fonts are rasterized, and the UI tree is limited to just 512 nodes. Regardless, it shows that using CSS and TypeScript to develop for the ESP32 is entirely possible without some crazy loss of performance. If you want to build easy interfaces on an ESP32 while leaning on web dev experience, this could be very useful indeed.

There are lots of fun ways to write code for the ESP32; you can even try MicroPython if you like.

youtube.com/embed/pC3kNSWaL18?…


hackaday.com/2026/06/25/css-on…


Increasing Local GPS Accuracy for a Small Robot


The media in this post is not displayed to visitors. To view it, please log in.

Even though GPS makes it possible for us to easily navigate around the planet in almost any vehicle we’d like, whether that’s a passenger vehicle, airplane, or cargo ship, it’s not really suitable for applications that require sub-meter accuracy. For that, some specialized hardware is needed, and [GreatScott!] shows us how to do it using a small robot as a platform.

The key to extremely accurate GPS signals in this case is using a receiver that supports real-time kinematic positioning (RTK). This type of system relies on a base station with a known position communicating with local mobile receivers to increase the precision of those mobile receivers by comparing the phase angle of the received signals. Of course these modules are much more expensive than the average standard GPS receiver, but for this kind of accuracy there is always a cost.

After getting a baseline accuracy of around two meters with a standard GPS receiver, [GreatScott!] installs the RTK GPS mobile receiver on a tracked robotic platform and a base station on a fence post. With the RTK system running, the limiting factor in accuracy became the robot’s steering system, as its turning radius and steering algorithms weren’t up to the task of hitting centimeter-sized targets out of the box.

But, as a proof-of-concept, it goes to show how accurate GPS can be as long as the right hardware is used, and for practical applications is good enough to mow a lawn with a robot or even do some amateur land surveying.

youtube.com/embed/y0UkxnTC1p4?…


hackaday.com/2026/06/25/increa…


Flying Cell Towers Are A Thing


The media in this post is not displayed to visitors. To view it, please log in.

Typically, when you’re sitting on a plane on the tarmac, you switch your phone to flight mode while you’re sitting through yet another “quirky” (boring) safety video. You’ll watch some inflight entertainment, read the airline magazine if you get really desperate, and wonder if anyone ever buys those random watches for sale in the “duty free” section. Then, finally, upon landing, you’ll be connected back to the Internet and you’ll finally feel like you can breathe again.

Only, this time, you forgot to set your plane on flight mode. You’re sitting at 30,000 feet, and… your phone has signal? You’re online, and you’re getting notifications and emails just like you’re on the ground. You’ve accidentally discovered that your flight has an on-board cell tower.

Connection


When you’re cruising on a passenger airliner, you would typically expect to see little to no cellular signal by sheer virtue of altitude and speed. For one thing, you’re blasting past at immense speed and not staying in any one coverage zone for very long at all. Meanwhile, while you’re probably within 10 kilometers or so, vertically speaking, cell towers generally have their antennas aimed at the ground, not the sky. There simply isn’t much signal available, and you’re zooming around a bit too fast to hang on to any cell tower before it’s disappeared out of range.
The connectivity back to the Internet is effectively the same as any inflight WiFi system. The difference is that passengers are served with cellular connectivity instead of WiFi. Credit: AeroMobile
Some airlines have gotten around this problem by providing on-board Internet connectivity over WiFi. The aircraft features an uplink to one of various satellite networks that provide Internet access, and that is provisioned to customers in the cabin over a WiFi router with a captive portal. Typically, for some painful charge in double digit US dollars, you can purchase a few hours of access to your emails and the Web, often with quite shaky connectivity.

However, there is sometimes a way to dodge the painful fees for onboard WiFI, while still getting online. A handful of airlines have equipped some of their fleets with cellular connectivity via a system called AeroMobile. They still rely on a satellite uplink for Internet access, and these planes generally still have onboard WiFi as well. However, if you happen to switch your phone out of flight mode, you might notice it connecting to a cell tower onboard—the AeroMobile picocell, in fact. Your phone connects to this tiny cell tower over cellular data links—originally 3G, later 4G or 5G depending on the hardware onboard—instead of WiFi. You escape the airline’s captive portal and data charges, instead paying your home carrier for data and whatever fee you normally get billed for international roaming. The ability to do this depends on your home mobile carrier, too, and whether they have an agreement with AeroMobile.

youtube.com/embed/Jd3yspIHBYo?…

AeroMobile’s service depends on customers actually switching out of “Flight Mode” in order to allow the phone to use its cellular radios to connect to the picocell onboard the aircraft. Credit: AeroMobile

AeroMobile has been around for a long time now, first demonstrating its hardware with GSM and GPRS data links on aircraft as far back as 2005. The company’s voice and data offerings have stepped up over the years as mobile technology has moved on, albeit often some years behind the state-of-the-art in the cellular world. The first planes with 3G didn’t fly until 2015, well over a decade after the technology was becoming established on the ground. As a subsidiary of Panasonic Avionics, AeroMobile-equipped aircraft communicate with a range of satellites that Panasonic has access to over Ku-band and L-band links. In recent years, the company has been developing the capacity for its aircraft to seamlessly switch between links to geostationary and low-earth orbit satellites, with the former offering the best coverage, and the latter Eutelsat OneWeb satellites offering much reduced latency and higher link speeds. Ultimately, user experience depends on flight route, local conditions, and other factors; speeds and reliability can vary from good to spotty on any given day. There’s also the fact that, on any given flight, tens or hundreds of other users may be trying to get online over the same link, which can quickly dry up what little bandwidth may be available in some black spots on the world map with poor satellite coverage.

If you’re flying soon, it’s still unwise to rely on in-flight internet connectivity. Whether you’re hooking up over WiFi or cellular, there are still often issues with coverage, or with systems being inoperative on certain flights and at lower altitudes, even on airlines with the best-equipped fleets. You’re also unlikely to regularly get high enough speeds for comfortable streaming, so you’re better off downloading The Thick Of It prior to take-off rather than trying to watch it live off a server while you’re scooting over downtown Astana. However, now and then, when you’re lonely and high above this marbled sphere, you might be just able to hang out on Discord and flirt with a few friends back home thanks to Panasonic and a steady link to the satellites above. Have fun up there.


hackaday.com/2026/06/25/flying…


New Record Resurrects Long-Dead CD Graphics Format


The media in this post is not displayed to visitors. To view it, please log in.

Audio CDs were the ubiquitous audio format of the 1990s. Lesser known were the extensions to the format that packaged all kinds of interesting additional data into a musical release. Now, a new record from [Aizysse Baga] has brought back some of the most quirky and obscure CD features that time and industry long forgot.

[Aizysse Baga] worked with [Adelaide] on the Divacore record, which was to be released on a mini-CD. The original plan was to include additional CD+G data, featuring artwork to go with the music. CD+G, or CD+Graphics, was often used to display synchronized lyrics for karaoke releases, and stored data in formerly-unused subcodes next to the track start, track number, and running time data. This format allowed storing a slideshow of images with a resolution of 288 x 192 with a 16 color palette.
Note the quality difference between the 16-color CD+G and the 256-color CD+EG images.
The duo got handy with art and some smart dithering to get great 16-bit artwork packed in to the audio CD release, with the aid of a custom Python encoder. CD-TEXT metadata was thrown in for good measure. Then, the existence of the more advanced CD+EG became apparent. This was a 256-color extension to the CD+G format that was backwards compatible to boot. It was a format that was barely ever implemented on any commercial releases, and very little hardware could even display it. Naturally, Divacore had to have it. Much work was done to understand the Red Book documentation on the standard and figure out how to implement even higher quality artwork for the record.

After so much work to understand and implement the CD+G and CD+EG data, the question was whether it would survive the CD reproduction process for the final release. Thankfully, the final discs came out perfectly, and the full 256-color CD+EG artwork can be seen in all its glory if you happen to play Divacore on a Sega Saturn or a super-obscure Victor VS-G2 or VS-G3. Throw it in a less-sophisticated karaoke machine or something like an Amiga CD32, and you’ll still get to see the 16-color versions for your trouble.

We love to see ancient formats brought back to life, particularly those that never got their time in the sun. If you’re working hard to resurrect something the mainstream media world has forgotten, let us know on the tipsline.


hackaday.com/2026/06/25/new-re…


Inside the 2026 SMB threat landscape: From phishing and scams to fake AI tools


The media in this post is not displayed to visitors. To view it, please log in.

Small and medium-sized businesses (SMBs) remain attractive targets for cybercriminals – in both mass cyberattacks and sophisticated campaigns targeting larger enterprises through trusted relationship attacks. At the same time, smaller businesses may lack the robust cybersecurity policies and necessary resources to protect themselves against an evolving threat landscape.

Kaspersky believes that raising awareness can help small and medium-sized enterprises develop an effective protection strategy. Ahead of International SMB Day on June 27, Kaspersky presents the findings of its 2026 threat analysis for SMBs, which includes real-world examples of attacks.

Key findings


  • In the first four months of 2026, Kaspersky solutions detected over 33,300 cyberattacks on SMBs masquerading as popular artificial intelligence (AI) tools – almost five times more than in 2025 and 39% more than the number of attacks disguised as the office and collaboration tools that Kaspersky’s research focuses on.
  • Popular messengers and communication services remained the attacker’s most widespread lure, with almost 415,000 attacks involving fake messenger apps and video conferencing software.
  • The attackers follow trends: the AI tools Claude and OpenClaw (ex-ClawdBot/MoltBot), which have gained popularity in 2026, were among the common AI lures.
  • Fraudsters use fake AI tools to scam businesses out of money, while corporate accounts on social media also remain targets.
  • The majority of initial accesses to corporate infrastructures sold on the dark web are allegedly accesses to SMBs. This could be because SMBs tend not to be as well protected as large enterprises and, at the same time, may be trusted contractors for those well-protected enterprises.


Malware and potentially unwanted applications (PUAs) disguised as popular services


Kaspersky researchers used data from Kaspersky Security Network (KSN) to explore how frequently malicious and unwanted files are disguised as legitimate applications that may be used by SMBs. KSN is a system for processing anonymized cyberthreat-related data shared voluntarily by Kaspersky users. For this part of the report, only anonymized data received from users of Kaspersky solutions for SMBs were analyzed.

According to a survey by the Small Business & Entrepreneurship Council (SBE Council), small business owners continue to embrace artificial intelligence and digital transformation as they maintain a generally positive outlook on the economy. Threat actors are also aware of the hype surrounding AI and exploit it for their own benefit. In particular, they actively distribute cyberthreats under the guise of popular AI services.

From January to April 2026, Kaspersky solutions detected 33,352 attacks on SMB users in which malware or potentially unwanted applications for PCs were disguised as five popular AI services. This figure represents an increase of almost five times compared to the previous year. This highlights an evolving trend in which threat actors are weaponizing trust in widely used AI platforms and services, especially popular ones like Claude. Kaspersky experts note that it’s important to download apps from official sources and to verify which apps are available for which platforms.

Share of attacks targeting SMBs in which malware or PUAs mimic the five popular, legitimate AI apps that Kaspersky’s research focuses on, first four months of 2025 and 2026 (download)
In the first four months of 2026, Kaspersky researchers also identified more than 1,100 unique samples of malware and PUAs detected in the SMB sector that masqueraded as five popular AI applications, representing a 21% increase compared to the same period of 2025. The samples were mainly different types of Trojware (Trojans and Trojan-like malware), including those capable of downloading and running other malware on compromised devices. Trojware disguises itself as harmless files to trick users into installing them. Their functionality may vary depending on the particular type of Trojware. This may include stealing, deleting, blocking, modifying or copying users’ data, as well as other malicious actions. Trojware therefore represents a highly dangerous cyberthreat to entrepreneurs and businesses.

Kaspersky experts also note that the threat landscape is constantly evolving with new lures appearing all the time. For example, in the first four months of 2026, Kaspersky solutions blocked hundreds of attacks in which malware or PUAs for PCs were disguised as OpenClaw (previously known as Clawdbot or Moltbot).

Other lures for SMBs: Fake communication apps and office software


Kaspersky analysts also explored how attackers leverage other legitimate applications as lures to target SMBs. For example, from January to April 2026, Kaspersky solutions blocked 414,736 attacks on SMB users in which malicious software or PUAs for PCs were disguised as the popular communication apps that Kaspersky’s report focuses on. The number of attacks changed marginally compared to the previous year’s figure, indicating that the lure of fake communication apps remains a serious cyberthreat.

Share of attacks targeting SMBs in which malware or PUAs mimic the four legitimate communication apps covered by Kaspersky’s research, first four months of 2025 and 2026 (download)
Various fake office applications and collaborative platforms also remain among the lures that attackers may exploit to target SMBs. According to Kaspersky telemetry, more than 24,000 attacks were detected from January to April 2026 in which malware or PUAs for PCs were disguised as specific office applications.

Share of attacks targeting SMBs in which malware or PUAs mimic the six popular office applications and collaboration tools covered by Kaspersky’s research, first four months of 2025 and 2026 (download)
In 2026, AI-related baits have become more widespread among cybercriminals than traditional fake office and collaboration tools. Kaspersky experts note that the more publicity and hype there is around certain tools, the more likely a user is to come across a fake package online.

Scammers and phishers tricking victims into providing credentials and funds


In 2026, Kaspersky researchers observed a wide range of phishing campaigns and scams targeting businesses and entrepreneurs. Fraudsters mimic financial and AI services as well as other platforms in order to steal credentials, personal information and funds.

In the following example, fraudsters disguise themselves as a bank that allegedly offers services for businesses (in other similar schemes they may offer business loans). Entrepreneurs are prompted to visit a scam website and enter their data to open a business account. The requested information varies depending on the scam, but may include name, email address, phone number, social security number, date of birth and address. Scammers may then use this data in their schemes or sell it on the dark web.

Kaspersky experts advise: if you encounter such a website, you should not rush to enter any data. First, examine it. Does the purported financial organization actually exist? How old is the website? Check the WHOIS records and read user reviews before entering any information on the page.

Example of a scam page targeting entrepreneurs
Example of a scam page targeting entrepreneurs

As with many other cyberthreats, AI services are also leveraged as a lure in scams. For example, Kaspersky experts identified a scam website for an AI service “built for contractors”. According to the text on the fraudulent page, the tool can help with “estimates, invoices and schedule”. However, in reality, in such schemes victims usually receive nothing after paying for a subscription, while the scammers get all the money.

Example of a scam page promoting an AI tool
Example of a scam page promoting an AI tool

Kaspersky experts note that business accounts on social networks and messengers remain attractive targets for cybercriminals in 2026. In one scheme, phishers distributed notifications with fake alerts related to companies’ business pages. The notifications claimed that Facebook’s review system had detected behavior that seriously violated its Community Standards and Advertising Policies. To avoid permanent restriction of their business page on the social network, owners were prompted to fill out an appeal form and provide personal and business email addresses, phone numbers, as well as the name of their business page and the password for their social network account. The attackers’ goal was to obtain credentials. To reduce user vigilance and appear legitimate, fraudsters also sent victims a fake appeal code.

Example of a fake notification
Example of a fake notification

Email threats: Fake online documents and exploitation of legitimate platforms


Email remains one of the most widely used channels for cyberattacks targeting enterprises, including small and medium-sized businesses. In 2026, attackers have frequently combined email distribution with the exploitation of legitimate third-party platforms. This is how phishers and scammers usually attempt to bypass traditional email filters and exploit user trust in reputable services. Kaspersky researchers have also observed a large number of schemes targeting corporate users in which phishers and scammers use fake online documents or nonexistent meetings as bait.

In one recent scheme detected by Kaspersky, the attackers sent a fake notification disguised as a letter from OneDrive. The victim was prompted to access the document by clicking a button, but in reality, it led to a phishing website where users risked losing their confidential data. To make the email appear legitimate, the attackers added a phrase designed to lower the victim’s vigilance: “This item is encrypted and hosted within your secure cloud perimeter.” They also parsed the recipient’s email address and used the extracted data in the fake notification text so that the email looked like a standard notification from this type of service: “[email address domain as company name] has successfully uploaded a new file for [the user’s name as stated in their email address].”

Example of a phishing scheme with fake online documents
Example of a phishing scheme with fake online documents

Attackers also use other pretexts to trick victims into sharing confidential information, for example fake compliance issues. In the example below, the attackers posed as Apple representatives. The fake notification stated: “Apple has identified a compliance issue related to Google Ads campaigns directing traffic to Apple product detail pages associated with the victim’s seller account.” However, the button in the email led to a phishing website where users are tricked into sharing confidential data.

Example of a fake compliance issue notification
Example of a fake compliance issue notification

Kaspersky experts observed another notable two-stage scheme aimed at stealing credentials from corporate emails, which involved distributing an invitation to a nonexistent meeting. The scheme is deployed in two stages. In stage one, a corporate user receives an email about a fictitious meeting. After clicking the “Accept Meeting Invitation” button, the user is redirected to a legitimate Zoom Docs (previous Zoom canvas brand) page. In stage two, the victim is prompted to click a hyperlink that reads “Click Here to Accept Meeting”. However, the URL of a phishing page is hidden behind this hyperlink.

Example of an email with a fake meeting
Example of an email with a fake meeting

Zoom Docs page containing the phishing link
Zoom Docs page containing the phishing link

Malware is also actively distributed via email. In 2025, individuals and corporate users encountered over 144 million malicious and potentially unwanted email attachments, representing a 15% increase from the previous year.

Kaspersky experts note that the lures used in subject lines and texts of malicious emails can appear relatively harmless and rather unsophisticated. In the example below, the attackers target businesses with a fake request for “the best quote for the items attached.” However, the attached file actually contains a Trojan.

Example of a malicious email
Example of a malicious email

Corporate infrastructure access for sale: Posts on the dark web


To assess threat actor activity, Kaspersky Digital Footprint Intelligence experts analyzed hundreds of posts offering initial access to corporate infrastructures published on dark web forums from January to April of both 2025 and 2026. Kaspersky experts note that a single post may contain several offers for access to different allegedly compromised companies.

Example of a post on a darknet forum
Example of a post on a darknet forum

Initial access brokers (IABs) sell initial access to compromised businesses, for example, via RDP or web shells. In their posts, IABs may provide information about the region where the allegedly compromised companies are located, their industry and revenue, as well as the type of access. IABs sell access that the buyers can then use for different purposes, including ransomware attacks, stealing corporate confidential information or other fraudulent activity. The price of initial access on dark web forums may depend on the revenue, industry or location of the allegedly compromised companies, or on the access privileges. For example, accounts with admin rights are usually more expensive because they can provide attackers with a wide range of possibilities.

According to the research, there were more posts offering initial access to companies of different sizes located in the Middle East (up 53% from last year), Africa (up 40%) and Latin America (up 17%). Meanwhile the number of posts related to companies located in Europe decreased by 34%. According to Kaspersky experts, this decline can be partially explained by the closure of a dark web forum containing such posts around the time of the study. The number of publications related to companies located in the APAC region also decreased slightly (down 4%), but remained at a consistently significant level for the second year in a row.
At the same time, the number of posts where the region was not specified decreased by 56% in 2026 compared to the previous year. Kaspersky analysts assume that this may indicate that initial access posts from IABs are becoming more targeted and unique.

Share of posts with initial access offers by business size


For this research, Kaspersky experts defined a small business as having an annual revenue of up to US$50 million, and a medium-sized business as having an annual revenue of between US$50 million and US$1 billion.

According to Kaspersky’s research, at the beginning of 2026 the share of posts on dark web forums with offers of initial access to allegedly compromised small businesses was larger than the shares of posts offering access to medium, large or nonprofit organizations. However, this share decreased in the first four months of 2026 compared to the same period in 2025. The share of posts concerning mediumsized organizations also remained significant for two consecutive years. Taken together, posts concerning small and mediumsized organizations account for more than half of all the analyzed posts with initial access offers on dark web forums.

At the same time for a certain number of posts initial access brokers didn’t indicate companies’ revenue, therefore, making it impossible to determine the size of the company.

Share of posts with initial access offers by business size, January–April 2025 (download)

Share of posts with initial access offers by business size, January–April 2026 (download)
Kaspersky experts note that despite the prevalence of posts concerning small businesses, threat actors may target medium‑sized businesses because they generate higher revenues than small businesses and may have weaker security defenses than large businesses.

SMBs can also become targets as a part of trusted relationship attacks, which enable the attackers to reach larger organizations. According to the Global Report by Kaspersky Security Services, the share of trusted relationship attacks among the initial vectors increased from 12.7% in 2024 to 15.5% in 2025. Therefore, the common belief that small and medium‑sized enterprises are of no interest to attackers is a misconception. Companies of all sizes need to understand the cyberthreat landscape, adhere to cybersecurity rules, implement appropriate cybersecurity solutions, and continuously improve employee awareness.

Cybersecurity action plan for SMBs


SMBs can reduce risks and ensure business continuity by investing in comprehensive cybersecurity solutions and increasing employee awareness. To protect themselves from the ever-evolving threat landscape, companies are advised to follow these rules:

  1. Define access rules for corporate resources such as internet services, email accounts, shared folders, and online documents. Keep access lists up to date and revoke access promptly when employees leave the company.
  2. Regularly back up important data to ensure the preservation of corporate information in case of emergencies.
  3. Establish clear guidelines for using external services and resources. Create well-defined procedures for coordinating specific tasks, such as implementing new software, with the IT department and other responsible managers. Develop short, easy-to-understand cybersecurity guidelines for employees, with a special focus on account and password management, email protection, and safe web browsing. A well-rounded training program will equip employees with the necessary knowledge and ability to apply it in practice.
  4. Raise employees’ security awareness. Conduct dedicated training to teach staff how to detect and address potential threats, and track their educational progress. Organizations can achieve this with the Kaspersky Automated Security Awareness Platform through interactive online modules and simulated phishing campaigns that build sustainable cyber hygiene habits across all teams.
  5. Implement specialized cybersecurity solutions that fit your budget, size, and industry requirements, with an emphasis on scalability and ease of integration.
    1. Kaspersky Small Office Security Premium is an easy-to-use solution that protects against advanced threats and also provides access to security awareness training for employees, making it ideal for micro-businesses.
    2. Small and medium-sized enterprises with more mature IT expertise should consider Kaspersky Next Optimum, which is designed specifically for growing organizations and offers real-time protection, threat visibility, as well as EDR and XDR investigation and response capabilities.


  6. Protect your business against email-borne threats. Kaspersky Security for Mail Server, a comprehensive email security platform that offers robust, multi-layered protection at mailbox and gateway levels, can help with this. Powered by machine learning and leading global threat intelligence, it effectively addresses all mail security challenges.
  7. Adopt specialized solutions such as Kaspersky Digital Footprint Intelligence to monitor the surface, deep, and dark webs for information about a company’s credentials, leaked data, and lookalike websites. Small and medium-sized companies with limited IT security budgets can partner with a managed security service provider (MSSP) to access this comprehensive digital risk protection service at an affordable, subscription-based price point.

securelist.com/smb-threat-repo…


A Look at a Gaggle of Transputer Boards


The media in this post is not displayed to visitors. To view it, please log in.

A long time before Beowulf clusters wired up with commodity Ethernet hardware became a hobbyist thing and a running joke, the transputer took a swing at a very similar architecture. This used stand-alone computers that were networked together with other transputer systems, to achieve task-level parallelism. For some people like [Lance Harvie] this is the kind of hardware that he used during his university years for a project, with him not only still having that hardware, but also recently adding to this collection with a recent eBay purchase.

The transputer story is a fascinating one, forming a major part of the UK’s semiconductor industry during the 1980s, creating a strong legacy as the computer industry awkwardly tried to figure out what types of parallelism to target. Whereas the industry largely moved to instruction-level (superscalar) parallelism alongside tightly coupled task-level parallelism along with multiple CPU cores on a single die, one could consider today’s supercomputer clusters to be one example of the transputer legacy.

Close-up of the T424-based 4-processor board. (Credit: Lance Harvie, YouTube)

[Lance]’s university-era board features the T400, which he shows off while recalling programming it in the Occam language. He’s currently looking for an ISA-to-USB adapter to be able to use it again with a modern PC. While searching around, he came across an EBay listing for a four-processor board, containing four T425s. These are significantly more powerful and also can use external memory, unlike the T400.

This four-CPU board omits the external serial links, as it’s meant to be used in e.g. a scientific instrument as a stand-alone 4-unit transputer system, with all of the available four serial links per processor connected on the PCB. Even more interesting is that the processors on this board were manufactured in 1999 by ST, which was many years after transputers stopped being developed.

As [Lance] explains, this was due to the UK government pulling the plug on the transputer project, with the IP subsequently ending up at ST who kept producing the chips until 1999 at its Philippines plant.

In time, [Lance] hopes to power up all these boards and use them again in combination with a modern-day Linux-based computer. We’re definitely looking forward to seeing that happen.

Although you can definitely use any random MCU these days as your very own transputer module or link chip, with e.g. SPI making for an attractive alternative for the high-speed serial links, there’s always something to be said for using real, original hardware.

youtube.com/embed/lhG2r78Vi5Y?…


hackaday.com/2026/06/25/a-look…


A More Convenient iButton Reader


The media in this post is not displayed to visitors. To view it, please log in.

iButtons are microchips housed in small, round, metal containers, and are similar to coin cell batteries in appearance. Among other things, they’re used for logging data in industrial contexts, particularly where it’s desirable to track parameters like temperature over time. [Geoffrey Wells] has worked with these sensors, and decided that the aging solutions for reading these devices are too cumbersome and out-of-date. Thus, he designed ChillPoint as a more modern solution.

As you might have guessed by the name, [Geoffrey] was inspired to build a rig specifically for inspecting iButton data loggers in cold chain logistics applications. It’s built around an ESP32-C6, which has a 1-Wire probe on the front for communicating with the target device. On contact, the reader dumps all the data, storing it on its own flash storage. The data can then further be accessed by connecting to the ChillPoint handheld device over its own WiFi access point, upon which it hosts a web UI for access. The handheld can be used for scanning iButtons single-handed, while a smartphone, tablet, or laptop can be used as a screen to monitor the results live.

The project is nearing completion, and [Geoffrey] says both the hardware and software will be open source once it’s all said and done. Anyone interested in adding a ChillPoint to their toolbox should keep an eye out for its upcoming CrowdSupply campaign.

If you find yourself working with these devices on the regular, this project may be appealing to you. We’ve looked at iButtons many times over the years.


hackaday.com/2026/06/24/a-more…


LineShine Is Fastest Supercomputer at Over 2 Exaflops


The media in this post is not displayed to visitors. To view it, please log in.

There is a phenomenon where as you get older, your sense of scale becomes somewhat fixed in the earlier era that shaped you– things like expecting the Dollar Store to carry items for 1$, or to get a burger and fries for less than twenty bucks– or, in this case, thinking of supercomputers as being petaflop-scale machines. That’s not wrong, per se– most of the world’s fastest machines benchmarks are best measured in petaflops– but when you’re clocking at 2198 of the things, it becomes easier just to say that the LineShine computer can do 2.188 exaflops. At double precision. With CPUs only. Yes, we are impressed.

Even more impressive is that this machine just debuted in China, which means it was built without the benefit of the latest-and-greatest Western chips, thanks to US sanctions. It’s using a made-in-China LX2 CPU with 304 ARMv9 cores onboard. Well, it’s actually using around 46 thousand of them, but who’s counting?

Each CPU actually consists of two separate compute dies and onboard high bandwith memory (HBM) and DRAM– 4GB of HBM and 32GB of DDR5. The 152 ARMv9 CPU cores on each chip are all built with Scalable Vector Extensions (SVE) and Scalable Matrix Extensions (SME), so despite the lack of GPUs LineShine will have no problem doing the sorts of vector processing that is traditional for high-performance computing, given the 13.79 million cores.

On the other hand, the lack of GPUs shows when you change benchmarks– LineShine is number one in the rankings for High Performance Linpack (HPL), but getting outside the 64-bit box, the supercomputer only hits number four on the HPL-MxP mixed-precision benchmark, behind machines that pair their CPUs with accelerators like GPUs or NPUs. That may mollify the American ego, as while their El Capitain was bumped to second place on the HPL list, they can still claim the pole position on HPL-MxP. Which computer is actually more capable depends entirely on what you want to do with it, and neither Lawrence Livermore National Laboratory nor China’s National Supercomputing Centre in Shenzhen advertise their compute queues, though this paper suggests at least one job will be crunching earth observation data.

The definition of a supercomputer has shifted over time, and it’s only a matter of time before LineShine and El Capitain end up on the auction block, like other supercomputers before them. We might question it when it comes to desktops, but for institutional HPC, no amount of computing ever seems to be enough.


hackaday.com/2026/06/24/linesh…


All The Different Lasers, And How Well They Mark 3D Prints


The media in this post is not displayed to visitors. To view it, please log in.

[Stefan] of CNC Kitchen has an informative video describing his experiences with trying to cleanly laser-mark 3D printed plastics using different methods, and it also happens to be a fantastic tour of all the different laser options available to hobbyists and workshops these days.

Laser marking is a fast and effective way to put things like product names, serial numbers, and other information on plastics. [Stefan] wondered whether laser options would be capable of creating clean and professional marks on 3D-printed items, and approached things with his usual attention to detail.

Great results can be had, but using the right tool and dialing in the right settings is critical to results.
How does a laser mark plastic? When the laser hits the material, its energy is dumped into it and can cause pigment bleaching, microfoaming, charring, melting, or ablation (vaporizing) of the surface. The goal is to have a combination of laser and material that delivers a crisp, high-contrast result.

There are several kinds of laser technologies easily available today, and of course a variety of filament types. [Stefan] printed a whole bunch of different PLA, PETG, ASA, TPU, and polycarbonate samples in different colors and tested them with different laser machines, including:

  • UV laser (355 nm wavelength)
  • Blue diode laser (450 nm wavelength)
  • MOPA fiber laser (1,064 nm wavelength)
  • CO2 laser (10,600 nm wavelength)

So is it possible? Yes, but it’s still a bit of a fussy process. There isn’t a one-size-fits-all solution for marking plastic, because results depend a lot on the the right combination of laser type, settings, and target material. That being said, [Stefan] was able to obtain some really great results.

Overall the UV laser was the most suited to marking 3D-printed plastics. [Stefan] says it produced the cleanest results on the widest range of materials with the least fiddling. The MOPA fiber laser also worked, but is clearly more of a metal-marking tool. We’ve seen them etch super-fine PCB traces and while great results are possible it isn’t quite in its element with plastics. Other lasers could get good results under just the right circumstances, but are overall best suited to cutting tasks rather than marking thermoplastics.

Check out the video below for the full details, including some really fantastic closeups.

youtube.com/embed/jA-E5CGcBxI?…


hackaday.com/2026/06/24/all-th…


Laser Scanning A Cave With Homebrew Gear


The media in this post is not displayed to visitors. To view it, please log in.

How do you measure the inside of a cave? You could do a bunch of hard work with classic surveying gear… or you could just use a laser scanner. [9nl] did the latter, with a scanning rig of his own creation.

The build is based around an Ouster VLP-16 mid-range lidar sensor. It shoots out pulses of light and measures how long it takes them to bounce back in order to determine the range of objects in the vicinity, and thus can be used to great effect for 3D scanning tasks. For [9nl], though, the sensor had a serious limitation. Since it only had a 40-degree field of view, it wasn’t ideal for the desired application of scanning a cave. However, by building a custom rig that could rotate the sensor, [9nl] ended up with a rig that could 3D scan an area through a full 360 degrees. There’s nothing wildly complex involved, just some good old mechanical engineering—putting the sensor on a shaft and spinning it with a belt drive. Then it’s just a matter of processing the data correctly. The hard part is then getting the rig in and out of the cave without breaking anything.

There are plenty of off-the-shelf 3D scanning solutions that can do this work, but few of them come cheap. Plus, rolling your own teaches you a great many things as you hone your solution to your particular needs. Video after the break.

youtube.com/embed/gx1AoM0YKCs?…

[Thanks to Kovy Jacob for the tip!]


hackaday.com/2026/06/24/laser-…


FLOSS Weekly Episode 872: I’m Not Satoshi


The media in this post is not displayed to visitors. To view it, please log in.

This week Jonathan chats with Tristan Sherliker about the Craig Wright case, Open Source and the law, and Tristan’s own Open Source project, BunTool. How did Open Source help win the day at the Bitcoin trial? And why is right now such an interesting time to be in the legal field? Watch to find out!


Full Ruling:

youtube.com/embed/YLw8pp0G6nY?…

Did you know you can watch the live recording of the show right on our YouTube Channel? Have someone you’d like us to interview? Let us know, or have the guest contact us! Take a look at the schedule here.

play.libsyn.com/embed/episode/…

Direct Download in DRM-free MP3.

If you’d rather read along, here’s the transcript for this week’s episode.

Places to follow the FLOSS Weekly Podcast:


Theme music: “Newer Wave” Kevin MacLeod (incompetech.com)

Licensed under Creative Commons: By Attribution 4.0 License


hackaday.com/2026/06/24/floss-…


VFD Clock Runs on a Single AA


The media in this post is not displayed to visitors. To view it, please log in.

There are lots of different ways to build a clock. [Sciter_] came into the possession of some old calculator parts, and decided to reuse them for just such a project.

The heart of the build is an ATmega328P microcontroller, running off of a 32.768 kHz crystal. This allows the chip’s counters to neatly divide down the frequency to get a steady 1 Hz pulse for accurate timekeeping. Time is displayed on a vacuum fluorescent display (VFD) harvested from an old calculator. These displays need rather high voltages to run, which in this case are produced by a HV5812 driver chip and supporting circuitry. The display itself is neatly cradled in a pair of copper pipe elbows for a stylish look, with some addressable RGB LEDs present to provide some charming underglow.

Power for the device comes from a single AA battery, using a transformer-based low voltage converter. Alternatively, it can run off a USB 5 V power supply, which also charges the NiMH AA cell while available with the aid of an LM2576-ADJ buck converter.

Overall, it’s a neat homebrew clock that taught [Sciter_] plenty during its construction, and not the first time we’ve seen somebody put together a clock with second-hand VFDs. If you’re finding fun ways to reuse old display tech, don’t hesitate to let us know on the tipsline.


hackaday.com/2026/06/24/vfd-cl…


The Trains With Rubber Tires


The media in this post is not displayed to visitors. To view it, please log in.

The train was one of the game-changing inventions that defined the Industrial Age. No more would humanity rely on tempestuous animals to haul goods and passengers great distances across the land. Fire and steam came along to rapidly increase the speed of travel and transformed the very fabric of society itself.

To this day, the vast majority of train networks rely on the same basic principle—heavy locomotives and carriages running steel wheels on steel tracks. Yet, there is a curious alternative twist on this concept that sees trains of carriages riding on tires instead. But what would possess anyone to build a rubber tired train?

Where The Rubber Meets The Rail

An MP-05 running on the Paris Metro. Credit: Momo Ratp, CC BY-SA 4.0
The first practical rubber-tired train system came about in the wake of World War II. The Paris metro had been poorly maintained during the German occupation, and was in dire need of repair or replacement. The state-owned public transport operator RATP and tire supplier Michelin came to the table, developing a concept wherein vehicles running on pneumatic tires would ride on a flat steel or concrete “rollway.” The vehicles would also have backup steel wheels that run against a steel rail for safety, keeping the train upright in the case of a tire blowout. Guidance would be provided by extra rubber tires mounted to the wheel bogies on a vertical axis, running against a vertical guideway built into the track, in a manner not dissimilar from later O-Bahn systems.
An MP 89 CC consist running on line 6 of the Paris Metro at Corvisart station. These electric multiple units entered service in 1997. Credit: author
By the 1950s, when the concept was being seriously developed, steel-wheeled railways had been around for well over a century. They were the norm for good reason, but running rubber-tired trains did offer some advantages. The pliable tires would soak up vibrations, which was both good for passenger comfort as well as also virtually eliminating high-pitched squealing noises that are common on steel railways.

The rubber tires, running on concrete or steel surfaces, also offered greatly improved grip. This allowed the rubber-tired metro trains in Paris to climb much greater grades with ease, compared to traditional steel-wheeled railcars. It also aided in early automation efforts on the Paris Metro, as the higher grip level made it easier to ensure locomotives stopped at the right position when entering stations. Rail wear is also greatly reduced compared to steel-on-steel systems.
Note the guidewheels which run against the vertical guideways built into the track. Credit: author
Of course, rubber tires also came with some drawbacks. Tracks were more expensive to build due to the need to incorporate both rollways and guideways, and commonly a steel rail to supply electricity to the trains. Rubber tires don’t last as long as steel wheels, either, aren’t as robust, and are subject to blowouts when damaged. The flexing of pneumatic rubber tires also makes the trains less energy efficient, and generates more heat in operation, which can be a concern in underground operations. As tires break down, they also create particulate pollution which isn’t great for urban air quality or for the people breathing it in.
A bogie from an MP 89 of the Paris Metro, showing the main wheels as well as the guide wheels. Credit: Rama, CC BY-SA 2.0
The Paris Metro found the oddball concept to be of great use, particularly given some of the higher grades faced in certain parts of the network. In time, lines 1, 4, 6, 11, and 14 would all be retooled to the Michelin-designed system with rubber-tired railcars running on 1,435 mm rollways. Various airport routes would later adopt rubber tired services, too, as well as the Toulouse, Lille, Lyon, and Marseille metros as well.
Various rubber-tired metro systems have sprung up around the world. The basic concept is usually the same, though exact implementations differ. This system deployed in Sapporo, Japan, relies on a central rail guidance system, and was built by Kawasaki Heavy Industries. Credit: 出々 吾壱, CC BY SA 3.0
The system was not just limited to France, either. Mexico City found a rubber-tired metro to be the perfect transport solution, as the reduced vibrations were a massive boon given the area’s unstable soils. Other famous examples include the Montreal Metro in Canada, and lines 1, 2, and 5 of the Santiago Metro in Chile. Many other smaller-scale examples can be found around the world, often serving airport routes or shorter-distance lines.

Rubber-tired metros are unlikely to ever fully overtake more traditional steel-wheeled trains in popularity. There are more drawbacks than positives for most typical operations, particularly when it comes to maintenance and ongoing costs. Nevertheless, they have their place, particularly where grip is at a premium, grades are steep, or there is a keen desire to avoid excessive noise and vibration to keep the peace or avoid disturbing the subsurface. These rail-like curios stand out as a weird surprise treat for any railfan visiting Paris, or any of the other similar systems that can be found around the world.


hackaday.com/2026/06/24/the-tr…


Raspberry Pi Locator Website to Shut Down in July


The media in this post is not displayed to visitors. To view it, please log in.

As announced by [André] on Bluesky, next month the much loved Rpilocator.com website will cease displaying the stock status and pricing of Raspberry Pi computers from various online retailers.

One of the main reasons is that the indexing bot used by the site has been blocked by most shopping sites. It’s not clear whether this blocking is on purpose or just another consequence of website owners protecting themselves from the onslaught of obnoxious ‘AI’ scraping bots. But in any event, the effort of finding workarounds that may only work for a few days or weeks was becoming too much.

According to [André] there are still about 11,000 users of the site each month, which even when accounting for the human-bot ratio is still a sizable number of visitors who’ll now have to get their fix somewhere else. He also indicates that he receives numerous emails from presumably real people about the site to point out small issues they have noticed.

Although the site may still be back in the future, it’s also important to recognize how much the single-board computer landscape and raison d’être for this tracking site have shifted since the 2020s Chip Crisis days. Currently it’s less about finding where these boards are in stock, and more about taking the hits to one’s wallet as memory prices continue to spiral out of control. Making what were once fun, cheap little hobby boards into luxury items that cut into your rent-food-and-gas budget.


hackaday.com/2026/06/24/raspbe…


StrikeShark: investigating a new campaign delivering Cobalt Strike through SharkLoader


The media in this post is not displayed to visitors. To view it, please log in.


Introduction


During our research of activity affecting a diplomatic organization in Indonesia, we uncovered a previously undocumented malware family that we have named SharkLoader. What initially appeared to be an isolated case quickly expanded into a broader campaign as we identified additional SharkLoader infections across multiple countries and sectors.

Our investigation revealed that SharkLoader serves as a loader designed to deploy Cobalt Strike Beacon on compromised systems. We observed the threat actor deploying SharkLoader through exploitation of internet-facing applications, including Microsoft Exchange, Microsoft SharePoint, and Openfire Server, as well as through malware-based delivery mechanisms.

Beyond the diplomatic entity in Indonesia, we identified related activity targeting government organizations in Taiwan, software development companies across multiple countries, and entities in other sectors located in Hong Kong, Lebanon, Syria, Colombia, North Macedonia, Nepal, Serbia, and more. The observed victimology suggests a campaign with broad geographic reach and a diverse target set rather than a narrow focus on a specific industry or region.

For now, we are tracking this activity as StrikeShark. Although the operators utilize several open-source post-compromise tools associated with Chinese-speaking developers, we have not identified direct code reuse, infrastructure overlap, or operational similarity to confidently attribute the activity to any known APT or cybercrime group. As a result, attribution remains preliminary and the campaign’s ultimate objectives are still under research.

Initial infection


Our analysis of SharkLoader intrusions indicates that the threat actor employs multiple methods to gain initial access to victim environments. During our investigation, we observed two primary infection vectors: the exploitation of vulnerabilities in internet-facing applications and the deployment of custom dropper samples, some of which were disguised as legitimate software.

Exploitation of public-facing applications


In the incident affecting an Indonesian diplomatic entity, the threat actor exploited Microsoft Exchange vulnerabilities, including CVE-2021-26855 (ProxyLogon), to gain access to the target environment. Similar activity was observed in Taiwan, where software development organizations were compromised through exploitation of Openfire (CVE-2023-32315). In a separate incident affecting a Colombian organization, the threat actor exploited a GeoServer instance vulnerable to CVE-2024-36401.

Beyond these incidents, we identified additional exploitation activity targeting vulnerabilities in multiple internet-facing enterprise applications and network appliances including those listed below:

Remote Code Execution (RCE)

  • Apache Shiro: CVE-2016-4437
  • Hikvision Products: CVE-2021-36260
  • Microsoft SharePoint: CVE-2021-27076
  • Zimbra Collaboration Suite: CVE-2022-27925
  • Microsoft Exchange Server: CVE-2022-41082
  • F5 BIG-IP system: CVE-2023-46747
  • Fortinet FortiOS: CVE-2024-21762
  • React Server Components: CVE-2025-55182

Authentication Bypass

  • Fortinet FortiOS: CVE-2022-40684
  • Cisco IOS XE Web UI: CVE-2023-20198

As of the time of writing this article, we haven’t obtained the exploits the attackers used. However, based on the vulnerabilities observed across multiple attacks, we assess with medium confidence that the threat actor primarily relies on publicly available proof-of-concept (PoC) exploits to gain initial access. All the vulnerabilities identified during our investigation have publicly available exploit code, including PoCs hosted on GitHub and other open-source platforms, suggesting the actor leverages existing offensive resources rather than develops custom exploit capabilities. The victim profile also indicates that the activity is largely opportunistic, affecting organizations across various industries, regions, and technology environments without a clear focus on a specific target set. Also, one of the IP addresses associated with the C2 domain was also observed conducting internet-wide scanning activity, potentially aimed at identifying and exploiting vulnerable internet-facing systems at scale.

Following exploitation, the attacker established persistence on compromised servers through the deployment of webshells. Although we were unable to recover the webshell files, a series of commands whose execution we observed in our telemetry along with the detection records of webshells strongly indicate their use for post-exploitation activities.

One of the earliest observed actions involved copying the legitimate Windows application SystemSettings.exe to a new location before executing it.
cd C:\Windows\ImmersiveControlPanel\
copy SystemSettings.exe C:\ProgramData\
cd C:\ProgramData\
SystemSettings.exe
This application was later abused as part of a DLL sideloading chain used to launch SharkLoader, which in this scenario was hidden in the malicious SystemSettings.dll library. We suspect that this DLL along with malicious encrypted files, which we’ll describe further, was uploaded through the webshell to the same directory as SystemSettings.exe.

In another case involving the exploitation of CVE-2021-27076, the threat actor launched SystemSettings.exe triggering the subsequent SharkLoader sideloading chain from different directories on the system, which suggests renewed operational activity in the victim environment. In some of the cases, they used security product vendor names as the directory names, allegedly to appear legitimate.
cd C:\ProgramData\KasperskyLab\
dir
.\SystemSettings.exe
cd %APPDATA%
dir
cd kasperskylab
dir
.\SystemSettings.exe

Dropper-based distribution


In several observed cases, the threat actor distributed SharkLoader through custom dropper executables masquerading as legitimate software installers or applications such as Google Update and Cisco AnyConnect. However, the exact delivery mechanism used to distribute these droppers remains unknown.

The observed dropper filenames include:

  • GoogleUpdateStepup.exe
  • AnyConnect-win-4.10.04071-predeploy-k9exe
  • AutoUpdate.exe
  • 319-pfd-8001-reva_traitement biologique_master.zip

In one of the samples we analyzed, the threat actor used a legitimate Cisco AnyConnect VPN installer as a lure. The custom dropper extracted zlib-compressed data embedded within its resource section, decompressed it into an MSI package, and wrote the file to %APPDATA%\reports\AnyConnect-win-4.msi. The MSI package was a legitimate Cisco AnyConnect VPN installer, which was subsequently executed via the ShellExecuteW API, making the user believe the custom dropper was a legitimate application.

While the Cisco AnyConnect installer was decompressed and executed, SharkLoader components were silently dropped into directories in %APPDATA% different from %APPDATA%\reports\ in the background, executing the malware loader once the installation process completes.

Malicious Cisco Secure Client installer
Malicious Cisco Secure Client installer

In addition to installer-themed lures, several SharkLoader droppers use decoy PDF documents to persuade victims to open the malicious file. However, not all samples employ this technique, as some droppers function solely as a delivery mechanism for SharkLoader without presenting any lure content.

Among the samples analyzed, most droppers write the decoy PDF to a subdirectory named aswerf within the %TEMP% directory, while others save the document directly to %TEMP%.

Analysing the sample shows the PDF files are stored within the dropper’s resource section under the resource name TELEMETRY and are compressed with zlib. Upon execution, the dropper extracts and decompresses the embedded PDF, writes it to disk using the same filename as the dropper executable but with a PDF extension, and launches it via cmd.exe /c to display the decoy document to the victim.

The following are examples of PDF documents extracted and displayed by the droppers during the deployment of SharkLoader.

Lure document 1. The document appears to be related to a biological treatment process and was produced by an engineering consultant
Lure document 1. The document appears to be related to a biological treatment process and was produced by an engineering consultant

Lure Document 2. Translated title: Liquid Rocket Engine Design Program
Lure Document 2. Translated title: Liquid Rocket Engine Design Program

In one dropper sample, discovered on a machine located in Lebanon (MD5: 1F65544978B8EA0E745E573B8EE9684B), the dropper extracts and decompresses SystemSettings.dll from zlib-compressed data embedded within the binary and writes it to %APPDATA%\xwreg. It also extracts and decompresses DscCoreR.mui and SyncRest.dat from resources named VAULTSVCD and UMRDPRDAT, respectively, and writes them to the same directory.

The dropper extracts SystemSettings.dll from the binary and retrieves encrypted components from the resource section
The dropper extracts SystemSettings.dll from the binary and retrieves encrypted components from the resource section

The dropper then copies the legitimate SystemSettings.exe application from C:\Windows\ImmersiveControlPanel to the target location to facilitate DLL sideloading. Across other SharkLoader dropper samples analyzed, the malware components were observed being written to either %APPDATA%\xwreg or %APPDATA%\xgdf.

SharkLoader installation


SharkLoader is composed of multiple components that work together to load and execute the final implant, a Cobalt Strike Beacon.

FilenameDescription
SystemSettings.exeLegitimate Windows application abused for DLL side-loading of the
malicious DLL SystemSettings.dll.
SystemSettings.dllMain malicious SharkLoader DLL responsible for the core loader functionality.
DscCoreR.muiAn encrypted module that contains an embedded Cobalt Strike Beacon and the MinHook library. This module loads SyncRes.dat, installs a couple of API hooks, and executes the Beacon directly in memory.
SyncRes.datAn encrypted DLL that is used to install multiple API hooks.

While the majority of SharkLoader samples analyzed rely on the sideloading of SystemSettings.dll, other variants leverage alternative DLL side-loading targets, including msedge.dll, PrintDialog.dll, and miracastview.dll, each of them leveraging a corresponding legitimate application.

Across the different variants examined, the encrypted modules were also observed using a variety of filenames, including:
GameInputInboxs32.mui
diagerr.xml
NtfsLog.etl
Ignored.Dat
VistaCompat.nls
The SharkLoader execution flow is as follows:

SharkLoader infection chain observed in the StrikeShark campaign
SharkLoader infection chain observed in the StrikeShark campaign

In the dropper-based infections, after deploying all required SharkLoader components, the dropper creates two scheduled tasks through the Windows Task Scheduler COM interfaces. Task names:

  • OneDrive Standalone Update Task-S-1-5-21-4165425321-4153752593-2322023643-1000
  • MicrosoftUpdateTaskUserS-1-5-32-2456537112-101246289-228944324-1000

Both tasks are configured to execute the copied SystemSettings.exe from the malware’s working directory (for example, %APPDATA%\xwreg or %APPDATA%\xgdf), triggering the side-loading of the malicious SharkLoader DLL.

The first scheduled task uses a time-based trigger that executes every five minutes, providing long-term persistence.

The second task is configured to execute every second, likely to ensure immediate execution of SharkLoader following deployment.

After a delay of approximately 1.5 seconds, the dropper removes the second scheduled task by using the Task Scheduler COM interfaces, leaving the first task in place to maintain persistence on the system.

SharkLoader DLL – Main implant


For the detailed analysis of the infection chain, we’ll focus on the SharkLoader components deployed by a malicious dropper named 一种异常状况的截图(包括操作系统和输入法版本).pdf.exe (MD5: 24FCEBDEECBA65004FDB0923763D74FD), which was identified in a campaign targeting a government entity in Taiwan.

FilenameMD5
SystemSettings.exeD98F568496512E4F98670C61C97CB07A
SystemSettings.dllAA3086BE652C8B20B0B29B2730D57119
DscCoreR.muiA514D1BB62D7916475946FE7C07AC0AA
SyncRest.dat9CBD560F820C95D7C38342CD558CB5C6

“PerfectDLL Hijacking” technique


Once the malicious DLL is loaded, SharkLoader implements a technique commonly referred to as “Perfect DLL Hijacking” and originally described by a security researcher named Elliot Killick on his blog. The purpose of this technique is to bypass the Windows loader lock and safely create a malicious thread via the CreateThread API without risking a deadlock.

According to Microsoft’s Dynamic-Link Library Best Practices, the Windows loader holds a synchronization object known as the “loader lock” while executing the DllMain function. This mechanism ensures that only one thread can perform DLL loading and initialization operations within a process at any given time. As a result, invoking APIs such as CreateThread or LoadLibrary from within DllMain can lead to deadlocks because the loader lock remains held throughout the execution of the function.

To avoid this issue, SharkLoader manipulates the process’s internal loader state to release the loader lock before invoking CreateThread from the DllMain execution path. By doing so, it attempts to execute its malicious code without triggering the loader-related deadlocks that can occur when threads are created while the loader lock remains held.

Implementation of the Perfect DLL Hijacking technique to bypass the Windows Loader Lock
Implementation of the Perfect DLL Hijacking technique to bypass the Windows Loader Lock

Based on the code, SharkLoader first resolves the addresses of several undocumented loader structures within ntdll.dll, including:

  1. LdrpLoaderLock: the critical section object used by the Windows loader to synchronize module loading and initialization operations
  2. LdrpWorkInProgress: an internal loader state variable that tracks whether module initialization is currently in progress

After locating these structures, SharkLoader forcefully releases the loader lock by invoking LeaveCriticalSection on LdrpLoaderLock. It then decrements the value of LdrpWorkInProgress with InterlockedDecrement64, effectively marking the initialization process as complete.

Finally, the malware signals the loader completion event via SetEvent before creating a new thread to execute its malicious functionality. As a result, these actions manipulate the loader’s internal state and cause Windows to treat the DLL initialization process as having completed successfully. This allows SharkLoader to continue execution after forcefully releasing the loader lock, despite still operating from within the DllMain execution path.

Decryption and loading of >DscCoreR.mui


As shown in the previous section, the loader creates a new thread after escaping the Windows loader lock. This thread subsequently spawns a second thread responsible for decrypting and reflectively loading the encrypted file, DscCoreR.mui.

The routine first reads the encrypted file into memory and extracts the first 16 bytes to use as the Blowfish decryption key. It then initializes the Blowfish cipher by using custom P-array and S-box constants embedded in the loader and decrypts the file in ECB mode with the extracted key. Once decryption is complete, the resulting PE file is reflectively loaded into memory and executed without being written to disk.

Structure of the encrypted DscCoreR.mui file containing the 16-byte Blowfish key bytes followed by the encrypted PE bytes
Structure of the encrypted DscCoreR.mui file containing the 16-byte Blowfish key bytes followed by the encrypted PE bytes

The decrypted DscCoreR.mui file is a packed PE file with its MZ header removed, likely as an anti-analysis measure. After decryption, SharkLoader processes the PE image by parsing its headers, allocating memory for the image, mapping its sections, applying relocations, resolving imported functions, and setting the appropriate memory protections. Once the in-memory PE loading process is complete, the main loader, SystemSettings.dll, transfers execution to the entry point of the mapped image, which contains the packer stub.

The stub then unpacks the protected code, invokes the DLL’s DllMain function, and returns execution to SystemSettings.dll. Finally, SystemSettings.dll calls the exported function SetUserProcessPriorityBoost from the mapped DLL, triggering execution of the fully unpacked next-stage DLL.

DscCoreR.mui and SyncRes.dat DLLs


Within the decrypted and unpacked DscCoreR.mui code, the malware proceeds to load and decrypt a second encrypted file, SyncRes.dat, before reflectively loading the resulting DLL into memory.

The mapped DLL installs multiple API hooks by using Microsoft Detours, which will be discussed in the next section.

After mapping and loading SyncRes.dat for API hooks, the DscCoreR.mui performs installation of the Vectored Exception Handler (VEH) and then creates a thread in a suspended state that is later used to execute the Cobalt Strike Beacon shellcode. Additionally, to facilitate additional API hooks, it decompresses and loads the MinHook library and uses it to install hooks on the VirtualAlloc and Sleep APIs.

The DscCoreR.mui then decompresses the Cobalt Strike Beacon shellcode into the memory region associated with the suspended thread and then the suspended thread is resumed, resulting in execution of the beacon.

Decryption and loading of SyncRes.dat


To decrypt SyncRes.dat, the malware extracts a 16-byte AES-128 key and a 16-byte initialization vector (IV) directly from the file itself. The first 16 bytes of the file contain the AES key, while the subsequent 16 bytes contain the IV. The remaining file content consists of AES-encrypted data, which is decrypted using the extracted key and IV. Once decrypted, the resulting data reveals a PE image with its MZ header removed, similar to DscCoreR.mui.

Structure of the encrypted SyncRes.dat file showing the AES key, IV, and encrypted PE bytes
Structure of the encrypted SyncRes.dat file showing the AES key, IV, and encrypted PE bytes

Similar to the decrypted DscCoreR.mui module, the decrypted SyncRes.dat file is also protected by an unknown custom packer. After decryption, the loader reflectively loads the PE image before transferring execution to the module’s entry point.

The entry point contains a packer stub responsible for unpacking the protected code in memory. Once the unpacking routine is complete, the malware invokes a specific exported function named StartEngineData, which serves as the primary execution routine of the third-stage DLL.

Before continuing with the DscCoreR.mui analysis, we will first discuss SyncRes.dat.

SyncRes.dat decrypted DLL: Multiple API hooks


The decrypted and unpacked SyncRes.dat DLL is primarily responsible for installing multiple Windows API hooks by using the Microsoft Detours library. After attaching all detour hooks, it calls DetourTransactionCommitEx to apply them in one commit.

The following table lists the hooked Windows APIs and their corresponding hook handler functions.

Hooked Windows APIsDetour function description
CreateProcessA
  • Saves all original CreateProcessA parameters for use in the parent process (PPID) spoofing routine.
  • Creates a new thread that executes the process creation routine responsible for PPID spoofing.
    • Falls back to the original CreateProcessA if the thread creation fails.


  • Identifies an svchost.exe process that has the same security context as the current SharkLoader process.
  • Builds an extended startup attribute list to set the selected svchost.exe as the spoofed parent.
  • Calls the original CreateProcessA with the modified parent attribute.

As a result, any new process created by the current process (primarily from the Cobalt Strike beacon) is spawned under svchost.exe instead of the current module process.

CreateProcessW
  • Saves all original CreateProcessW parameters for use in the PPID spoofing routine, which is executed through an APC-based mechanism rather than a dedicated thread compared to the CreateProcessA API hook.
  • Schedules a delayed process creation (10 microseconds) through APC execution using CreateWaitableTimerW and SleepEx.
    • The timer callback performs the svchost.exe PPID spoofing logic, similar to the CreateProcessA spoofing routine.


As a result, new processes created via CreateProcessW by the current process (primarily from the Cobalt Strike beacon) are launched under svchost.exe through an APC-based execution mechanism

OpenProcessToken
  • Once hooked, the malware initializes jitasm to construct a direct syscall stub for NtOpenProcessToken at runtime.
  • Invokes NtOpenProcessToken through the constructed direct syscall stub, redirecting the original API (OpenProcessToken) call flow.
AdjustTokenPrivileges
  • Redirects the API call to a direct NtAdjustPrivilegesToken syscall stub constructed by jitasm.
OpenProcess
  • Redirects the API call to a direct NtOpenProcess syscall stub constructed by jitasm.
WriteProcessMemory
  • Redirects the API call to a direct NtWriteVirtualMemory syscall stub constructed by jitasm.
NtCreateUserProcess
  • Redirects the API call to a direct NtCreateUserProcess syscall stub constructed by jitasm.
LoadLibraryA
  • Redirects the API call to a function that resolves LdrLoadDll API using a ROR13-based API hashing algorithm.
  • Uses the original parameters to invoke LdrLoadDll directly.
  • If LdrLoadDll resolution or invocation fails, uses CreateTimerQueue and CreateTimerQueueTimer to schedule a 10-millisecond delayed execution of the original LoadLibraryA, with CreateEventW used for synchronization.
GetModuleHandleA
  • Redirects the API call to a custom function that resolves the module base address through the following steps:
    • Enumerates loaded modules within the current process using CreateToolhelp32Snapshot, Module32FirstW, and Module32NextW.
    • Compares each enumerated module name with the module name provided in the API parameter.
    • Returns the module base address if a match is found.


  • Falls back to the original GetModuleHandleA API if the custom resolution routine fails.
GetModuleHandleW
  • Similar approach to the GetModuleHandleA API hooks above.
GetProcAddress
  • The original GetProcAddress parameters are passed to the hook handler.
  • The hook handler computes a Murmur32 hash of the requested function name.
  • The hook handler parses the module’s PE structure and locates the export table.
  • Each exported function name is hashed using the same Murmur32 algorithm and compared against the previously generated hash.
  • If a hash match is found, the corresponding function address is returned. If no match is found, the call falls back to the original GetProcAddress.
LoadLibraryExA
  • The hook handler redirects the API call to its original address. In short, the hooked LoadLibraryExA calls the original LoadLibraryExA function.
VirtualAllocEx
  • Redirects the API call to a direct NtAllocateVirtualMemory syscall stub constructed by jitasm.
VirtualProtectEx
  • Redirects the API call to a direct NtProtectVirtualMemory syscall stub constructed by jitasm.
VirtualProtect
  • Redirects the API call to a direct NtProtectVirtualMemory syscall stub constructed by jitasm.
ResumeThread
  • Redirects the API call to a direct NtResumeThread syscall stub constructed by jitasm.
GetThreadContext
  • Redirects the API call to a direct NtGetContextThread syscall stub constructed by jitasm.
OpenThread
  • Redirects the API call to a direct NtOpenThread syscall stub constructed by jitasm.
NtCreateThread
  • Redirects the API call to a direct NtCreateThread syscall stub constructed by jitasm.
NtCreateThreadEx
  • Redirects the API call to a direct NtCreateThreadEx syscall stub constructed by jitasm.
NtQueueApcThread
  • Redirects the API call to a direct NtQueueApcThread syscall stub constructed by jitasm.
NtQueueApcThreadEx
  • Redirects the API call to a direct NtQueueApcThreadEx syscall stub constructed by jitasm.
ExpandEnvironmentStringsA
  • The detour redirects the API to a custom function that creates a new thread. That thread executes a routine that calls the ExpandEnvironmentStringsA API.
CreateFileMappingA
  • The detour redirects the API call to a custom function that creates a new thread. Within the thread, it initializes thread-pool and timer objects, sets a threadpool timer for 10 ms and a waitable timer for 0.1 ms, then calls CreateFileMappingNumaA.
  • If thread creation fails, CreateFileMappingNumaA is called directly without creating a thread.
MapViewOfFile
  • The detour redirects the API call to a custom function that creates a new thread. The thread runs a similar thread-pool and timer setup to the previous function, resolves MapViewOfFileEx via GetProcAddress, calls it with zeroed arguments, and stores the return value.
UnmapViewOfFile
  • The detour redirects the API to a function that tries to run the unmap (same API) in a new thread.
  • The thread creates an event and timer queue, schedules a callback after 10 ms to call UnmapViewOfFile and signal the event, then waits and cleans up.
  • If thread creation fails, it calls UnmapViewOfFile directly.
NtMapViewOfSectionEx
  • Redirects the API call to a direct NtMapViewOfSectionEx syscall stub constructed by jitasm.
NtCreateNamedPipeFile
  • Redirects the API call to a direct NtCreateNamedPipeFile syscall stub constructed by jitasm.
NtReadFile
  • Redirects the API call to a direct NtReadFile syscall stub constructed by jitasm.
NtWriteFile
  • Redirects the API call to a direct NtWriteFile syscall stub constructed by jitasm.
EtwEventWrite
  • The detour redirects EtwEventWrite to a stub that always returns 1, which prevents ETW logging.
EventWriteEx
  • The detour redirects EventWriteEx to a function that always returns 0, which prevents ETW logging.
EventWrite
  • The detour redirects EventWrite to a function that always returns 0, which prevents ETW logging.

Upon completing the installation of API hooks via the decrypted SyncRes.dat, the DscCoreR.mui DLL proceeds with the remaining functions, which are discussed below.

VEH registration and access violation handling


Following the installation of the API hooks, the malware registers a Vectored Exception Handler (VEH) to monitor exceptions generated during runtime. The handler specifically checks for access violation exceptions (0xC0000005). When such an exception occurs, it retrieves the faulting memory address from the exception record and calls VirtualProtect to restore read, write, and execute (RWX) permissions to the corresponding memory page before resuming execution.

During our analysis, no access violations were observed. It is possible that this mechanism is intended to handle access violations that may occur under specific runtime conditions.

Thread creation for Cobalt Strike Beacon execution


The malware creates a new thread in a suspended state that is intended to execute the Cobalt Strike Beacon shellcode. The thread entry point is configured to point to a memory buffer that will later contain the beacon shellcode.

At this stage, the buffer does not yet contain the actual Cobalt Strike Beacon shellcode. Instead, the thread is created in a suspended state so that the malware can prepare and inject the shellcode into the buffer before execution. Once the beacon payload has been written into the buffer, the malware resumes the suspended thread using the ResumeThread API, which triggers the execution of the Cobalt Strike beacon.

MinHook DLL, API hooking, and Cobalt Strike beacon


After creating the suspended thread for beacon execution, the malware decompresses a zlib-compressed MinHook PE file embedded within DscCoreR.mui. The MinHook library is used to install API hooks for the VirtualAlloc and Sleep functions. Once the MinHook DLL is decompressed and loaded into memory, the malware resolves the exported functions MH_Initialize and MH_CreateHook, which are then used to install hooks on the VirtualAlloc and Sleep APIs.

After the hooks are installed, the malware invokes a function that decompresses a zlib-compressed Cobalt Strike Beacon shellcode embedded within the malware. The function first decompresses the shellcode into a temporary buffer and then allocates executable memory using VirtualAlloc with RWX permissions. The decompressed beacon is subsequently copied into the allocated memory region.

Because the VirtualAlloc API has already been hooked at this stage, the hook handler captures the address and size of the allocated memory used to store the beacon shellcode. The hook records the addresses and sizes of the first three successful memory allocations and stores these values in global variables to track specific memory regions allocated during execution. These tracked regions are associated with memory buffers used by the Cobalt Strike Beacon during runtime.

The second hook, on the Sleep API, is used when Cobalt Strike Beacon calls Sleep, such as during beacon sleep intervals. It temporarily modifies the memory protection of the tracked allocation regions by using VirtualProtect, changing their protection to PAGE_READWRITE (RW) before invoking the original Sleep function. After the sleep period ends, the malware restores the memory protection of those regions to PAGE_EXECUTE_READWRITE (RWX). This behavior suggests that the malware developer implemented this mechanism to evade memory scanning techniques that identify executable (RWX) code regions in memory.

Finally, after the API hooks are installed and the Cobalt Strike Beacon shellcode has been written to the thread buffer, the malware calls the ResumeThread API to resume the suspended thread and begin execution of the beacon.

Persistence mechanism


While the analyzed SharkLoader implant does not contain a built-in persistence mechanism especially when it comes to cases when it is dropped after the exploitation of a public-facing application, our investigations revealed that the threat actor employs several techniques to maintain access to compromised systems.

Registry Run key: In the incident that affected an organization in Hong Kong, the attacker manually created a registry Run key to launch SystemSettings.exe upon user logon. The following command was used:
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "MFUpdate" /t REG_SZ /d "$appdata\Identities\SystemSettings.exe" /f
This technique allows the malware to automatically execute whenever the user logs in, ensuring persistent access.

Scheduled task: In the separate compromise that affected a diplomatic government entity in Indonesia, the attacker established persistence through a scheduled task configured to execute SharkLoader daily. The task, named "\Microsoft\Windows\Edge\Edgeupdate", was configured to run C:\ADriveLogs_Logs\SystemSettings.exe by using the following command:
Schtasks /create /s /u "" /p "" /ru "SYSTEM" /tn "\Microsoft\Windows\Edge\Edgeupdate" /sc DAILY /tr "C:\ADriveLogs_Logs\SystemSettings.exe /F"
Running the task with SYSTEM privileges ensures that SharkLoader executes even if no user is logged in.

Post-compromise activity


Following initial compromise and persistence, the attacker engaged in extensive reconnaissance and credential theft activities.

System information enumeration: The attacker initially gathered basic system information by using the following commands:
systeminfo
ipconfig /all
tasklist /svc
Post-exploitation tools: Our analysis revealed the use of several third-party post-exploitation tools, most of which are open-source and developed by Chinese-speaking developers. These tools included:

Tool nameDescription
FScanNetwork scanner tool with vulnerability
exploitation modules
SearchallSensitive information search tool
PillagerInformation gathering tool

We also detected the use of SharpGPOAbuse by the threat actor, a tool designed to modify Group Policy Objects within Active Directory environments.

Active Directory enumeration: In the compromise affecting a diplomatic government entity in Indonesia, the attacker used both Cobalt Strike and a webshell to enumerate the internal Active Directory environment. They executed a series of commands to gather information about the network, users, and groups:

  • Network information:
    ping -n
    netstat -ano
    arp -a
    net share
  • User and group information:
    query user
    nslookup
    quser
    net group /domain
  • Specific group membership:
    powershell "Get-ADGroupMember -Identity "" -Recursive | Select-Object Name, ObjectClass"
    dsquery group -name "" | dsget group -members -expand | dsget user -samid -display -email"
    powershell "Get-ADGroupMember -Identity "" -Recursive | Where-Object { $_.ObjectClass -eq "computer" } | Select-Object Name, SamAccountName"
    powershell -exec bypass -c "Get-ADUser -Filter * -Prop * | select sAMAccountName
    net group "Domain Controllers" /domain
    net group "Enterprise Admins" /domain
    net group "Organization Management" /domain
    net group "domain admins" /domain
  • Process enumeration:
    tasklist /SVC | findstr $selfname.exe
  • Directory listing:


dir \\c$
dir \\c$\inetpub
dir \\c$\inetpub\custerr
dir \\c$\inetpub\wwwroot\
Credential dumping: The attacker also attempted to dump credentials from the compromised machine by targeting both the LSASS process and the NTDS database file. The following commands were observed:
ntdsutil "ac i ntds" "ifm" "create full $temp" q q
Procdump64.exe -accepteula -ma lsass.exe $temp\lsass.dmp
Dumping the LSASS process allows the attacker to extract in-memory credentials, while accessing the NTDS database enables retrieval of Active Directory account password hashes. This combination of techniques allows the attacker to obtain privileged credentials for lateral movement, privilege escalation, and deeper compromise.

Victimology


The victimology observed in this campaign shows a combination of strategic and opportunistic characteristics. Confirmed victims include government-related entities, such as the ministry in Taiwan and the diplomatic organization in Indonesia, as well as software development companies in Taiwan, Lebanon, and Syria. Additional affected organizations were identified in Hong Kong, Colombia, Macedonia, Nepal, and Serbia.

Targeting of government and software development organizations may indicate a cyber-espionage objective, although our confidence remains low due to the limited post-compromise activity observed, which primarily consisted of credential access, system reconnaissance, and lateral movement. The compromise of government and software development organizations could indicate an interest in gathering political intelligence or intellectual property.

At the same time, the use of SharkLoader and Cobalt Strike, alongside the exploitation of public-facing applications and malicious installers and droppers, suggests the attacker may also be opportunistically targeting vulnerable systems. The absence of clear evidence of data exfiltration thus far does not exclude this possibility, as Cobalt Strike’s file operation and data exfiltration modules could be employed at a later stage.

Although the full scope of the campaign is not yet known, the combination of targeted and opportunistic activity suggests it should continue to be closely monitored.

Attribution


Our investigation reveals no code or infrastructure overlap linking SharkLoader to any existing threat actor at this time. The TTPs employed during the operation also do not align with those of known actors.

However, analysis of the post-exploitation open-source tools used during the campaign revealed that several reconnaissance tools, including FScan, Searchall, and Pillager, were developed by individuals identified as Chinese speaking developers on GitHub.

We assess StrikeShark to be a Chinese-speaking threat actor with low confidence. This assessment is based on limited indicators and should be considered preliminary. Further investigation is required to characterize this cluster more fully, and the possibility remains that other actors may also be utilizing these tools.

Conclusion


Our investigation discovered a previously undocumented intrusion cluster that we are tracking as StrikeShark. The StrikeShark campaign represents a sophisticated malware threat to entities worldwide. The use of SharkLoader to deploy Cobalt Strike, coupled with API hook installation to evade detection, demonstrates a significant level of technical expertise. The campaign’s broad targeting across sectors and geographic regions suggests a potential focus on espionage or information gathering. While the precise objectives remain under investigation, the combination of targeting government entities and software developers warrants heightened vigilance.

Given that our visibility is limited to incidents observed through Kaspersky telemetry, we suspect the actual number of compromises may be significantly higher and extend beyond these victims as the threat actor actively used several exploitations of public facing application.

Indicators of compromise


Additional information about this activity, including indicators of compromise, is available to customers of the Kaspersky Intelligence Reporting Service. If you are interested, please contact intelreports@kaspersky.com.

C559CC68986933200FD5D9E4388E2F58 Installer
B3352B42432DEDC4A519F011DC8B5D5A Dropper
24FCEBDEECBA65004FDB0923763D74FD Dropper
9C872A0D5D5A38950E8B9AC9B488BE3F SharkLoader DLL
AA3086BE652C8B20B0B29B2730D57119 SharkLoader DLL
A514D1BB62D7916475946FE7C07AC0AA Encrypted file
9CBD560F820C95D7C38342CD558CB5C6 Encrypted file
connect-microsoft[.]com
ms-record[.]com
ms-record[.]top
ms-tray[.]top


securelist.com/strikeshark-cam…


One Commodore, Five Displays


The media in this post is not displayed to visitors. To view it, please log in.

If you had one monitor back in the 8-bit era, instead of having to wait to use the family TV, you were already amongst the blessed. If you had five, maybe you worked at a computer store– but if you did, you could have done what [The 8-Bit Guy] demonstrates in a recent YouTube video and plug all five (5) monitors into a Commodore 128.

The computer isn’t modified in any way– well, except for the now standard use of an SD card disk emulator– so what gives? Well, you probably guessed he’s splitting up the colour signal into multiple monochrome images, but since the C128 actually has an RGBI, that I– intensity– actually gives another signal that can be broken out. That makes for four screens being driven from that port via composite, all sharing the same sync. The hardware for that was actually designed for [The 8-Bit Guy] by [Joe Burks] who open sourced the design on GitHub. He’s also selling them on Lectronz.

The fifth screen, of course, is driven by the VIC-II chip that Commodore provided for composite output to begin with. The interesting part is as much the software as the hardware, and while [The 8-Bit Guy] explains some of the thinking behind what he’s doing, he doesn’t link to any BASIC. If you know your way around a Commodore, you should be able to encode the multi-colour images required to do the splits.

For the people who prefer “real computers” — that is IBM compatible PCs– [The 8-Bit Guy] goes a bit outside of his 8-bit comfort zone to demonstrate that this same trick works quite well with the 16-color modes of EGA. With sixteen colours split between the two monitors, you of course get two colours each– combine the dithering with the blur of an old CRT, and it looks better than it has any right to. Just note that you need to have the right EGA card, as some blocked the 16-colour modes when set to output IRGB/CGA– he used a Trident card to good effect. The software here, though, was just Deluxe Paint, which can’t stop winning, even after four decades.

The hack seems simple enough, and perhaps everyone knew about it back in the day, but this is the first time seeing it for this author. So we’ll leave it to the comments: have you ever seen a 5-display Commodore, or 4-screen EGA output done like this?

Of course CGA had some competition back in the 80s, and it would be fun to see how many retro standards this trick would work on; at the end of the video [The 8-Bit Guy] discusses splitting VGA signals, but that’s only three screens and way too new for him. If one of you takes up his challenge, please let us know.


hackaday.com/2026/06/23/one-co…


EVs Always Beat Combustion Emissions Performance


The media in this post is not displayed to visitors. To view it, please log in.

A heat map of the US showing the difference in emissions between an EV and ICE or EV and PHEV by county. Rural areas, particularly in Colorado in Wyoming seem close to no difference (in blue) whereas densely-populated areas on the coasts are colored on the red end of spectrum exceeding a 70% emissions reduction over ICE vehicles.

A pervasive story is that electric vehicles (EVs or BEVs) are actually dirtier than combustion vehicles if charged by a fossil fuel-based electricity grid. A new study reaffirms others that show, at least in the US, EVs have lower lifetime emissions than an internal combustion engine (ICE) vehicle, regardless of the grid mix.

Comparing data on the mix of generation types by ZIP code using data from OpenGrid and eGRID, the researchers were able to create maps and comparisons of the efficiency of ICE, hybrid, plug-in hybrid (PHEV), and electric vehicles. If you want to compare some specific examples, there’s an interactive chart using the research data at carboncounter.com.

PHEVs can achieve 80-90% of the emissions reductions of a full EV in urban environments, but become less beneficial as distances increase or if drivers choose not to charge the battery. The researchers have extensive breakdowns of the comparisons including total cost to operate the vehicle compared with emissions if you want to look more in the paper. Emissions benefits are particularly noticeable in larger vehicle classes or with drivers who put more miles on their cars.

Although it’s unlikely to change anytime soon, they also note that if the industry trend toward larger and larger vehicles were to be reversed, emissions targets could be hit with much fewer hybrids and EVs at the current grid mix. The advantage of full EVs is that they get cleaner as the grid gets cleaner, unlike combustion vehicles that typically get worse as their emissions systems degrade.

If you’re not ready for an EV, maybe you’d like to reuse a pack for a house battery. If you’re feeling more adventurous, then maybe try out an EV conversion that still needs oil changes?


hackaday.com/2026/06/23/evs-al…


A Commodore Boombox: The 1350 as You’ve Never Heard it Before


The media in this post is not displayed to visitors. To view it, please log in.

No, this isn’t another product from [PeriFractic]’s revived company, though we hope he’s taking notes. This is, in fact, a hack on the beloved 1530 Datasette, using the tape mechanism and case to create a portable audio device for your precious remaining mix tapes. Well, [Jan Derogee]’s precious mix tapes, at any rate; we aren’t the government, we don’t know if you have any tapes, mixed or otherwise.

[Jan] started, obviously enough, with a Datasette, but they key was apparently to use a Made-in-Japan model– the Made-in-Taiwan units are a later development and victims of the old Commodore’s infamous obsession with cost-cutting. The main difference is that the Japanese-built Datasettes have two sets of screws: one to hold the tape mechanism in place, and the other to hold two halves of the case together. The Taiwanese units make one set do double duty. Doubtless more was saved through streamlining assembly than the cost of four screws, but either way it made those models difficult to work with for [Jan]’s purposes.

As you likely can tell from the photo, he simply splits the case, allowing the tape transport to remain in place with those Japanese screws, and inserts a 3D printed spacer to hold speakers, audio amplifiers, and a bay for AA batteries. For the people who really care about such things, the mod appears to be fully reversible, though you won’t be able to use it as data entry for your C64 until you do reverse it. Given how slow and dodgy tape loads could be, though, that’s not likely to bother many people, since it’s so much easier to load media onto the old breadbox from an emulated tapedeck.

If, on the other hand, you can’t stand the idea of using a Datasette for anything but data storage, maybe you should try connecting yours to a modern PC to remind yourself what it was really like. In either case, you can check out the 1530 Boombox at the link above or the video embedded below. For the actual Commodore product we didn’t see coming, click here for the phone.


hackaday.com/2026/06/23/a-comm…


Reviving MSN Messenger’s i-Buddy USB Accessory


The media in this post is not displayed to visitors. To view it, please log in.

Some of our esteemed readers were not yet out of diapers back in 2013 when Microsoft decided to put MSN Messenger out to pasture, but the memories that this instant messenger’s (IM) interface and notification sounds have left are hard to erase. This also includes some of the weirdest accessories that this IM spawned, such as the USB-connected i-Buddy. Recently [Rayly Retro] got his mittens on a new-in-box one to revive alongside an era-appropriate Windows 7 PC.

What the i-Buddy gets you is the ability to light up the head in seven different colors, twist the torso and flap the butterfly wings, all of which can correspond to certain events in the MSN IM or for more general notifications, as set by software running on the connected PC. Interestingly, this i-Buddy is recognized by Windows as a USB HID, so no special driver is needed. A range of ways to program it exist too, including a .NET-based library from back when it was still being sold for around $20.

Although the MSN Messenger network’s servers have long since been dumped into an e-waste dumpster over at Microsoft HQ, an alternative exists in the form of the Escargot service using which a range of official clients can work again.

In the video it’s demonstrated how to create a user account with the Escargot site and how to patch the messenger – here Window Live Messenger 2009 – before signing in. With that step completed, getting the i-Buddy up and running is next. This took a lot of struggling, since the version of the i-Buddy software that comes with the device didn’t like Windows 7 much. Fortunately an old forum post led to a download of version 2.10, using which the gadget jumped to life, happily lighting up and flapping its wings.

youtube.com/embed/Tj-VS00qbIk?…


hackaday.com/2026/06/23/revivi…


A BIOS For Your ESP32-C6


The media in this post is not displayed to visitors. To view it, please log in.

An old-style PC BIOS served the function of a bootloader in loading the operating system kernel, and of an API in providing a set of standard system calls through which software could interact with the hardware. Though it as been long-ago superseded by operating system level calls and UEFI bootloaders, it was a simple and easy-to-understand firmware for the PCs of the day.

Microcontrollers usually don’t have anything quite like a BIOS because their software is more often compiled as-is without the need for one. But here’s [Rompass] who has bucked that trend, with a BIOS for the ESP32-C6.

Of course this isn’t the PC BIOS we all know, and you’ll not be running DOS on it. Instead it’s a subsystem that serves the purposes outlined above and provides an environment for dynamically loaded executables from RAM rather than an operating system kernel. The executables are compiled in the normal way for the ESP32, and can be loaded over the network if necessary.

We don’t know how popular a firmware like this one will become, but for us it’s symptomatic of how the line between a microcontroller and a microprocessor is becoming blurred. The next few years are going to continue this trend, as inexpensive microcontroller application processors such as the C6’s P4 bigger brother move into the mainstream.


Header image: Popolon, CC BY-SA 4.0.


hackaday.com/2026/06/23/a-bios…


A Custom PCB for the Casio G-Shock


The media in this post is not displayed to visitors. To view it, please log in.

With the PCB fabrication services available to the modern hobbyist, it’s become increasingly common to see replacement boards designed for all sorts of devices. Even so, it’s sometimes still a little difficult to believe that we’re at the point where hardware hackers are now producing advanced replacement PCBs for commercial wristwatches such as this drop-in upgrade for the iconic Casio G-Shock by [David Volovskiy].

Honestly, we’d have been impressed if the thing could just tell the time. But the replacement board combined with the open source firmware brings new capabilities that far exceed anything the G-Shock was capable of originally. The upgraded watch now offers several applications, such as a pedometer and a number of games including simplified versions of Blackjack and Wordle. The watch can tell you the phase of the Moon, calculate sunrise and sunset, and display values pulled from the internal thermometer.

Even if you don’t have a G-Shock in need of a new PCB, [David] has put together a web-based emulator that lets you play around with the firmware. The online tool that lets you visualize how the watch’s LCD is mapped is also very slick. For those interested in getting a board of their own, you can join the project’s Discord server and get your name on the list for an upcoming production run.

If some of this sounds familiar, it’s because [David] based his project on [Joey Castillo]’s Sensor Watch, which is a replacement PCB for the Casio F-91W. With these two projects available for others to build from, one wonders how many other Casio watches might get their own upgraded hardware in the future.


hackaday.com/2026/06/23/a-cust…


Linux Fu: Upcycling an Old Router


The media in this post is not displayed to visitors. To view it, please log in.

You’re wandering through a thrift store and spot an old router for ten bucks. Worthless, right? But in this case, it was a Google OnHub, which, at the time, was pretty premium and still isn’t anything to sneeze at. Of course, Google abandoned it long ago, and it runs Chrome, so pass, right? Of course I didn’t. In fact, I bought two for less than $20. The question is always the same: what do you do with it?

OpenWrt will run on the device. That’s a good start, but merely replacing the firmware isn’t much of a project. The more interesting question is whether the hardware can still do something useful. I had a specific need: connect a wired workstation to a reasonably distant Wi-Fi network without running cable and without suffering the usual double-NAT headaches that come from turning the router into yet another subnet. For this, the OnHub turned out to be nearly perfect.

The Hardware


The OnHub was Google’s first Wi-Fi router, built by TP-Link and ASUS in different versions. Mine was the TP-Link model, and one was missing a bit of plastic cowl trim. Under the hood, it has a Qualcomm IPQ8064 dual-core processor — a dual-core ARMv7 — multiple radios, gigabit Ethernet, and enough memory to run OpenWrt comfortably: 1 GB of RAM and 4 GB of flash. The processor also has two network offload processors, but it isn’t clear to me that the stock OpenWrt build uses them.

These devices were expensive when new, but now show up regularly at thrift stores and surplus sales. Installing OpenWrt was straightforward. You do need to remove a screw that covers the magic switch at the bottom, but that’s not a big problem. You can just peel the rubber foot back if you don’t want to remove it. However, the interesting part came afterward.

Here’s what Google had to say about it back in the day, although you might prefer a teardown.

youtube.com/embed/0Yk-X4pOW6w?…

The Goal


The objective was deceptively simple. I wanted to connect the OnHub to my Wi-Fi network and have one or two Ethernet ports. I didn’t want to relay WiFi to WiFi since that is notoriously slow. I also wanted the PCs on the Ethernet to “feel” like they were on the main network, not on some NAT’ed subnet. That means the OnHub needed to relay DHCP as well as normal traffic seamlessly.

The case where you want to rebroadcast wireless to another wireless network is easy but slow. Another easy case is when you create a new subnet and let the router handle traffic between you and the main router, just as your normal router routes traffic to the Internet. But having double NAT is inefficient and massively inconvenient. Port forwarding is a pain. Device discovery is difficult. What I really wanted was a wired-to-wireless bridge.

Enter relayd


OpenWrt provides a package called relayd that creates essentially a pseudo-bridge between a wireless client interface and a wired LAN. I say “pseudo” because a true Layer 2 bridge isn’t possible with most Wi-Fi client modes. Instead, relayd performs a collection of tricks involving proxy ARP, DHCP relaying, and packet forwarding to create the illusion that everything is on the same network.

When it works, it works surprisingly well. The default configuration had a LAN interface, a WWAN interface, a WAN interface, and a WAN6 interface. For my purposes, I wanted to connect the regular WiFi to WWAN and I wanted the LAN to be on a different subnet than my main 192.168.1.x network. I set the LAN to 192.168.10.1 and forced the DNS to 8.8.8.8 so the router could access the Internet temporarily through WWAN, which was the only one that had a DNS server set by the main router. I also told the LAN to stop handing out DHCP addresses. That meant that, temporarily, I had to force my PC to 192.168.10.2 to be able to talk to the router.

The reason I needed all this setup is that relayd isn’t installed by default, so I used the router’s package management to install it along with a few other useful packages. (You can use opkg from the command line or the Web-based LuCI interface.) For that, the LAN needed Internet access and DNS resolution.

Once that’s installed, it is pretty easy to create a relay interface. Most of the default settings were OK; I just had to tell it to bridge LAN: and WWAN:. However, there is a “Local IPv4 address” which is supposed to give you an escape hatch to talk to the router becauseyou can’t get back to the 192.168.10.x network once the bridge is working.

So this IP address is one that the relay recognizes shouldn’t be routed. However, I didn’t find it reliable. My first attempt was to modify the main router’s DHCP to stop handing out addresses above .250. That would give me a few IP addresses I could use without fear of conflict, and I had picked 192.168.1.252.

Sometimes it worked. Sometimes it didn’t. I never figured out why. Instead, I just created a static IP interface for 192.168.1.252. That was enough to ensure I could always access the OnHub via that address. There is one catch, though. You don’t want any other traffic going there, so it is important to set that interface to 192.168.1.252 with a netmask of 255.255.255.255. In other words, that interface is ONLY for that address.

The workstation received an address from the main router and could communicate normally with devices elsewhere on the network. At least for IPv4.

The IPv6 Rabbit Hole


I noticed that my workstation was only getting an IPv4 address, but it usually got both IPv4 and IPv6. Practically, it didn’t matter, but I wanted to understand what was going on. After a bunch of packet captures, I realized that in addition to the default WWAN interface, I needed a WWAN6 interface that used DHCPv6. This was analogous to the default WAN6 interface that I wasn’t using.

I also had to modify the IPv6 DHCP server settings on WWAN and LAN even though I had the DHCP server turned off. In particular, the WWAN6 interface became the “designated master,” and both WWAN6 and LAN had all the IPV6 modes set to “relay mode” so they would pass setup traffic from the main network to the subordinate network.

At first, it didn’t work. Turns out I had created a WWAN6 interface for IPv6, but that interface was not assigned to the WAN firewall zone. As soon as WWAN6 was added to the WAN zone, everything started working.

The Result


Would a decade-old router still be useful? Surprisingly, yes.

The wireless connection negotiated around 700 Mbps PHY rate using 80 MHz channels with a WiFi7 TP-Link router. Actual throughput landed around 250 Mbps. That’s not record-setting performance, but it’s more than adequate for web browsing, SSH, remote development, backups, and general network use. It was also much better than I was getting with the motherboard’s WiFi or several USB adapters.

There were some tweaks. You’d think enabling packet steering should improve performance by distributing work across CPUs. On this hardware, it increased jitter noticeably. Disabling it produced more consistent latency with little impact on throughput.

After a fair amount of debugging, the final system worked. Of course, I had to keep going. I deleted unused interfaces and added lots of OpenWRT goodies like mindlna and tailscale. The minidlna server posed a few small problems, though.

Attaching minidlna to the LAN caused it to advertise a 192.168.10.x address which was, of course, unreachable. Attaching it to WWAN worked better. Again, tcpdump is your friend. The other problem is that if a USB stick is in the unit at power-up, it tries to boot from it. I’m still trying to work that out. As for tailscale, be sure to turn off the tailscale DNS or you’ll be sorry.

For reference, here was my final list of interfaces.
Andhe moral of the story: Next time you spot an abandoned router at a thrift store, don’t just ask whether OpenWrt will run on it. Ask what problem it can solve. I may turn the other unit into a usbip setup.


hackaday.com/2026/06/23/linux-…


Status Display Keeps Eye on Your Prusa Fleet


The media in this post is not displayed to visitors. To view it, please log in.

Whether you’ve been dragging an old MK2 or MK3 kicking and screaming into the present through the available upgrade paths, or recently picked up a CORE One, pretty much any of the 3D printers still being actively supported by Prusa are able to connect to the network for the purposes of remote monitoring and control. Although their printers can work entirely offline, Prusa offers a smartphone application as well as web interface that makes it easy to keep tabs on all the hot plastic action.

If you’ve got a few Prusa printers on the net and would like a dedicated interface for controlling them, check out this custom firmware for the BigTreeTech K-Touch and Panda Touch devices. These touch screen gadgets were originally intended for controlling printers running Klipper, but thanks to [Nomads Galaxy], they can now talk to Prusa printers either directly over the local network or through the Prusa Connect cloud API with a user interface that mimics the aesthetics of the official offerings.

As an added bonus, the new firmware still retains the ability to talk to Klipper printers and cloud-connected units from Bambu Labs. Though for the latter it looks like the setup is a bit more convoluted, and there’s always a chance that these unofficial projects could break if Bambu decides to really start playing dirty.

The project is entirely open source, and ready to flash binary images are available to install via several methods. Incidentally the two supported displays are apparently using the ESP32 under hood, so they could be useful toys for all sorts of applications outside the 3D printing realm.

We took a look at one of the aftermarket 3D printer controllers from BigTreeTech back in 2022, but it would appear fair to say that the state of the art has advanced considerably since then.


hackaday.com/2026/06/23/status…


Long-Theorized GPS Weakness Exploited on Large Scale


The media in this post is not displayed to visitors. To view it, please log in.

GPS has become fairly common in our everyday lives, not only able to pinpoint our locations on Earth but also as an incredibly accurate timekeeping method. But since these satellites are around 20,000 km above Earth, the received signals on the surface of the planet can be incredibly weak. This makes them prone to jamming and spoofing, a weakness of the technology that has long been known. Although attempts to mitigate these problems have been ongoing, there has recently been a large-scale attempt to interfere with these signals that put all mitigation efforts to the test.

One proposed way to improve resilience is to supplement existing GNSS systems with low-Earth-orbit navigation satellites. In this example, a company called Xona is using a satellite called Pulsar-0 that operates in low-Earth orbit (LEO) and provides positioning and timing signals that are around 100 times stronger than standard signals from GPS/GNSS satellites. It is able to receive GPS signals as well, ensuring the two systems agree on one another. And, because Pulsar’s navigation signals originate from LEO and are much stronger than conventional GNSS signals, Xona expects them to be significantly more resistant to jamming.

Beyond geopolitics, spoofing GPS has some applications in finding legendaries in Pokemon Go as well as making it fairly trivial to steal GPS-guided drones.


hackaday.com/2026/06/23/long-t…


Rickrolling the World Cup


The media in this post is not displayed to visitors. To view it, please log in.

A VLC media window with a live feed of a soccer field. Players are just starting to come off the sideline to play.

Sometimes, hacking requires a certain amount of restraint, especially when you find a system woefully unsecured. It would be so easy to play some pranks, but [bobdahacker] chose not to rickroll the entire FIFA World Cup.

The fun starts after [bobdahacker] signed up for a free FIFA agent profile. After a simple ID verification process, he had a login for the FIFA Agent platform, but they used the same account system across the whole organization in Microsoft Entra. When he tried to access the FIFA Football Data Platform system, it returned an error saying he had no assigned role to allow access. This was on the client side though, so he was able to bypass the error as the server didn’t block accounts without assigned roles.

Once inside, he found he was able to access not just the data, but had full control of the RTMP ingest URLs of all the FIFA matches. For those of us less conversant in streaming media protocols, “Those RTMP ingest URLs are the literal pipe from the stadium cameras to FIFA’s broadcast distribution chain. Camera -> RTMP ingest -> MediaKind -> broadcast partners -> your TV.” He could’ve shut off the feeds or injected whatever alternate stream he wanted, but instead chose to try contacting FIFA, their streaming contractor, and various law enforcement agencies since the World Cup was already underway when he made the discovery.

“Competitions, Matches, Teams, Tools, Exchange Platform, Analysis Dashboard, Commentator Information System, FIFA AI Pro, Admin” were also in the open. Live match scores could be changed, player bios, and any number of other stats could be modified. We’ll let you imagine the possibilities of what mischief could occur.

While rickrolling the world would be funny, a rickroll throwie will be a bit more circumspect. If you’re more interested in soccer/football than security hacks, we hope you enjoy this LEGO soccer tank or these robot soccer players and avoid any soccer ball-sized meteorites or legal troubles for your soccer-related invention.


hackaday.com/2026/06/22/rickro…


Dynamic RAM from First Principles


The media in this post is not displayed to visitors. To view it, please log in.

Before the past year, many of us took computer memory for granted. It was one of the lower-cost parts of a PC build and was usually available in whatever quantity one desired. As its cost has skyrocketed, a lot of PC builders and other users of computers in general are taking a deeper look at memory, how much is really needed, and what its functions truly are. [Igor] is working on a drum sequencer project which needs a small amount of memory, and has built this dynamic RAM from discrete components.

The first video goes into the construction of the memory array and how its addressed. It’s only eight bytes total, and using fairly large electrolytic capacitors to store data means that a gigabyte of this memory would take up well over a thousand acres, but it’s still enough memory for [Igor]’s needs. In addition to the capacitor, each bit uses a pair of diodes to determine if a read or write is occuring, and a set of transistors on the read and write busses to perform those actions. Worth noting here is that dynamic RAM like this needs to be refreshed because the capacitors lose charge over time, but these large capacitors can hold charge sometimes overnight, as [Igor] has confirmed experimentally.

There’s a followup video to the construction of these modules as well, where [Igor] demonstrates a number of ways this module can be used, from controlling LED arrays, 7-segment displays, and then installs it into his drum machine. With 64 bits available it’s capable of creating up to eight beats with eight samples available per beat. Although there are complete machines available for all of this, we appreciate his goal of not buying any pre-manufactured hardware and instead constructing it all from the ground up. There are analog drum machine options available in this same style as well.

youtube.com/embed/lYUuGf6b0IQ?…

youtube.com/embed/O6Coh5Ey3AU?…


hackaday.com/2026/06/22/dynami…


LightComposer – Reach Out and Touch Your Lighting


The media in this post is not displayed to visitors. To view it, please log in.

Lightcomposer

While there is a time and place for wirelessly controlled devices, sometimes you want something you can just reach out and touch to interact with, no apps to install or devices to configure. In this case [John] wanted a lamp that was just that. Drawing inspiration from the rotary phone, he created the LightComposer.

This small lamp, just a bit smaller than a hockey puck, uses a 3D printed enclosure and a straightforward PCB. It’s a very accessible project to recreate. The 3D prints are well thought out including a TPU ring on the bottom to keep the lamp from sliding around. The light source comes from 32 SK6812 LEDs, which are very similar to NeoPixels. An ATmega328P microcontroller powers the project and can easily be programmed using the Arduino IDE. A rotary encoder in the center, coupled to the top diffuser, lets you control LED brightness and color by turning it. The firmware also includes some fun hidden light-effect modes.

Head over to [John]’s site for all the files needed to make your own LightComposer, or links to buy a premade one. What devices have you made that use a straightforward physical user interface in lieu of an app? Be sure to check some of the other lamp builds we’ve featured before.


hackaday.com/2026/06/22/lightc…


Investigating Annealing as Fix for Poor CF Adhesion in 3D Prints


The media in this post is not displayed to visitors. To view it, please log in.

After recently publishing a few videos covering research into the poor adhesion between chopped carbon fiber (CCF) and the thermoplastic filaments as used with FDM 3D printing, some of the feedback received by [I built a thing] included the idea that the missing step to make CCF additives work was post-print annealing. Naturally this claim had to be investigated, both through the resulting physical characteristics as well as on a microscopic level in the same scanning electron microscope (SEM) as before.
Post-annealing SEM scan, showing clear voids. (Credit: I built a thing, Youtube)Post-annealing SEM scan, showing clear voids. (Credit: I built a thing, Youtube)
Theories as to why annealing the parts would help here seem to focus on increased bonding and filling of voids in the printed CCF-infused material, while there are the typical worries with annealing such as parts warping and shrinking to also take into account as potential downsides of this treatment.

For the sample materials PETG and PETG-CF, as well as PLA and PLA-CF filaments are used, with each filament type featuring an annealed and not annealed version. These were then tested for tensile strength, stiffness and failure type, as well as dimensional accuracy and warping, before being examined under the SEM. A total of 160 samples were used, with 20 samples per material and annealing state.

Perhaps the biggest surprise here was how much PETG benefits from annealing, making it much more resilient to breaking, whereas neither PLA nor PLA-CF seemed to see much benefit. Shocking was how much worse PETG-CF performs than PETG, with the former being worse than both PLA and PLA-CF here.

In terms of dimensional accuracy, annealing caused a Z direction expansion while shrinking the samples in the other directions. The CCF addition here actually prevented much of the shrinking and expansion, showing the first clear benefit of this additive. Yet despite annealing at right above the glass transition temperature as is proper, this would seem to be the limit of this approach in terms of practical benefits.

Compared to the previous research that focused on PLA-CF, PETG-CF would seem to make the case even more strongly that there’s no real purpose to CCF additives, especially since you can already account for parts shrinkage during annealing before printing. That there’s no improvement to the CCF and thermoplastic interface adhesion is also no mystery, considering the science behind how e.g. thermoset materials create bonds with CF.

youtube.com/embed/hT-YXG1b8qA?…


hackaday.com/2026/06/22/invest…


Breaking Into a Prison Tablet


The media in this post is not displayed to visitors. To view it, please log in.

Usually the term ‘jailbreaking’ isn’t meant to be taken quite that literally, but in the case of the US prison tablet that [Hugh Jeffreys] got sent, it’s really quite apt. Unlike the typical transparent prison electronics, this tablet is hermetically sealed inside an opaque plastic case, with the Windows 10 install firmly locked-down and not allowing anything more to be done with it than access some prison-provided services via the browser in kiosk mode.

The first challenge was to see whether it could be booted at all, with just four metal pads visible on the side of the case. These turn out to correspond to USB pins, but the tablet only briefly tries to turn on with a charger connected. This means that a teardown is required, which ended up involving a hacksaw due to the sealed case.

Inside the case is the Windows tablet with the back cover removed, presumably for easy access to extend its USB port. All of this is embedded in foam and more gunk that makes disassembly rather messy. With the case opened it becomes clear that the likely reason why this tablet was junked was due to a bad third-party charger board, as using the tablet’s own USB port it charges happily and even turns on.

From there it’s a bit of a fight with the locked-down Windows installation, but as it’s just a Windows 10 Home installation, there’s no drive encryption or such to get in the way. This allows for the device to be fully jailbroken, revealing its specifications as an Iview Optimus-C-8001, powered by an Intel Atom Z8350 at 1.44 GHz with a blistering 2 GB of RAM. The Windows installation was from 2018, with apparently no updates since.

Despite the very high school arts-and-crafts appearance of the case itself, the tablet itself isn’t too shabby considering the limited hardware specifications. Although getting the case off is a bit of a pain, it’s not a bad catch if you can find one of these puppies in the e-waste bin.

youtube.com/embed/at8KPvN4UV8?…


hackaday.com/2026/06/22/breaki…


Graphics Upgrade for Nintendo Entertainment System


The media in this post is not displayed to visitors. To view it, please log in.

Modern video game consoles rarely have expansion ports, but in the 80s and 90s it was practically guaranteed. With the speed that hardware was advancing it made sense to build in some way to expand a system’s capabilities throughout its lifespan, like the memory port in the Nintendo 64 or the Sega CD and 32X attachments for the Sega Genesis. Some were ultimately unused as well, like the port under the Super Nintendo or, arguably, the interesting way that [decrazyo] figured out how to add graphics capabilities to the original Nintendo Entertainment System.

The basis of this upgrade is the fact that the Picture Processing Unit (PPU) on the NES has four pins that are grounded. These four pins tell the NES to display the background color if the pixel is transparent. Since they’re normally grounded, this means the NES can only display a limited background image, but there’s no reason these pins must be grounded. By using a second PPU configured to output graphics information and wiring it to these four pins on the first PPU, the NES can be given all kinds of new abilities, such as adding parallax effects to backgrounds, rendering more sprites, and showing more colors in the backgrounds.

Of course, the hardware requirements for this will require a donor NES to get the second PPU as well as the necessary memory chip for it, and we don’t recommend tearing apart perfectly good retro consoles for experimentation if it can be avoided. Presumably, you could use this open-source NES hardware alternative instead. But for those with the parts and the gumption, creating a demo or adding graphics features to homebrew games using this second graphics chip is within reach.

youtube.com/embed/V2kaV_m4iNU?…


hackaday.com/2026/06/22/graphi…


MSYS2 and the No-Fuss Way to Get More GNU Into Your Windows


The media in this post is not displayed to visitors. To view it, please log in.

As great and streamlined as the Windows desktop experience is, one area where it’s at best disappointing and at worst rage-inducing is when it comes to its command line interface (CLI) offerings. In Windows 9x/ME this could be excused by the fact that it was essentially just a dressed-up MS-DOS CLI experience, but on Windows NT-based OSes no such excuse exists.

Yet even after Microsoft finally acknowledged the shortcomings of the cmd.exe shell by 2006, they then proceeded to go their own way with PowerShell, industry standards be damned. Especially for those of us who have no beef with the UNIX/BSD/Linux CLI experience and the joys of shell scripting, this insistence was disappointing. Simultaneously, everyone from OS X/MacOS to Haiku were happily offering a familiar CLI environment alongside POSIX compatibility.

Although Windows NT OSes were POSIX compliant, they never offered a suitable shell along with it, nor any of the other things you’d expect in a modern-day BSD, Haiku or Linux CLI environment. In a recent article by my esteemed colleague Al Williams, these sore points were somewhat addressed as far as basic CLI tools go, but the issue goes obviously much deeper than just the basic userland tools. Which is where MSYS2 comes into the picture.

Defining The Problem


When one says that they’d like a ‘Linux shell on Windows’, it can be hard to pin down exactly what this means. As Al noted in his article on CoreUtils last week, there are solutions like Cygwin that add a translation layer between Windows and Linux-ish code and offer a basic shell experience, but what if you really want to have a full Linux-like shell experience including support for common POSIX tools and libraries, as well as typical tooling like make and gcc?

Microsoft’s CoreUtils package gets you a GNU userland-like experience, but that’s arguably a small part of the whole issue. The reason why over the years I drifted away from Linux tools ported to Windows – as well as bailed on WSL, WSL2, Cygwin and full-fat VMs – is due the amount of friction these added when all that I wanted was to use a Bash-like shell for day-to-day tasks and general software development. For all intents and purposes I wanted to pretend that I was just on a modern Linux distro like Arch without having to fire up some special application with significant overhead or waddle over to one of my systems that have Linux installed.

This means a GNU-style userland, basic POSIX compatibility, being able to run shell scripts, having access to a package manager like on BSDs/Linuxes/Haiku/etc., ideally all in a way where it blends quite seamlessly into the overall Windows GUI experience. Essentially the laziest and most off-the-shelf experience possible, if you want.

This is where a full-fat VM is obviously too heavy and restricted, while WSL(2) also carries too many of the VM-related flaws with it, as it’s too much trying to be Linux instead of integrating with the Windows experience. The ideal solution here would probably feel more like the standard terminal on Haiku.

The MSYS2 Solution


With MSYS2 you can use the same pacman package manager you’d use on Arch/Manjaro to fetch packages. You’re also using a regular Bash shell and the only major hurdles you’re likely to run into concern limitations with low-level tools like Valgrind and some Windows-related quirks that the MSYS2 developers can’t do too much about because Microsoft. Internally it’s still based on Cygwin, so you can count on a similar level of compatibility, but without fuss.

For day-to-day use it’s a very familiar Linux-like experience for especially software-development purposes and common shell-based shenanigans like automation tasks and running a range of tools such as ffmpeg and yt-dlp, both of which are of course readily available from the package repository. In this sense MSYS2 adds a terminal and CLI environment that blurs the lines between BSD/Haiku/Linux and Windows, just the way us cross-platform developers like things, as this way you can use the same scripts and same know-how and muscle-memory across terminals and TTYs.

Perhaps the only negative here is again due to MSYS2 being not fully integrated into Windows, resulting in e.g. binaries compiled within an MSYS2 environment relying on shared libraries that are not on the Windows system path. This can be worked around by copying all the DLLs into the binary folder, or doing system path things, but it’s one of the reasons why I do distribute binary builds for Windows of my OSS projects that are compiled using NMake and MSVC.

The MSYS2 Environments


When you first install MSYS2, the most important thing to learn are the distinctions between the various MSYS2 environments. This is the first thing you see after happily installing MSYS2, finding yourself staring at a list of various terminal options, as summarized below. Over the years a number of these environments have been retired, in particular the 32-bit environments, but also the MinGW64 environment that used to be the primary one until Windows 10 added the Universal C Runtime (UCRT).

The MSYS2 environments page provides a lot more detail, but the brief summary is that you should just use the UCRT terminal. It builds upon the MSYS environment just like the other options, essentially setting up a number of defaults, with some of these listed in the above table. Although you can use the Clang environments, these aren’t nearly as mature or full-featured, so your mileage may vary there.

Development Features


My basic software development workflow involves Notepad++ to write code and a Makefile, and the use of an MSYS2 UCRT terminal to run make, along with gdb, grep and utilities such as ldd for happy-fun debugging purposes. When I do embedded development that targets e.g. STM32, I can fetch the entire GCC-based toolchain for ARM Cortex-M via pacman and use that in exactly the same way as I would in a Linux-based terminal or TTY.

I have always found doing such development things the ‘Windows way’ to be rather tedious and cumbersome, having spent considerable time in the past using environments like Visual Studio and other IDEs such as Code::Blocks. While any approach can be made to work, just being able to use the same shell scripts, same gdb configurations, and the same Makefiles. across FreeBSD, Linux, Haiku, and Windows saves a lot of time and effort as you never have to duplicate effort.

MSYS2 Limitations


As alluded to earlier, MSYS2 doesn’t integrate perfectly in Windows as it is still just a third-party application. It also only covers userland, so kernel-level drivers and tools like Valgrind will require a full-blown Linux system. However, unless I’m doing some crazy involved profiling or debugging I’ll generally just use Dr. Memory on Windows, which works the same as Valgrind and also has packages for Linux and MacOS.

Whether it’s a limitation or not I’m not entirely sure, but stdout in MSYS2 Bash also sometimes does seem to have trouble outputting where Bash or similar on BSD/Haiku/Linux does not, which is an issue that I still need to diagnose in more depth one day to file a ticket for. That said, having created issue tickets for the MSYS2 (packages) project in the past has at least made it clear that its developers are quite responsive and fairly tame.

These minor niggles aside, I’m quite grateful to the MSYS2 project for allowing me to have both the solid Windows GUI experience and also have my heavily Arch-inspired CLI cake with pacman icing.


hackaday.com/2026/06/22/msys2-…


How social media bans can work


The media in this post is not displayed to visitors. To view it, please log in.

How social media bans can work
IT'S MONDAY, AND THIS IS DIGITAL POLITICS. I'm Mark Scott, and will be speaking on this panel about trust in digital services at the IAPP/Harvard Navigate conference in Portsmouth, New Hampshire this week. If anyone is around in Boston on June 25, drop me a line here to grab coffee.

— The United Kingdom became the latest country to propose a social media ban for children. If others follow suit, this is how such bans should actually work.

— One of Europe's top courts just blew a hole in liability protections for online platforms. It's the second time judges have upended this decades-old precedent in recent months.

— Digital industries added $18 trillion in market value over the last three years.

Let's get started:



digitalpolitics.co/social-medi…


SDS-Remote Brings Power-User Features to Siglent Scope


The media in this post is not displayed to visitors. To view it, please log in.

SDS-Remote

Many oscilloscopes have provisions to be connected to a computer and used remotely, but most of those interfaces are fairly rudimentary. To address this, [Winfried] has developed the SDS-Remote, a remote interface for the Siglent SDS 1000X-E series oscilloscopes.

The 1000X-E series oscilloscopes have both USB and network interfaces, and the SDS-Remote can use either (though the USB interface is still somewhat experimental). SDS-Remote allows for remote controlling the oscilloscope, capturing waveforms super handy as it lets you export a CSV file of the waveforms for further analysis. You can also capture screenshots of the scope through the web interface, making it much easier to compare waveforms as you’re working on a project. The built-in data logging lets you run long experiments and save out their results. The macro recorder lets you automate complex tests using SCPI commands and brings basic scripting to the interface without needing to run separate code. There’s also a mechanism to integrate an AI LLM to help translate common language into the correct scope configuration.

Thanks [Winfried] for sharing this awesome web interface for the oscilloscope no doubt it’ll be a welcome upgrade for those already remote controlling their Siglent scope. Head over to his GitHub page and check it out for yourself! Have you written any improved user interfaces for your equipment? Be sure to let us know what you’ve done so we can share with others who may find use in an interface that offers more than came with the product.

youtube.com/embed/sbQIYpyg1p4?…


hackaday.com/2026/06/22/sds-re…


A VBScript campaign distributed through WhatsApp deploying RMM software


The media in this post is not displayed to visitors. To view it, please log in.

In June 2026, we observed a malware campaign distributing malicious VBScript files through direct messages in WhatsApp. The campaign affected users across multiple countries and territories, including Malaysia, Brazil, India, Mexico, Singapore, UK, Spain, Taiwan, Australia, Russia and Vietnam, with the highest number of victims observed in Malaysia. At the time of writing this article, the campaign is still active.

Analysis shows that the campaign primarily targets users of WhatsApp Desktop and WhatsApp Web. The threat actor uses deceptive file names masquerading as business and financial documents to persuade recipients to download and execute the attachment. Once executed, the VBScript initiates a multi-stage infection chain that ultimately results in the installation of legitimate Remote Monitoring and Management (RMM) software, enabling remote access to the victim’s system.

Overview of the WhatsApp-based VBScript infection chain
Overview of the WhatsApp-based VBScript infection chain

We came across a number of social media posts reporting that the malware was being distributed by the users’ contacts. The messages contained only the malicious attachment and did not include any accompanying text. One account sent the same attachment to multiple contacts from their list.

WhatsApp messages containing the malicious VBScript file observed across multiple accounts. Source: alleged victims' posts on social media
WhatsApp messages containing the malicious VBScript file observed across multiple accounts. Source: alleged victims’ posts on social media

Based on evidence collected from multiple victims through social media reports and submitted samples, we can conclude that the threat actor had gained access to several WhatsApp accounts and used them to distribute the malicious VBScript files to contacts on the compromised users’ contact lists. At the time of writing, the exact method used to compromise these WhatsApp accounts remains unknown.

Social engineering through financial-themed file names


Analysis of the samples revealed that the threat actor relied heavily on social engineering through the use of deceptive file names designed to appear as legitimate business and financial documents. The file names frequently referenced invoices, account statements, debt notices, payment records, and bank statements.
Examples of file names include:

  • Financial Reports.vbs
  • Debt confirmation.vbs
  • Statement of Debt(30K).vbs
  • Outstanding Payment List.vbs
  • Account Statement.vbs
  • Debt Statement.vbs
  • Billing Statement (2).vbs
  • Promissory_Note(b).vbs

Several file names were also localized into different languages, including Portuguese, French, German, and Malay. Examples include:

  • Extrato de Conciliação.vbs
  • Aviso de dívida.vbs
  • Le formulaire de demande le plus récent.vbs
  • Bitte füllen Sie das Formular für Umsatzsteuer-Nullsatz-Verkäufe aus.vbs
  • Penyata bank.vbs
  • Sila semak bil anda.vbs

The use of multiple languages further suggests that the campaign may be targeting victims across different geographic regions.

In addition, the VBScript samples contain extensive comments and metadata intended to mimic legitimate Microsoft Windows Update components. Many of these comments are written in Chinese and include references to Windows Update modules, certificate validation, system integrity checks, and deployment-related functionality. The screenshot below shows an example of the Windows Update–themed comments and Chinese-language annotations embedded within one of the analyzed scripts.

Windows Update–themed and Chinese-language comments observed across multiple Stage 1 VBScript variants
Windows Update–themed and Chinese-language comments observed across multiple Stage 1 VBScript variants

Delivery of the initial VBScript file


Analysis of telemetry collected from the systems where the malware was executed, conducted together with the dynamic analysis of the sample, showed that the VBScript is launched through Windows Script Host (WScript.exe), which subsequently retrieves and executes additional VBScript components required for the later stages of the attack.

Two user interactions are needed to initiate the infection chain. When the user first clicks the attachment in either WhatsApp Desktop or WhatsApp web, it is downloaded to their machine. To launch the app, they need to open it.

In WhatsApp Desktop, the malware is executed directly within the application by clicking once more the file icon or by choosing the option “Open” in the chat. The process tree analysis shows that WScript.exe is spawned by WhatsApp.Root.exe. The executed script was observed within WhatsApp Desktop’s attachment storage directory, with the following command line:
"C:\Windows\System32\WScript.exe" "C:\Users\<username>\AppData\Local\Packages\5319275A.WhatsAppDesktop_cv1g1gvanyjgm\LocalState\Sessions\<session_identifier>\Transfers\<YYYY-MM>\financial reports(s).vbs"
This process relationship confirms that the malicious VBScript was executed directly from the WhatsApp Desktop client.

In contrast, when the attachment is accessed through WhatsApp Web, to launch the malware, the user should open the downloaded file from the Downloads folder or through the browser’s download history. In the first case, the malware’s parent process will be explorer.exe, while in the second, it will be executed by the browser where the web app was opened.

Technical analysis

Stage 1: Initial VBScript execution


The first stage of the infection chain is a VBS or VBE file delivered through WhatsApp. Although multiple variants of the scripts were observed, their core functionality remains consistent: the script creates a working directory under C:\Users\Public\Documents\, downloads two additional VBScript payloads from a remote infrastructure, and executes them using Windows Script Host.

Across the observed variants, the working directory is created using randomized names such as Temp_<random> or MSUpdate_<random>. Some variants also configure the directory and downloaded files with hidden and system attributes, likely to reduce visibility to the user during execution.

Example of the code generating a random working directory and configuring it with hidden and system attributes
Example of the code generating a random working directory and configuring it with hidden and system attributes

The scripts employ several obfuscation techniques, including string concatenation, encoded VBScript, randomized variable names, and large amounts of junk content. One notable variant employs even heavier obfuscation than the other samples. The script reconstructs object names, file paths, utilities, and URLs through character-by-character string concatenation.

Example of an obfuscated Stage 1 VBScript variant.
Example of an obfuscated Stage 1 VBScript variant.

Several variants copy curl.exe and bitsadmin.exe into the working directory and rename them using DLL-like filenames before downloading additional VBS files.

Example of the Stage 1 downloader logic using renamed Windows utilities and multiple download mechanisms to retrieve additional VBS files
Example of the Stage 1 downloader logic using renamed Windows utilities and multiple download mechanisms to retrieve additional VBS files

The downloaded files are commonly staged using misleading file extensions before execution. For example, some variants download files using PDF or TXT extensions and then change them to VBS before launching them with wscript.exe. Other variants download the secondary VBScript payloads directly.

Despite differences in infrastructure, file names, and obfuscation methods, all observed variants ultimately perform the same function: downloading and executing two secondary VBScript payloads that continue the infection chain.

Stage 2: Execution of secondary VBScript payloads


Following execution, the Stage 1 VBScript downloads and launches two additional VBScript files from attacker-controlled infrastructure. One script attempts to modify Windows User Account Control (UAC) settings, while the other downloads and executes a ZIP archive containing the installation package for a RMM software.

VBS script 1: UAC configuration modification


First Stage 2 scripts were observed attempting to modify Windows UAC behavior.

Stage 2 VBScript repeatedly attempting to modify the ConsentPromptBehaviorAdmin registry value
Stage 2 VBScript repeatedly attempting to modify the ConsentPromptBehaviorAdmin registry value

As shown in the figure above, the script repeatedly executes an elevated registry modification command targeting the following registry key:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin
The command is launched using the ShellExecute method with the runas verb, causing Windows to request administrative privileges before the registry change can be applied. Its goal is to set the ConsentPromptBehaviorAdmin registry key value to 0, thus enabling administrative actions without displaying a consent prompt to the user. The script attempts to apply this registry change in a loop with short delays between executions, likely to increase the chances that the setting will be successfully modified if administrative privileges are granted by the victim.

VBS script 2: ZIP download and script execution


The second VBS script downloads a ZIP file, extracts it and executes a script to start the RMM installation.

Similar to the Stage 1 downloader, the Stage 2 downloader creates its own working directory under C:\Users\Public\Documents\, commonly using randomized folder names such as Sys<random>, Data<random>, or a random numeric value. In most cases, the hidden attribute is assigned to this folder. The script then downloads a ZIP archive from attacker-controlled infrastructure, extracts its contents, and executes an embedded setup1.vbs script.

Stage 2 downloader creating a hidden working directory under C:\Users\Public\Documents
Stage 2 downloader creating a hidden working directory under C:\Users\Public\Documents\

Similar to the Stage 1 downloader, the variants leverage multiple download mechanisms, including curl, bitsadmin, certutil, PowerShell, and direct HTTP requests.

Stage 2 downloader using multiple download mechanisms to retrieve the ZIP archive
Stage 2 downloader using multiple download mechanisms to retrieve the ZIP archive

Following a successful download, the archive is extracted using the Shell.Application COM interface. Most variants invoke the CopyHere method with flags intended to suppress user prompts and allow extraction to proceed without user interaction. The extracted setup1.vbs script is then launched through wscript.exe to proceed with the next stage of the infection chain.

Also, one variant additionally attempts to remove Zone.Identifier alternate data streams from extracted files prior to execution, likely to reduce security warnings associated with files downloaded from the Internet.

Example of the code responsible for ZIP extraction, Zone.Identifier removal, and execution of the next-stage VBScript
Example of the code responsible for ZIP extraction, Zone.Identifier removal, and execution of the next-stage VBScript

Stage 3: Installation of remote monitoring and management software


Besides the setup1.vbs script, the ZIP archive downloaded during Stage 2 contains a preconfigured ManageEngine Endpoint Central deployment package. Inside the archive are the files required to install and register the Endpoint Central agent, including the MSI installer, configuration files, certificates, and installation scripts.

Extracted Stage 3 Endpoint Central installation ZIP package
Extracted Stage 3 Endpoint Central installation ZIP package

The table below summarizes the purpose of each file contained within the deployment package:

FileDescription
DCAgentServerInfo.jsonEndpoint Central server configuration containing management server IP addresses and ports
DMRootCA.crtTrusted root certificate
DMRootCA-Server.crtServer authentication certificate
README.htmlEndpoint Central agent setup instructions
setup.batLegitimate Endpoint Central installer wrapper included in the package, not used by the malware chain
setup1.vbsMalicious launcher used by the threat actor to silently install the Endpoint Central agent
UEMSAgent.msiEndpoint Central agent installer package
UEMSAgent.mstCustom installation configuration settings for the MSI package

ManageEngine Endpoint Central is a legitimate enterprise management platform commonly used for software deployment, system administration, and remote support. Its remote administration capabilities make it attractive for abuse by threat actors seeking persistent access to compromised systems.

One interesting variant attempted to disguise the package as an income tax–related document. Instead of containing a legitimate tax document, the archive contained a VBScript file named “Income Tax Return Form.vbs” and accompanied by an instruction file designed to persuade the victim to open it. Analysis showed that the VBScript contained functionality similar to setup1.vbs, ultimately performing the same Endpoint Central installation process.

Tax document-themed VBScript lure and installation script
Tax document-themed VBScript lure and installation script

As discussed in Stage 2, the downloader ultimately executes a VBScript file named setup1.vbs. The script first verifies that the required installation files are present in the extracted folder and then attempts to relaunch itself with administrative privileges using the Windows runas mechanism before proceeding with the installation.

The setup1.vbs script verifying installation files and requesting administrative privileges
The setup1.vbs script verifying installation files and requesting administrative privileges

Once elevated, setup1.vbs silently installs the bundled ManageEngine Endpoint Central agent using msiexec.exe, applying the supplied configuration and certificate files. The installation is performed silently, preventing the user from seeing the Endpoint Central installation interface.

Endpoint Central agent installation via msiexec.exe
Endpoint Central agent installation via msiexec.exe

Analysis of the embedded DCAgentServerInfo.json configuration file revealed the following Endpoint Central management servers:

  • 202.61.160[.]208
  • 202.61.160[.]202
  • 202.61.160[.]201
  • 202.61.160[.]160
  • 202.61.160[.]137
  • 38.55.151[.]63

Notably, 202.61.160[.]201 had previously been observed as command-and-control infrastructure associated with ValleyRAT and Gh0st RAT activity. Although the overlap raises the possibility of the VBS campaign being linked to the operator of these known malware families, the available evidence is insufficient to confidently attribute the campaign to a known threat actor.

Victimology and attribution


Based on our telemetry, infections were observed across several countries and territories, including Malaysia, Brazil, India, Mexico, Singapore, UK, Spain, Taiwan, Australia, Russia, and Vietnam, with 80% of the victims located in Malaysia. The campaign primarily relied on malicious VBScript attachments distributed through WhatsApp and appeared to target individual users rather than specific organizations or industries. At the time of the analysis, no evidence suggested a focused targeting strategy, instead indicating a broad, opportunistic campaign aimed at consumers.

We were unable to confidently attribute this activity to a known threat actor or intrusion set. However, several artifacts observed throughout the campaign point to a possible Chinese-speaking threat actor.

Multiple VBScript samples contained comments, module descriptions, and execution notes written in simplified Chinese characters. These comments appeared consistently across different variants, suggesting that the scripts were likely developed or maintained by a Chinese-speaking operator.

We also identified infrastructure overlaps with IP addresses previously associated with ValleyRAT and Gh0st RAT activity. While these overlaps may indicate infrastructure reuse or shared hosting resources, they are not sufficient to establish a direct connection to any known threat actor.

Based on the available evidence, we assess with low confidence that the campaign was conducted by a Chinese-speaking operator. Additional investigation, infrastructure overlaps, or operational indicators would be required to support a stronger attribution assessment.

Conclusion


This campaign uses compromised WhatsApp accounts to distribute malicious VBScript attachments that ultimately install a preconfigured ManageEngine Endpoint Central agent on victim systems. Observed victims were located across multiple countries and territories, including Malaysia, Brazil, India, Mexico, Singapore, UK, Spain, Taiwan, Australia, Russia, and Vietnam, suggesting a broad and opportunistic campaign. Users should be cautious when receiving unexpected attachments through WhatsApp, even when they appear to originate from known contacts. Script and executable file types such as VBS, VBE, EXE, BAT, CMD, JS, and PS1 should not be opened unless their legitimacy has been independently verified.

IOCs

VBScript


c7f38cbb99c8b74fa0465293feeba700 Financial Reports.vbs
b7cd06c71465038b658a6dc1f273a507 Debt confirmation.vbs
9f13c7b8ba391b2f597874e54d310648 Electronic statement(A).vbs
993f4c0cadbc769a4b0ed62a918db58d Financial Reports(s).vbs
7f81c1bc8cfd588e8998968e2621456e Outstanding Payment List.vbs
7403cbcc5a9c32384d431856dc48fcc9 Statement of debt (4).vbs
68c16c46f8afb9e00bbaba0207fb0a46 Debt Note (2).vbs
66442f2457eca8f47385b1fb2c6fcab8 Statement of Debt(30K).vbs
6359e6236471cbe434d0ef4c42b7f879 Applicationform1.vbs
5b6bbcc06cf08cc99e1afeda486d42fb Extrato de Conciliação.vbs
5002eca748205d544618e3bd2dedc223 Statement of Debt(29K).vbs
4f0593e8e0e8fac49429e9b45ebf7fa1 Outstanding Payment List.vbs
4044e4b6471c9de7b0a4ba37d9d9df9a billing statement (2).vbs
20209b3a32769afc6a75694b8d8839dd Statement of Debt(A).vbs
0ba93109757776a44de9d8c88baa4963 Financial Reports(C1).vbs
02bb20455cc592a69c080abac770ce90 Le formulaire de demande le plus récent .vbs
6c39900d77dcba158e1d27c7619cb06d Outstanding Balance Sheet(A).vbs
dad708e050632a4280cabf98ac1376b7 Outstanding Balance Sheet.vbs
05d188f071d097f5b6bd8138749b4b14 Penyata bank.vbs
2c6f05f1f309d89b2236e6c8b59c88f9 Account Statement(13K) (2).vbs
3b1aba44dd3d9b6339b6f56e2f42034b Statement of Account.txt
d43fdaa1f0ee09d7e5f0f94ee9df7b6c Bitte füllen Sie das Formular für Umsatzsteuer-Nullsatz-Verkäufe aus.vbs
df4fa0369eaca5cec348be293890d4af Account Statement.vbs
63ac85195b73753333316a889cf5880f Statement of Account(O).vbs
74fd9f91fc93b6288b4fc253ea5b3e20 Sila semak bil anda.vbs
d06333c360b51456f427e616c3c5f8bd Sila semak bil anda.vbs
993f4c0cadbc769a4b0ed62a918db58d FinancialReportsS.vbs
1d94fbe9cab21278cc3f104bea334d08 Promissory_Note(b).vbs
9d9ac85765e4a818a3ccabe2cf4fef82 Debt Statement.vbs
6fb6a55424adfb61e31f06aef33273e5 dfjieya.vbs
f90ed4b2d0b67114aa89ddfed658e5c0 dfjieya.vbs
8c3322009b8982663c0cbecd9492e7eb 0lf.vbs
66705384a7ad81d14c34fc6c054a0ecf iowepv.vbs
8c6d9fc389ad3f20ccbc71d77eb39bfa btksfmsi.vbs
1a3cc75466ffb1971482f7abf7aabc3f home3.vbs
1c47c63e5ed25060d95359c57c77b107 zipats.vbs
31037a42ca048e06e69a78f55bc2eff5 1122.vbs
7f16449cd0c4862d1eadf8a5742bf09a payload_1.vbs
79ecd61b09b0f2d54b34586c916c4ec9 sac8.vbs
7849061c536a3efb05a56d504694e7e7 6oy.vbs
ddaffe9849f7f3c79f8804adb9a6b3d5 kof.vbs
d01cad98dd0d01b75e04e784953c5e2b sleestak_payload_1.vbs

Domains


temu.baskwms[.]top
invoice.msopsa[.]top
baoxis[.]cc
sdcwww.oss-ap-southeast-1.aliyuncs[.]com
baoyuw2s.s3.ap-southeast-1.amazonaws[.]com
sjdkjj23.s3.ap-southeast-1.amazonaws[.]com
xijkwm2.s3.ap-southeast-1.amazonaws[.]com
yifubafu.s3.ap-southeast-1.amazonaws[.]com

Attacker-controlled UEMS server IP Address


202.61.160[.]202
202.61.160[.]201
202.61.160[.]137
202.61.160[.]160
202.61.160[.]208
38.55.151[.]63


securelist.com/whatsapp-vbs-rm…


“Telescope Rancher” is The Coolest Job You Didn’t Know Existed


The media in this post is not displayed to visitors. To view it, please log in.

Bortle-1 Skies in the heart of darkest Texas.

McCulloch County, Texas, is smack dab in the middle of a very large state. We wouldn’t exactly call it the middle of nowhere, but given there’s so little light pollution it scores a 1 on the Bortle Scale, it’s not exactly the Big Apple, either. [Bray Falls] lives there, and has a job description we have become immediately jealous of: [Bray] is a telescope rancher.

Like the song goes, the stars really are big and bright at night deep in the heart of Texas. Not only is his ranch free of the light pollution that plagues more urban locations, central Texas is pretty dry, with only a few days of rain in any given month. That’s not great for agriculture, but it’s great for astronomy since it means the skies are most often cloud-free. Combine that with access to high-speed internet, and you have the makings of a telescope ranch.
Telescopes being let out of the barns for the night.
Image: Starfront Observatory
It’s brilliant in its simplicity: along with his own ‘scopes, [Bray]’s Starscope Observatory hosts hundreds of other people’s CCD equipped goto telescopes, all set up to be remote controlled over the information superhighway. On clear nights– which again, is most of them–the roofs roll off the telescope barns and observations can begin. Pad rental comes with tech support, too, so you don’t have to fly out to heart of darkest Texas if your mount gets jammed or you lose signal for any reason. That said, you should be sure to read the fine print before signing up, because said tech support probably doesn’t apply if you 3D printed your own ‘scope, or built your own mount.

That said, having gone to the effort of doing all that, would you really send your baby away to a farm upstate? Best reserve that for the old Celestron collecting dust in the corner. If you think we should be leaving these observations to the pros, be aware [Bray] has apparently discovered a very oddly-placed supernova remnant, 40 degrees off the galactic plane in Virgo. So this isn’t just a rewarding hobby; it’s still science, too.


hackaday.com/2026/06/22/telesc…


Won’t Somebody Please Think Of Banning The British Children!


The media in this post is not displayed to visitors. To view it, please log in.

The British government is in a headlong rush to ban under-16s from social media, and restrict the access of under-18s. And in typical form, the EFF is here with a warning about the dangers and futility of such legislation.
A satirical mock-up of what UK Prime Minister Keir Starmer's driving licence might look like, courtesy of https://use-their-id.com/Kids aren’t stupid. They’ll use a fake ID like this one from the satirical use-their-id.com/ . Or they’ll become VPN experts.
The proposed new law will involve an age restriction policed through online ID verification, something which will not be limited to the young, as every British adult will also have to show ID to access large parts of the Internet.

There is little in the way of information about how this unprecedented invasion of privacy will be implemented, however we expect that it will be left to the lax security measures of a range of lowest-bidder third party identity verification services. The resulting database will become a very rich target indeed.

The EFF pull no punches in warning of the harms these measures will bring upon those it seeks to protect. Far from “Giving under-16s their childhood back” as it is being promoted, they warn that it will deprive them of access to community, friends, and distant family, as well as educational content that could be vital for them.

If it works at all. Certainly he more technically minded youth will put their efforts into the world of computer networking. A VPN ban is reportedly in the works, so a whole generation of future software developers and IT specialists will get their start running software to get round this on their Raspberry Pi.

We’ve reported on the EFF’s concerns over UK ID laws before.


Header image: Diliff, CC BY-SA 2.5.


hackaday.com/2026/06/21/wont-s…