proxychains پس از حذف پیشوند هم باقی میماند
یک پوشش پروکسی را که بهطور غیرمنتظره از طریق ارثبری LD_PRELOAD بارگذاری شده دنبال کنید و اجرای آینده فرایندها را از کتابخانههای از پیش بارگذاریشده جدا کنید.
proxychains را از یک فرمان حذف میکنید، دوباره اجرا میکنید و هنوز پیام آغاز پوشش را میبینید. پیش از جستجوی تنظیمی در برنامه، محیط اجرا را بررسی کنید.
در لینوکس، LD_PRELOAD از پیونددهنده پویا میخواهد اشیای مشترک مشخصشده را پیش از کتابخانههای معمولی بارگذاری کند. پوششهای پروکسی میتوانند از این سازوکار برای رهگیری فراخوانیهای شبکه پشتیبانیشده استفاده کنند. اگر کسی متغیر را در یک صدف صادر کرده باشد، برنامههای فرزند بعدی میتوانند آن را به ارث ببرند، حتی وقتی خط فرمانشان هیچ پیشوند پوششی ندارد.
نخستین بررسی فقطخواندنی در آن صدف این است:
printf '%s\n' "$LD_PRELOAD"
کتابخانه پوشش پروکسی را بجویید، اما این احتمال را نگه دارید که متغیر کتابخانههای دیگری را هم که آگاهانه بارگذاری شدهاند فهرست کند. حذف کورکورانه همه ورودیها میتواند ابزار دیگری را مختل کند.
راهانداز را تغییر دهید، سپس برنامه را دوباره اجرا کنید
پیشبارگذاری ناخواسته پروکسی را از محیطی که برنامه آسیبدیده را اجرا میکند پاک کنید. اگر پرونده آغازین یا راهاندازی آن را صادر میکند، آن منبع را هم اصلاح کنید. در اجراهای Bash، ترتیب پروندههای آغازین را دنبال کنید. فرزند تازه یک صدف پاک با فرزند پایانه یا IDE قدیمی که هنوز متغیر را نگه داشته متفاوت است.
لغو تنظیم یک متغیر محیطی، کتابخانه را از فرایندی که پیشتر با آن آغاز شده بیرون نمیبرد. از اینرو برنامه در حال اجرا میتواند پوشش را تا زمانی که از مسیر اجرای اصلاحشده دوباره آغاز نشود نگه دارد.
اگر متغیر غایب است، منابع دیگر پیشبارگذاری پیکربندیشده مانند /etc/ld.so.preload و راهانداز واقعی را بررسی کنید. این سازوکار محدودیت دارد: فایلهای اجرایی ایستا، فراخوانیهای مستقیم سامانه و محدودیتهای اجرای ایمن میتوانند رفتار دیگری داشته باشند. با sudo، ترتیب پوشش مهم است. پیشبارگذاری ارثرسیده رهگیری غیرمنتظره را توضیح میدهد؛ شاهدی بر این نیست که هر نوع ترافیک شبکه از پروکسی استفاده میکند.