আপনি কীভাবে কোনও প্রক্রিয়া চালু করতে এবং top
কমান্ডের অদৃশ্য করতে পারেন ? প্রক্রিয়াটি একটি সাধারণ ব্যবহারকারী দ্বারা শুরু করা হয় (মূল নয়) এবং অন্যান্য সাধারণ ব্যবহারকারীর কাছে দৃশ্যমান হওয়া উচিত নয়।
আপনি কীভাবে কোনও প্রক্রিয়া চালু করতে এবং top
কমান্ডের অদৃশ্য করতে পারেন ? প্রক্রিয়াটি একটি সাধারণ ব্যবহারকারী দ্বারা শুরু করা হয় (মূল নয়) এবং অন্যান্য সাধারণ ব্যবহারকারীর কাছে দৃশ্যমান হওয়া উচিত নয়।
উত্তর:
৩.৩ থেকে লিনাক্স কার্নেলে অন্যান্য ব্যবহারকারীর কাছে প্রক্রিয়াগুলি আড়াল করার জন্য সমর্থন রয়েছে।
এটা তোলে দ্বারা সম্পন্ন করা হয় hidepid=
এবং gid=
বর্ণনা অনুযায়ী জন্য / proc জন্য বিকল্পগুলি মাউন্ট সংশ্লিষ্ট কমিট এবং ডকুমেন্টেশন / ফাইল সিস্টেম / proc.txt ।
ডেবিয়ান হুইজিও এই বৈশিষ্ট্যটি অন্তর্ভুক্ত করে।
top
কমান্ড proc, যা সরাসরি কার্নেল থেকে প্রদান করা হয় থেকে ডেটা পড়ে। প্রক্রিয়াগুলি গোপন করার জন্য, আপনাকে মাস্কিং করতে কার্নেলের অভ্যন্তরে কোড ব্যবহার করতে হবে।
সেলইনাক্স এবং গার্সিকিউরিটির মতো সুরক্ষা কাঠামো (অন্য উত্তরগুলিতে উল্লিখিত) ব্যবহার বাদে, রুটকিট-স্টাইল কোডটি আপনার একমাত্র অবশিষ্ট বিকল্প। আমি "স্টাইল" বলি কারণ একটি "রুটকিট" নিজেই খারাপ নয়, এটি এটি কীভাবে ব্যবহৃত হয়। অন্যান্য ব্যবহারকারীর কাছ থেকে প্রক্রিয়াগুলি গোপন করার পিছনে পুরোপুরি বৈধ কারণ রয়েছে, যে কারণে এই দক্ষতাটি সুরক্ষা কাঠামোতে বিদ্যমান exists
এটি কাজ করার জন্য আপনাকে যে মূল পথটি অনুসরণ করতে হবে তা হ'ল লিনাক্স কার্নেলের ফাংশন (গুলি) যা /proc/pid/
তথ্য উপাত্ত করে তা হুক করা (বা হাইজ্যাক করা । আমি লিখেছি এমন একটি সুরক্ষা মডিউলে লিনাক্স কার্নেল ফাংশনগুলিতে ঝাঁকুনির একটি পদ্ধতি প্রদর্শন করি:
https://github.com/cormander/tpe-lkm
এর জন্য "উচ্চ স্তরের" কোডটি hijack_syscalls()
পদ্ধতিতে রয়েছে security.c
এবং এর পিছনে থাকা শয়তান-ইন-দ্য ডিটেল ম্যাজিকটি hijacks.c
ফাইলটিতে রয়েছে।
আপনি সম্ভবত fs/proc/
লিনাক্স কার্নেলের উত্স কোডের ডিরেক্টরিতে ফাংশনটি সন্ধান করতে পারবেন । মনে রাখবেন যে লিনাক্স একটি স্থিতিশীল এবিআই সরবরাহ করে না, তাই আপনার কোডটি লিনাক্স কার্নেলের বিভিন্ন সংস্করণে কাজ করার জন্য কিছুটা পরিবর্তন করতে হবে। এছাড়াও, মনে রাখবেন যে এই কোডটি সন্নিবেশ করতে সক্ষম হতে আপনার মেশিনে সম্পূর্ণ রুট অ্যাক্সেসের প্রয়োজন।
হালনাগাদ:
যদি আপনি pid_getattr
কিছু অতিরিক্ত কোড দিয়ে কার্নেল প্রতীকটি আবদ্ধ করেন তবে এটি করা সহজ। আমি সম্প্রতি এমন কিছু যুক্ত করেছি যা উপরের কার্নেল মডিউলটিতে প্রক্রিয়াগুলি আড়াল করে:
https://github.com/cormander/tpe-lkm/commit/899bd5d74764af343d5fee1d8058756ddc63bfe3
আপনি নির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীর প্রক্রিয়াগুলি রুট এবং সেই ব্যবহারকারী ব্যতীত অন্য কারও দ্বারা দৃশ্যমান না করে এই জাতীয় কিছু করতে পারেন। প্রক্রিয়া নাম দ্বারা এটি করা কিছুটা জটিল, তবে সম্ভব। exe_from_mm()
ফাংশনটি একবার দেখুন । উল্লেখ্য সেখানে এটি ভেতরে ব্যবহারের কর্মক্ষমতা প্রভাব হতে পারে যে pid_getattr
।
এটি দুটি প্রধান বিকল্প বলে মনে হচ্ছে।
সেলিনাক্স বিভিন্ন লোককে বিভিন্ন সুরক্ষা ডোমেনে এবং এক অর্থে বালি-বক্সিং দিয়ে কাজ করে যাতে তারা একে অপরের স্টাফ দেখতে না পায়। এটি এই প্রশ্নের মধ্যে আবৃত । যেহেতু সেলিনাক্স দ্রুত লিনাক্স বিশ্বে ডি-ফ্যাক্টো সুরক্ষা কাঠামোয় পরিণত হচ্ছে এটি সম্ভবত আপনার দিকে নজর দেওয়া উচিত।
অন্যান্য grsecurity হিসাবে marioosh উল্লেখ এবং এই প্রশ্নের জিজ্ঞাসা । কিছু ডিস্ট্রোতে grsecurity প্যাচ প্রয়োগ করে বিকল্প কার্নেল প্যাকেজ রয়েছে। আপনার যদি এটি থাকে তবে আপনি সেগুলি ব্যবহার করতে পারেন।
যদি কোনও কারণে আপনি সেলিনাক্স বা গার্সিকিউরিটির মতো সুরক্ষা কাঠামো সংযোজন না করে এটি করতে চান তবে দয়া করে ব্যাখ্যা করুন আপনি কী করছেন কীভাবে কোনও রুট-কিটটি লিখছেন না।
এটি স্ট্যান্ডার্ড লিনাক্স বাক্সে এত সহজ নয়। গ্রাসিকিউরটি দেখুন তবে এর জন্য প্যাচিং কার্নেল ইত্যাদি প্রয়োজন
আপনি আপনার আরগভি [0] কে অন্য নামের সাথে ওভাররাইড করতে পারেন ... তবে কঠোরভাবে বলতে গেলে আপনি একরকম রুটকিট খুঁজছেন। এটি আপনাকে সাহায্য করতে পারে: http://stupefydeveloper.blogspot.com/2008/10/linux- بدل-process-name.html
আপনি একটি সমতুল্য কমান্ড লিখতে পারেন যা ঠিক top
তেমন কাজ করে তবে নির্দিষ্ট নামের সাথে মিলে যাওয়া প্রক্রিয়াগুলি প্রদর্শন করে না। বিকল্পভাবে আপনি top
কমান্ডের উত্স কোড পেতে পারেন এবং সে অনুযায়ী এটি সংশোধন করতে পারেন। তারপরে আপনি আপনার সংস্করণ দিয়ে top
কমান্ডটি /usr/sbin
(বা যেখানেই হোক না কেন) প্রতিস্থাপন করতে পারেন ।
top
কমান্ডের জন্য প্রসেসগুলি অদৃশ্য করা যায় ।
this_is_not_the_process_you_are_looking_for
?