{"id":3920,"date":"2026-06-30T10:04:00","date_gmt":"2026-06-30T10:04:00","guid":{"rendered":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/"},"modified":"2026-06-30T10:04:00","modified_gmt":"2026-06-30T10:04:00","slug":"toddycat-your-hidden-email-assistant-part-2","status":"publish","type":"post","link":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/","title":{"rendered":"ToddyCat: your hidden email assistant. Part 2"},"content":{"rendered":"<div>\n<p><img width=\"990\" height=\"400\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg\" class=\"attachment-securelist-huge-promo size-securelist-huge-promo wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\"><\/p>\n<h2 id=\"introduction\">Introduction<\/h2>\n<p>We continue to share details on the malicious techniques and toolsets used by the ToddyCat APT group. In the <a href=\"https:\/\/securelist.com\/toddycat-apt-steals-email-data-from-outlook\/118044\/\" target=\"_blank\" rel=\"noopener\">first part of this report<\/a>, we examined the group\u2019s attacks aimed at stealing data from browsers, as well as from local and cloud email services. The methods used in that campaign indicated that ToddyCat was attempting to access corporate correspondence while evading monitoring tools. However, all of the group\u2019s methods we described previously are effectively detected by EPP and EDR solutions.<\/p>\n<p>The attackers continued their search for ways to bypass security solutions and developed a new tool to gain access to a victim\u2019s cloud account via the Google API. Armed with this tool, the group automated all stages of the attack and managed to remain undetected by monitoring systems.<\/p>\n<p>In this part of the report, we break down the mechanics of this new attack and analyze the tool that was used to automate it. We\u2019ll also discuss how to detect and defend against this threat.<\/p>\n<h2 id=\"umbrij\">Umbrij<\/h2>\n<p>In this campaign, the attackers focused their attention on corporate email communications hosted on Gmail, targeting access compromise via APIs. Because the Google API relies on the OAuth 2.0 protocol for authorization, applications can use an OAuth token to access requested email resources. To acquire this token, the threat actors developed a tool called Umbrij and used it to connect to the browser\u2019s management console in headless mode via a remote debugging port. Through a series of requests, they obtained an OAuth authorization code, which they subsequently exchanged for an access token to reach the target resources via the API. We have dubbed this technique Shadow Token via Remote Debug (STRD).<\/p>\n<p>This attack is viable on Chromium-based browsers. If the user has not logged out of their Gmail account, the browser maintains an active session. The attackers exploit this: they launch the browser, connect via the remote debugging port to take control, and send a request to the Gmail service to grant access to the Google account resources within the context of the user\u2019s saved session.<\/p>\n<p>During our investigation of this attack, we discovered several versions of the Umbrij tool. These versions included a variety of helper functions designed for debugging, as well as for searching and selecting user accounts within the browser, among other tasks.<\/p>\n<p>Kaspersky solutions detect this tool with the following verdicts: HEUR:Trojan-PSW.MSIL.Umbrij.gen, HEUR:Trojan.MSIL.Agent.gen, HEUR:Trojan-PSW.MSIL.Agent.gen.<\/p>\n<h3 id=\"execution\">Execution<\/h3>\n<p>The Umbrij tool was discovered during a proactive threat hunting operation: a scheduled task, KasperskyEndpointSecurityEDRAvp, was running on a user host, launching a digitally signed file. Kaspersky solutions do not create scheduled tasks with that name; the attackers were attempting to masquerade their malicious activity as a legitimate process.<\/p>\n<p>The signed file then used the DLL sideloading technique to load the malicious tool.<\/p>\n<div id=\"attachment_120253\" style=\"width: 1442px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1.jpeg\" class=\"magnificImage\"><img fetchpriority=\"high\" decoding=\"async\" aria-describedby=\"caption-attachment-120253\" class=\"size-full wp-image-120253\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1.jpeg\" alt=\"Umbrij execution events within Kaspersky Managed Detection and Response\" width=\"1432\" height=\"613\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1.jpeg 1432w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1-300x128.jpeg 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1-1024x438.jpeg 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1-768x329.jpeg 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1-818x350.jpeg 818w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1-740x317.jpeg 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1-654x280.jpeg 654w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200713\/image1-800x342.jpeg 800w\" sizes=\"(max-width: 1432px) 100vw, 1432px\"><\/a><\/p>\n<p id=\"caption-attachment-120253\" class=\"wp-caption-text\">Umbrij execution events within Kaspersky Managed Detection and Response<\/p>\n<\/div>\n<p>Throughout our observation period, we identified the following legitimate files vulnerable to the DLL sideloading technique that were used to launch Umbrij:<\/p>\n<ol>\n<li>BDSubWiz.exe: a component of the Submission Wizard in Bitdefender ConnectAgent, which is used to support connection features and interaction with other Bitdefender services or agents. This file insecurely loads a file named log.dll.<\/li>\n<li>VSTestVideoRecorder.exe: a component of the video-recording tool used for testing with Visual Studio (VS Test). This executable insecurely loads a file named Microsoft.VisualStudio.QualityTools.VideoRecorderEngine.dll.<\/li>\n<li>GoogleDesktop.exe: the discontinued Google Desktop Search application for indexing files and performing quick searches on a local Windows computer. This executable insecurely loads a file named GoogleServices.dll.<\/li>\n<\/ol>\n<p>These files were used to load different versions of Umbrij; the same legitimate file could be leveraged to launch more than one variant. In total, we discovered three versions of Umbrij, which we refer to as <code>a<\/code>, <code>b<\/code>, and <code>c<\/code> for convenience.<\/p>\n<p>The tool itself is a DLL written in .NET and obfuscated with ConfuserEx, an open-source obfuscator for .NET applications.<\/p>\n<div id=\"attachment_120254\" style=\"width: 1313px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120254\" class=\"size-full wp-image-120254\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2.png\" alt=\"Example of an obfuscated code snippet\" width=\"1303\" height=\"599\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2.png 1303w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2-300x138.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2-1024x471.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2-768x353.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2-761x350.png 761w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2-740x340.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2-609x280.png 609w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16200933\/toddycat-apt-umbrij2-800x368.png 800w\" sizes=\"auto, (max-width: 1303px) 100vw, 1303px\"><\/a><\/p>\n<p id=\"caption-attachment-120254\" class=\"wp-caption-text\">Example of an obfuscated code snippet<\/p>\n<\/div>\n<p>Umbrij is managed with the help of parameters passed through a command line at startup, although it is occasionally executed without any parameters. Below are examples of the command lines observed in attacks against users:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">\"c:UsersPublicBDSubWiz.exe\" -regex &lt;name&gt; -deepsearch\r\nc:windowsvssbds.exe<\/pre>\n<p>However, these are not the only parameters the tool can accept and process. During the analysis of its executable code, we discovered additional parameters that vary depending on the version of Umbrij. See the table below for the parameters and their descriptions.<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Version<\/strong><\/td>\n<td><strong>Command<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>a<\/td>\n<td>-regex &lt;string&gt;<\/td>\n<td>Used in conjunction with the <em>-deepsearch<\/em> parameter. Specifies a substring to search for within the <em>user_name<\/em> field of the user profile file, which typically contains the email address. The tool will utilize the user profile that matches this specified substring<\/td>\n<\/tr>\n<tr>\n<td>a<\/td>\n<td>-user &lt;username&gt;<\/td>\n<td>Specifies the system username under which the tool will run<\/td>\n<\/tr>\n<tr>\n<td>a<\/td>\n<td>-runas-currentuser<\/td>\n<td>Configures Umbrij to run within the execution context of the current user<\/td>\n<\/tr>\n<tr>\n<td>a<\/td>\n<td>-deepsearch<\/td>\n<td>Enforces additional checks on the <em>user_name<\/em> field in the user profile: verifying that it is not empty and that it contains the substring specified in the <em>-regex<\/em> parameter<\/td>\n<\/tr>\n<tr>\n<td>a, b, c<\/td>\n<td>-path &lt;path&gt;<\/td>\n<td>Specifies the full path to the directory containing the browser\u2019s executable file<\/td>\n<\/tr>\n<tr>\n<td>a, b, c<\/td>\n<td>-browser &lt;both|msedge|chrome&gt;<\/td>\n<td>Specifies which browser the tool should target: Google Chrome, Microsoft Edge, or both<\/td>\n<\/tr>\n<tr>\n<td>a, b, c<\/td>\n<td>-debugport &lt;port&gt;<\/td>\n<td>Specifies the remote debugging port number<\/td>\n<\/tr>\n<tr>\n<td>a, b, c<\/td>\n<td>-sync<\/td>\n<td>When this parameter is specified in the URL, the value <em>1095133494869<\/em> replaces <em>279448736670<\/em> in the permission request<\/td>\n<\/tr>\n<tr>\n<td>b<\/td>\n<td>-domainAd<\/td>\n<td>Specifies the domain name if the user account is a domain account<\/td>\n<\/tr>\n<tr>\n<td>b<\/td>\n<td>-savepdf<\/td>\n<td>Instructs Umbrij to save a screenshot of the user profile as a PDF file<\/td>\n<\/tr>\n<tr>\n<td>c<\/td>\n<td>-lport<\/td>\n<td>Same as <em>debugport<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"environment-preparation\">Environment preparation<\/h3>\n<p>At startup, the tool evaluates several prerequisites required to carry out the attack and performs preparatory actions to subsequently compromise the Gmail account.<\/p>\n<p>First, Umbrij verifies the availability of the port that will be designated for browser debugging. To accomplish this, the tool utilizes a function named <code>ChekPortAvailable()<\/code> (original spelling retained), which accepts the target port number as a parameter. It then retrieves information about active connections on the host using the .NET <code>GetActiveTcpConnections()<\/code> function from the <code>System.Net.NetworkInformation<\/code> namespace. The tool iterates through each connection in a loop, comparing the port number to the one it is checking.<\/p>\n<div id=\"attachment_120255\" style=\"width: 1324px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201103\/toddycat-apt-umbrij3.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120255\" class=\"size-full wp-image-120255\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201103\/toddycat-apt-umbrij3.png\" alt=\"The ChekPortAvailable function used to verify open ports\" width=\"1314\" height=\"252\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201103\/toddycat-apt-umbrij3.png 1314w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201103\/toddycat-apt-umbrij3-300x58.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201103\/toddycat-apt-umbrij3-1024x196.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201103\/toddycat-apt-umbrij3-768x147.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201103\/toddycat-apt-umbrij3-740x142.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201103\/toddycat-apt-umbrij3-800x153.png 800w\" sizes=\"auto, (max-width: 1314px) 100vw, 1314px\"><\/a><\/p>\n<p id=\"caption-attachment-120255\" class=\"wp-caption-text\">The ChekPortAvailable function used to verify open ports<\/p>\n<\/div>\n<p>After this, the tool retrieves the user context. It searches the system for the explorer.exe process and duplicates its token, retaining all of its privileges (T1134.003 Access Token Manipulation: Make and Impersonate Token). This is the exact same mechanism used by another tool in the group\u2019s arsenal, TomBerBil, which we <a href=\"https:\/\/securelist.com\/toddycat-apt-steals-email-data-from-outlook\/118044\/#tomberbil-in-powershell\" target=\"_blank\" rel=\"noopener\">covered previously<\/a>.<\/p>\n<div id=\"attachment_120256\" style=\"width: 1712px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120256\" class=\"size-full wp-image-120256\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4.png\" alt=\"The ImpersonateWithProcess function used to retrieve user context\" width=\"1702\" height=\"424\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4.png 1702w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4-300x75.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4-1024x255.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4-768x191.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4-1536x383.png 1536w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4-1405x350.png 1405w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4-740x184.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4-1124x280.png 1124w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201154\/toddycat-apt-umbrij4-800x199.png 800w\" sizes=\"auto, (max-width: 1702px) 100vw, 1702px\"><\/a><\/p>\n<p id=\"caption-attachment-120256\" class=\"wp-caption-text\">The ImpersonateWithProcess function used to retrieve user context<\/p>\n<\/div>\n<p>By default, Umbrij duplicates the token of the first explorer.exe process it encounters. If multiple users are logged in to the system, the <code>-user &lt;username&gt;<\/code> switch can be used to specify the name of the target user whose token to duplicate. If the <code>-runas-currentuser<\/code> switch is specified, the tool will execute within the context of the current user without duplicating any tokens.<\/p>\n<p>Next, Umbrij constructs the path to the browser application folder within the user\u2019s local application data repository. To do this, it uses the <code>Environment.SpecialFolder.LocalApplicationData<\/code> command to retrieve the repository directory from the environment variable and appends the directory of the target browser. The tool then searches for the Local State file in the following folders:<\/p>\n<ul>\n<li>%LOCALAPPDATA%GoogleChromeUser DataLocal State<\/li>\n<li>%LOCALAPPDATA%MicrosoftEdgeUser DataLocal State<\/li>\n<\/ul>\n<p>See below for an example of the Local State file structure.<\/p>\n<div id=\"attachment_120257\" style=\"width: 1765px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120257\" class=\"size-full wp-image-120257\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5.png\" alt=\"Structure of the Local State JSON file\" width=\"1755\" height=\"1096\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5.png 1755w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5-300x187.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5-1024x639.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5-768x480.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5-1536x959.png 1536w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5-560x350.png 560w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5-740x462.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5-448x280.png 448w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201242\/toddycat-apt-umbrij5-800x500.png 800w\" sizes=\"auto, (max-width: 1755px) 100vw, 1755px\"><\/a><\/p>\n<p id=\"caption-attachment-120257\" class=\"wp-caption-text\">Structure of the Local State JSON file<\/p>\n<\/div>\n<p>Within this file, the tool searches for the <code>info_cache<\/code> array, which stores information about browser user profiles. Umbrij enumerates all user profiles and looks for those containing a <code>user_name<\/code> field that includes an email address. The presence of an email address indicates that the user is authenticated to a Google service. While the tool can interact with every profile it finds, if the <code>-regex &lt;string&gt;<\/code> parameter is passed through a command line, it searches for the specified substring within the email addresses being enumerated and proceeds exclusively with those matches.<\/p>\n<p>Next, Umbrij creates the following directories for Google Chrome and Microsoft Edge, respectively:<\/p>\n<ul>\n<li>%LOCALAPPDATA%GoogleChromeBackupFiles<\/li>\n<li>%LOCALAPPDATA%MicrosoftEdgeBackupFiles<\/li>\n<\/ul>\n<p>The tool copies the following user files and folders of each target user profile into these directories:<\/p>\n<ul>\n<li>IndexedDB: a folder containing a relational database used for client-side storage of structured data<\/li>\n<li>Local Storage: a component of the browser\u2019s web storage that provides a key-value mechanism for storing data on the client side<\/li>\n<li>Network: a folder where the browser stores files related to network requests and caching, such as the network cache and session files<\/li>\n<li>Login Data: a file that stores saved passwords for various websites and applications<\/li>\n<li>Login Data For Account: a file that stores credentials associated with a Google account or other synchronized accounts within the browser<\/li>\n<li>Preferences: a file containing profile-level browser settings<\/li>\n<li>Secure Preferences: a file that stores protected configurations, such as security and synchronization data<\/li>\n<li>Web Data: a file that stores auto-fill data<\/li>\n<\/ul>\n<p>If these files are locked by other processes, the tool includes a dedicated function to force-copy them.<\/p>\n<div id=\"attachment_120258\" style=\"width: 835px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120258\" class=\"size-full wp-image-120258\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6.png\" alt=\"The ForceCopyFolder function used to copy files locked by other processes \" width=\"825\" height=\"494\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6.png 825w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6-300x180.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6-768x460.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6-585x350.png 585w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6-740x443.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6-468x280.png 468w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201358\/toddycat-apt-umbrij6-800x479.png 800w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\"><\/a><\/p>\n<p id=\"caption-attachment-120258\" class=\"wp-caption-text\">The ForceCopyFolder function used to copy files locked by other processes<\/p>\n<\/div>\n<p>As the next step, the tool searches the \u201cProgram Files\u201d and \u201cProgram Files (x86)\u201d directories for the browser installation folder. Once it locates the executable file and successfully copies all required files, it is ready to proceed with acquiring the authorization code.<\/p>\n<h3 id=\"acquiring-the-authorization-code\">Acquiring the authorization code<\/h3>\n<p>In the next phase of execution, Umbrij launches Google Chrome, Microsoft Edge, or both browsers sequentially, depending on the parameters passed in the command line. It then passes arguments to the browser based on the following template:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">\"\"{1}\" --user-data-dir=\"{0}\" --remote-debugging-port={2}  --profile-directory=\"Default\" --headless https:\/\/www.google.com\/\"<\/pre>\n<p>It populates the template with the following values:<\/p>\n<ul>\n<li>{0}: the path to BackupFiles, where the user profile files were copied<\/li>\n<li>{1}: the path to the browser executable file<\/li>\n<li>{2}: the remote debugging port number<\/li>\n<\/ul>\n<p>The table below describes the parameters used in this browser launch template:<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Parameter<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>\u2013user-data-dir<\/td>\n<td>Specifies the path to the root directory that will store the shared browser data and user profiles<\/td>\n<\/tr>\n<tr>\n<td>\u2013remote-debugging-port<\/td>\n<td>Opens a port for remote browser debugging over the DevTools protocol. This switch is commonly used for automated testing with frameworks like Selenium<\/td>\n<\/tr>\n<tr>\n<td>\u2013profile-directory<\/td>\n<td>Specifies the name of the specific profile folder within the user-data-dir<\/td>\n<\/tr>\n<tr>\n<td>\u2013headless<\/td>\n<td>Launches the browser in headless mode, that is, without a graphical user interface<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The browser process runs in headless mode while utilizing the copied user profile. Consequently, all active user cookies are applied, which means sites with saved credentials will skip authentication prompts. Furthermore, the browser will log history to a new folder, keeping it completely hidden from the user\u2019s primary account view.<\/p>\n<p>Through this method, the threat actors gain access to the user\u2019s authenticated sessions\u00a0\u2014 specifically their Google account\u00a0\u2014 along with the ability to erase any trace of their activity within the browser.<\/p>\n<div id=\"attachment_120260\" style=\"width: 906px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201524\/toddycat-apt-umbrij7.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120260\" class=\"size-full wp-image-120260\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201524\/toddycat-apt-umbrij7.png\" alt=\"Code snippet showing Umbrij connecting to the browser via the debugging port\" width=\"896\" height=\"126\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201524\/toddycat-apt-umbrij7.png 896w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201524\/toddycat-apt-umbrij7-300x42.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201524\/toddycat-apt-umbrij7-768x108.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201524\/toddycat-apt-umbrij7-740x104.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201524\/toddycat-apt-umbrij7-800x113.png 800w\" sizes=\"auto, (max-width: 896px) 100vw, 896px\"><\/a><\/p>\n<p id=\"caption-attachment-120260\" class=\"wp-caption-text\">Code snippet showing Umbrij connecting to the browser via the debugging port<\/p>\n<\/div>\n<p>Next, the tool uses the Puppeteer Sharp library, a .NET version of Puppeteer, to connect to the remote debugging port. Puppeteer provides a high-level API to control Chrome or Chromium browsers over the DevTools protocol. Its primary use is for automated testing.<\/p>\n<div id=\"attachment_120261\" style=\"width: 772px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201558\/toddycat-apt-umbrij8.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120261\" class=\"size-full wp-image-120261\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201558\/toddycat-apt-umbrij8.png\" alt=\"The Puppeteer module GitHub page\" width=\"762\" height=\"416\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201558\/toddycat-apt-umbrij8.png 762w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201558\/toddycat-apt-umbrij8-300x164.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201558\/toddycat-apt-umbrij8-641x350.png 641w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201558\/toddycat-apt-umbrij8-740x404.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201558\/toddycat-apt-umbrij8-513x280.png 513w\" sizes=\"auto, (max-width: 762px) 100vw, 762px\"><\/a><\/p>\n<p id=\"caption-attachment-120261\" class=\"wp-caption-text\">The Puppeteer module GitHub page<\/p>\n<\/div>\n<p>If the connection to the remote debugging port is successful, Umbrij sends a GET request to direct the browser to the following URL:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">https[:]\/\/accounts[.]google[.]com\/o\/oauth2\/v2\/auth\/identifier?response_type=code&amp;client_id=279448736670.apps.googleusercontent.com&amp;redirect_uri=http%3A%2F%2Flocalhost&amp;scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.readonly%20https%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2F%20https%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2F%20https%3A%2F%2Fmail.google.com%2F%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.insert%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.labels%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fadmin.directory.user%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ftasks%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fadmin.directory.group.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fapps.groups.migration%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&amp;flowName=GeneralOAuthFlow<\/pre>\n<p>The value specified in the <code>client_id<\/code> field belongs to <a href=\"https:\/\/tools.google.com\/dlpage\/gsmmo\/\" target=\"_blank\" rel=\"noopener\">Google Workspace Migration for Microsoft Outlook (GWMMO)<\/a>. This is Google\u2019s official tool for importing email, calendar events, and contacts from Microsoft Exchange accounts or local PST files into a Google Workspace account.<\/p>\n<p>Umbrij also includes the ability to switch the <code>client_id<\/code> value from 279448736670 to 1095133494869 by using the <code>-sync<\/code> parameter. This second identifier belongs to another application: <a href=\"https:\/\/tools.google.com\/dlpage\/gssmo\" target=\"_blank\" rel=\"noopener\">Google Workspace Sync for Microsoft Outlook (GWSMO)<\/a>, which allows users to sync email, calendars, and other data from the cloud account directly into Microsoft Outlook.<\/p>\n<div id=\"attachment_120262\" style=\"width: 577px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201706\/toddycat-apt-umbrij9.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120262\" class=\"size-full wp-image-120262\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201706\/toddycat-apt-umbrij9.png\" alt=\"Code snippet where the client_id replacement occurs\" width=\"567\" height=\"76\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201706\/toddycat-apt-umbrij9.png 567w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201706\/toddycat-apt-umbrij9-300x40.png 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\"><\/a><\/p>\n<p id=\"caption-attachment-120262\" class=\"wp-caption-text\">Code snippet where the client_id replacement occurs<\/p>\n<\/div>\n<p>The remaining parameters used in the request differ from those typically utilized by the legitimate applications. See the table below for a comparison of these parameters:<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>GET request parameter<\/strong><\/td>\n<td><strong>URL used by Umbrij<\/strong><\/td>\n<td><strong>Original URL<\/strong><\/td>\n<\/tr>\n<tr>\n<td>flowName=GeneralOAuthFlow<\/td>\n<td>Present<\/td>\n<td>Absent<\/td>\n<\/tr>\n<tr>\n<td>code_challenge (PKCE)<\/td>\n<td>Absent<\/td>\n<td>Present (method=S256)<\/td>\n<\/tr>\n<tr>\n<td>state<\/td>\n<td>Absent<\/td>\n<td>Present<\/td>\n<\/tr>\n<tr>\n<td>login_hint<\/td>\n<td>Absent<\/td>\n<td>Present<\/td>\n<\/tr>\n<tr>\n<td>redirect_uri<\/td>\n<td>http:\/\/localhost<\/td>\n<td>http:\/\/localhost:61619\/callback<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>As seen from the list above, Umbrij omits several parameters characteristic of the legitimate applications. For instance, Umbrij drops the <code>code_challenge<\/code> parameter, normally used for data protection when retrieving an authorization code. Additionally, the tool modifies the redirection address: while the legitimate application specifies a dedicated port and a <code>callback<\/code> path, the tool simply points to <code>localhost<\/code>.<\/p>\n<p>The authorization code request specifies the set of permissions for Google services required by the application. This list also differs significantly between requests issued by the legitimate application and those generated by Umbrij. The table below details the variations in the requested scopes:<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Service parameter<\/strong><\/td>\n<td><strong>URL used by Umbrij<\/strong><\/td>\n<td><strong>Original URL<\/strong><\/td>\n<\/tr>\n<tr>\n<td>https:\/\/www.google.com\/m8\/feeds\/<\/td>\n<td>Present (specified twice)<\/td>\n<td>Absent<\/td>\n<\/tr>\n<tr>\n<td>https:\/\/www.googleapis.com\/auth\/contacts<\/td>\n<td>Absent<\/td>\n<td>Present<\/td>\n<\/tr>\n<tr>\n<td>https:\/\/www.googleapis.com\/auth\/admin.directory.resource.calendar.readonly<\/td>\n<td>Absent<\/td>\n<td>Present<\/td>\n<\/tr>\n<tr>\n<td>https:\/\/www.googleapis.com\/auth\/peopleapi.readonly<\/td>\n<td>Absent<\/td>\n<td>Present<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>After the browser navigates to the URL provided by Umbrij, the Google account selection page opens.<\/p>\n<div id=\"attachment_120263\" style=\"width: 965px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120263\" class=\"size-full wp-image-120263\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10.png\" alt=\"Account selection\" width=\"955\" height=\"657\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10.png 955w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10-300x206.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10-768x528.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10-509x350.png 509w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10-740x509.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10-407x280.png 407w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201751\/toddycat-apt-umbrij10-800x550.png 800w\" sizes=\"auto, (max-width: 955px) 100vw, 955px\"><\/a><\/p>\n<p id=\"caption-attachment-120263\" class=\"wp-caption-text\">Account selection<\/p>\n<\/div>\n<p>Because the attackers copied the victim\u2019s profile folder and are operating within their specific environment, the account selection options will include the currently signed-in user\u2019s authenticated session. Umbrij identifies the corresponding element within the page\u2019s HTML source code.<\/p>\n<div id=\"attachment_120264\" style=\"width: 868px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201822\/toddycat-apt-umbrij11.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120264\" class=\"size-full wp-image-120264\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201822\/toddycat-apt-umbrij11.png\" alt=\"Searching for HTML code elements on the page\" width=\"858\" height=\"23\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201822\/toddycat-apt-umbrij11.png 858w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201822\/toddycat-apt-umbrij11-300x8.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201822\/toddycat-apt-umbrij11-768x21.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201822\/toddycat-apt-umbrij11-740x20.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201822\/toddycat-apt-umbrij11-800x21.png 800w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\"><\/a><\/p>\n<p id=\"caption-attachment-120264\" class=\"wp-caption-text\">Searching for HTML code elements on the page<\/p>\n<\/div>\n<p>The tool uses JavaScript to emulate a mouse click on the elements, allowing it to proceed to the next step.<\/p>\n<div id=\"attachment_120265\" style=\"width: 708px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201915\/toddycat-apt-umbrij12.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120265\" class=\"size-full wp-image-120265\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201915\/toddycat-apt-umbrij12.png\" alt=\"Simulating a mouse click on a page element\" width=\"698\" height=\"72\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201915\/toddycat-apt-umbrij12.png 698w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201915\/toddycat-apt-umbrij12-300x31.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\"><\/a><\/p>\n<p id=\"caption-attachment-120265\" class=\"wp-caption-text\">Simulating a mouse click on a page element<\/p>\n<\/div>\n<p>The subsequent step opens a page displaying the list of requested permissions.<\/p>\n<div id=\"attachment_120266\" style=\"width: 1095px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120266\" class=\"size-full wp-image-120266\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13.png\" alt=\"Confirming the list of requested access permissions\" width=\"1085\" height=\"1151\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13.png 1085w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13-283x300.png 283w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13-965x1024.png 965w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13-768x815.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13-330x350.png 330w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13-740x785.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13-264x280.png 264w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16201958\/toddycat-apt-umbrij13-800x849.png 800w\" sizes=\"auto, (max-width: 1085px) 100vw, 1085px\"><\/a><\/p>\n<p id=\"caption-attachment-120266\" class=\"wp-caption-text\">Confirming the list of requested access permissions<\/p>\n<\/div>\n<p>As shown in the screenshot, Umbrij requests full access to email, cloud storage, and contacts. Just like in the previous step, it uses JavaScript to click the \u201cAllow\u201d button, which completes the authentication process.<\/p>\n<p>The browser is then redirected to the local address that was specified in the <code>redirect_uri<\/code> parameter of the initial request. The tool intentionally omits a port and a path to a specific page in the <code>redirect_uri<\/code> because the true objective of this action is simply to capture the <code>code<\/code> parameter from the context of the GET request. This parameter contains the OAuth authorization code. To retrieve it, Umbrij extracts the substring located between the <code>code=<\/code> and <code>&amp;scope<\/code> parameters.<\/p>\n<div id=\"attachment_120267\" style=\"width: 976px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202033\/toddycat-apt-umbrij14.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120267\" class=\"size-full wp-image-120267\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202033\/toddycat-apt-umbrij14.png\" alt=\"Extracting the authorization code from the GET request\" width=\"966\" height=\"244\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202033\/toddycat-apt-umbrij14.png 966w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202033\/toddycat-apt-umbrij14-300x76.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202033\/toddycat-apt-umbrij14-768x194.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202033\/toddycat-apt-umbrij14-740x187.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202033\/toddycat-apt-umbrij14-800x202.png 800w\" sizes=\"auto, (max-width: 966px) 100vw, 966px\"><\/a><\/p>\n<p id=\"caption-attachment-120267\" class=\"wp-caption-text\">Extracting the authorization code from the GET request<\/p>\n<\/div>\n<h3 id=\"results\">Results<\/h3>\n<p>Umbrij, like most other tools in ToddyCat\u2019s arsenal, logs its actions in detail and saves them to a file. It also saves the retrieved authorization code to this log file, which the operator subsequently exfiltrates from the compromised host.<\/p>\n<p>Below is an example of a log file generated by version <code>a<\/code> of the tool.<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">------------------------------\r\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n[*] switch to sync mode.\r\n[!] port 11111 is available!\r\n[*] Impersonate &lt;username&gt; success!\r\n[*] browser switch to chrome .\r\nParsing C:Users&lt;username&gt;AppDataLocalGoogleChromeUser DataLocal State ...\r\n[*] detected profile: Profile 4 ==&gt; &lt;email&gt;@gmail.com\r\n[*] ready auth for &lt;email&gt;@gmail.com.\r\n[*] Browser Exe path C:Program FilesGoogleChromeApplicationchrome.exe.\r\n[!] CreateProcessAsUserW...\r\n[*] Browser created with pid 3108\r\n[???] &lt;email&gt;@gmail.com\r\n[pup] mail : &lt;email&gt;@gmail.com\r\n[pup] account choice click !\r\n[pup] Allow click !\r\n[&lt;email&gt;@gmail.com] 4%2F0AcvDMrDtzQaC-TT8&lt;hash&gt;uMhg \r\n[*] RevertToSelf succeed!\r\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<\/pre>\n<p>The log indicates that the sync mode is selected (meaning the Google Workspace Sync for Microsoft Outlook application is used) and the debugging port is set to 11111. After locating the user profile and copying its folder, Umbrij launches Google Chrome. After this, the tool emulates clicks on the appropriate buttons to confirm permissions, ultimately outputting the final result of the operation: the stolen OAuth authorization code.<\/p>\n<p>Since all requests occur within a background browser instance, the tool includes a feature to generate a PDF snapshot of the web page where the permission confirmation process halted in the event of an error.<\/p>\n<div id=\"attachment_120268\" style=\"width: 559px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202140\/toddycat-apt-umbrij15.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120268\" class=\"size-full wp-image-120268\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202140\/toddycat-apt-umbrij15.png\" alt=\"Saving a web page as a PDF file in the case of an error\" width=\"549\" height=\"57\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202140\/toddycat-apt-umbrij15.png 549w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202140\/toddycat-apt-umbrij15-300x31.png 300w\" sizes=\"auto, (max-width: 549px) 100vw, 549px\"><\/a><\/p>\n<p id=\"caption-attachment-120268\" class=\"wp-caption-text\">Saving a web page as a PDF file in the case of an error<\/p>\n<\/div>\n<p>Additionally, the tool can create a PDF file for the user profile in Google Chrome and Microsoft Edge by navigating to the following internal addresses:<\/p>\n<ul>\n<li>edge:\/\/profile-internals<\/li>\n<li>chrome:\/\/profile-internals<\/li>\n<\/ul>\n<div class=\"post-gallery-wrapper _post _post-2474\" data-id=\"2474\">\n<div class=\"post-gallery\">\n<div class=\"post-gallery__item\"><img loading=\"lazy\" decoding=\"async\" width=\"767\" height=\"1024\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16-767x1024.png\" class=\"attachment-large size-large\" alt=\"Example contents of a generated PDF file\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16-767x1024.png 767w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16-225x300.png 225w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16-768x1025.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16-262x350.png 262w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16-740x988.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16-210x280.png 210w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16-674x900.png 674w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202216\/toddycat-apt-umbrij16.png 849w\" sizes=\"auto, (max-width: 767px) 100vw, 767px\"><\/div>\n<div class=\"post-gallery__item\"><img loading=\"lazy\" decoding=\"async\" width=\"774\" height=\"1024\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17-774x1024.png\" class=\"attachment-large size-large\" alt=\"Example contents of a generated PDF file\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17-774x1024.png 774w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17-227x300.png 227w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17-768x1016.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17-265x350.png 265w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17-740x979.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17-212x280.png 212w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17-680x900.png 680w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202544\/toddycat-apt-umbrij17.png 852w\" sizes=\"auto, (max-width: 774px) 100vw, 774px\"><\/div>\n<\/div>\n<\/div>\n<p style=\"text-align: center;font-style: italic;font-weight: normal;margin-top: -10px\"><em>Example contents of a generated PDF file<\/em><\/p>\n<p>The acquired authorization code is then exchanged for an OAuth access token. The threat actors use that token to connect to the Gmail account through the API, thus compromising corporate email communications. The diagram below illustrates the complete attack workflow.<\/p>\n<div id=\"attachment_120270\" style=\"width: 1900px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120270\" class=\"size-full wp-image-120270\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18.png\" alt=\"Umbrij workflow diagram\" width=\"1890\" height=\"988\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18.png 1890w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18-300x157.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18-1024x535.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18-768x401.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18-1536x803.png 1536w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18-670x350.png 670w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18-740x387.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18-536x280.png 536w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202256\/toddycat-apt-umbrij18-800x418.png 800w\" sizes=\"auto, (max-width: 1890px) 100vw, 1890px\"><\/a><\/p>\n<p id=\"caption-attachment-120270\" class=\"wp-caption-text\">Umbrij workflow diagram<\/p>\n<\/div>\n<h2 id=\"detection\">Detection<\/h2>\n<h3 id=\"dll-sideloading\">DLL sideloading<\/h3>\n<p>First and foremost, defenders should monitor library loading events (DLL loads) associated with the known applications vulnerable to DLL sideloading that are exploited by this tool: Bitdefender ConnectAgent, Visual Studio, and Google Desktop Search.<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">title: Possible Dll Hijacking Of Microsoft VisualStudio QualityTools dll\r\nid: 246f1409-2993-46f6-9b77-e447a327df5d\r\nstatus: experimental\r\ndescription: Detects possible DLL hijacking of Microsoft.VisualStudio.QualityTools.VideoRecorderEngine.dll by looking for suspicious image loads, loading this DLL from unexpected locations\r\nauthor: kaspersky\r\ndate: 2025-08-11\r\ntags:\r\n    - attack.defense-evasion\r\n    - attack.t1574.001\r\nlogsource:\r\n    product: windows\r\n    category: image_load\r\ndetection:\r\n    selection:\r\n        ImageLoaded|endswith: 'Microsoft.VisualStudio.QualityTools.VideoRecorderEngine.dll'\r\n    filter:\r\n        ImageLoaded|contains: 'IDEExtensionsTestPlatformExtensions'\r\n    condition: selection\r\nfalsepositives:  Legitimate activity\r\nlevel: high<\/pre>\n<\/p>\n<h3 id=\"browser-launch\">Browser launch<\/h3>\n<p>Launching a browser with a remote debugging port specified is a highly unusual event on standard user hosts that are not running web application development or automated testing workflows. Consequently, monitoring for these specific command-line arguments can serve as a reliable indicator of this attack.<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">title: Launching Chrome With Debug Parameters\r\nid: f072803f-3cf4-4537-82e6-e8b3a201d99f\r\nstatus: stable\r\ndescription: Detects the execution of Chromium based browsers launched with incognito mode and remote debugging enabled\r\nauthor: kaspersky\r\ndate: 2025-12-11\r\ntags:\r\n    - attack.lateral_movement\r\n    - attack.defense_evasion\r\n    - attack.t1550.001\r\nlogsource:\r\n    category: process_creation\r\n    product: windows\r\n\r\ndetection:\r\n    selection:\r\n        CommandLine|contains|all:\r\n            - '--remote-debugging-port'\r\n            - '--headless'\r\n    condition: selection\r\nfalsepositives: Opening a browser as part of web application testing. Legitimate activity\r\nlevel: high<\/pre>\n<\/p>\n<h3 id=\"revoking-third-party-access\">Revoking third-party access<\/h3>\n<p>To review the authorization codes granted to applications, navigate to the Google Account settings under the Third-party apps &amp; services section, or access the following URL directly:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">https:\/\/myaccount.google.com\/connections<\/pre>\n<p>This page displays a comprehensive list of applications and services that currently have permission to access the account.<\/p>\n<div id=\"attachment_120271\" style=\"width: 855px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-120271\" class=\"size-full wp-image-120271\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19.png\" alt=\"List of apps connected to the Google account\" width=\"845\" height=\"579\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19.png 845w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19-300x206.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19-768x526.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19-511x350.png 511w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19-740x507.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19-409x280.png 409w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202330\/toddycat-apt-umbrij19-800x548.png 800w\" sizes=\"auto, (max-width: 845px) 100vw, 845px\"><\/a><\/p>\n<p id=\"caption-attachment-120271\" class=\"wp-caption-text\">List of apps connected to the Google account<\/p>\n<\/div>\n<p>If the Google Workspace Migration for Microsoft Outlook or Google Workspace Sync for Microsoft Outlook applications appear in this list but are not actually used within your organization, revoke their access immediately. This will invalidate all potentially compromised OAuth tokens associated with them.<\/p>\n<h2 id=\"risk-mitigation\">Risk mitigation<\/h2>\n<p>Launching a browser with a remote debugging port enabled is inherently suspicious for users who do not engage in web development. For these employees, you can completely disable Chromium-based browser developer tools.<\/p>\n<p>This can be achieved by configuring the <a href=\"https:\/\/chromeenterprise.google\/policies\/?policy=DeveloperToolsAvailability\" target=\"_blank\" rel=\"noopener\">DeveloperToolsAvailability<\/a> policy. To enforce this, set the registry value to <code>0x00000002<\/code> for the following Windows Registry key and restart the browser:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">HKLMSoftwarePoliciesGoogleChromeDeveloperToolsAvailability<\/pre>\n<p>To verify that the policy has been successfully applied, navigate to the browser\u2019s internal policies page at chrome:\/\/policy:<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202734\/toddycat-apt-umbrij20.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120273\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202734\/toddycat-apt-umbrij20.png\" alt=\"\" width=\"1470\" height=\"159\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202734\/toddycat-apt-umbrij20.png 1470w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202734\/toddycat-apt-umbrij20-300x32.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202734\/toddycat-apt-umbrij20-1024x111.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202734\/toddycat-apt-umbrij20-768x83.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202734\/toddycat-apt-umbrij20-740x80.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/16202734\/toddycat-apt-umbrij20-800x87.png 800w\" sizes=\"auto, (max-width: 1470px) 100vw, 1470px\"><\/a><\/p>\n<p>Note that while disabling developer tools can successfully disrupt the automated retrieval of the OAuth authorization code, it will not help, however, if the adversary decides to leverage the browser\u2019s graphical user interface (GUI)\u00a0\u2014 though this manual approach is significantly less likely due to the friction it introduces for the attackers. Therefore, as a risk mitigation measure, users should be instructed to explicitly log out of their Google accounts as soon as their sessions are complete.<\/p>\n<h2 id=\"takeaways\">Takeaways<\/h2>\n<p>The ToddyCat APT group continues to search for ways of compromising corporate email communications. We have been tracking the group for a long time and we have observed continuous updates to its arsenal in an attempt to bypass security defenses, even as their core techniques remain consistent. For instance, the group has long relied on DLL sideloading to stealthily drop malicious utilities and scheduled tasks. However, their new tool, Umbrij, automates the attackers\u2019 attempts to gain access to organizational email accounts. This automation not only helps increase the scale and frequency of their attacks but also demonstrates ToddyCat\u2019s strong motivation and advanced technical skills.<\/p>\n<p>To defend against these threats, corporate security teams must monitor for suspicious library loading events initiated by legitimate files, watch for instances of browsers launching in developer mode, and conduct regular audits of third-party applications and services with access permissions to Google accounts. Furthermore, deploying a robust, comprehensive security solution\u00a0\u2014 such as <a href=\"https:\/\/www.kaspersky.com\/next?icid=gl_sl_knext-post_sm-team_cede4e5dff54f34a\" target=\"_blank\" rel=\"noopener\">Kaspersky Next<\/a>\u00a0\u2014 is critical to detect this type of malicious host-based activity in a timely manner.<\/p>\n<h2 id=\"indicators-of-compromise\">Indicators of compromise<\/h2>\n<p>Additional information about this threat is available to customers of the <a href=\"https:\/\/www.kaspersky.com\/enterprise-security\/threat-intelligence-reporting?icid=gl_sl_post-link-tip-reports_sm-team_54d4bf9ad05581e5\" target=\"_blank\" rel=\"noopener\">Kaspersky Threat Intelligence Reporting<\/a> service. Contact: <a href=\"mailto:intelreports@kaspersky.com\" target=\"_blank\" rel=\"noopener\">intelreports@kaspersky.com<\/a>.<\/p>\n<p><strong>Malicious files<\/strong><br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/1ab58838e5790efb22f2d35ab98c0b7d\/results?icid=gl_sl_post-opentip_sm-team_55c6d627f6cb1064&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">1AB58838E5790EFB22F2D35AB98C0B7D<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Umbrij ver. a<br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/a7d7d6c4c3f227f7117261c63b9e23a9\/results?icid=gl_sl_post-opentip_sm-team_7776aacc6bc37f7c&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">A7D7D6C4C3F227F7117261C63B9E23A9<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Umbrij ver. a<br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/3d3a621f852c42d97fd7260681e42508\/results?icid=gl_sl_post-opentip_sm-team_b038d67f399f6530&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">3D3A621F852C42D97FD7260681E42508<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Umbrij ver. a<br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/3432dd9ac0df80ef86eb80bd080f839b\/results?icid=gl_sl_post-opentip_sm-team_675b6137d36b2566&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">3432DD9AC0DF80EF86EB80BD080F839B<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Umbrij ver. a<br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/22aaeb4946ba6d2f2e27feb7dbb295de\/results?icid=gl_sl_post-opentip_sm-team_591974aaf1215dca&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">22AAEB4946BA6D2F2E27FEB7DBB295DE<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Umbrij ver. b<br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/f61fbfb7aa1cd5dc8f70b055b51563e2\/results?icid=gl_sl_post-opentip_sm-team_5c9365dec6468c16&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">F61FBFB7AA1CD5DC8F70B055B51563E2<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Umbrij ver. b<br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/f169d6d172dfb775895a5e2b1540c854\/results?icid=gl_sl_post-opentip_sm-team_2513ad63bae44626&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">F169D6D172DFB775895A5E2B1540C854<\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Umbrij ver. c<\/p>\n<p><strong>Legitimate files leveraged for DLL sideloading<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>MD5<\/strong><\/td>\n<td><strong>File name<\/strong><\/td>\n<td><strong>Name of DLL being loaded<\/strong><\/td>\n<\/tr>\n<tr>\n<td>9F5F2F0FB0A7F5AA9F16B9A7B6DAD89F<\/td>\n<td>GoogleDesktop.exe<\/td>\n<td>GoogleServices.DLL<\/td>\n<\/tr>\n<tr>\n<td>28CB7B261F4EB97E8A4B3B0D32F8DEF1<\/td>\n<td>BDSubWiz.exe<\/td>\n<td>log.dll<\/td>\n<\/tr>\n<tr>\n<td>BAE82A15D1DBFB024617B9B56A8E5F66<\/td>\n<td>VSTestVideoRecorder.exe<\/td>\n<td>Microsoft.VisualStudio.QualityTools.VideoRecorderEngine.dll<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Paths to DLL sideloading files<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Path to the file that loads the DLL<\/strong><\/td>\n<td><strong>Path to the DLL being loaded<\/strong><\/td>\n<\/tr>\n<tr>\n<td>C:Users&lt;user&gt;AppDataLocalTempBDS.exe<\/td>\n<td>C:Users&lt;user&gt;AppDataLocalTemplog.dll<\/td>\n<\/tr>\n<tr>\n<td>C:UsersPublicBDS.exe<\/td>\n<td>C:UsersPubliclog.dll<\/td>\n<\/tr>\n<tr>\n<td>c:userspublicbdsubwiz.exe<\/td>\n<td>C:UsersPubliclog.dll<\/td>\n<\/tr>\n<tr>\n<td>C:WindowsTempBDS.exe<\/td>\n<td>C:WindowsTemplog.dll<\/td>\n<\/tr>\n<tr>\n<td>c:windowsvssbds.exe<\/td>\n<td>C:WindowsVsslog.dll<\/td>\n<\/tr>\n<tr>\n<td>c:windowstempGoogleDesktop.exe<\/td>\n<td>c:windowstempGoogleServices.DLL<\/td>\n<\/tr>\n<tr>\n<td>c:windowstempVSTestVideoRecorder.exe<\/td>\n<td>c:windowstempMicrosoft.VisualStudio.QualityTools.VideoRecorderEngine.dll<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introduction We continue to share details on the malicious techniques and toolsets used by the ToddyCat APT group. In the first part of this report, we examined the group\u2019s attacks aimed at stealing data from browsers, as well as from local and cloud email services. The methods used in that campaign indicated that ToddyCat was [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[1348,251,256,247,504,1350,227,90,254,574,502,99,232,233,896,1351,1349,637,257],"tags":[91],"class_list":["post-3920","post","type-post","status-publish","format-standard","hentry","category-net","category-apt","category-apt-targeted-attacks","category-apt-reports","category-browser","category-cookies","category-credentials-theft","category-cybersecurity","category-dll","category-dll-sideloading","category-google-chrome","category-malware","category-malware-descriptions","category-malware-technologies","category-mdr","category-oauth","category-toddycat","category-web-threats","category-windows-malware","tag-cybersecurity"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ToddyCat: your hidden email assistant. Part 2 - Imperative Business Ventures Limited<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ToddyCat: your hidden email assistant. Part 2 - Imperative Business Ventures Limited\" \/>\n<meta property=\"og:description\" content=\"Introduction We continue to share details on the malicious techniques and toolsets used by the ToddyCat APT group. In the first part of this report, we examined the group\u2019s attacks aimed at stealing data from browsers, as well as from local and cloud email services. The methods used in that campaign indicated that ToddyCat was [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Imperative Business Ventures Limited\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-30T10:04:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02\"},\"headline\":\"ToddyCat: your hidden email assistant. Part 2\",\"datePublished\":\"2026-06-30T10:04:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/\"},\"wordCount\":3434,\"image\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg\",\"keywords\":[\"Cybersecurity\"],\"articleSection\":[\".NET\",\"APT\",\"APT (Targeted attacks)\",\"APT reports\",\"Browser\",\"Cookies\",\"Credentials theft\",\"Cybersecurity\",\"DLL\",\"DLL sideloading\",\"Google Chrome\",\"Malware\",\"Malware descriptions\",\"Malware Technologies\",\"MDR\",\"OAuth\",\"ToddyCat\",\"Web threats\",\"Windows malware\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/\",\"url\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/\",\"name\":\"ToddyCat: your hidden email assistant. Part 2 - Imperative Business Ventures Limited\",\"isPartOf\":{\"@id\":\"https:\/\/blog.ibvl.in\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg\",\"datePublished\":\"2026-06-30T10:04:00+00:00\",\"author\":{\"@id\":\"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#primaryimage\",\"url\":\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg\",\"contentUrl\":\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.ibvl.in\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ToddyCat: your hidden email assistant. Part 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.ibvl.in\/#website\",\"url\":\"https:\/\/blog.ibvl.in\/\",\"name\":\"Imperative Business Ventures Limited\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.ibvl.in\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.ibvl.in\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4d20b2cd313e4417a599678e950e6fb7d4dfa178a72f2b769335a08aaa615aa9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4d20b2cd313e4417a599678e950e6fb7d4dfa178a72f2b769335a08aaa615aa9?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/blog.ibvl.in\"],\"url\":\"https:\/\/blog.ibvl.in\/index.php\/author\/admin_hcbs9yw6\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ToddyCat: your hidden email assistant. Part 2 - Imperative Business Ventures Limited","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/","og_locale":"en_US","og_type":"article","og_title":"ToddyCat: your hidden email assistant. Part 2 - Imperative Business Ventures Limited","og_description":"Introduction We continue to share details on the malicious techniques and toolsets used by the ToddyCat APT group. In the first part of this report, we examined the group\u2019s attacks aimed at stealing data from browsers, as well as from local and cloud email services. The methods used in that campaign indicated that ToddyCat was [&hellip;]","og_url":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/","og_site_name":"Imperative Business Ventures Limited","article_published_time":"2026-06-30T10:04:00+00:00","og_image":[{"url":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg","type":"","width":"","height":""}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#article","isPartOf":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/"},"author":{"name":"admin","@id":"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02"},"headline":"ToddyCat: your hidden email assistant. Part 2","datePublished":"2026-06-30T10:04:00+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/"},"wordCount":3434,"image":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg","keywords":["Cybersecurity"],"articleSection":[".NET","APT","APT (Targeted attacks)","APT reports","Browser","Cookies","Credentials theft","Cybersecurity","DLL","DLL sideloading","Google Chrome","Malware","Malware descriptions","Malware Technologies","MDR","OAuth","ToddyCat","Web threats","Windows malware"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/","url":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/","name":"ToddyCat: your hidden email assistant. Part 2 - Imperative Business Ventures Limited","isPartOf":{"@id":"https:\/\/blog.ibvl.in\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#primaryimage"},"image":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg","datePublished":"2026-06-30T10:04:00+00:00","author":{"@id":"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02"},"breadcrumb":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#primaryimage","url":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg","contentUrl":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/06\/19083452\/toddycat-part-2-featured-image-990x400.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/06\/30\/toddycat-your-hidden-email-assistant-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.ibvl.in\/"},{"@type":"ListItem","position":2,"name":"ToddyCat: your hidden email assistant. Part 2"}]},{"@type":"WebSite","@id":"https:\/\/blog.ibvl.in\/#website","url":"https:\/\/blog.ibvl.in\/","name":"Imperative Business Ventures Limited","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.ibvl.in\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.ibvl.in\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4d20b2cd313e4417a599678e950e6fb7d4dfa178a72f2b769335a08aaa615aa9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4d20b2cd313e4417a599678e950e6fb7d4dfa178a72f2b769335a08aaa615aa9?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/blog.ibvl.in"],"url":"https:\/\/blog.ibvl.in\/index.php\/author\/admin_hcbs9yw6\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/posts\/3920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/comments?post=3920"}],"version-history":[{"count":0,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/posts\/3920\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/media?parent=3920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/categories?post=3920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/tags?post=3920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}