<?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>DFSR &#8211; PT ESC</title>
	<atom:link href="/tag/dfsr/feed/index.xml" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description></description>
	<lastBuildDate>Wed, 30 Sep 2026 19:43:38 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>/wp-content/uploads/2026/09/cropped-cropped-large_icon-32x32.png</url>
	<title>DFSR &#8211; PT ESC</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Вредоносы в SYSVOL: ищем источник</title>
		<link>/malware-in-sysvol-finding-the-source/</link>
		
		<dc:creator><![CDATA[oUth0R]]></dc:creator>
		<pubDate>Wed, 02 Jul 2025 14:40:36 +0000</pubDate>
				<category><![CDATA[Incident Response]]></category>
		<category><![CDATA[dfir]]></category>
		<category><![CDATA[DFSR]]></category>
		<category><![CDATA[ir]]></category>
		<guid isPermaLink="false">http://localhost:8080/%d0%b2%d1%80%d0%b5%d0%b4%d0%be%d0%bd%d0%be%d1%81%d1%8b-%d0%b2-sysvol-%d0%b8%d1%89%d0%b5%d0%bc-%d0%b8%d1%81%d1%82%d0%be%d1%87%d0%bd%d0%b8%d0%ba/</guid>

					<description><![CDATA[Вредоносы в SYSVOL: ищем источник 😐 Допустим, мы расследуем инцидент с шифровальщиком. Для запуска шифровальщика хакеры использовали групповую политику (например, прописали задачу планировщика). Сам вредонос они положили в папку SYSVOL на контроллере…]]></description>
										<content:encoded><![CDATA[<p><strong>Вредоносы в SYSVOL: ищем источник</strong> 😐</p>
<p>Допустим, мы расследуем инцидент с шифровальщиком. Для запуска шифровальщика хакеры использовали групповую политику (например, прописали задачу планировщика). Сам вредонос они положили в папку <code>SYSVOL</code> на контроллере домена (DC).</p>
<p>🥷 <strong>Как понять, откуда действовал хакер? </strong>В этом посте сфокусируемся на файловом следе.</p>
<p>Логика простая: чтобы положить файл в <code>SYSVOL</code>, хакер должен был так или иначе «зайти» на DC. Поэтому смотрим, когда был создан файл (кстати, <strong>поэтому важно сначала собрать данные для расследования, а потом уже зачищать системы</strong>), и соотносим эту информацию с входами в систему.</p>
<p>Кажется, все просто, но есть нюанс: содержимое каталога <code>SYSVOL</code> реплицируется между DC с помощью <strong>DFSR (Distributed File System Replication)</strong>. То есть хакеру достаточно положить вредоносный файл на один DC, а дальше система автоматически распространит его по всем остальным. Как понять, какой DC был исходным, особенно если DC много?</p>
<p>Посмотрим отладочные логи DFSR на произвольном DC из тех, на которых вредонос попал в папку <code>SYSVOL</code>. Обычно эти логи находятся в папке <code>%systemroot%\debug</code>, имена файлов имеют вид <code>Dfsrxxxxx.log</code> и <code>Dfsrxxxxx.log.gz</code> (<code>.gz</code> в Windows? Да!). Логи текстовые, вполне поддаются грепу, но при этом некоторые события имеют многострочный формат, — учитывайте это, если не хотите потерять контекст.</p>
<p>Поищем в логах имя нашего вредоноса (пусть это будет <code>badfile.exe</code>). Если мы нашли исходный DC с первого раза, мы должны найти в логах подобное сообщение:</p>

<pre class="wp-block-code"><span><code class="hljs language-plaintext">20250526 02:44:24.906 5628 USNC  2871 UsnConsumer::CreateNewRecord LDB Inserting ID Record:
+  &lt;...&gt;
+  name                            badfile.exe
</code></span></pre>

<p>Если коротко, то оно свидетельствует о появлении нового файла в реплицируемой папке, то есть искомый файл был изначально размещен на этом DC. В этом случае можно переходить к последнему абзацу в посте ниже 🙂</p>
<blockquote><p>Можно на всякий случай перепроверить это в журнале $UsnJrnl:$J:</p>
<p>badfile.exe,.exe,132035,6849,257939,4,.\Windows\SYSVOL\domain\scripts,52168700184,2025-05-25 23:44:23.6245532,FileCreate,Archive,436154648</p>
<p>Видно, что файл создается на файловой системе (FileCreate). </p>
<p>Если бы файл был реплицирован, это выглядело бы так:</p>
<p>2025-03-25 23:44:25 +0000 UTC,badfile-{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456.exe,System Volume Information\DFSR\Private\{F0285778-7EF8-4808-85D7-68223AA11FB5}-{24DC8227-6461-4D16-96D5-537D78549536}\Installing\badfile-{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456.exe,FILE_CREATE,archive,7|109885</p>
<p>2025-05-25 23:44:25 +0000 UTC,badfile-{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456.exe,System Volume Information\DFSR\Private\{F0285778-7EF8-4808-85D7-68223AA11FB5}-{24DC8227-6461-4D16-96D5-537D78549536}\Installing\badfile-{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456.exe,RENAME_OLD_NAME,archive,7|109885</p>
<p>2025-05-25 23:44:25 +0000 UTC,badfile.exe,Windows\SYSVOL\domain\scripts\badfile.exe,RENAME_NEW_NAME,archive,5|269425</p>
<p>Видно, что файл сначала создается в папке DFSR, а потом уже переносится в SYSVOL.</p></blockquote>
<p>Если же вредонос был реплицирован на исследуемый DC, мы увидим в логах DFSR подобное сообщение:</p>

<pre class="wp-block-code"><span><code class="hljs language-plaintext">20250526 02:44:24.949 4452 INCO  3065 InConnection::ReceiveUpdates Received: uid:{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456 gvsn:{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456 fileName:badfile.exe session:86382 connId:{C62DFB26-63FA-4E9F-B533-0F487BF8E043} csId:{F0285778-7EF8-4808-85D7-68223AA11FB5} csName:SYSVOL Share
</code></span></pre>

<p>Очень интересно, но ничего не понятно.</p>
<p>Чтобы понять, с какого DC реплицировался файл, нужно узнать, какому хосту соответствует указанный <code>connId</code> (это значение статично и соответствует однонаправленной связи между двумя машинами).</p>
<p><strong>Как это сделать</strong></p>
<p>1️⃣ Можно посмотреть таблицу соответствия в файле <code>\System Volume Information\DFSR\Config\Replica_&lt;GUID группы репликации&gt;.XML</code>. Поищем в нем наш <code>connId</code> и увидим примерно следующее:</p>
<p></p>
<pre class="wp-block-code"><code>&lt;DfsrConnection&gt;
  &lt;ConnectionGuid&gt;C62DFB26-63FA-4E9F-B533-0F487BF8E043&lt;/ConnectionGuid&gt;
  &lt;...&gt;
  &lt;PartnerName&gt;DC02&lt;/PartnerName&gt;
  &lt;...&gt;
  &lt;PartnerDns&gt;dc02.corp.local&lt;/PartnerDns&gt;
  &lt;...&gt;
&lt;/DfsrConnection&gt;
</code></pre>
<p></p>
<p>2️⃣ Можно поискать в логах DFSR события, содержащие одновременно интересующий нас <code>connId</code> и слова &#8220;<code>partnerDns"</code>, &#8220;<code>partnerName</code>&#8221; или &#8220;<code>partnerAddress</code>&#8220;. Можем обнаружить что-то типа:</p>
<p></p>
<pre class="wp-block-code"><code>20250314 01:22:31.307 6304 DOWN  3959 [ERROR] DownstreamTransport::EstablishConnection EstablishConnection failed. Check that the connection partner is valid. If not then recreate the connection with valid partner. connId:{C62DFB26-63FA-4E9F-B533-0F487BF8E043} rgName:Domain System Volume partnerName:DC02 partnerDns:dc02.corp.local
</code></pre>
<p></p>
<p>3️⃣ Если DC «живы», то информацию о GUID’ах можно извлечь с помощью утилиты <code>Dfsradmin</code>. Этот способ разбирать не будем — более подробно про логи DFSR можно <a href="https://studylib.net/doc/7140403/the-debug-log-format" target="_blank" rel="noopener">почитать по ссылке</a>.</p>
<p>Итак, в ходе расследования мы выяснили, что изначально вредоносный файл был размещен на DC02.</p>
<p>Дело за малым — узнать, кто и откуда заходил на этот DC и положил туда этот файл. Журналы ОС и SUM в помощь — никто не обещал, что будет легко! 🙂</p>
<p><span class="hashtag">#ir</span> <span class="hashtag">#dfir</span> <span class="hashtag">#DFSR</span><br /><a href="https://t.me/ptescalator" target="_blank" rel="noopener">@ptescalator</a></p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
