একটি সালিশী ফাইল বিড়াল এটি কতটা নিরাপদ?


77

কখনও কখনও যখন আমি catভুলক্রমে বাইনারি ফাইল করি তখন আমার টার্মিনালটি পুরোপুরি সজ্জিত হয়ে যায়। দ্রুত কোনও কিছুই resetঠিক করতে পারে না, তবে আক্রমণকারী তাত্ত্বিকভাবে এমন কোনও ফাইল তৈরি করতে পারেনি যা টার্মিনালে প্রদর্শিত হবে তখন কিছু স্বেচ্ছাসেবক কোড কার্যকর করবে? টার্মিনাল এমুলেটর বা অন্যথায় শোষণের মাধ্যমে।


3
কখনও কখনও যখন আমি এটি করি তখন আমার শেলটি শেষে "<garbage> অজানা আদেশ" বলবে। এটি আমাকে অবাক করে তোলে যে এটি আসলে সম্ভব কিনা।
কিথ

5
টার্মিনাল এমুলেটরটির জন্য শোষণ ছিল যেমন, লিনাক্সসিকিউরিটি / কনটেন্ট / ভিউ ১০০৪657 or বা সিকিউরিটি ফোকাস.com / বিড / 36 363636 / discuss সুতরাং এটি কোনও বিশেষ সুরক্ষার প্রয়োজন নেই
উলরিচ ড্যানজেল

1
এ কারণেই এমন কিছু ব্যবহার করা ভাল যা বাইনারি ফাইলগুলি (যেমন more) বা টার্মিনাল-সচেতন ( less) ফাইলগুলির বিষয়বস্তুগুলি পরীক্ষা করতে পারে সে সম্পর্কে জানতে পারে। এটি কেবল আপনার টার্মিনালটিকে একটি অদ্ভুত অবস্থায় ফেলবে না, পুরো ফাইলটি একটি শটেও উড়ে যাবে না।
blrfl

stty saneকমান্ড একটি xterm (অথবা অনুরূপ) যা যেমন একটি ভিন্ন অক্ষর সেট সুইচড হয়েছে পুনরায় সেট করবে।
থরবজর্ন রাভন অ্যান্ডারসন

moshডকুমেন্টেশনের এতে কিছু চিন্তাভাবনা রয়েছে: mosh.mit.edu/#techinfo
ম্যাক্স রিড

উত্তর:


34

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

কিছু পুরানো hardwareটার্মিনালগুলির সাথে এটি সমস্যা হতে পারে যেমন আপনি প্রোগ্রামযুক্ত যেমন ফাংশন কীগুলি এই জাতীয় পালানোর অনুক্রমের সাথে, হার্ডওয়্যারটিতে সেই কীটির জন্য একটি কমান্ড সিকোয়েন্স সংরক্ষণ করে। এটি সক্রিয় করতে আপনার এখনও একটি শারীরিক কী-প্রেস দরকার।

তবে সর্বদা (হউকের মতো 'ব্রিন্ডেড' হিসাবে চিহ্নিত করা হয়েছে) লোকেরা তাদের তৈরি সমস্যাটি বুঝতে না পেরে যদি তাদের জন্য কোনও সমস্যা সমাধান করে তবে তারা এই জাতীয় বৈশিষ্ট্য যুক্ত করতে ইচ্ছুক are ওপেন সোর্স সফ্টওয়্যারটির সাথে আমার অভিজ্ঞতাটি হ'ল কোডটির দিকে নজর দেওয়ার কারণে অনেকগুলি চোখের কারণ, বন্ধ উত্সের মতো এটি হওয়ার সম্ভাবনা কম। (আমি মনে করি যে সিলিকন গ্রহপিক্সের আইরিক্সের মেল প্রোগ্রামে মধ্য নব্বইয়ের দশকে, আপনি রিসিভার্স মেশিনে মৃত্যুদন্ড কার্যকর করার আদেশ, এক্সিকিউটেবলের আসল পথ, ....) অন্তর্ভুক্ত করতে পারেন)


3
"আপনি রিসিভার মেশিনে কার্যকর করার জন্য আদেশগুলি অন্তর্ভুক্ত করতে পারেন " আপনি উইন্ডোজ স্ক্রিপ্টিং হোস্টকে ডাকার মতো ইমেল ভিবিএস স্ক্রিপ্টের মতো কিছু বোঝাতে চাইছেন? :)
একটি সিভিএন

ঠিক না, আপনি এমন কোনও এক্সিকিউটেবল শুরু করতে পারেন যা ইতিমধ্যে মেশিনে রয়েছে, শব্দ বাজানোর মতো। আমি ঠিক সিনট্যাক্সটি (এটি প্রায় 20 বছর আগে ছিল) মনে করতে পারি না বা আপনি কোনও 'সেট' বৈশিষ্ট্যটি স্যুপআপে স্যুইচ করতে পারেন কিনা। আমাদের নেটওয়ার্কে সজ্জিত অটো প্লে ভিডিও সহ আমরা কিছু মজা করেছি।
অ্যান্টন

আপনি NeWS সম্পর্কে কথা বলছেন না আপনি? আইআইআরসি এসজিআই সর্বশেষ হোল্ড-আউটগুলির মধ্যে একটি ছিল।
লুসার droog

@luserdroog কোন এই অধীনে মান চিত্রভিত্তিক মেইল প্রোগ্রাম ছিল IRIX
Anthon

1
@ অ্যান্টন এটি এখনও সম্ভব কিনা তা আমি নিশ্চিত নই, তবে writeকমান্ড থেকে পাঠ্যটিতে "পুনরাবৃত্তি" করতে টার্মিনালটি পেতে এস্কেপ কোড ব্যবহার করার সম্ভাবনা রয়েছে - এভাবে ব্যবহারকারী টার্মিনালের মালিক হিসাবে কমান্ড / স্ক্রিপ্টগুলি কার্যকর করে। এটা তোলে কল্পনানুসারে কারণে সংখ্যক বার্তা বন্ধ করে রাখলে সুপারিশ করি mesg -nব্যবহারকারীদের সময় অধিকাংশ জন্য, এবং root সবসময় । আফাইক, এটি আসলে করা হয়েছিল - যদিও এটি কখনও শোষণ করা হয়েছিল কিনা তা আমি জানি না। একটি catটেড নির্বাহযোগ্য থেকে এলোমেলো পাঠ্য , সম্ভবত সম্পাদন করা যেতে পারে।
বার্ড কোপ্পেরুদ

33

বেশিরভাগ টার্মিনাল এমুলেটররা কিছু পাল্টা প্রতিক্রিয়া প্রেরণ করবে, যদি তারা নির্দিষ্ট পালানোর সিকোয়েন্সগুলি গ্রহণ করে ( এক্সটার্ম কন্ট্রোল সিকোয়েন্স ডকুমেন্টেশনটি দেখুন )। উদাহরণস্বরূপ, আপনি \e[0cএকটি ভিটি 100-এর মতো এমুলেটরটি প্রেরণ করতে পারেন এবং এটি ডিভাইসের বৈশিষ্ট্যগুলি আবার পাঠিয়ে দেবে, এর মতো কিছু \e[?1;2c (এটি সম্ভবত কীথ পর্যবেক্ষণ করেছে)) তবে এই উত্তরগুলি স্বেচ্ছাচারী স্ট্রিং নয়। তবুও, 2cআপনার সিস্টেমে কোনও এক্সিকিউটেবলের নামকরণ করা যা মারাত্মক কিছু করে a এটি একটি খারাপ ধারণা।

আপডেট করুন: ঝুঁকি আসলে বড় হয় চেয়ে আমি ভেবেছিলাম, একটি xterm উইন্ডোর শিরোনাম সেট করতে সম্ভাবনা কারণে এবং শিরোনাম ফেরত পাঠাতে উপযুক্ত পালাবার ক্রম ব্যবহার ( http://www.securityfocus.com/bid/6940/ ) । উপরের উদাহরণের বিপরীতে শিরোনামটি প্রায় এক নির্বিচারে স্ট্রিং হতে পারে।


এটি ইতিমধ্যে খুব কাছাকাছি কাটা।
গুঞ্চারস

এরপরে আরও পুরানো বৈশিষ্ট্য রয়েছে - 'আনসারব্যাক বার্তা', ENQ (Ce) চরিত্রের প্রতিক্রিয়াতে প্রেরণ করা হয়েছিল। আসল ভিটি 100 এ এটি টার্মিনালের SETUP মেনুতে ব্যবহারকারী সেট করে; হতে পারে এমন টার্মিনাল এমুলেটর রয়েছে যা এটি দূরবর্তীভাবে সেট করার অনুমতি দেয় ...
সেন্ডমোরেইনফোর

16

এটি পিএস 1 এর মতো কোনও কিছু দ্বারা ওভাররাইড না করা হলে, জিনোম টার্মিনাল 3.6.1 এ টার্মিনালের শিরোনাম পরিবর্তন করে :

printf "\033]2;Script Kiddie was here\007"

catসংস্করণটি পরীক্ষা করতে এখন একটি নতুন জিনোম টার্মিনাল উইন্ডোটি খুলুন :

printf "\033]2;Script Kiddie was here\007" > test.bin
cat test.bin

হ্যাঁ, এটি টার্মিনাল শিরোনামও সেট করে।

কমান্ড লাইনে শিরোনাম প্রিন্ট হওয়ার ফলে একটি পালানোর কোডের সাথে সুরক্ষার সমস্যা ছিল , সুতরাং আপনি কার্যকরভাবে একটি ফাইল তৈরি করতে পারেন যা catএড প্রিন্ট করার সময় (আমি নিশ্চিত না যে আপনি সেখানে একটি নতুন লাইন রাখতে পারেন কিনা) নির্বিচারে আদেশ। সেকি!


8

ব্যবহারের catফলে কোড কার্যকরকরণের ফলাফল নাও হতে পারে, এস্কেপ কোডগুলি প্রক্রিয়া করা হবে যাতে আপনি যখন স্ক্রিপ্টটি ক্ষতিকারক হয় তখন সহজেই ভেবে ভ্রান্ত হতে পারেন it

এখানে আপনি চালাতে পারেন এমন একটি উদাহরণ কমান্ড যা একটি "দূষিত" শেল স্ক্রিপ্ট তৈরি করবে:

echo -e '#!/bin/sh\necho "...doing something bad here..."\nexit\n\033[A\033[Aecho "Hello dear reader, I am just a harmless script, safe to run me!"' > demo.sh
chmod a+x demo.sh

আপনি যখন ফাইলটি পরীক্ষা করেন, তখন এটি যথেষ্ট ক্ষতিকারক বলে মনে হয়:

$ cat demo.sh
#!/bin/sh
echo "Hello dear reader, I am just a harmless script, safe to run me!"

তবে আসলেই কি আপনার এটি চালানো উচিত ...

$ ./demo.sh 
...doing something bad here...

স্ক্রিপ্টটি কাঁচা এস্কেপ কোডগুলি যুক্ত করে কার্সারকে কয়েক লাইন উপরে সরিয়ে নিয়ে কাজ করে, তাই স্ক্রিপ্টের বাকী অংশটি দূষিত কোডের শীর্ষে লিখিত থাকে, এটি লুকিয়ে রাখে।

প্রায় অন্য কোনও প্রোগ্রাম এটির জন্য স্ক্রিপ্টটি প্রকাশ করবে। কেবলমাত্র সেই প্রোগ্রামগুলি যা ফাইল সামগ্রীতে প্রক্রিয়া করে না (যেমন cat, moreএবং less -r) বিভ্রান্তিকর আউটপুট উত্পাদন করে।

এটি লক্ষ্য করুন tailএবং headএকই বিভ্রান্তিকর আউটপুট উত্পাদন করে। "কম + এফ" ব্যবহার করা তাই "লেজু-ফ" এর চেয়ে নিরাপদ।


এটি বেশ সমস্যাযুক্ত ... আপনি দৌড়াদৌড়ি দিয়ে আসলে কী ঘটছে তা দেখতে পাবেন echo $(cat demo.sh), cat demo.sh | grep . --color=yes(দ্রষ্টব্য: --color=yesএখানে "দূষিত" কোডটি দেখানো হচ্ছে) বা বিল্ট-ইনটি cat -v demo.sh
চার্লি

সত্য বা মিথ্যা, এটি একটি পৃথক প্রশ্নের উত্তর: catফাইলটির বিষয়বস্তু প্রদর্শন করতে কতটা বিশ্বাসযোগ্য ।
ইনকনিস মিসেসি

@ আইসনিসমিরসি: এটি অন্য প্রশ্নের জন্য সত্যই উত্তর নয়। এই উত্তরটি হুঁশিয়ারি দেয় যে বিড়ালটি এস্কেপ কোডগুলি দেখায়, এবং কেবলমাত্র এক প্রকারের পালানোর কোড সহ একটি সাধারণ উদাহরণ সরবরাহ করে তবে আরও অনেকগুলি রয়েছে। নির্দিষ্ট টার্মিনালের সাথে একত্রিত হয়ে এগুলি কীগুলি পুনরায় তৈরি করতে, ফাইলগুলিকে ওভাররাইট করতে এবং তত্ত্বে এমনকি কমান্ডগুলি কার্যকর করতে পারে । সুতরাং একবার আপনি যখন পালানোর কোডগুলি প্রদর্শন করার বিপদটি উপলব্ধি করে ফেলেন, আপনি বুঝতে পারবেন যে এটি কখনও কখনও catএকটি সালিশী ফাইলের জন্য অনিরাপদ হতে পারে , যেমন প্রশ্নটি জিজ্ঞাসা করেছিল!
মারভিনিয়াস

6

আমি xtermনিজের মধ্যে নির্বিচারে চরিত্রগুলি সন্নিবেশ করার অভিজ্ঞতা পেয়েছি যেন আমি সেগুলি টাইপ করেছি। এবং উপলক্ষ্যে এটি স্পষ্টতই নতুন লাইনের চরিত্রকে অন্তর্ভুক্ত করেছে, যাতে আমি ngwerm:0riu: command not foundপ্রতিক্রিয়া হিসাবে পেয়েছি । আমি নির্দিষ্ট কারণগুলির জন্য ক্ষতিকারক কমান্ড প্রেরণকারী কোনও ফাইল কারুকাজ করতে না পারার কোনও কারণ আমি দেখতে পাচ্ছি না। হ্যাঁ, কমপক্ষে কয়েকটি টার্মিনাল স্বেচ্ছাসেবী প্রভাবের সাথে আক্রমণে আক্রান্ত হতে পারে।


2

ভাল, একটি টার্মিনাল এমুলেটর মূলত এতে প্রেরিত অক্ষরগুলি মুদ্রণ করে।

বর্তমান অবস্থানে একটি অক্ষর মুদ্রণের পাশাপাশি যে কোনও কিছুই যেমন নতুন অবস্থান নির্ধারণ করা, রঙ পরিবর্তন করা, শিরোনাম পরিবর্তন করা ইত্যাদি পালানো ক্রমের দ্বারা করা হয়।

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

তত্ত্বত্বে একটি বাফার ওভারফ্লোর মতো বাগটি নির্বিচারে কার্যকারিতা ট্রিগার করতে ব্যবহৃত হতে পারে। তবে এটি সম্ভবত অন্য কোনও বাইনারিগুলিতেও সম্ভব হবে।


0

সাধারণভাবে একটি স্বেচ্ছাসেবী ফাইল ক্যাট করার ঝুঁকি থাকে না সাধারণত। ফাইল বিশ্লেষণের জন্য আমার স্বাভাবিক পদ্ধতিটি নিম্নলিখিতটি করা হয়:

$ file <mystery file>
$ strings <mystery file> | less

উপরের অংশটি আমাকে fileকমান্ডের মাধ্যমে একটি ফাইলের ধরণ নির্ধারণ করতে দেয় এবং stringsকমান্ডটি আমাকে বাইনারি ফাইলগুলি থেকে সনাক্তযোগ্য স্ট্রিংগুলি ফেলে দিতে দেয় যা আমি তাদের বংশ সম্পর্কে নিশ্চিত নই।

উদাহরণ

ফাইল আউটপুট
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
স্ট্রিং আউটপুট
$ strings /bin/ls|less
...
across
vertical
single-column
force
never
auto
if-tty
slash
%b %e  %Y
%b %e %H:%M
long-iso
main
posix-
sort_files
?pcdb-lswd
dev_ino_pop
Try `%s --help' for more information.
Usage: %s [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.
Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
...

3
একটি অজানা ফাইলের স্ট্রিংগুলির চলমান সমস্যাযুক্ত পরিণতিও হতে পারে। lcamtuf.blogspot.fi/2014/10/…
জানু

@ ইন্নিসনিমারসি - প্রথম বাক্যটি পড়ুন !!!!
slm

ঠিক আছে, আমার আগের বক্তব্যটি প্রত্যাহার করে, উত্তরটি সংক্ষিপ্ত, বিভ্রান্তিকর পরিভাষা ব্যবহার করে, ভিত্তিহীন এবং স্পষ্টতই অসম্পূর্ণ। মনে রাখবেন যে সুরক্ষায়, "স্বেচ্ছাসেবক" ≠ এলোমেলো হিসাবে আপনার প্রিয় ওএসে বিতরণ।
ইনকনিস মিসেসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.