ايران ويج

نسخه‌ی کامل: نوشتن ویروسهایی بر اساس طبیعت
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
امروز داشتم روی ویروس میکر جدیدم کار می کردم که فکری به نظرم رسید
تا حالا ویروس های زیادی به وجود آمده اند که بر اساس ویروسهای واقعی کار می کنند
اما اگر دقیقا ساختمان یک ویروس طبیعی با یک ویروس کامپیوتری رو مقایسه کنید
به حقیقتهایی دست پیدا خواهید کرد که قویترین ویروسهای کامپیوتری در برابر آنها دیده نمی شوند
اصلا به نظر من نباید به بدافزارها ویروس گفت بلکه باید به آنها باکتری لقب داده شود
چون باکتری خودش را تقسیم می کند و کارهای دیگر انجام می دهد اما ویروس
خودش را تکثیر نمی کند بلکه سلول هدف را به کارخانه ویروس سازی تبدیل می کند
تا ویروسهایی شکل خودش را بسازند
ویروسها در حقیقت بین موجودات زنده و مرده اند،در بیرون از بدن کار نمی کنند،از هرجایی رد می شوند
اما موجودی با این ویژگی ها از چه تشکیل شده است؟
ویروسها فقط یک کروموزم دارند
کرومزومی به طول یک متر که با هزاران دور پیچش به طولی نانومتری رسیده اند یعنی در حدود
یک میلیارد بار کوچکتر شده است
بعضی از انها می توانند جهش کنند و هر بار به شکلی جدید وارد بدن شوند در نتیجه
هیچ گاه جلوی ورود آنها گرفته نمی شود و سیستم دفاعی بعد از آلوده شدن تازه متوجه
ویروس می شود و در بعضی مواقع دستگاه دفاعی نیز از کار می افتد
--------------------------------------------------------------------------------------------
مطلب بالا درباره ویروسهای واقعی بود تا به اصل مطلب برسیم
من توی فکر ساختن یک ویروس با ویژگی ها بالا هستم
من فکر ساختن این ویروس رو که کردم فهمیدم باید سه چیز رو دونست :
نقل قول: 1-ساختار سیستم عامل بخصوص هسته و فایلها اجرایی اصلی
2-ساختار سیستم های دفاعی(آنتی ویروسها،فایروالها و ...)
3-راه و روشها تزریق کد بصورت حرفه ای (پویا و ثابت)
-----------------------قسمت اول----------------------------------------------
ساختار سیستم عامل و هسته آن به خاطر اینکه باید خوده سیستم عامل و هسته و فایلهای اجرایی
را مجبور به ساخت ویروس کنیم و خوده ویروس نباید هیچ دستور کپی سازی داشته باشد
حال باید کد مورد نظر را به عنوان قسمتی از کدها هسته و فایل های اجرایی دورن فایل تزریق کنیم
در این حالت دیگر ویروس اصلی به وسیله آنتی ویروس ها شناخته نشده و در صورت شناخته شدن
هم ممکن است به هسته یا فایلهای مهم آسیب زده و در کل باعث خرابی سیستم شود
چیز دیگر اینکه نباید هیچ گونه فایلی وجود داشته باشد که کدهای ویروس به صورت تنها در آن باشند
زیرا امکان شناخته شدن توسط انتی ویروسها و لو رفتن ویروس است
ساختار سیستم های دفاعی برای عبور در آن،استفاده از آنها به نفع خودمان و نابودی انها به کار می آید
مثلا می توانیم با تزریق کدهای مخرب قدیمی به فایلها مهم باعث خراب شدن آنها توسط آنتی
ویروسها شده و از آنتی ویروسها بر علیه سیستم استفاده کنیم و کارهای دیگر
-----------------------------قسمت دوم-----------------------------------
قسمت اول رو می شه با شناخت کامل از ویروسها طبیعی و موارد یاد شده در سیستم طراحی کرد
اما به یک چیز دیگر می رسیم که آن حجم ویروس است که تقریبا برابری با ویروسهای طبیعی غیرممکن است
کدام پکری است که می تواند یک فایل 1 گیگابایتی را به یک فایل چند کیلوبایتی تبدیل کند
و مشکل من هم در حجم ویروس است و از دوستان درباره این مشکل یاری می طلبم
و مشکل دیگه من در تغییر و جهش اتوماتیک ویروس است که بازهم از شما یاری می طلبم
----------------------------------------------------------------------------
من می خواستم اول این کارها را در ویروس میکر خودم استفاده کرده و سپس آنها را انتشار دهم
اما از قدیم گفتن مشورت خوبه(البته با هل فن مثل شما)
حالا اگه می شه نظرات خودتون رو درباره فکر و روش من بگید و آن را تکمیل و اصلاح کنید
در صورت پیدا شدن یک همچین ویروسی واقعا زلزله ای 8 رشته ای در سایبر پدید خواهد آمد
--------------------------------------------------------------------------
زبان برنامه نویسی که من فعلا دارم باهاش روی این طرح کار می کنم PowerBASIC است
البته درون کدها برای سرعت اجرای بیشتر از اسمبلی نیز بهره خواهم برد
ولی اگه شما طرحی دارید می تونید با ++C/C یا اسمبلی قرار دهید
شما به چند تا مسئله هم زمان با هم اشاره كرديد :

بدافزارهايي كه ما امروزه اكثرا باهاشون در ارتباطيم در طبقه بندي بد افزارها به كرم يا همون باكتري معروف هستند.
برنامه هايي كه مي تونند خودشون رو تكثير كنند و ..... كاملا شبيه به باكتري.

طبقه بندي بد افزارهاي به صورت ويروس ها ، كرم ها ، تروجان ها و بمب ها بوده و تا امروز هم مي شه تقريبا اوهنها رو به همين شكل طبقه بندي كرد و خوب طبع شما مي تونيد بدافزاري با گرايش به يك يا چند تا از انواع بدافزارها بنويسيد كه كاملا بستگي به ميل و نياز شما و البته ميزان تخصص ويروس نويس داره. طبعا چون اكثر ويروس نويس ها افراد كم تجربه و بي اطلاعي هستند ( همچين ويروس نويسي تو سايت نداريم اصلا همه حرفه اي هستند اينجاWink ) نمي تونند چيزي فراتر از يه كرم يا كيلاگر ساده بنويسن.

اما بحث ويروس هاي طبيعي خيلي خيلي پيچيده تر از اين حرفهاست. طرز كار ويروس هاي طبيعي هيچ وقت به اين سادگي اي كه گفتيد نيست اما همونطور كه گفتيد طرز كار اين بدافزارهايي كه عموما دارن تو اين سايت ها و وبلاگ هاي مختلف نوشته مي شن اونقدر ساده هست كه بشه با كمي تغيير داخل اونها بهينه ترشون كرد اما نه در سطح يه ويروس طبيعي.

و اما قرار گفتن ويروس در فايلهاي اجرائي، اينكه ويروس فايل مشخصي نداشته باشه و با توجه به كرنل سيستم فعاليت كنه ...... درسته يه همچين چيزي واقعا تو دنياي سايبر ايجاد زلزله مي كنه و آنتي ويروس ها به سختي مي تونن از پسش بر بيان. اسم اين چيزي كه گفتيد روتكيت هست و واقعا شاهكار بدافزار نويسيه.

شما مي تونيد داخل بخش خصوصي يا با سرچ تو گوگل ،سايت هاي تخصصي روتكيت نويسي رو پيدا كنيد و اطلاعات ارزشمندي در رابطه به طرز كار اونها پيدا كنيد و احتمالا كار با چند تا روتكيت واقعي تجربه فوق العاده هيجان انگيزي براتون باشه.
چیزی که شما مد نظرتونه نوشته شده به دفعات مثل کرم بلستر , کرم نیمدا , کرم مای دوم
هر کرم از چند بخش تشکیل شده (کرمهای اصلی نه اینی که ما مینویسیمو اسمشو میزاریم کرم)
warhead یا سر جنگی که exploit ی هست برای حمله و نفوظ به کامپیوترهای دیگه payload که مسول بخش تزریق و جاسازی هست و بخش body که کارش گشتن برای میزبان بعدی هست
نوشتن چنین چیزی اطلاعات زیادی میخواهد راجه به shell coding , exploiting و اشنا بودن به نحوه کار سیستم عامل و ساختار فایلهای pe
(۰۶-دى-۱۳۸۷, ۲۲:۵۱:۱۳)lord_viper نوشته است: [ -> ]چیزی که شما مد نظرتونه نوشته شده به دفعات مثل کرم بلستر , کرم نیمدا , کرم مای دوم
هر کرم از چند بخش تشکیل شده (کرمهای اصلی نه اینی که ما مینویسیمو اسمشو میزاریم کرم)
warhead یا سر جنگی که exploit ی هست برای حمله و نفوظ به کامپیوترهای دیگه payload که مسول بخش تزریق و جاسازی هست و بخش body که کارش گشتن برای میزبان بعدی هست
نوشتن چنین چیزی اطلاعات زیادی میخواهد راجه به shell coding , exploiting و اشنا بودن به نحوه کار سیستم عامل و ساختار فایلهای pe

من ساختمان کرمها را می دونم ولی این چیزی فراتر از این حرفهاست همین طور که آقا مهدی

گفت رقابت با ویروسهای واقعی خیلی سخته

و این ویروس های کامپیوتری فقط پرتویی از ویروسهای طبیعی اند

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

وصل فایل آپدیت دریافت کنه!

بلکه باید خودش به همه چیز آگاه باشه و خودش رو بر اساس وضعیت تغییر بده البته می دونم

که کرمهایی هستند که اینکار را می کنند اما همگی شکست می خورند

-------------------------------------------------------------------------------

اصلا یه ویروس سرماخوردگی ساده رو در نظر بگیرید پس از میلونها سال زندگی هنوز هم

به علت تغییر شکل و جهشش نمی شه شناسایش کرد و به نظر نمی یاد بشه پادزهری

ساخت که بدن را در مقابل این ویروس مقاوم کند
یه چیز دیگه هم بگم که مشکل من اکثر با کار در ویندوزه
وگرنه نوشتن یک روت کیت در سطح هسته توی لینوکس کار سختی نیست، حتی سورس یک روت کیت ساده در سطح کرنل
در لینوکس رو یک برنامه نویس متوسط C هم می تونه بفهمه
البته با داشتن اطلاعات کافی که اونم به راحتی می شه بدست آورد
شما برای نوشتن چنین ویروسی باید اناتومی ویروسهای واقعی رو کامل درک کنید
برای نوشتن اینجور ویروسها شما نیاز به اشنایی کال به زبان اسمبلی دارین چون کد نمونتون باید خیلی کم حجم باشه اینجور ویروسها از 2 بخش تشکیل میشن بخش loader و بخش boady که بخش loader که خیلی کم خجم هست وطیفه decode و decompress بخش boady رو بر عهده داره بعد از اجرا شدن بخش boady عملیات خرابکارانه شروع میشه ابتدا ویروس مورد نظر میزبان رو شناسایی میکنه و در مکانی مناسب بین کدهای برنامه اصلی loader رو قرار میده و ادرس boady جدید در میزبان و دوباره ویروس را compress&encrypt کرده و داخل ان قرار میدهد بدیهی است که چون مقدار حجم loader کم بوده و ممکن است در هر غار یا garbege از فایل باشد شناسایی ان تغریبا غیر ممکن است و boady هم میتوان با تغییر نوع xor و اضافه کردن چند nop به صورت random در بین ان شناسایی ان را تا حد بسیار زیادی کاهش داد ویروسهایی از این دست وجود دارند و در صورت نیاز به اطلاعات بیشتر کلمه کلیدی Polymorphic را در گوگل جستجو کنین
در مورد روتکیتها در بخش خصوصی بحث شده برای اشنایی و کار در سطح حرفهای شما به چند چیز نیازمندید
1 اشنایی کامل با سیستم عامل ویندوز و توابع api
2 اشنایی کامل با فایلهای pe و چگونگی اجرای ان
3 اشنایی کامل به یک زبان برنامه نویسی native
4 اشنایی به مباحث encryption,Polymorphic,capsulation,compression
این اصول +چند چیز دیگه شما رو در این راه یاری میکنند

موفق باشید
(۰۷-دى-۱۳۸۷, ۲۲:۵۶:۳۹)lord_viper نوشته است: [ -> ]شما برای نوشتن چنین ویروسی باید اناتومی ویروسهای واقعی رو کامل درک کنید
برای نوشتن اینجور ویروسها شما نیاز به اشنایی کال به زبان اسمبلی دارین چون کد نمونتون باید خیلی کم حجم باشه اینجور ویروسها از 2 بخش تشکیل میشن بخش loader و بخش boady که بخش loader که خیلی کم خجم هست وطیفه decode و decompress بخش boady رو بر عهده داره بعد از اجرا شدن بخش boady عملیات خرابکارانه شروع میشه ابتدا ویروس مورد نظر میزبان رو شناسایی میکنه و در مکانی مناسب بین کدهای برنامه اصلی loader رو قرار میده و ادرس boady جدید در میزبان و دوباره ویروس را compress&encrypt کرده و داخل ان قرار میدهد بدیهی است که چون مقدار حجم loader کم بوده و ممکن است در هر غار یا garbege از فایل باشد شناسایی ان تغریبا غیر ممکن است و boady هم میتوان با تغییر نوع xor و اضافه کردن چند nop به صورت random در بین ان شناسایی ان را تا حد بسیار زیادی کاهش داد ویروسهایی از این دست وجود دارند و در صورت نیاز به اطلاعات بیشتر کلمه کلیدی Polymorphic را در گوگل جستجو کنین
در مورد روتکیتها در بخش خصوصی بحث شده برای اشنایی و کار در سطح حرفهای شما به چند چیز نیازمندید
1 اشنایی کامل با سیستم عامل ویندوز و توابع api
2 اشنایی کامل با فایلهای pe و چگونگی اجرای ان
3 اشنایی کامل به یک زبان برنامه نویسی native
4 اشنایی به مباحث encryption,Polymorphic,capsulation,compression
این اصول +چند چیز دیگه شما رو در این راه یاری میکنند
موفق باشید
به چند چیز اشاره کردید که باید بدونیم :
=================================
روی قسمتهای 2 و 4 کار کردم و سورسهای نمونه دیدم
یه چیز دیگه هم هست که اون تزریق کد به صورت دینامیک و ثابت است که اونم مشکلی نیست
یعنی در کل با این حرفهای شما هیچ مشکلی نیست :
نقل قول: کد نمونتون باید خیلی کم حجم باشه اینجور ویروسها از 2 بخش تشکیل میشن بخش loader و بخش boady که بخش loader که خیلی کم خجم هست وطیفه decode و decompress بخش boady رو بر عهده داره بعد از اجرا شدن بخش boady عملیات خرابکارانه شروع میشه ابتدا ویروس مورد نظر میزبان رو شناسایی میکنه و در مکانی مناسب بین کدهای برنامه اصلی loader رو قرار میده و ادرس boady جدید در میزبان و دوباره ویروس را compress&encrypt کرده و داخل ان قرار میدهد بدیهی است که چون مقدار حجم loader کم بوده و ممکن است در هر غار یا garbege از فایل باشد شناسایی ان تغریبا غیر ممکن است و boady هم میتوان با تغییر نوع xor و اضافه کردن چند nop به صورت random در بین ان شناسایی ان را تا حد بسیار زیادی کاهش داد
=================================
از نظر زبان برنامه نویسی :
PowerBASIC که کاملا native است و مشکلی از بابت زبان برنامه نویسی نیست
و چون حجم برنامه ها خیلی کمه پکر و کمپرسور زیاد نمی تونند کمترش کنن
سرعت بسیار بالایی هم داره و حاوی دستوراتی است که مستقیم بشه کارهایی رو با
حافظه و CPU کرد و همین طور می شه به راحتی سطح اجرای برنامه رو برد پایین(پایین تر از User Mode)
=================================
فقط می مونه شناخت کامل سیستم عامل ویندوز به خصوص هسته
که فعلا هم دارم روی همین کار می کنم(تو کار دیکامپایل هسته هستم)
=================================
دیگه چی باید بدونیم؟
الان سورس یک روت کیت به زبان C در سطح هسته ویندوز پیدا کردم
همچین استخونام حال اومد.بسیار حرفه ای نوشته شده و اولا یک درایور نصب می کنه
این درایور رو که نصب کرد دستش باز می شه و
بعدش می ره تو کار پروسسها،حافظه،هوک در سطح هسته و ...
سورس یه دایور که می گفتن نوشتنش خیلی سخته هم دیدیم
اصلا قابل مقایسه با روتکیتهای لینوکس نبود
خیلی از مشکلام در این زمینه حل شد
===================================================
و همین طور داشتم توی Help پاوربیسیک،قسمت اسمبلی رو می دیدم،پیشرفت زیادی کرده بود
و می خوام یکم حرفه ای تر روی اسمبلی کار کنم تا هم حجم برنامه و هم سرعتش بره بالاتر
===================================================
همین طور که گفتم فعلا این چیزایی رو که دوستان گفتند انجام دادم و مشکلات عمده رفع شد
چیزه دیگه ای هم هست؟
________________________________________________________________________________________________
سورس درایور این روتکیت که گفتم به زبان C همراه با توضیحات موجود [attachment=1940]
البته با استفاده از محیط ++VC نوشته شده اما اصل کار توی همین چندتا فایله
می تونید با مبدل های موجود اینها رو به پاوربیسیک تبدیل کنید
کل سورس روتکیت رو یه جا جمع کردم :

[attachment=1952]

البته حالا دیگه آنتی ویروس می گیرتش

ولی اگه آنتی ویروس رو خاموش کنید و Rootkit را کامپایل کنید (++VC) یک فایل Sys تولید خواهد شد