একক কমান্ড দিয়ে কীভাবে কার্নেল আতঙ্ক সৃষ্টি করতে পারে?


61

একক কমান্ড লাইনের সাহায্যে কার্নেল আতঙ্ক সৃষ্টি করা সম্ভব?

একটি sudoing ব্যবহারকারীর জন্য সবচেয়ে সহজ কমান্ড কি হতে হবে এবং এটি একটি নিয়মিত ব্যবহারকারীর জন্য কি হবে, যদি কোন?

দৃশ্যের সাহায্যে কমান্ডের অংশ হিসাবে কোনও কিছু ডাউনলোড করার পরামর্শ দেওয়া হচ্ছে।


11
:(){ :|:& };:হতে পারে?
কার্ল

@ কারলিটো ঠিক আছে, আপনি কি আমাদের বাকীটিকে বোঝাতে পারেন?
চাদ হ্যারিসন

14
@ হাইড্রোপারাডেস এটিকে "ফর্কবম্ব" বলা হয়। শরীরের সাথে :()ডাকা একটি ফাংশন সংজ্ঞায়িত করে যার অর্থ "রান: এবং রানও: পটভূমিতে"। ফাংশন সংজ্ঞাটি শেষ করে এবং আপনার নতুন ফাংশনটিকে কল করে, যা প্রসারণের সীমা না চাপানো অথবা সিস্টেমটি থামার পথে না আসা অবধি নিজেরাই নতুন সংস্করণ তৈরি করে। এটি এমন একটি কমান্ড যা কার্যকরভাবে কোনও প্রক্রিয়া সীমা ছাড়াই কার্যকরভাবে হিমশীতল করে দেয়। বাড়িতে এটি চেষ্টা করবেন না। ::|:&;:
ফোশি

1
@ কেভিন আপনার অর্থ একটি সি প্রোগ্রাম লিখতে, সংকলন করে, এবং এটি একটি একক কমান্ড লাইনে ড্রাইভার হিসাবে ইনস্টল করার অর্থ? একটি কাজের উদাহরণ দুর্দান্ত হবে।
ডেসমন্ড হিউম

1
একটি ফর্কবম্ব অগত্যা কার্নেল আতঙ্কের কারণ হয় না। OTOH, এটি করতে পারে এমন একটি জিনিস হ'ল লিখতে (রুট হিসাবে) বলতে হয়, dd if=/dev/urandom of=/dev/mem(আপনার কার্নেলের সংস্করণ অনুসারে, আপনার নাও থাকতে পারে /dev/kmem)। তবে আমি তার পরে সিস্টেমটি ব্যবহার করব না। :)
rbrito

উত্তর:


80

FreeBSD 'র:

sysctl debug.kdb.panic=1

লিনাক্স (আরও তথ্য এখানে ):

echo c > /proc/sysrq-trigger

8
echo c > /proc/sysrq-triggerনিশ্চিত একটি লিনাক্স সিস্টেম হিমায়িত করতে একটি ভাল কাজ করে। তবে ব্যক্তিগতভাবে, কল স্ট্যাকের নাটকীয় বিকাশ সম্পর্কে বর্ণনা করা একটি মৃত্যুর ভাল কালো পর্দা আরও "ক্যানোনিকাল" কর্নেল আতঙ্কের মতো অনুভব করবে।
ডেসমন্ড হিউম

4
লিনাক্সে, আপনি echo 1 > /proc/sys/kernel/sysrqসক্ষম হবার আগে আপনাকে হতে পারে echo c > /proc/sysrq-trigger
খ্রিস্টান

ওপেনবিএসডি তে কীভাবে?
মাইখাল

যখন একজনকে প্রমাণ করা দরকার যে
এইচডাব্লু এর

@mykhal man.openbsd.org/ddb দেখুন যা ওপেনবিএসডি-তে কার্নেল ডিবাগারটি কীভাবে প্রবেশ করতে হবে তা বর্ণনা করবে।
কুসালানন্দ

24
mkdir /tmp/kpanic && cd /tmp/kpanic && printf '#include <linux/kernel.h>\n#include <linux/module.h>\nMODULE_LICENSE("GPL");static int8_t* message = "buffer overrun at 0x4ba4c73e73acce54";int init_module(void){panic(message);return 0;}' > kpanic.c && printf 'obj-m += kpanic.o\nall:\n\tmake -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules' > Makefile && make && insmod kpanic.ko

ফাংশনটি কল করে কার্নেলকে ক্র্যাশ করে এমন একটি মডিউল তৈরি করে, মূলটির panicপ্রয়োজন, আরও নাটকটির জন্য আকর্ষণীয় কিছু কমান্ডের "0x4ba4c73e73acce54 এ বাফার ওভাররন" প্রয়োজন makeএবং gcc

প্রতিস্থাপন করুন।


4
এই উত্স কোডটি যথেষ্ট ক্ষতিকারক দেখাচ্ছে।
লাকাটা

এর ফলে কার্নেলটি ক্র্যাশ হয়ে গেছে, তবে আপনি কীভাবে কার্নেলটিকে মেমরি ডাম্প করতে এবং পুনরায় চালু করতে বলছেন? রাস্পবিয়ান কেবল এটি ব্যবহার করে আমার জন্য ঝুলিয়ে রেখেছিল।
হিফফান জন

আপডেট: দেখে মনে হচ্ছে apt-get install kdump-toolsরাস্পবিয়ান / ডেবিয়ান নিয়ে আমার করা দরকার ।
হিফফান জন

8

কার্নেল বলতে বোঝায় যে যাই চলুক না কেন। সুতরাং ব্যবহারকারীর মিথস্ক্রিয়া দ্বারা কার্নেল আতঙ্কের যে কোনও উপায় (ব্রুস এডিগার জোকিঙ্কলি প্রস্তাবের মত সর্বশক্তিমান মূল দ্বারা ইচ্ছাকৃত ভাঙচুর ছাড়া অন্য কোনও কার্নেলই আজ নির্মিত হয়েছে যাতে সেই প্রকারগুলির বেশিরভাগ প্রথম স্থানে কাজ করবে না) এটি একটি অত্যন্ত গুরুতর বাগ, এটি দ্রুত স্থির হয়ে উঠবে।


ভাল, কার্নেলের খুব বেশি ব্যবহার নেই যখন সিস্টেমটি সম্পূর্ণরূপে হিমায়িত হয়ে যায় এমন একটি অ-sudoing ব্যবহারকারী, যিনি তার অনুরূপ কমান্ড জারি করেছিলেন :(){ :|:& };:
ডেসমন্ড হিউম

4
@ ডেসমন্ডহিউম অনেকগুলি প্রক্রিয়ার কারণে একটি ভাল সেটআপ ক্র্যাশ হয় না। করার জন্য দেখুন /etc/security/limits.confফাইল।
বাস্তবতা

4

আমি জানি না কেন আগে এর উল্লেখ করা হয়নি ...

sudo kill -9 1

"ইনকে মারতে চেষ্টা করে" বার্তাটি নিয়ে আতঙ্কিত।


আমার পরীক্ষা পদ্ধতিতে কিছুই করেনি ...
কেজিটউইউইন

@ কেগুতউইন আপনার পরীক্ষা সিস্টেমে আপনি কোন কর্নেল ব্যবহার করছেন?
নিডজেজেকোব

2

এটা চেষ্টা কর:

dd if=/dev/urandom of=/proc/sysrq-trigger 


এটি আমার জন্য খুব দ্রুত কার্নেল প্যানিক করেছিল, তবে প্রক্রিয়াটি কতটা নিরাপদ তা আমি নিশ্চিত নই কারণ আমি লাইভ উবুন্টু ইনস্টলেশনটিতে এটি করেছি। আমি যখন খাঁটি টার্মিনাল পরিবেশে কর্নেলটি স্প্যাম ত্রুটি বার্তা দিয়েছিলাম তখন তা আমার কাছে হয়েছিল।


2
কেন এটি ভোট দেওয়া হচ্ছে? এটি জিজ্ঞাসিত প্রশ্ন ঠিকানা।
জোসুয়া রবসন

1
এটির সাথে সমস্যাটি হ'ল এটি ফাইলটিতে 'সি' লেখার আগে এটি ব্যবহারকারীর সমস্ত প্রক্রিয়া বন্ধ করার জন্য কমান্ডটি সম্ভাব্যভাবে চালাতে পারে।
ব্যবহারকারী

1

নীচের কোডটি একটি মডিউলে সংকলন করুন এবং এটি অন্তর্নির্মিত করুন, নিশ্চিত আপনার প্যানিক হওয়া উচিত:

static int crash_module_init(void)

{
     printf("crash module starting\n");
     int *p = 0;

     printk("%d\n", *p);

     return 0;
}

static void crash_module_exit(void)
{
    printf("crash module exiting\n");
}

module_init(crash_module_init);
module_exit(crash_module_exit);

2
এটি oopsআতঙ্কের কারণ নয়, তবে একটি ঘটবে ।
স্কাইডান

1

সবচেয়ে সহজ জিনিসটি হ'ল Alt + প্রিন্ট স্ক্রিনটি ধরে রাখুন এবং সি চেপে ধরে রাখার পরেও এটি চেপে রাখুন এটি echo c > /proc/sysrq-trigger একটি সামান্য ব্যাখ্যা হিসাবে দেখা যায় : সিসারকি কীটি সর্বশেষ অবলম্বন হিসাবে কার্নেলটিতে নিম্ন-স্তরের কমান্ড প্রেরণে ব্যবহৃত হয় সিস্টেম সংরক্ষণ করার চেষ্টা। আপনি যদি Alt + মুদ্রণ স্ক্রিনটি (sysrq) চেপে ধরে রাখেন এবং তার পাশের অন্য একটি কী টিপেন তবে এটি একই রকম হয় যে আপনি সেই সিসিআরকি-ট্রিগার ফাইলটিতে কীটি প্রতিধ্বনিত করছেন। তারা এটিকে কারণ হিসাবে ট্রিগার বলে; 3 'সি' কার্নেলকে ক্র্যাশ করতে বলে (কার্নেলের আতঙ্ক সৃষ্টি করে)

তবে আপনি 'proc / sys / kernel / sysrq' এর সামগ্রী দেখতে চাইতে পারেন। যদি এটি 178 বা অন্য কিছু হয় তবে আপনার এটিকে 1 তে পরিবর্তন করা উচিত 0 0 সমস্ত অক্ষম, 1 টি সমস্ত সক্ষম, এবং 1 টির চেয়ে বড় যে কোনও নির্দিষ্ট জিনিস কর্নেলটি সিস্টার্কের সাথে করার জন্য নির্দিষ্ট কিছু বিটম্যাপ।


1
লিনাক্সের নীচে পুরোপুরি হিমায়িত হয়ে গেলে আপনার কম্পিউটারটি পুনঃসূচনা করতে আপনি এই যাদু কীগুলি ধরে রাখার সময় আপনি ধীরে ধীরে "REISUB" টাইপ করতে পারেন। আর-পরিবর্তন কীবোর্ড মোডকে এক্সলেটে || সমস্ত প্রক্রিয়ায় সিগটর্ম ই-প্রেরণ করুন || I- সিগকিলকে সমস্ত প্রক্রিয়াতে প্রেরণ করুন (প্রথম দিকে ব্যতীত) || সমস্ত মাউন্ট করা ড্রাইভগুলি সিঙ্ক করুন || কেবল-পঠনযোগ্য সমস্ত ডিভাইস ইউ-রিম্যাম্ট করুন B- কোনও প্রক্রিয়া হত্যা বা আনমাউন্টিং ছাড়াই তাত্ক্ষণিকভাবে পুনরায় আরম্ভ হবে (যা আমরা যত্ন নিয়েছিলাম) প্রায় আগে)। আপনি পুনরায় আরম্ভের পরিবর্তে বি এর পরিবর্তে ও ব্যবহার করতে পারেন; ডি আপনার সিস্টেমটি ক্র্যাশ করার জন্য খুব ভাল সময়
কাটাচ্ছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.