پایان بازی - پاک کردن رد پا ها در هکینگ با پایتون :: Mr Python | مستر پایتون

پایان بازی - پاک کردن رد پا ها در هکینگ با پایتون

  • ۱۱۲۲

پایان بازی - پاک کردن رد پا ها در هکینگ با پایتون

درود به همه !

 

با پست آموزشی جدید در خدمت شما هستیم . همانطور که میدانید طبق مفاهیم دوره CEH (هکر قانونمند) ، هر سناریو هکینگ ، در پنج فاز یا مرحله انجام میشود . در مراحل ابتدایی مثل مراحل اول و دوم ، ما به بحث جمع آوری اطلاعات توسط هدفمون میپردازیم ، سپس در مرحله های سوم و چهارم تلاش میکنیم تا با توجه به اطلاعات جمع شده در مرحله اول و دوم ، به سیستم هدف نفوذ کنیم و سطح دسترسی خودمون رو افزایش بدیم . نهایتا در مرحله آخر میرسیم به Covering Tracks . یعنی پاک کردن رد پاها . اینجا آخر خط است ! جایی که معمولا یه هکر همه شواهد و مدارکو دود میکنه تا بره هوا و با اینکار هویت خودشو مخفی نگه میداره . امروز میخوایم ببینیم لاگ ها در ویندوز چی هستند و چرا اونا به عنوان مدرک جرم میتونن محسوب بشن به خصوص اینکه ببینیم چطوری میشه اونا رو به طور دستی یا با اسکریپت پایتونی که خودمون مینویسیم پاکشون کنیم :) . این پست رو از دست ندید .

اگه بخوام به طور خلاصه در حد تعریف مراحلی که یک هکر قانونمند برای نفوذ به یک هدف باید طی کنه رو بگم : 

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

مرحله دوم » اسکنینگ : در این مرحله هکر با توجه به اطلاعاتی که در مرحله قبل بدست آورد ، شروع میکنه به اسکن کردن هدف از نظر فنی (آیپی اسکنینگ ، پورت اسکنینگ و ....)

مرحله سوم » نفوذ و گرفتن دسترسی اولیه : در این مرحله هکر با توجه به اطلاعاتی که در مراحل قبل بدست آورده ، سعی میکنه تا به سیستم هدفش نفوذ کنه و یک دسترسی اولیه بگیره .

مرحله چهارم » افزایش سطح دسترسی : در این مرحله هکر سعی میکنه تا دسترسی که در مرحله قبل گرفته رو افزایش بده . مثلا اگه به سیستم یک کارمند در یک شرکت نفوذ کرده ، سعی میکنه تا از طریق اون کارمند برسه به سیستم مدیر شرکت .

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

 

در این پست ما روی مرحله ی پنجم یا آخر کار میکنیم . داخل ویندوز یا هر سیستم عاملی ، هرکاری که یک کاربر داره با اون سیستم میکنه ثبت میشه . در واقع خود سیستم عامل ها طوری طراحی شدن که تقریبا ریز و درشت اتفاقاتی که داره داخلشون میافته رو ثبت میکنن . به این اطلاعات میگن لاگ (log) یا رویداد (event) . حالا این اطلاعات ثبت شده به چه دردی میخوره ؟ 

در درجه ی اول میتونه به درد عیب یابی بخوره . برای مثال یک مدیر شبکه این اطلاعات ثبت شده رو میبینه تا بفهمه داخل سیستم چه اتفاقاتی افتاده که مثلا فلان مشکل بوجود اومده . 

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

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

 

اما بیاین این لاگ ها یا event ها رو داخل سیستم خودمون ببینیم . برای اینکار داخل ویندوز نرم افزار گرافیکی به طور پیشفرض وجود داره به اسم event viewer که کارش اینه که event ها یا لاگ های ثبت شده توسط سیستم رو به شما نشون بده . برای باز کردنش کافیه تو قسمت جستوجوی ویندوزتون اسمشو جستوجو کنید و پیدا کنید یا کلید های ترکیبی WIN+R رو بزنید تا پنجره ران باز بشه . سپس کلمه ی eventvwr رو تایپ کنید و اینتر بزنید . 

بعد از باز شدن ابزار event viewer با نمای زیر رو به رو میشیم : (برای نمایش با کیفیت بالاتر روی عکس ها کلیک کنید)

 

همونطور که در سمت چپ تصویر بالا مشخص شده ،   ما دسته بندی های مختلفی از لاگ ها رو میبینیم (Security , Application , ...)

 

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

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

 

دیگه توضیحی بیشتر در موردشون نمیدم چون بحث ما فقط پاک کردن ایناس بنابراین کاری به جزئیات فنی شون نداریم . میسپارم به خودتون .

اما چطوریم میتونیم اینا رو پاک کنیم ؟ 

ما هم به صورت گرافیکی و هم  با اسکریپت میتونیم اینکارو بکنیم . به صورت گرافیکی خیلی راحته . برنامه event viewer رو باز کنید و روی لاگی که میخواین پاک کنید کلیک راست کنید و گزینه  clear logs رو بزنید . برای مثلا در تصویر من روی لاگ های امنیتی (security) این کارو کردم . 

 

بریم سراغ اسکریپت . ابزاری داخل ویندوز هست به نام wevtutil.exe . این ابزار در پوشه System32 واقع در درایو ویندوز هستش . این ابزار در اصل یک رابط خط فرمان برای event viewer ویندوز هستش . یعنی به عبارتی همون کارایی که به صورت گرافیکی میتونستیم داخل event viewer انجام بدیم رو میشه اینجا از طریق خط فرمان با این ابزار انجام داد . 

 

برای پاک کردن یک لاگ خاص در خط فرمان از دستور زیر استفاده میکنیم : 

C:\> wevtutil.exe cl <Log Name>

به جای <Log Name> باید اسم اون لاگی که میخوایم پاک بشه رو قرار بدیم . برای مثال :

C:\> wevtutil.exe cl Security

 

به جای Security اسم هر نوع لاگ دیگه ای رو که میخواین میتونین بزارین . و اینکه این دستور باید با دسترسی administrator اجرا بشه .

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

 

اسکریپت پاک کردن لاگ های دلخواه در پایتون : 

from subprocess import check_output

eventlogs = ['Security' , 'Application' , 'System' , 'Setup', 'Internet Explorer']

for event in eventlogs:
    try:
        check_output(["wevtutil.exe" , "cl" , event.strip("\r")])
        print("[+] {} Logs Deleted .".format(event))
    except:
        print("[-] {} Logs Not Deleted .".format(event))

توضیح سورس کد : در ابتدای این سورس کد بسیار ساده تابع check_output رو از کتابخونه ی subprocess برای اجرای دستورات در خط فرمان ایمپورت کردیم . 

سپس یه لیستی به نام eventlogs تعریف کردیم که داخل اون اسم لاگ فایل هایی که میخوایم پاک بشن رو نوشتیم . برای مثال من میخواستم لاگ های Security , Setup ,System , Application , Internet Explorer پاک بشن .

سپس یک حلقه ی for روی لیست evenlogs ایجاد کردیم . داخل حلقه ، اومدیم از try و except (مدیریت استثنا) استفاده کردیم . درابتدا با استفاده از تابع check_output دستور مورد نظر رو در خط فرمان اجرا کردیم (wevtutil.exe cl logname) . اگه اروری در کار نبود یعنی دستور به درستی اجرا شده و لاگ ها پاک شدن . پس در خط بعد میاد چاپ میکنه که فلان لاگ پاک شد . 

درصورتی که با اروری در پاک کردن لاگ مواجه بشیم ، عبارت داخل except اجرا میشه و چاپ میکنه که فلان لاگ پاک نشد !!!

 

این اسکریپت رو حتما باید با دسترسی administrator اجرا کنیم وگرنه نمیتونه تمام لاگ ها رو پاک کنه . 

بعد از اجرای صحیح اسکریپت میبینیم :

 

حالا بریم داخل event viewer ببینیم چه خبر شده . 

وضعیت لاگ های Application :

وضعیت لاگ های Internet Explorer:

وضعیت لاگ های Setup :

 

میبینیم همشون خالی ان و در اصل تمام لاگ هایی که اسمشونو داخل لیست eventlogs نوشته بودیم دود میشن میرن رو هوا . ولی یه نکته جالب . اگه بریم وضعیت لاگ های Security رو ببینیم با صحنه ی زیر مواجه میشیم : 

میبینیم که یه لاگ ثبت کرده و نوشته یه نفر لاگ ها رو پاک کرد !!!!!!  . ویندوز به دلیل مسائل امنیتی لاگ های بعضی بخش ها مثل Security رو طوری مدیریت میکنه که اگر یه نفر لاگ هاش رو پاک کنه یه لاگ ثبت میکنه که یه آقایی اومد همه چیزو پاک کرد رفت !!!

جالبه ، هر مدرکی که نشون بده یه نفر داشته مدارک و شواهد رو پاک میکرده ، میتونه یک سرنخ  برای محقق باشه :)

 

امیدوارم لذت برده باشید . 

سوالی بود در بخش نظرات مطرح کنید . 

 

یا حق !

Telegram Channel : @mrpythonblog

 

  • سلام.

    کارت عالی بهترینی من هیچ جایی را ندیدم درباره این موضوع ها صحبت کنن.

    در لینوکس چطوری میشه لاگ ها را پاک کرد ؟؟؟

    پاسخ:
    سلام .
    خیلی ممنونم که دنبال میکنید .
    به زودی میزاریم همین چند وقت آموزششو ولی لینوکس اکثر  لاگ هاشو داخل فایل هایی ذخیره میکنه که اغلب در مسیر var/log/ هستند . میتونید اون فایل ها رو محتویاتشو حذف کنید .
  • عجب وبلاگ خوبی داری

    هروقت حتی اتفاقی هم میام اینجا نمیتونم الکی وبو ببندم

    کارت عالیه

    پاسخ:
    درود .
    ممنونم :)
  • خسته نباشید  عالی بود 

    پاسخ:
    ممنونم سلامت باشید .
  • سلام 

    خیلی خوب بود

    فقط من وقتی میخام یه دستوری رو تو خط فرمان اجرا کنم از این کد استفاده میکنم👇

    from os import system

    system("echo hello")

     اشکال نداره برای اجرای دستور خط فرمان از این پکیچ استفاده کنم؟

    پاسخ:
    درود . 
    نه مشکلی نداره میتونید از اینم استفاده کنید . کلی تابع دیگه هم هست که دستور داخل خط فرمان اجرا میکنن از اونا هم میتونید استفاده کنید :)
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی