কম্পিউটার টিউটোরিয়াল

Root বা Sudo ছাড়া Nmap রান করার পদ্ধতি

Nmap, Network Mapper-এর সংক্ষিপ্ত, সবচেয়ে জনপ্রিয় পোর্ট ম্যাপার এবং নেটওয়ার্ক স্ক্যানিং টুলস중에 একটি। যদিও Nmap-এর কিছু বেসিক ফাংশন আনপ্রিভিলেজড/নরমাল ইউজার হিসেবে রান করা সম্ভব, এর অধিকাংশ এডভান্সড ফিচার রুট বা sudo প্রিভিলেজ চায়।

উদাহরণস্বরূপ, NULL, Stealth SYN Scan-এর মত কিছু এডভান্সড পোর্ট স্ক্যানিং ফিচার শুধু রুট প্রিভিলেজের সাথে কাজ করে কারণ Nmap-কে র প্যাকেট ডেটা অ্যাক্সেস করতে হয় যাতে আপনাকে অ্যাডিকোয়েট/ইউজেবল রেজাল্ট দিতে পারে।

যখন আপনি sudo প্রিভিলেজ ছাড়া এই এডভান্সড ফিচারগুলো রান করার চেষ্টা করেন, টুলটি আপনাকে "requires root privileges" মেসেজ দিয়ে প্রম্পট করবে।

Root বা Sudo ছাড়া Nmap রান করার পদ্ধতি

দুর্ভাগ্যবশত, Nmap রান করতে sudo ব্যবহার করা সমস্যা সৃষ্টি করতে পারে, বিশেষ করে আপনি যদি sudo গ্রুপে না থাকেন।

সৌভাগ্য껏, আপনি ক্যাপাবিলিটি (capabilities) ব্যবহার করে Nmap রুট বা sudo প্রিভিলেজ ছাড়া রান করতে পারেন।

Capabilities কী?

লিনাক্স ক্যাপাবিলিটি হলো লিনাক্স কernel অ্যাট্রিবিউট যা প্রোগ্রাম এবং প্রসেসগুলোক রুট ইউজার জন্য রিজার্ভড প্রিভিলেজ ব্যবহার করতে দেয়।

সারসংক্ষেপে, লিনাক্স ক্যাপাবিলিটি রুট ইউজার পাওয়ার বা প্রিভিলেজ শেয়ার করে, যা আনপ্রিভিলেজড প্রসেসকে প্রিভিলেজড হিসেবে রান করতে সক্ষম করে, অর্থাৎ সেগুলো পারমিশন চেক নেই।

অনেক লিনাক্স ক্যাপাবিলিটি রয়েছে। লিনাক্স ক্যাপাবিলিটি সম্পর্কে আরও জানতে man পেজ দেখুন।

এই গাইডের মূল লক্ষ্য হলো তিনটি ক্যাপাবিলিটি: CAP_NET_RAW, CAP_NET_ADMIN, এবং CAP_NET_BIND_SERVICE ব্যবহার করে Nmap-কে সে প্রিভিলেজ দেওয়া যাতে সেটি রুট ইউজার পারমিশন চেক ছাড়া রান করতে পারে।

নোট: এলিভেটেড ক্যাপাবিলিটি সেট করার সময় সতর্ক থাকুন, কারণ একটি ম্যালিশিয়াস ইউজার Nmap-এর স্ক্রিপ্টিং ইঞ্জিন এক্সপ্লয়েট করে ফুল sudo প্রিভিলেজ পেতে পারে এবং স্ক্রিপ্ট ব্যবহার করে লোকাল হোস্ট ভালনারেবিলিটি এক্সপ্লয়েট করতে পারে। তাই এই সেটিংস সতর্কতার সাথে ব্যবহার করুন বা Nmap-এর অ্যাক্সেস নির্দিষ্ট গ্রুপে সীমাবদ্ধ রাখুন।

নিচের লিনাক্স ক্যাপাবিলিটিগুলো আমরা Nmap-এ দিচ্ছি যাতে sudo এবং রুট পারমিশনের দরকার না পড়ে।

  • CAP_NET_RAW: এই ক্যাপাবিলিটি সেট করলে একটি প্রসেস র প্যাকেট ডেটা এবং সকেট অ্যাক্সেস ও ব্যবহার করতে পারে।
  • CAP_NET_ADMIN: এই ক্যাপাবিলিটি প্রসেসকে বিভিন্ন নেটওয়ার্ক অ্যাক্টিভিটি পারফর্ম করার ক্ষমতা দেয় যেন IP ফায়ারওয়াল অ্যাডমিনিস্ট্রেশন, ইন্টারফেস কনফিগারেশন, TOS সার্ভিস টাইপ চেঞ্জ, রাউটিং টেবিল চেঞ্জ, ইত্যাদি।
  • CAP_NET_BIND_SERVICE: এই ক্যাপাবিলিটি ইন্টারনেট ডোমেন প্রিভিলেজড পোর্টে সকেট বাইন্ড করে।

লিনাক্স ক্যাপাবিলিটি "effective," "inheritable," "permitted," এবং "ambient" সেটে থ্রেড এবং ফাইলের জন্য অ্যাসাইন করা হয়। Nmap-কে সে প্রিভিলেজ দিতে যাতে রুট বা sudo ছাড়া রান করতে পারে, আমরা eip ব্যবহার করছি, যাতে Nmap যেকোনো ইউজার রান করুক না কেন সে ক্যাপাবিলিটি ব্যবহার করতে পারে।

স্টেপ ১: libcap ইনস্টল করা

লিনাক্স ক্যাপাবিলিটি সেট করতে, আপনাকে libcap প্যাকেজ ইনস্টল করতে হবে। এই প্যাকেজ আপনাকে setcap কমান্ড ব্যবহার করতে দেয়। কমান্ড ব্যবহার করুন:

sudo apt-get install libcap2-bin
Root বা Sudo ছাড়া Nmap রান করার পদ্ধতি

এখন libcap ইনস্টলড থাকায়, আমরা setcap কমান্ড ব্যবহার করে লিনাক্স ক্যাপাবিলিটি মডিফাই করতে পারি।

স্টেপ ২: Nmap ক্যাপাবিলিটি সেট করা

Nmap-কে রুট ইউজার প্রিভিলেজ ছাড়া রান করতে দেওয়ার জন্য যে ক্যাপাবিলিটিগুলো সেট করতে হবে, সেগুলো সেট করার কমান্ড এক্সিকিউট করুন:

sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which nmap)

ক্যাপাবিলিটি সেট হলে, আপনি getcap কমান্ড দিয়ে ভেরিফাই করতে পারেন সেগুলো অ্যাপ্লাই হয়েছে কিনা।

getcap $(which nmap)
Root বা Sudo ছাড়া Nmap রান করার পদ্ধতি

নোট: আপনার Nmap ইনস্টলেশন ফোল্ডারের ফুল পাথ স্পেসিফাই করা অত্যন্ত জরুরি।

স্টেপ ৩: প্রিভিলেজ ফ্ল্যাগ দিয়ে Nmap রান করা

এখন এই তিনটি ক্যাপাবিলিটি সেট থাকায়, আমরা sudo প্রিভিলেজ ছাড়া Nmap রান করতে পারি প্রিভিলেজ ফ্ল্যাগ ব্যবহার করে যাতে Nmap জানতে পারে যে এতে সে ক্যাপাবিলিটি রয়েছে। সেটির জন্য এক্সিকিউট করুন:

nmap --privileged -sS 192.168.0.112
Root বা Sudo ছাড়া Nmap রান করার পদ্ধতি

নোট: আপনাকে --privileged অপশন ব্যবহার করতে হবে, অন্যথায় Nmap জানবে না যে এতে এই প্রিভিলেজ রয়েছে।

আপনি যদি প্রতি বার nmap --privileged ফ্ল্যাগ টাইপ করার সময় বাঁচাতে চান, তবে NMAP_PRIVILEGED এনভায়রনমেন্ট ভেরিয়েবল পেরমানেন্টলি সেট করতে পারেন এক্সপোর্ট লাইন নিচের ফাইলগুলোর যেকোনো একটিতে যোগ করে:

  • ~/.xsessionrc: এটি অধিকাংশ ডেস্কটপ/গ্রাফিক্যাল এনভায়রনমেন্টের সাথে কাজ করে এবং শেল ও টার্মিনাল দ্বারা ইনহেরিটেবল।
  • ~/.profile: লগইন রিকোয়ার্ড শেলের জন্য কাজ করে।
  • ~/.bashrc: bash-এর জন্য কাজ করে।
  • ~/.gnomerc: শুধু GNOME-এ কাজ করে।

শেষ কথা

Nmap-এর অধিকাংশ পোর্ট স্ক্যানিং এবং হোস্ট ডিসকভরি মেথড রুট বা sudo প্রিভিলেজ চায়। টিউটোরিয়ালে আলোচনা করা মতে, আপনি এই ফাংশনালিটি ওভাররাইড করতে পারেন এবং রুট বা sudoers গ্রুপে না থাকলেও Nmap রান করতে পারেন। সেরা লিনাক্স পোর্ট স্ক্যানারগুলো চেক আউট করুন।

  1. PC ছাড়াই নিরাপদে আপনার Android ডিভাইস রুট করুন

  2. রুট ছাড়া অ্যান্ড্রয়েড গেম আনলক করুন: গেমপ্লে উন্নত করুন

  3. রুট ছাড়া অ্যান্ড্রয়েড ফোনের IMEI নম্বর পরিবর্তন - নিরাপদ ও সহজ পদ্ধতি

  4. রুট ছাড়া অ্যান্ড্রয়েডে ক্যান্ডি ক্রাশ সাগা হ্যাক করার পদ্ধতি