یافتن وب شل یا بک دور از سایت (ویدیو)
این روزها زبان برنامه نویسی PHP هسته ی اصلی بسیاری از وب سایت های دنیا و سیستم های آماده مثل وردپرس ، پرستاشاپ ، لاراول و ... است ، همچنین طبق آمارها بیش از ۸۰ درصد وب سایت های دنیا در سمت سرور از این زبان برنامه نویسی استفاده میکنند. به همین خاطر بیشتر وب سایت هایی که هدف هکر ها قرار میگیرد با زبان پی اچ پی است و بیشتر ترفند ها و راه های نفوذ کشف شده نیز با این زبان برنامه نویسی میباشد. هکر ها بوسیله ی ترفند ها و روشهای مختلف کارهای نفوذ و تخریب را پیش میبرند که یکی از آنها وب شل ( web shell ) یا بک دور ( backdoor ) است که برای آلوده کردن وب سایت های شما طراحی شده اند. در این مجله ی آموزشی به بحث وب شل و بک دور ها بصورت مفصل و دقیق پرداخته ایم و خواهشمندیم مطالب این مجله را با دقت و حوصله ی کافی مطالعه کنید زیرا مطالب و نکاتی در این مقاله درج شده است که ممکن است در هیچ کجای اینترنتی پیدا نکنید ( حاصل تجربیات شخصی نویسنده ی آن با ده سال سابقه ی فعالیت در زمینه ی هک و امنیت میباشد )
وب شل و بک دور چیست ؟
وب شل ( web shell ) یا بک دور ( backdoor ) ها در واقع اسکریپت های آلوده هستند که به زبان برنامه نویسی سایت شما نوشته شده اند که بعد از آپلود روی هاست یا سرور شما به هکر اجازه میدهند تا از راه دور انواع کارهای مخرب را انجام دهند یا از اطلاعات شما سواستفاده کنند.هکر ها میتوانند با استفاده از فایل وب شل تمام امور هاست یا سرور شما را بدست بگیرند و خطرناک ترین نوع هک هست که میتواند برای سایت شما اتفاق بیوفتد. آنها میتوانند به راحتی درخواست های مبنی بر HTTP به سمت سایت شما ارسال کنند و آنرا اجرا کنند.
کارهایی که یک هکر با استفاده از فایل وب شل میتواند در سایت شما انجام دهد :
- ایجاد و حذف فایل ها و فولدر ها
- تغییر محتوای فایل ها
- تغییر مجوز فایل ها
- اپلود انواع فایل ها
- دانلود سورس کامل سایت
- تغییرات در دیتابیس
- تغییرات در سی پنل
- انکد و دیکد کردن
- زیپ و آنزیپ کردن و ...
البته موارد بالا بستگی به قدرت شل دارد و هرچه امکانات بیشتری وجود داشته باشد آن شل قویتر است. برخی از شل ها توسط اسکنر ها یا آنتی ویروس های نصب شده روی سرور یا هاست قابل شناسایی نیست پس تنها به این مورد اتکا نکنید که آنتی ویروس یا اسکنر دارید و دیگر شل یا ملور در سایت شما وجود نخواهد داشت.
تفاوت بک دور با شل چیست؟
از نظر منطقی شل یک نوع بک دور حساب میشود. اصطلاحا هر دسترسی غیرمجازی که شخصی در سورس سایت شما قرار دهد بک دور حساب میشود. چه این دسترسی را برای آینده قرار دهد چه در آن لحظه استفاده کند. شل یک اسکریپت از نوع بک دور حساب میشود ولی هدف اصلی هکر های وب از بک دور جدا از خود شل هست. معمولا هکر ها اگر موفق شوند درون سایت شما شل بفرستند به فکر آینده هم هستند و قطعا در جای مخفی یک بک دور هم قرار میدهند ، زمانی که شما شل را کشف و حذف کردید آنها با استفاده از بک دور دوباره شل ایجاد میکنند و دسترسی را از دست نمیدهند. البته این مرسوم ترین روش هست و قرار نیست همه به این شیوه سایت شما را هک کنند.
اسکریپت مربوط به انواع back door ( در پشتی ) یا شل ها توسط حفره های امنیتی سایت شما ایجاد میشوند یعنی ضعف هاستینگ یا ضعف امنیتی سایت شما به هکر این اجازه را داده است که بتواند فایلی را آپلود کند که مجاز به آپلود آن نبوده است یا فایلی را از طریق تزریق کد بسازد و درون آن کدی را بنویسد که دسترسی بدهد.
بعد از هک شدن سایت چه کار کنیم ؟
اگر سایتتان هک شد خونسردی خود را حفظ کنید و برای نجات سایت خود اقدامات زیر را به ترتیب انجام دهید:
- سریعا بک آپ سالم روی سایت برنگردانید.
- از سورسی که هک شده است بک آپ کامل بگیرید و در جایی ذخیره کنید.
- از ایمن بودن هاست یا سرور که استفاده میکنید مطمئن شوید.
- اگر هاست شما ایمن و مورد اعتماد است سورس هک شده و یک سورس سالم ( بک آپ قبل از هک شدن ) را روی کامپیوتر خود دانلود کنید.
اگر شما سعی کنید سریعا بک آپ سالم را برگردانید شما علت هک و نحوه ی هک شدن سایت خود را از دست داده اید . شما نباید اقدام سریع انجام بدهید شما باید سورس هک شده را حتما داشته باشید تا به علت آن پی ببرید و بعد از آن سعی کنید سریعا حفره های امنیتی سایت را پیدا کرده و ترمیم کنید.
چگونه back door یا web shell را کشف کنیم؟
این موضوع اصلی این مجله ی آموزشی است ما قصد داریم به شما با یکی از بهترین راه کار ها کمک کنیم تا سایت هک شده را نجات بدهید البته پیدا کردن و حذف کدهای مخرب تنها راه نجات سایت نیست شما باید حفره ی امنیتی که باعث شده شخصی بتواند در سورس شما شل قرار دهد را پیدا کنید و آن حفره را مسدود کنید در غیر این صورت هکر دوباره از آن راه نفوذ میکند.
تمرکز ما در این آموزش روی وب سایت هایی هست که از برنامه نویسی PHP در آنها استفاده شده است زیرا اکثر وب سایت های دنیا با زبان PHP اجرا میشود ولی این آموزش ها به هیچ زبانی محدود نیست و دستورات آموزش داده شده را میتوانید در سورس هایی با زبان های دیگر مثل python یا محیط node.js نیز استفاده کنید. برای کشف وب شل یا بک دور بهتر است یک سیستم عامل لینوکسی داشته باشید اگر بصورت نصب شده روی لوکال خود ندارید روی ماشین مجازی یک لینوکس بالا بیارید مثل اوبونتو!
بهتر است بدانید ۹۰ درصد هکر ها خلاقیت ندارند و از سورس کد های آماده و آموزش های آماده در اینترنت استفاده میکنند. اگر شما با شیوه ی معمول هک ها آشنا باشید ۹۰ درصد میتوانید علت هک را کشف کنید زیرا کار مشابه انجام داده اند. به احتمال ۹۰ درصد در فایل index سایت شما یک کد مخرب بصورت دیکود شده قرار گرفته است. و یک شل آماده از گیتهاب درون سورس شما قرار گرفته است. برای پیدا کردن آن شل کافیست سورس دانلود شده را به لینوکس ببرید و از دو روش زیر استفاده کنید.
- استفاده از grep برای یافتن توابع مشکوک
- استفاده از diff برای مقایسه تغییرات سورس سالم با هک شده
در ویدیو آموزشی درج شده در ابتدای این پست ما یک وردپرس سالم از سایت دانلود کردیم و سپس در آن کد شل تزریق کردیم. ما سورس کد هک شده را مورد بررسی قرار دادیم و توانستیم بک دور درج شده در آنرا پیدا کنیم شما نیز به همین صورت میتونید پیداش کنید.
با دستور زیر در ترمینال میتوانید محتویات درون تمام فایل ها و فولدر های درون یک سورس را بررسی کنید :
grep -l -Rnw . -e 'include'
در کد بالا شما باید include را تغییر دهید و با چیزی که قصد دارید به دنبال آن بگردید جایگزین کنید. ما باید به دنبال های تکه کدهایی باشیم که معمولا در بک دور یا وب شل ها استفاده میشود برخی از توابع مشکوک که معمولا در وب شل ها استفاده میشود در لیست زیر میباشد :
- file_get_content
- file_put_content
- explode
- base64_decode
- strrev
- eval
- str_rot13
- serialize
- die
- exit
- gzuncompress
- @null
ممکن است توابع معرفی شده در لیست بالا توسط سورس سالم استفاده شده باشد پس هرچیزی که پیدا شد قطعا به معنی بک دور یا شل نیست و باید تمام فایل ها را بررسی کنید.
همچنین شما میتوانید با استفاده از دستور زیر سورس سالم ( بک آپ قبل از هک شدن ) را با سورس هک شده مقایسه کنید تا ببینید چه تغییرات جدیدی درون فایل ها و فولدرهای سورس شما اتفاق افتاده است:
diff -r source.salem source.hacked
شما میتوانید کارگاه آموزش پیدا کردن شل و بک دور از سایت ها را بصورت رایگان از طریق این لینک تماشا کنید.
سخن پایانی :
در این مطلب ما بصورت خیلی ساده و خلاصه درباره ی دو دستور مهم برای کشف شل و بک دور در وب سایت ها صحبت کردیم و توجه کنید که مثال های زده شده در این مطلب آموزشی ممکن است با شیوه ی هک شدن سایت شما یا نوع شل استفاده شده متفاوت باشد و پیدا کردن فایل های مخرب از درون سورس به خلاقیت و تلاش خود شما بستگی دارد ولی اصولا با ترفند های بالا میتوانید هرنوع وب شل یا بک دور را پیدا کنید. مطمئن باشید که یک وب شل را میتوانید از درون سورس کد به راحتی پیدا کنید و حذف کنید اما پیدا کردن روش نفوذ و قرار گرفتن شل ممکن است کمی زمانبر باشد ولی حتما باید vulnerability های سایت خود را پیدا کنید. اسکنر های مختلفی برای تست کردن حفره های امنیتی وب سایت وجود دارد که میتوانید از آنها استفاده کنید اما دقت کنید که سایت را همیشه باید بررسی کنید و اگر سایت خود را تنها بگذارید در این دنیای وسیع اینترنت و شلوغ توسط هکرهای بزرگ و کوچک مورد حمله و هک قرار میگیرد و اگر سایت شما راه کسب درآمد شما هست حتما نکات امنیتی را در نظر داشته باشید تا دچار ضرر نشوید.
مقالات دیگر مرتبط با این مقاله ی آموزشی :
5 ترفند برای بهبود تجربه کاربری (UX) وب سایت مدت زمان مورد نیاز برای ساخت سایت اختصاصی چطور برنامه نویسی را شروع کنیم ؟ ( راهنمای کامل ) نوع فایلهای تصویری مناسب وب پکیج منیجر های زبان پایتوندوره های آموزشی مرتبط با این مقاله :
سلام آموزش بسیار عالی و مفیدی بود و مشخص هست نویسنده ی آن از تجربه ی عالی برخوردار است من کمتر دیده ام با چنین شیوایی و خلاصه گویی آموزش بدهند و اون هم مسائل امنیتی و هک که مسائل مهم هستند در هر صورت من استفاده کردم خیلی خوب بود ولی کاش اشاره میکردید که در php.ini میشود بعضی از تابع هایی که نیاز به استفاده نیست ببندیم و دیگر هیچکس توانایی اجرا کردن آنها را نداشته باشد اینطوری امنیت سایت های پی اچ پی بسیار افزایش پیدا میکنند.ممنون