سلام بچه ها چند وقتی هست که فکرم درگیر نوشتن یه سری اسکریپت هوشمند هست که بتونن خیلی از کارهایی که روی سرور باید توسط ادمین به صورت منظم یا نا منظم انجام بشه رو انجام بدن مثلا اینکه اسکریپتی باشه که مدام صفحات وب رو بررسی بکنه و اگر تغییری مبنی بر هک روی وب سایت صورت گرفته باشه رو تشخیص بده ، خوب برای اینکار ما چندین راه داریم یکی اینکه توی اسکریپت Integrity فایل ها کنترل بشه و یک بار md5 یا sha1 فایل مورد نظر ذخیره بشه و مدام کنترل و مقایسه بشه اما به نظرتون اینجا چه اشکالی هست ؟

خوب یه سری سایت ها هستن که خود فایل به عنوان مثال index.php دائم در حال تغییر هست مثل سایت های فروشگاهی و خبری و … پس Check sum روش مناسبی برای اینکار نیست حالا با این تفاسیر چه روش بهتری برای اینکار هست ؟

یه راه مناسب و بهتر هست اونم چک کردن Keyword روی خود صفحه html هست ، چطوری ؟ یه دایره لغت از سایتهایی که تا بحال هک شدن تهیه میکنیم و به اسکریپتمون میگیم این کلماتو چک کن ، اگه دیدی کارهایی که بهت میگمو انجام بده !

خوب اینطوری بهتر نیست ؟ پس شروع کنیم به نوشتن اسکریپت

اول باید مشخص بکنیم که چه چیز هایی چک بشه و چه کارهایی انجام بده .

1 . یک سری کلمات رو توی یه فایل جدا یا تو دل خود اسکریپت برای کنترل باید قرار بدیم .

2 . اگر Defacement Detect شد چند تا کار انجام بده :

– یه پیامک به ادمین سرور بزن

– یه ایمیلم واسه دلخوشی بزن 😀

– فایل اصلی رو جایگزین صفحه دیفیس شده قرار بده ( که این روش پیشنهاد نمیشه ، چون طرف باز هم دسترسی داره و …)

– با فایروال دسترسی به وب سرور یا صرفا دامینی که مورد حمله قرارگرفته رو ببند .

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

destaque-artigo-bashخوب شروع میکنیم :

برای شروع اسکریپت از شی بنگ استفاده میکنیم :

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

date

خوب بعد از مشخص کردن var ها باید کاراهایی که باید انجام بده رو مشخص کنیم . برای اینکه مدام بتونیم ایندکس یا هرجای دیگه وب سایتمون رو ببینیم و فرآیند کنترلی رو روش انجام بدیم از دستوراتی مثل lynx ، wget  ، curl  و … میتونیم استفاده کنیم . به طور مثال برای wget

یا برای lynx

 نکته :  اگر lynx نصب نیست از دستور زیر برای نصبش استفاده کنید :

من توی این اسکریپت از wget استفاده میکنم .

حالا باید بگیم ایندکسی که گرفتی رو با keyword هایی که تعیین میکنیم کنترل کن . نمونه کیورد ها :

Hacked ,HACKED BY,defaced,cyberwar,low security,greets,was here,were here,H4CKED

توی اسکریپت :

اگه این اسکریپت رو اجرا کنید ، کل ایندکس رو نشون میده ، در صورتی که ما فقط به استاتوس کدش احتیاج داریم ، پس باید کل خروجی رو بفرستیم به ناکجاآباد سرور 😀 یعنی کجا ؟ /dev/null

برای دیدن استاتوس کد قبل از شرط هم میتونیم با یه echo $? مشکل رو حل کنیم ، اما این برای تست خودتون هست نیازی به اینکار نداریم . باید شرط بزاریم که اگر استاتوس کد true بود کارایی که لازمه رو انجام بده :

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

حالا باید با دستور میل به ادمین ایمیل بزنیم . توی شرط به جای echo باید این دستور رو جایگزین کنیم :

برای ارسال پیامک هم بسته به نوع وب سرویس المان های ارسالی فرق میکنه که باید از جایی که سرویس میگیرید کمک بگیرید اما به طور کلی به شکل زیر هست :

خوب اسکریپت به شکل زیر در میاد :

بعد از اینکار میتونیم چند تا کار بکنیم ، یکی اینکه دسترسی رو به وب سایت روی فایروال ببندیم یا اینکه کلا وب سرور رو متوقف کنیم .

برای بستن روی فایروال :

برای متوقف کردن وب سرور :

حالا بسته به سلیقه ادمین این اسکریپت قابل تغییر هست .

خوب به نظرتون الان ایراد کار کجاست ؟

ایراد اینجاست که اگه توی مطالب وب سایت کلمه ای باشه که اسکریپت detect کنه و اون کلمه توسط نویسنده های خود وب سایت ایجاد شده باشه ، اسکریپت کار خودشو میکنه 😀 راهکار چیه ؟ اگه راهکار خوبی دارید در قالب کامنت بگید ولی در هر صورت توی پست بعد به طور کامل میگم که چطور میشه اون موارد رو exclude کرد .

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

لازم به ذکره که نرم افزار برای اینکار خیلی زیاده از جمله inotify و …. اما به نظر شخص بنده اگه یه اسکریپت ساده باشه که باری روی سرور نندازه و کار رو هم انجام بده بهتره .

 

نویسنده : محمد ورمزیار
ایمیل نویسنده : info@OSLearn.ir
منبع : وب سایت او اس لرن – http://oslearn.ir
از مطالب وب سایت راضی هستید ؟ رضایت خودتون رو با دونیت به ما اعلام کنید. لطفا برای دونیت روی آیکون زیر کلیک کنید.
حمایت مالی

درباره نویسنده :

محمد ورمزیار هستم معروف به N3td3v!l ، دانشجوی کارشناسی ارشد فناوری اطلاعات ، از سال 2006 تا به حال در حوزه لینوکس و شبکه تحت عنوان هک و امنیت فعالیت میکنم ، اهل تهرانم ، دارای مدارک و تجربه در زمینه های CEH ، Security ، CCNA routing ، LPIC ، RHCE ، unix & BSD ، ISMS و علاقه شدیدی به کار روی مباحث جدید توی حوزه لینوکس و یونیکس دارم .

تمام پست های من - وب سایت من