"নোদেভ" কেন / ইত্যাদি / fstab এ এত গুরুত্বপূর্ণ? চরিত্র ডিভাইসগুলি হ্যাকিংয়ের জন্য কীভাবে ব্যবহার করা যেতে পারে?


19

আমি লিনাক্স সুরক্ষা সম্পর্কে শিখছি এবং এটির জন্য একটি চরিত্রের ডিভাইস সহ একটি ইউএসবি স্টিক কেন সম্ভাব্য বিপজ্জনক তা বুঝতে লড়াই করছি।

যদি আমার কাছে কোনও ব্যাশ এক্সিকিউটেবলের সাথে একটি ইউএসবি স্টিক থাকে যা এটির মূল নির্ধারণ করে দেয়, তবে বিপদটি স্পষ্ট: এই জাতীয় ইউএসবি স্টিক সহ যে কেউ আমার কম্পিউটারে এন্ট্রি থাকলে আমার কম্পিউটারে মূল অধিকার পেতে পারে

/dev/sdb1 /media/usbstick auto defaults 0 0

আমার /etc/fstabকারণ defaultsঅন্তর্ভুক্ত suid

তবে চরিত্রের ডিভাইসগুলির কী হবে? রুট সুবিধাগুলি অর্জন করতে বা জিনিসপত্র ভাঙতে আমি কোনও অক্ষর ডিভাইস কীভাবে ব্যবহার করতে পারি যদি তাতে কোনও চরিত্রের ডিভাইস সহ একটি ইউএসবি স্টিক devবা তার সাথে মাউন্ট হয় defaults?

উত্তর:


31

অন্তর্নিহিত ডিভাইসে অ্যাক্সেস কেবল ডিফল্টরূপে ফাইল অনুমতি দ্বারা নিয়ন্ত্রণ করা হয়, সুতরাং যদি আপনার ইউএসবি স্টিকটিতে সিস্টেমের আসল ডিভাইসের সাথে সম্পর্কিত একটি ওয়ার্ল্ড-রাইটেবল ডিভাইস নোড সহ একটি পসিক্স ফাইল সিস্টেম থাকে, তবে আপনি সেই ডিভাইস নোডটি সংশ্লিষ্ট অ্যাক্সেসের জন্য ব্যবহার করতে পারবেন একটি "সরল" ব্যবহারকারী হিসাবে ডিভাইস। কোনও অডিও ডিভাইস, আপনার ওয়েবক্যামের সাথে সম্পর্কিত কোনও ডিভাইসটি কল্পনা করুন /dev/sda(যা কোনও অক্ষরের ডিভাইসের পরিবর্তে একটি ব্লক ডিভাইস, তবে যুক্তিটি একই) ...

বিষয়গুলি পরিষ্কার করার জন্য এখানে একটি উদাহরণ's বলুন যে আপনি অ্যাক্সেস করতে চান /dev/sda(তারপরে আপনি ডিস্কের বিষয়বস্তু সহ যা কিছু করতে চান তা করতে পারেন, এমন একটি প্রোগ্রাম রোপন সহ যা আপনাকে পরিণত হতে দেয় root; এটি একটি ব্লক ডিভাইস তবে চরিত্রের ডিভাইসগুলির ক্ষেত্রে সমস্যাটি একই) আপনার টার্গেট সিস্টেমে, ls -l /dev/sdaশো

brw-rw----  1 root disk      8,   0 Sep  8 11:25 sda

এর অর্থ /dev/sdaহ'ল একটি ব্লক ডিভাইস ( bলাইনের শুরুতে) বড় সংখ্যা 8 এবং ছোটখাটো সংখ্যা 0 ( 8, 0রেখার মাঝখানে ) with ডিভাইসটি কেবলমাত্র root(পড়ুন / লিখুন) এবং diskগোষ্ঠীর সদস্যদের (এছাড়াও পড়ুন / লেখার জন্য) অ্যাক্সেসযোগ্য ।

এখন এই সিস্টেমে কল্পনা করুন আপনি হয়ে উঠতে পারবেন না rootতবে কোনও কারণে আপনি ইউএসবি স্টিকগুলি মাউন্ট ছাড়া মাউন্ট করতে পারেন nodev। আপনি যেখানে আছেন এমন অন্য সিস্টেমে rootআপনি আপনার ইউএসবি কীতে সংশ্লিষ্ট একটি বিশেষ ফাইল তৈরি করতে পারেন:

mknod -m 666 usersda b 8 0

এটি একটি বিশেষ ফাইল নামক usersda, পাঠযোগ্য এবং প্রত্যেকে লিখিতযোগ্য তৈরি করবে ।

আপনার টার্গেট সিস্টেমে কীটি মাউন্ট করুন এবং ওহে প্রেস্টো, আপনি usersdaডিভাইসটি একইভাবে ব্যবহার করতে পারেন /dev/sdaতবে অ্যাক্সেসের কোনও নিষেধাজ্ঞা না থাকলে ...

(এটি এনক্রিপ্ট করা ফাইল সিস্টেমগুলির সাথেও কাজ করবে, যতক্ষণ না আপনি ডিক্রিপ্টেড ম্যাপার ডিভাইসটি অ্যাক্সেস করতে সক্ষম হবেন: এমন ডিভাইস তৈরি করুন যা উপযুক্ত /dev/mapperএন্ট্রির সাথে মেলে ))


মজার লাগছে! তবে আমি নিশ্চিত যে আমি এটি বুঝতে পেরেছি না। একটি ডিভাইস একটি ফাইল এবং ফাইলগুলি ইনোডের মাধ্যমে অ্যাক্সেস করা হয়। আমার ইউএসবি স্টিকের নকল ডিভাইসের একটি আলাদা ইনোড থাকবে এবং তাই এটি আলাদা ডিভাইস হবে, তাই না?
রোসিক্স

7
একটি ডিভাইস একটি বিশেষ ফাইল যার মধ্যে একটি বড় এবং অপ্রাপ্ত সংখ্যার সংখ্যা থাকে; আপনি যদি ls -l /devএটি করেন তবে আপনি দেখতে পাচ্ছেন , তারা দুটি নম্বর যা ফাইল আকারের পরিবর্তে প্রদর্শিত হবে। কার্নেলটি সেই নম্বরগুলি ব্যবহার করে একটি ডিভাইসের বিশেষ ফাইলটির সাথে মেলে, যাতে আপনার একাধিক ফাইল থাকতে পারে যা একই কার্নেল ড্রাইভার এবং ডিভাইসকে নির্দেশ করে। বিশেষ ফাইলগুলি ব্যবহার করে তৈরি করা হয় mknod
স্টিফেন কিট

নোট করুন যে /dev/tty*ডিভাইসগুলি হ'ল অক্ষর ডিভাইস এবং আপনার প্রবেশাধিকারের সেশনগুলিতে এবং / অথবা
আপত্তিজনক

1
@ দ্য কিওয়ার্ক বেশ, হ্যাঁ এটি আরও কিছুটা সাধারণ; আমি বলব "ব্যাখ্যা" অর্থ "ডিভাইস ফাইলগুলিকে ডিভাইস নোড হিসাবে গণ্য করুন, সরল ফাইল নয়"।
স্টিফেন কিট

1
@ n00b আপনি মাউন্ট করতে পারবেন না usersda, তবে অন্তত অন্তর্নিহিত ডিস্ক থেকে কোনও সীমাবদ্ধতা ছাড়াই আপনি এটি পড়তে পারবেন এবং সম্ভবত এটিতেও লিখতে পারেন। আপনি সহজেই ডিস্কের সমস্ত সামগ্রী এবং debuge2fsওভাররাইট /etc/shadowইত্যাদির মতো সরঞ্জামগুলি অনুলিপি করতে পারেন
স্টিফেন কিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.