আমার বিড়ালের সাহায্যে কোনও ফাইলের অনুমতি পরিবর্তন করুন


56
root@system:~# less myfile
-bash: /bin/less: Input/output error

মূল ফাইল সিস্টেমটি মারা গেছে। তবে আমার বিড়ালটি এখনও বেঁচে আছে (আমার স্মৃতিতে):

root@system:~# cat > /tmp/somefile
C^d
root@system:~#

যদিও সে একা একা, যদিও তার সমস্ত বন্ধু চলে গেছে:

root@system:~# mount
-bash: /bin/mount: Input/output error
root@system:~# dmesg
-bash: /bin/dmesg: Input/output error
root@system:~# less
-bash: /bin/less: Input/output error
root@system:~# chmod
-bash: /bin/chmod: Input/output error

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

আমি তাকে দাতার কাছ থেকে তার স্বাভাবিক বন্ধু আনার কথা ভেবেছি। এসএসএস এটিকে লোড করার চেষ্টা করে এবং লাইনটি কেটে দেয় (বাইনারি যেভাবেই চলে গেছে) আমি তাদের এড়িয়ে যাওয়ার চেষ্টা করব না। এটি আমার বিড়ালির কাজিনের কাজ বলে মনে হচ্ছে:

root@system:~# netcat -l 1234 > /tmp/less
-bash: netcat: command not found

দুর্ভাগ্যক্রমে তিনি দীর্ঘ চলে গেছেন।

এখন, আমি আমার বিড়ালটিকে পুনরুত্থিত করার জন্য একটি আচার অনুষ্ঠান করার চেষ্টা করতে পারি:

cat > netcat < /dev/tcp/localhost/9999

এবং যে সাজানোর কাজ। তিনি প্রায় জীবিত:

root@system:/tmp# /tmp/netcat
-bash: /tmp/netcat: Permission denied

তার দরকার কেবল জীবনের একটি ছোট্ট স্ফুলিঙ্গ। সেই ছোট্ট +xযাদু জাগরণ যা আমি এই মুহুর্তে আবৃত্তি করতে পারি না।

আপনি কি আমার বিড়ালের বন্ধুদের ফিরিয়ে আনতে সহায়তা করতে পারেন?


3
আপনি কি /lib/ld-linux.so.2 ./netcat(বা আপনার সিস্টেমের সমতুল্য) চালিয়ে কিছু চালিয়ে যেতে পারেন?
মাইকেল হোমার

4
এছাড়াও: এটি কি অপারেটিং সিস্টেম? আপনার কি কোনও ভিফ্যাট বা এনটিএফএস ফাইল সিস্টেম মাউন্ট করা আছে? নেটওয়ার্ক ফাইল সিস্টেম? পার্টিশনগুলি কি আপনি এর সামগ্রীগুলি মুছতে পারেন? সেখানে আছেন কোনো অনুমতি চালানো সঙ্গে প্রবেশযোগ্য ফাইল?
মাইকেল হোমার

3
"এছাড়াও, এটি আমার বিড়ালটিকে মেরে ফেলবে এবং এটি আমার মন খারাপ করবে" " - আমি সর্বদা ভাবতাম "এই প্রযোজনার সময় কোনও বাচ্চাদের ক্ষতি করা হয়নি" এই উক্তিটি কেবল একটি উক্তি, তবে ভাল ...
rugk

7
এই সমস্ত বিড়াল
উপমাগুলির

2
দরিদ্র বিড়াল, আমি আশা করি সে ঠিক আছে :(
বিড়াল

উত্তর:


37

বেশ কয়েকটি সম্ভাবনা রয়েছে যা এখনই আপনার পরিস্থিতির সঠিক পরামিতিগুলির উপর নির্ভর করে। আমি নিম্নলিখিত উদাহরণগুলিতে লিনাক্স ধরে নিচ্ছি যেখানে প্রযোজ্য তবে বেশিরভাগ ক্ষেত্রে অন্যান্য প্ল্যাটফর্মে একই রকম কার্যকারিতা বিদ্যমান।

  • আপনার জন্য একটি এক্সিকিউটেবল চালনার জন্য আপনি গতিশীল লোডার পেতে সক্ষম হতে পারেন। ধরে catনেওয়া গতিশীলভাবে সংযুক্ত, আপনার প্ল্যাটফর্মের সমতুল্যও /lib/ld-linux.so.2সম্ভবত স্মৃতিতে থাকবে এবং বাইনারি চালানোর জন্য এটি ব্যবহারযোগ্য:

    $ /lib64/ld-linux-x86-64.so.2 ./chmod
    chmod: missing operand
    

    আপনার এগুলির একাধিক থাকতে পারে (32- এবং 64-বিটের সম্ভাবনা রয়েছে) এবং একাধিক অনুলিপি উপলব্ধ থাকতে পারে, বা সমাধানগুলির প্রয়োজন এমন সিমলিংক থাকতে পারে। এর মধ্যে একটি কাজ করতে পারে।

  • আপনার যদি মাউন্ট করা ভিএফএটি বা এনটিএফএস ফাইল সিস্টেম বা অন্য কোনও ফাইল রয়েছে যা সমস্ত ফাইলকে 7 .ats হিসাবে বিবেচনা করে, আপনি সেখানে নিজের নির্বাহযোগ্য তৈরি করতে পারেন।

    $ cat > /mnt/windows/chmod < /dev/tcp/localhost/9999
  • আপনার যদি মাউন্ট করা নেটওয়ার্ক ফাইল সিস্টেম থাকে তবে তা স্থানীয়ভাবে লেখার যোগ্য না হলেও আপনি রিমোট সিস্টেমে ফাইল তৈরি করতে পারেন এবং সেগুলি সাধারণত ব্যবহার করতে পারেন।
  • যদি এখনও একটি চালিত পার্টিশন থাকে যা আপনি বেশিরভাগ কাজ করে এমন কোনও ড্রাইভে সামগ্রীর বিষয়বস্তুগুলির বিষয়ে চিন্তা করেন না, আপনি একই ফাইল সিস্টেমের নতুন চিত্রের সাথে বিষয়বস্তুগুলি প্রতিস্থাপন করতে পারেন যা আপনি চান এক্সিকিউটেবলগুলি সমন্বিত - catএটির জন্য এটি ভাল হতে হবে ভূমিকা হিসাবে মানুষ সাধারণত ব্যবহার করে ddএবং আপনি ছবিটি নেটওয়ার্কের মাধ্যমে সরবরাহ করতে পারেন।

    $ cat > /dev/sdb1 < ...

    এইটি প্রশংসনীয়, তবে সেই পার্টিশন থেকে এখনও স্মৃতিতে ঠিক কী রয়েছে তার উপর নির্ভর করে প্রচুর জায়গা কাজ করতে পারে না।

  • যদি কোনও অ্যাক্সেসযোগ্য ফাইল থাকে যা কোনও লিখনযোগ্য ফাইল সিস্টেমে অনুমতি কার্যকর করে, আপনি cat >নিজের পছন্দসই বাইনারি সহ সামগ্রীগুলি প্রতিস্থাপন করতে এটিতে এটি করতে পারেন ।

    $ cat > ~/test.py < ...
  • যেহেতু বাশ এখনও চলছে, আপনি chmod কে উদ্ভাসিত প্রক্রিয়ায় একটি বাশ প্লাগইনকে গতিশীলভাবে লোড করতে পারেন। বিশেষত, আপনি ইনস্টল এবং লোডctypes.sh করতে পারেন যা বাশকে একটি বিদেশী ফাংশন ইন্টারফেস সরবরাহ করে এবং তারপরে dlcall chmod ./netcat 511
  • আপনি foo.soআপনার নির্মাণের একটি ডায়নামিক লাইব্রেরি ফাইল আনতে পারেন এবং তারপরে catআপনার পক্ষ থেকে এটি লোড করতে পারেন LD_PRELOAD, আপনাকে স্বেচ্ছাচারিত কোড কার্যকর করার অনুমতি দেয়।

    $ LD_PRELOAD=./hack.so cat /dev/null

    যদি আপনি বিরতি দেন, উদাহরণস্বরূপ open:

    int open(const char *path, int flags, ...) {
        chmod(path, 0755);
        return -1;
    }
    

    তারপরে আপনি সেখানে যা করার দরকার তা করতে পারেন।

আমার পরামর্শটি হ'ল স্ট্যাটিকালি লিঙ্কযুক্ত busyboxএক্সিকিউটেবলকে প্রথম আইটেম হিসাবে (বা সত্যই, কেবলমাত্র একটি আইটেম) হিসাবে আনতে হবে যাতে আপনি হ্যাককে যা ব্যবহার না করে পুনরায় ব্যবহার না করে সম্পূর্ণ কমান্ডের উপলব্ধ হয়ে পড়েছেন ক্লান্তির দিকে।


3
পুনরায় "স্ট্যাটিক্যালি লিঙ্কড busybox": নোটটি sashবিশেষত এই ধরণের ব্যবহারের ক্ষেত্রে তৈরি করা হয়েছিল এবং এটি একটি চিমটিতে আরও সহজেই উপলভ্য হতে পারে (যেমন আপনি এটি আগে থেকে ইনস্টল করতে পারেন এবং কোনও অনুলিপি কোথাও চালিয়ে যেতে পারেন যাতে সিস্টেমটি স্মৃতিতে থাকার পরে) বিরতি ... বা আপনি আপনার পোষা প্রাণী খনন করতে পারেন এবং এর পরিবর্তে একগুচ্ছ গবাদি পশু কিনতে পারেন, আমি মনে করি)।
কেভিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.