احسان امجدی
کارشناس امنیت اطلاعات و ارتباطات

ADS چیست؟ آموزش استفاده از Alternate Data Stream ویندوز

در این مطلب با مفهوم ADS یا Alternate Data Stream در سیستم عامل ویندوز آشنا می شویم. حدود 20 سالی میشود که مایکروسافت سیستم عامل ویندوز NT را بر اساس پلت فرم محبوب NT بسط و توسعه داده است. پس از آن نیز این خط سیر، با توسعه و ایجاد سیستم عامل های جدیدتر مانند ویندوز 8 و ویندوز سرور 2012 و با استفاده از همان پلت فرم راه خود را ادامه میدهد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

با وجود استفاده گسترده از سیستم عامل های مایکروسافت، بسیاری از کاربران ویندوز ممکن است از وجود قابلیت خاصی در فایل سیستم NTFS با نام (Alternate Data Stream(ADS هنوز مطلع نباشند. این مطلب برخی اطلاعات لازم درباره ADS مانند نحوه استفاده و نقاط ضعف آن را برای شما تشریح میکند.

ADS چیست؟ آموزش استفاده از Alternate Data Stream ویندوز

Alternate Data Stream چیست؟

از زمان معرفی ویندوز NT 3.1، فایل سیستم NTFS گزینه ترجیحی مایکروسافت در سیستم عامل های NT اش است. پیاده سازی NTFS، جایگزینی برای فایل سیستم FAT که در سیستم عامل های قدیمی تر مانند ویندوز9x مورد استفاده قرار میگرفت، بود. Alternate Data Stream در کنار NTFS، به متا دیتا این اجازه را میدهد تا بدون تغییر در محتوا و عملکرد فایل ها و فولدرها در آن ها خود را جاسازی نماید. به عبارتی متا دیتا را در فایل ها و فولدرها طوری مخفی میکند که در عملکرد و محتوایشان تغییری ایجاد نمیشود.

  • نکته : متادیتا یعنی اطلاعاتی در مورد اطلاعات. به این صورت که هر فایلی که شامل اطلاعاتی است، توضیحی با خود به همراه دارد. متادیتا ممکن است ساختار فایل را توضیح دهد و یا ممکن است اطلاعاتی در مورد محتوای فایل داشته باشد. اطلاعاتی از قبیل سایز فایل، آخرین تاریخ ویرایش ان، تاریخ ایجاد آن و ... . در بحث های امنیتی میتوان از ADS برای مخفی کردن اطلاعاتی خاص در دل اطلاعات اصلی استفاده کرد.

در ساختار NTFS، جریان اصلی داده به محتوای استاندارد موجود در فایل و یا فولدر اطلاق میشود که معمولا برای کاربر قابل رویت است و این در حالی است که جریان جایگزین داده (Alternate Data Stream) از دید کاربر مخفی میباشد. سیستم عامل ویندوزابزاری را برای شناسایی وجود ADS معرفی نکرده است؛

به همین علت است که جریان جایگزین داده در اکثریت قریب به اتفاق برنامه های مدیریتی مثل Windows Explorer قابل رویت و شناسایی نیست.جریان های جایگزین محدودیتی در سایز ندارند و چندین جریان میتوانند به یک فایل عادی لینک شوند. محتوای ADS محدود به داده های متنی نیست و ضرورتا هرگونه فایلی که در فرمت باینری باشد میتواند به عنوان یک جریان جایگزین در فایل اصلی جاسازی شود.


مخفی کردن فایل‌ها با استفاده از ویژگی Alternate Data Stream  - بخش اول

اگرچه ویندوز هیچگونه ابزار بومی برای را برای خواندن ADS معرفی نکرده است اما مایکروسافت ابزار دستوری خوبی را در این مورد پیشنهاد داده است که نام آن STREAMS.EXE میباشد. در مورد برنامه های Third-party هم میتوان به برنامه هایی چون HashOnClick از مجموعه نرم افزاری OnClick Utilities برای خواندن محتوای ADS اشاره نمود.

موارد استفاده و تبعات وجود قابلیت ADS در شبکه کم نیست اما از آنجا رویکرد ما بسمت امنیت است.باید گفت که خواندن متا دیتا ها خصوصا زمانی اهمیت و اولویت پیدا میکند که بوسیله ان ها بخواهیم جرمی را ثابت نماییم و یا ان که بحث جاسوسی و مخفی نمودن اطلاعات مهم در دل یک فایل معمولی در میان باشد.

از انجایی که ADS پنهان است، هکرها علاقه زیادی به سوء استفاده از آن با جاسازی ویروس ها در فایل ها جهت اهداف خرابکارانه دارند. ویروس هایی مانند W2K.Straem از ADS برای تاثیر گذاری و انتشار در سطح سیستم های ویندوز NT استفاده میکنند. متاسفانه برنامه های آنتی ویروس بسیار کمی وجود دارند که بتواند محتوای موجود در ADS را اسکن و شناسایی کنند.

قابلیت مبهمی که در مورد فایل های ذخیره شده در مدیاهای NTFS وجود دارد، اینست که یک فایل میتواند مجموعه هایی جدا و مستقل از اطلاعات را در دل خود داشته باشد. این بخش های اطلاعاتی بخاطر انکه بصورت رشته ای از بایت ها هستند، "Stream" یا "جریان" نامیده میشوند. باید توجه داشت که تمامی فایل ها، یک بخش اطلاعاتی یا جریان پیش فرض را در کنار سایر جریان های موجود در خود دارند و آن هم همان بخشی است که ما اصطلاحا به آن "فایل" میگوییم.

به عبارتی وقتی که ما عبارت "فایل" را درمورد یک داده اطلاعاتی بکار میبریم، منظورمان دقیقا همان جریان پیش فرض است که در دل تمامی فایل ها بصورت ثابت و اجباری وجود دارد. به عبارت دیگر این جریان پیش فرض، همان داده اصلی موجود در یک فایل است که ما منظورمان از یک فایل اشاره به آن بخش از اطلاعات دارد.

همانطور که گفتیم علاوه بر این جریان پیش فرض، یک فایل میتواند شامل چندین (Alternate Data Stream (ADS یا جریان های اطلاعاتی جایگزین دیگری هم باشد که با روش های معمولی که میتوان لیست محتویات یک فایل را دید، نمیتوان آن ها را مشاهده نمیشود. به عبارت ساده تر، آن ها بطور معمول از دید کاربر و سیستم مخفی اند.

این جریان های اطلاعاتی جایگزین (ADSها) در windows explorer لیست نمیشوند، سایز آن ها به سایز معمول فایل اضافه نمیشود و حتی با کامند "dir" هم خودی نشان نمیدهند. آن ها از بسیاری جهات، نامرئی هستند. با این حال یک جریان اطلاعاتی جایگزین میتواند حاوی اطلاعات متنوعی در دل خود باشد. ممکن است اطلاعات آن ها مربوط به "متا دیتا"، تنظیمات امنیتی یا هر فایل دیگری (تروجان، اطلاعات جاسوسی و ..) باشند.

  • نکته: همانطور که در بخش اول هم اشاره شد، متادیتا یعنی اطلاعاتی در مورد اطلاعات. به این صورت که هر فایلی که شامل اطلاعاتی است، توضیحی با خود به همراه دارد. متادیتا ممکن است ساختار فایل را توضیح دهد و یا ممکن است اطلاعاتی در مورد محتوای فایل داشته باشد. اطلاعاتی از قبیل سایز فایل، آخرین تاریخ ویرایش ان، تاریخ ایجاد آن و ... .
ADS چیست؟ آموزش استفاده از Alternate Data Stream ویندوز

مدیریت جریان های اطلاعاتی جایگزین (ADS)

یک جریان اطلاعاتی جایگزین با نشانه گذاری خاص خود نامگذاری میشود:

FileName : StreamName

در عبارت بالا منظور از "FileName" همان بخش و جریان اصلی اطلاعات یک فایل است که منظورمان از یک فایل دقیقا به آن اطلاعات اشاره دارد. در واقع در قسمت "FileName" آن چیزی قرار میگیرد که windows explorer از فایل ما نشان خواهد داد. در ادامه علامت " : " و بعد از آن نام جریان اطلاعاتی را خواهیم نوشت.

دقت کنید که یک فایل میتواند بیش از یک جریان اطلاعاتی را در خود جای دهد. در برخی حالات نام جریان میتواند بصورت یک شناسه یونیک (GUID) و با فرمت هگزادسیمال و یا یک "FileName" دیگر باشد.

من قصد دارم تا از جزئیات مربوط به حالات مختلف یک جریان اطلاعاتی عبور کنم و مستقیما بحث را محدود به زمانی کنم که جریان اطلاعاتی جایگزین، خود یک فایل دیگر است. بطور مثال فایل Ehsan.txt را به عنوان یک جریان اطلاعاتی جایگزین در فایل paint.exe وارد و مخفی کنیم.

پیدا کردن جریان های اطلاعاتی جایگزین (ADS)

سوال اینست: تا زمانی که جریان های اطلاعاتی جایگزین مخفی هستند و در مکان های معمول قابل رویت نیستند، چطور میشود آن ها را پیدا کرد؟ساده ترین راه دانلود کردن یکی از ابزارهایی است که مخصوص لیست کردن و نشان دادن ADS ها هستند. در این جا دو ابزار را تست خواهیم کرد

اولین آن "Streams" از شرکت "Microsoft sysintrenals" و دیگری "LADS" از شرکت "Frank Heyne" است که در میان دیگر رقبا میتوان گفت بهتر کار میکنند.هر فایل یا فولدری را که به ان معرفی کنید، لیست تمامی جریان های اطلاعاتی جایگزین موجود در آن را بشما نشان خواهند داد.

اعمالی را که در زمینه ADS انجام خواهیم داد غالبا در محیط Command Prompt صورت خواهند گرفت و ابزاری را که معرفی کردیم، هرکدام یک فایل هستند که در محیط Command Prompt اجرا و مورد استفاده واقع خواهند شد.یکی از دستوراتی که ابزار "streams" از آن استفاده میکند، بصورت زیر است:

Streams somefolder \ *

این عبارت هر جریان اطلاعاتی جایگزینی را که در فولدر معرفی شده وجود داشته باشد، بصورت لیست شده نشان خواهد داد. به یاد داشته باشید که لیست ADS ها معمولا شامل نمادهایی است که نوع محتوا را نشان میدهند. یک لیست ممکن است به فرمت زیر باشد:

Somefile : somestream : $Data

"Data$"، هویت استریم را نشان میدهد. ابزار "Streams" در اینجا فقط نام ADS ها را نشان خواهد داد و کاری به محتوای آن ها ندارد.

  • مشاهده و دسترسی جریان های اطلاعاتی جایگزین (ADS) : اگر شما نام استریم را بدانید، میتوانید با استفاده از برخی از اپلیکیشن های ویندوزی، استریم را ببینید و حتی آن را اجرا کنید. اگر جریان مورد نظر از متن تشکیل شده باشد، میتوان در محیط دستوری، فرمان زیر را وارد کرد:
Echo > {path} somefile.txt : somestream.txt
  • نکته: در مثال بالا، منظور از somefile و somestream به ترتیب هرفایلی و هر استریمی میباشد.

در خروجی شما میتوانید متن استریم را مشاهد کنید. علاوه بر این برای مشاهده استریم های متنی، میتوانید در محیط دستوری، از notepad هم استفاده نمایید:

Notepad {path} somefile.txt : somestream.txt

در ادامه نوت پد باز خواهد شد و متن را نشان میدهد. در مثال بالا برای استفاده از اپلیکیشن هایی نظیر notepad، حتما باید مسیر کامل استریم را قید کنید.یک استریم علاوه بر محتوای متنی، میتواند محتوایی باینری و یا حتی اجرایی داشته باشد. برای مثال استریم میتواند از جنس یک عکس باشد؛ در این صورت اپلیکیشن paint میتواند آن را باز کند؛ پس:

Mspaint {path} somefile.txt : somepicture.gif

توجه داشته باشید که این موضوع برای تمامی برنامه های گرافیکی ممکن است صدق نکند و اگر بجای mspaint در مثال بالا نرم افزار دیگری را جایگزین کنید، ممکن است کار نکند.به یاد داشته باشید که هر فایلی که بصورت یک استریم متنی باشد، میتواند یک یا چندین استریم باینری هم داشته باشد.

استریم های اجرایی ( Executable Streams )

هرفایل اجرایی میتواند در یک فایل متنی بصورت یک استریم قرار گیرد. این در حالی است که این استریم اجرایی به هیچ وجه سایز فایل متنی را افزایش نمیدهد و اگر فایل متنی در ابتدا 1 کیلوبایت باشد، پس از اضافه شدن یک استریم اجرایی به آن (استریم مخفی و گاها حجیم)، باز هم همان سایز را خواهد داشت.اگر در یک فایل متنی، یک استریم اجرایی واقع باشد، بصورت زیر میتوان آن را اجرا کرد:

Start {path} somefile.txt : someprogram.exe

بازهم قید میکنیم که حتما باید مسیر کامل فایل وارد شود.

چگونه جریان های اطلاعاتی جایگزین را ایجاد کنیم؟

خوب میتونم بگم که در این بخش به جایی رسیدیم که از اول سری مباحث ADS بدنبال آن بودید. به نوعی این امکان وجود داشت که این بخش را اول بگوپم اما از آنجایی که لازمه درک صحیح این مفهوم، یادگیری جوانب دیگر آن نیز هست و معمولا به ان توجیه نمیشود

تصمیم گرفتم که این بخش را در قسمت سوم مطرح کنم.اضافه کردن یک استریم جایگزین به یک فایل موجود بسیار ساده است. مجددا از محیط دستوری استفاده خواهیم کرد. برای ایجاد یک استریم جدید که شامل چندین فایل متنی هست، از دستور زیر استفاده میکنیم:

Echo {some text (optional)} > {path} somefile : addedtext.txt

در این صورت فایل "somefile"، شامل استریمی با فایل متنی "addedtext.txt" خواهد شد که محتوای این فایل متنی، همان عبارتی است که میتوان بصورت دلخواه پس از دستور echo وارد کرد.برای اضافه کردن یک فایل کامل (به عنوان استریم) که شامل چندین فایل باینری هست، از طریق فرمان زیر عمل میکنیم:

Type {path} programfile.exe > {path} somefile : addedfile.txt

استریم های جایگزین با دستوراتی مشابه دستورات بالا میتوانند به یک دایرکتوری هم وصل شوند.

ملاحضات امنیتی

همانطور که مشاهده کردید، از آنجایی که فایل های اجرایی هم میتوانند در کنار یک فایل دیگر خود را پنهان کنند، بنابراین این امکان نیز وجود دارد تا با این روش فایل های آلوده پنهان و بدون اطلاع کاربر خود را اجرا کنند. خوشبخانه غالب آنتی ویروس های معتبر و بروز، میتوانند استریم های جایگزین را شناسایی کنند.

علاوه بر این اگر فایل مورد نظر که حاوی استریم جایگزین است، به داخل یک مدیای غیر NTFS مثل دیوایس های پرتابل (فلش درایو و ..)کپی شود و یا بصورت فایل ضمیمه داخل یک ایمیل اضافه شود، بطور خودکار فایل پنهان آن پاک خواهد شد.

بنابراین فایل داخل استریم با روش های معمول دانلود، نمیتواند به حیات خود ادامه دهد. از طرفی دیگر اگر با ابزار "streams" که در بخش قبل معرفی شد، استریمی را شناسایی کردید، با استفاده از یکی از سوئیچ های آن میتوانید ADS را پاک کنید.

در بخش پیش در رابطه با ایجاد استریم های جایگزین (ADS) ها بطور کلی صحبت کردیم و بصورت پارامتری و نمادین نحوه ساخت آن را نشان دادیم. در این بخش سعی خواهیم کرد تا بطور جزئی تر و با مثال های بیشتری موضوع را برای شما جا بیاندازیم.

چطور میشود یک (Alternate Data Stream (ADS ایجاد کرد؟

در یک صفحه Command Prompt، مثال زیر را که نمونه ای از ساخت یک ADS است، بشما نشان میدهیم:

C:/test>echo "ADS" > test.txt:hidden.txt

با انجام فرمان بالا، یک استریم جدید به نام hidden.txt ساخته و به فایل متنی test.txt، اضافه شد. همانطور که در مثال ساده بالا هم مشاهده کردید، فایل ADS یا همان استریم جایگزین بعد از علامت : نشان داده میشود و در مقابل، : هم باید زمانی مورد استفاده قرار گیرد که میخواهیم یک ADS به فایل موجود اضافه کنیم.

در ادامه اگر در دایرکتوری موجود، فرمان DIR را اجرا کنید، خواهید دید که همه چیز بصورت نرمال نشان داده میشود و خبری از فایل استریم (ADS) و یا حتی نشانه ای از آن در فایل test.txt نیست. با این عمل مطمئن میشویم که یک استریم جایگزین (ADS) در عین این که وجود دارد، ولی در فایل موجود (test.txt) مخفی است و حتی با روش های معمول لیست کردن فیال های دایرکتوری (DIR) هم نمیتوان بوجود آن پی برد:

C:\test > dir
   Volume in drive C has no lable.
    Volume Serial Number is B899-75DB

    Directory of c:>test
12/12/2015  11:23 AM
. 12/12/2015 11:23 AM
.. 12/12/2015 11:23 AM 0 test.txt 1 File(s) 0 Bytes 2 Dir(s) 110,657,060,864 Bytes free


از طرف دیگر، اگر شما از ابزار LADS استفاده کنید، میتوانید ADS موجود یعنی استریم hidden.txt اضافه شده به فایل test.txt را مشاهده کنید:

C:\test> lads
LADS – freeware version 4.0
© copyright 1998-2007 Frank Heyne Software (http://www.heysoft.de)
This program list files with alternate data streams (ADS)
Use LADS on your own risk!

Scanning directory C:\test	Size  	ADS in file
-------------	--------------------------------------
	0 	c:\test\test.txt:hidden.txt
	0 bytes in 1 ADS listed

اگر بخواهید که محتوای فایل hidden.txt را ببینید و یا به محتوای آن اطلاعاتی را اضافه کنید، فقط کافیست از notepad برای باز کردن فایل استفاده کنید:

C:\test> notepad test.txt:hidden.txt

این فرمان فایل استریم را در قالب یک نوت پد باز کرده و بشما این امکان را میدهد تا آن را ویرایش و مجددا ذخیره نمایید.علاوه بر این میتوان از نوت پد برای ساخت یک فایل استریم (ADS) نیز استفاده کرد:

C:\test> notepad test2.txt:Ehsan.txt

پس از اجرای این فرمان، نوت پد باز خواهد شد و به شما پیغامی مبنی بر عدم وجود این فایل میدهد و در ادامه از شما در رابطه با ایجاد و ذخیره این فایل سوال میکند. با این روش هم توانستیم مانند روش قبلی یک ADS جدید بنام Ehsan.txt ایجاد کنیم. هیچ الزامی در پیوست کردن فایل های ADS فقط به یک فایل نیست، آن ها را میتوان به یک دایرکتوری هم اضافه کرد.

اما این موضوع مشکلاتی را هم در پی خود به همراه دارد و آن اینست که هنگامی که شما یک ADS را به روت یک هارد درایو پیوست میکنید، دیگر به سادگی نمیتوان آن را پاک کرد، مگر آن که درایو را فرمت کنید. قاعدتا نباید به این صورت باشد ولی حداقل من تا کنون برای این موضوع راه حل دیگه ای پیدا نکردم و اگر از دوستان کسی راه حل بهتری برای رفع این مشکل سراغ دارد، بما هم اطلاع دهد!! در اینجا مثالی از نحوه ساخت یک ADS برای پیوست شدن به یک دایرکتوری را خواهیم زد:

C:\test> echo test> :hidden.txt

حالا میتوان با اجرای LADS، مطمئن شویم که استریم جدید به دایرکتوری test اضافه شده است.

ADS ها از کجا مشکل زا می‌شوند؟

اگر بدانید که ADS و تمام قضایایی که گفتیم در مورد فایل های اجرایی هم صدق میکنند، چه خواهید گفت؟ دقیقا همینطوره، فایل های ADS ای که اجرایی هستند، میتوانند به هرفایلی مانند آن چیزی که در قسمت پیش انجام دادیم، پیوست شوند. مشکل از اینجا شروع میشود که فایل های اجرایی میتوانند خود را از دید اکثر نرم افزارهای امنیتی مثل آنتی ویروس ها مخفی کنند.بطور مثال:

C:\test> type c:\windows\notepad.exe > test.txt:Ehsan.exe

با اجرای این عبارت توانستیم یک فایل ADS به نام Ehsan.exe را ایجاد کرده و به فایل متنی test.txt پیوست کنیم. همانطور که میبینید به نسبت ساخت یک ADS متنی که در قسمت پیش برایتان شرح دادیم، برای ساخت یک ADS اجرایی، به علت آن که فایل اجرایی مورد نظر باید از پیش وجود داشته باشد و نمیتوان آن را مانند فایل متنی در لحظه ساخت، در عبارت موجود، مسیر فایل اجرایی را نیز باید مشخص کنیم.

پس از اجرای این دستور بمانند صحبت های پیشین، میتوان با اجرای دستور DIR از مخفی بودن این فایل اجرایی اطمینان حاصل کرد و همچنین با اجرای ابزار LADS میتوان این فایل اجرایی مخفی شده را در دایرکتوری test مشاهده نمود.در این جا باید نکته ای در رابطه با فایل های ADS اجرایی و نحوه اجرای آن ها بیان کنیم.

اگر مطالب قسمت های پیش را دنبال کرده باشید، برای اجرا و ویرایش یک ADS متنی، از نوت پد استفاده کردیم؛ در اینجا نیز برای اجرای ADS اجرایی، از فرمان START استفاده کنیم. یادتان باشد که حتما در عبارت وارده باید مسیر کامل فایل را قید کنید. در زیر مثال هایی از فرمان هایی که صحیح هستند و فرمان هایی که صحیح نیستند را نشان دادیم ، در این مثال همانطور که در بالا هم گفته شد، اول ADS اجرایی را ایجاد میکنم:

C:\test> type c:\windows\notepad.exe > test.txt:Ehsan.exe

حالا کامند هایی را که برای اجرای استریم Ehsan.exe معمولا بطور اشتباه استفاده میشوند و کار هم نمیکنند، در زیر آورده شده است:

C:\test> test.txt:Ehsan.exe
The filename, directory name, or volume label syntax is incorrect.

C:\test>c:\test\test.txt:Ehsan.exe
The filename, directory name, or volume label syntax is incorrect.

C:\test>start test.txt:Ehsan.exe
Access is denied.

اما در زیر کامندی که میتواند بطور صحیح استریم Ehsan.exe را اجرا کند، نشان داده شده است:

C:\test> start c:\test\test.txt:Ehsan.exe

همانطور که قبلا هم گفته شد، باید مسیر کامل فایل استریم اجرایی در عبارت دستوری استفاده شود تا بتوان به آن ADS دست پیدا کرد.

چطور فایل ADS را میتوان پاک نمود؟

پاک کردن فایل های ADS عموما سخت نیست، اما در کنار این ساده پاک شدن، میتوانند سبب بوجود امدن مشکلاتی شوند که در ادامه حول این موضوع صحبت خواهیم کرد.برای پاک کردن یک فایل ADS پیوست شده به یک فایل، فقط کافیست که خود فایل را پاک کنیم. بهمین راحتی! برای مثال فایلی داریم به اسم test.txt که استریمی به نام Ehsan.txt به آن پیوست شده است.

حالا میخواهیم از شر این استریم چسبیده به فایلمان خلاص شویم. اما موضوعی که وجود دارد اینست که ما درون فایل test.txt اطلاعاتی داریم که برایمان مهم است. بنابراین نمیتوانیم با استفاده از روش پاک کردن test.txt، از شر فایل Ehsan.txt هم خلاص شویم. بنابراین با استفاده از عبارات و دستوراتی مانند زیر، سعی در دور زدن این محدودیت میکنیم:

C:\test> ren test.txt temp.txt
C:\test> type temp.txt > test.txt
C:\test> del temp.txt

همانطور که میدانید دستور ren (مخفف rename)، برای تغییر نام یک فایل و یا فولدر استفاده میشود. درعبارت اول فایل test.txt را به temp.txt تغییر نام میدهیم. در خروجی یک فایل temp.txt را خواهیم داشت که استریم Ehsan.txt همچنان به آن پیوست شده است.در عبارت دوم، محتویات فایل temp.txt (همان اطلاعاتی که مانع از پاک کردن test.txt شد) را درون یک فایل جدید به نام test.txt کپی میکنیم. این کار را بااستفاده از دستور type (معادل cat در لینوکس)، انجام میدهیم.

با این کار توانستیم تمام اطلاعات مورد نیازمان را درون یک فایل به نام test.txt کپی کنیم و این در حالی است که دیگر استریم Ehsan.txt به فایل جدید test.txt پیوست نیست (به فایل temp.txt پیوست است). حال با خیال راحت میتوانیم با پاک کردن فایل ثالت temp.txt از شر استریم Ehsan.txt خلاص شویم. این کار را در عبارت سوم و با دستور del( مخفف Delete) انجام دادیم.

اگر ADS را به یک دایرکتوری پیوست کرده باشیم، همانند بالا چاره ای جز پاک کردن دایرکتوری نخواهیم داشت که دردسر آن به مراتب بیشتر از پاک کردن یک فایل است (در صورتی که اطلاعات و فایل های مهمی داخل دایرکتوری موجود باشد)؛ هرچند باز هم میتوان با استفاده از حربه بالا، این کار را نیز براحتی انجام داد.

اما اگر استریم را به روت یک هارد درایو پیوست کرده باشیم، دچار دردسر خواهیم شد؛ چرا که چاره ای جز فرمت کردن آن درایو را نخواهیم داشت. برای این موضوع میتوان با پر کردن محتوای استریم از اطلاعات مبهم و بی معنی، از شراطلاعات داخل آن (و نه خود استریم) خلاص شد.

C:\test> echo empty>temp.txt
C:\test> type temp.txt>:Ehsan.txt

بدافزارهایی وجود دارند که با استفاده از این مفهوم (ADS) اقدام به آلوده سازی سیستم شما میکنند. در مقابل هم ابزاری وجود دارند که با استفاده از آن ها میتوان اینگونه بدافزارها را شناسایی و پاکسازی نمود. یکی از این نرم افزارها که فایل های ADS را جستجو و شناسایی کرده و لیستی از آن هایی را که قابل پاک شدن هستند را ارائه میدهد، ADSSPY است. این نرم افزار را میتوانید از طریق این لینک دانلود کنید.

ADSSPY Download Link ADS چه کاربردهای رایجی دارد؟

همانطور که در بخش اول هم اشاره کردیم، از فایل های ADS استفاده های مجاز و رایجی میشود. مثلا فایل های تعریف شده در ویندوز، در Properties شان تب summary دارند، که حاوی اطلاعاتی درباره آن فایل است و حتی میتوان به این اطلاعات اضافه و یا کم کرد. این اطلاعات به عنوان فایل های ADS به فایل و یا پوشه های ویندوز پیوست میشوند. مثل قبل با اجرای ابزار LADS در فولدر و درایوها میتوان این موضوع را در مورد فایل های مختلف مشاهده کرد.


احسان امجدی
احسان امجدی

کارشناس امنیت اطلاعات و ارتباطات

احسان امجدی ، مشاور امنیت اطلاعات و ارتباطات و تست نفوذ سنجی ، هکر کلاه سفید ، مدرس دوره های تخصصی امنیت اطلاعات و شبکه ، تخصص در حوزه های سرویس های مایکروسافت ، Routing و Switching ، مجازی سازی ، امنیت اطلاعات و تست نفوذ ، کشف جرائم رایانه ای و سیستم عامل لینوکس ، متخصص در حوزه SOC و ...

نظرات