it-swarm.com.de

Welches Risiko besteht beim Kopieren und Einfügen von Linux-Befehlen von einer Website? Wie können einige Befehle unsichtbar sein?

Wie alle Anfänger im Land Linux suche ich normalerweise nach Websites, die einige nützliche Shell-Befehle enthalten, markiere sie mit der Maus und kopiere sie (CTRL + C) und fügen Sie es in ein Terminal ein.

Zum Beispiel, wenn ich package_name.deb installieren muss

Sudo apt-get install package_name.deb

Ich werde mein Root-Passwort geben und die package_name.deb installieren

Wenn ich diesen Befehl in mein Texteditor einfüge, sieht es ungefähr so ​​aus:

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

Zweites Beispiel, wenn ich ein neues ppa (Terminal) hinzufügen möchte

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

Wenn ich meine Quellenliste bearbeite, finde ich etwas wie:

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

und

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

Das Problem ist der zweite ppa deb http://ppa.launchpad.net/a_suspicious_some-ppa/ wird automatisch und ohne meine Erlaubnis hinzugefügt.

Wie Sie sehen können, gibt es einen unsichtbaren Teil. Es erscheint nicht auf meinem Terminal.

Was ist das Risiko des Kopierens und Einfügens von einer nicht vertrauenswürdigen Website im Terminal und wie kann ich mein Betriebssystem reparieren?

85
GAD3R

Websites können an Ihre Zwischenablage angehängt werden

Das Risiko ist genau das, was Sie gesagt haben. Es ist definitiv möglich, böswillige Befehle an die Zwischenablage anzuhängen.

Sie könnten sogar && rm -rf /* (wird nur ausgeführt, wenn der erste Befehl erfolgreich war) oder ; rm -rf /* (wird ausgeführt, auch wenn der erste Befehl nicht erfolgreich war) und bestimmte UEFI-Geräte blockieren .

Sie sollten auch Michaels Beitrag in diesem Thread für ein anderes Beispiel überprüfen .

Am Ende kommt es wirklich darauf an, wie kreativ und bösartig ein bestimmter böser "Hacker" ist.


Aber wie können Sie die Befehle im Terminal "unsichtbar" machen? "

  1. Methode eins

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

    Ausführungsreihenfolge :

    1. Echo "Test" passiert
    2. Echo "Böses hier einfügen" passiert
    3. Aktionen werden "gelöscht"
    4. Die beabsichtigte Aktion findet hier statt, aber den Rest sehen Sie nicht.

    ...

    Sie können versuchen, im Terminalfenster nach oben zu scrollen, um den Rest zu finden.

  2. Methode zwei

    stty -echo 
    tput smcup
    

    Dadurch wird verhindert, dass das Terminal anzeigt, was Sie eingeben, sodass es überhaupt nicht im Terminalfenster angezeigt wird.

    Sie können es so versuchen:

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

Dies sind nur zwei wirklich grobe Beispiele, aber sie zeigen das Potenzial dessen, was getan werden kann, um Befehle zu verschleiern. Beachten Sie, dass es sich wahrscheinlich nicht vor ~/.bash_history versteckt, es sei denn, die versteckten Befehle löschen/ändern den Inhalt speziell.

Sie sollten davon ausgehen, dass es andere Möglichkeiten gibt, dies zu tun.


Minderung

Ich empfehle die Verwendung eines Addons zum Deaktivieren der Manipulation der Zwischenablage. Es gibt leider Möglichkeiten, das zu umgehen, daher würde ich empfehlen , alles in eine [~ # ~] GUI [~ # ~] einzufügen. Texteditor , bevor er in Ihr Terminal oder irgendwo anders gelangt.

Sie müssen überprüfen, was Sie tun. Wenn Sie nicht jeden einzelnen Befehl verstehen, sollten Sie ihn googeln. Dies ist die richtige Alufolie, da durch Kopieren und Einfügen die Befehle unter vielen Linux-Varianten automatisch ausgeführt werden können.


Reparieren Sie Ihre Linux-Installation

Sie haben vielleicht keine Ahnung, wie tief das Kaninchenloch geht. Wenn Sie nicht die Zeit und Mühe haben, sich darauf einzulassen, würde ich vorschlagen, dass Sie nur aus dem Orbit kommen, es sei denn, Sie haben wichtige Dateien. Wenn Sie wichtige Dateien haben, sichern Sie einfach das nicht ausführbare Material (keine PDFs, Dokumente usw.) und nuken Sie dann aus dem Orbit.

Wenn Sie über PDFs verfügen, können Sie das PDF in ein Nachskript konvertieren oder den Inhalt kopieren und in eine Textdatei einfügen. Kopieren Sie den Text mit Dokumenten, fügen Sie ihn ein und formatieren Sie ihn später.

82
Mark Buffalo

Es besteht ein Risiko. Websites können CSS und JavaScript verwenden, um Dinge auszublenden. Wenn Sie dann von dieser Website kopieren, kopieren Sie tatsächlich, was sie wollen. @Gumbo lieferte das Beispiel: https://thejh.net/misc/website-terminal-copy-paste .

Die Lösung: Kopieren und fügen Sie keine Websites ein, denen Sie nicht vertrauen. Oder besuchen Sie sie.

39
h4ckNinja

Ja, das Ausschneiden und Einfügen von Befehlen von nicht vertrauenswürdigen Websites kann gefährlich sein. Der Text, den Sie einfügen, enthält immer den Text, den Sie kopieren, kann jedoch vorher, dazwischen oder danach mehr Text enthalten.

Auf der Webseite erfolgt dies per CSS. Machen Sie einfach den zusätzlichen Text unsichtbar. Es wird weiterhin kopiert.

Wenn Sie es in ein Terminal einfügen, wird der zusätzliche Text wird angezeigt. Wenn es jedoch eine neue Zeile enthält, wird es sofort ausgeführt und der Schaden wird angerichtet. Es kann auch Befehle enthalten, um den zusätzlichen Text zu löschen.

m die Gefahr zu vermeiden Fügen Sie den Text in einen Texteditor ein. Schau es dir an. Und kopieren Sie es dann vom Editor auf das Terminal.

Stellen Sie einfach sicher, dass Sie den Befehl so gut verstehen, dass Sie wissen, dass er sicher ist. Die andere Gefahr des Einfügens unbekannter Befehle besteht darin, dass Sie einfach nicht verstehen können, was Sie tun.

20
Stig Hemmer

Neben den hervorragenden Antworten oben möchte ich hinzufügen, dass es neben böswilligen Zwecken auch Probleme beim Kopieren und Einfügen von Websites oder PDFs aufgrund der Zeichencodierung gibt.

Möglicherweise denken Sie, dass Sie eine Gruppe von Zeichen einfügen und aufgrund der Zeichencodierung andere Dinge einfügen und Probleme haben, die schwer zu finden sind.

Syslog startet nicht

Aus dem Thread dachte der OP, er hätte eingefügt:

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

Aber in Wirklichkeit hat er so etwas eingefügt:

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