web-dev-qa-db-ja.com

WebサイトからLinuxコマンドをコピーして貼り付けるリスクは何ですか?一部のコマンドを非表示にするにはどうすればよいですか?

Linuxの世界のすべての初心者と同様に、私は通常、いくつかの便利なシェルコマンドを含むWebサイトを探し、それをマウスでマークしてコピーします(CTRL + C)、それをターミナルに貼り付けます。

たとえば、package_name.debをインストールする必要がある場合

Sudo apt-get install package_name.deb

Rootパスワードを指定して、package_name.debをインストールします

このコマンドをテキストエディターに貼り付けると、次のようになります。

Sudo apt-get install package_name.deb && apt-get install suspicious_file.deb 

2番目の例、新しいppa(端末)を追加する場合

Sudo add-apt-repository ppa:some/ppa
Sudo apt-get update

Sources.listを編集すると、次のようになります。

deb http://ppa.launchpad.net/some-ppa/

そして

deb http://ppa.launchpad.net/a_suspicious_some-ppa/

問題は2番目のppa deb http://ppa.launchpad.net/a_suspicious_some-ppa/は私の許可なく自動的に追加されます。

ご覧のとおり、見えない部分があります。端末に表示されません。

ターミナルの信頼できないWebサイトからコピーアンドペーストするリスクと、オペレーティングシステムを修正する方法を教えてください。

85
GAD3R

Webサイトはクリップボードに追加できます

リスクはまさに​​あなたが言っていたものです。悪意のあるコマンドをクリップボードに追加することは間違いなく可能です。

&& rm -rf /*(最初のコマンドが成功した場合にのみ実行)、または; rm -rf /*(最初のコマンドが失敗した場合でも実行)および 特定のUEFIデバイスにブリック を追加することもできます。

別の例については、このスレッドのMichaelの投稿も確認してください

結局、それは本当に特定の邪悪な「ハッカー」がどれほど創造的で悪意があるかに依存します。


しかし、どうすればターミナルでコマンドを「非表示」にすることができますか?」

  1. 方法1

    echo test;echo insert evil here;clear;echo installing package
    

    実行順序

    1. エコー「テスト」が発生する
    2. 「ここに悪を挿入する」というエコーが発生する
    3. アクションは「クリア」されます
    4. ここで意図したアクションが発生しますが、残りは表示されません。

    ...

    ターミナルウィンドウを上にスクロールして、残りの部分を探します。

  2. 方法2

    stty -echo 
    tput smcup
    

    これにより、入力している内容がターミナルに表示されなくなり、ターミナルウィンドウに表示されなくなります。

    あなたはこのようにそれを試すことができます:

    stty -echo;tput smcup;echo evil commands
    expected command
    

これらはほんの2つの非常に大まかな例ですが、コマンドを難読化するために何ができるかを示しています。非表示のコマンドがその内容を明確に削除/変更しない限り、〜/ .bash_historyから非表示にならない可能性があることに注意してください。

これを行うには他の方法があると想定する必要があります。


緩和

クリップボード操作を無効にするアドオンを使用することをお勧めします。残念ながらそれを回避する方法があるので、すべてを[〜#〜] gui [〜#〜]に貼り付けることをお勧めします端末に入る前のテキストeditor、またはどこかに。

何をしているかを確認する必要があります。個々のコマンドを理解できない場合は、ググる必要があります。多くのLinuxフレーバーでは、コピーと貼り付けによりコマンドが強制的に自動実行されるため、これは適切なアルミ箔のバッテリーです。


Linuxインストールの修復

うさぎの穴がどれほど深いのかわからないかもしれません。それに時間と労力を費やすことがなければ、重要なファイルがない限り、軌道から核を取り除くことをお勧めします。重要なファイルがある場合は、実行可能でないファイル(PDFやドキュメントなどは含まれません)をバックアップし、軌道から核を削除します。

PDFがある場合は、PDFをポストスクリプトに変換するか、コンテンツをコピーしてテキストファイルに貼り付けます。ドキュメントの場合は、テキストをコピーして貼り付け、後でフォーマットします。

82
Mark Buffalo

リスクがあります。 WebサイトはCSSとJavaScriptを使用して非表示にでき、そのWebサイトからコピーするときに、実際にWebサイトが望むものをコピーします。 @Gumboが例を提供しました: https://thejh.net/misc/website-terminal-copy-paste

修正:信頼できないWebサイトからコピーして貼り付けないでください。またはそれらをご覧ください。

39
h4ckNinja

はい、信頼できないWebサイトからコマンドをカットアンドペーストすると危険な場合があります。貼り付けたテキストには、常にコピーしたテキストが含まれますが、その前後、途中、またはその後にさらにテキストを含めることができます。

Webページでは、これはCSSによって行われます。余分なテキストを非表示にするだけです。まだコピーされます。

ターミナルに貼り付けると、余分なテキスト表示されますになります。ただし、改行が含まれている場合はすぐに実行され、ダメージが発生します。また、余分なテキストを削除するコマンドを含めることもできます。

危険を回避するためテキストをテキストエディタに貼り付けます。見てください。そして、それをエディタからターミナルにコピーします。

ただ...コマンドが安全であることを十分に理解していることを確認してください。 other不明なコマンドを貼り付けることの危険性は、あなたが何をしているかを単に理解できないことです。

20
Stig Hemmer

上記の優れた回答に加えて、悪意のある目的に加えて、文字エンコードのためにWebサイトやPDFからのコピーと貼り付けの問題もあると付け加えておきます。

文字のグループを貼り付けていると考えている可能性があります。文字エンコードのため、別のものを貼り付けているため、追跡が困難な問題が発生しています。

syslogの開始に失敗します

スレッドから、OPは貼り付けたと思った:

file("/var/log/Cisco/cisco.log");

しかし、実際には彼はこのようなものを貼り付けました:

file(▒~@~\/var/log/Cisco/cisco.log▒~@~]); 
17
Rui F Ribeiro