Frage Wget ein Skript und führen Sie es aus


Ich möchte ein Skript herunterladen von: http://dl.dropbox.com/u/11210438/flockonus-stack.sh und führe es aus. Ich rate, wget umzubenennen, chmod zu machen und auszuführen.

Was sind die Befehle dafür auf Ubuntu zu tun?


22
2018-01-24 21:57


Ursprung




Antworten:


Vorsichtig

Bevor Sie das Skript ausführen, vertrauen Sie der Person, die es geschrieben hat?

Haben Sie beispielsweise erwartet, dass das Skript das enthält?

echo "brain1" > /etc/hostname

Das wird versuchen, deinen Hostnamen zu ändern.


Wenn Sie nach der Überprüfung des Skripts sicherstellen möchten, dass es korrekt und nicht bösartig ist, können Sie es in einer solchen Zeile wie folgt ausführen:

wget -O - http://dl.dropbox.com/u/11210438/flockonus-stack.sh | bash

Aber lade es separat herunter und lies es, bevor du es das erste Mal startest.

Beachten Sie auch, dass interaktive Eingabeaufforderungen innerhalb des heruntergeladenen Skripts mit dieser Methode möglicherweise nicht ordnungsgemäß funktionieren.


42
2018-01-24 22:03



+1, um auf die (signifikanten) Sicherheitsbedenken hinzuweisen. Sei absolut sicher, dass du der Quelle vertraust. Das echo "brain1" > /etc/hostname könnte genauso gut sein rm -rf /. - Christopher Cashell
+1 Danke Jungs, dieses Skript ist von mir, es ist sicher .. Liebte das One-Liner, aber es hat einige interaktive Linien, die nicht laufen .. weiß nicht warum? - Fabiano Soriani
Ihre apt-get install Linien? Ob apt-get würde zusätzliche Abhängigkeiten installieren, wird es Sie fragen, und wenn es nicht möglich ist, wird es nur verlassen, um sicher zu sein. Fügen Sie alle abhängigen Pakete den Befehlszeilenargumenten hinzu oder ziehen Sie das Hinzufügen in Betracht -y, z.B. apt-get -y install... - Mikel
Das Problem hängt nicht mit Abhängigkeiten zusammen, es hat mit apt zu tun, indem stdin gespült wird. - Zoredache
Sie können der Quelle tatsächlich nicht trauen, auch wenn Sie der Quelle aufgrund der mittleren Angriffe vertrauen. Nichtsdestoweniger sollten zufällige private URLs mit Bash-Skripten ein schmaler Angriffsvektor sein, den niemand mit der Fähigkeit, es auszuführen, sich genug darum kümmert. - SpamapS


Das Skript ist von mir, es ist sicher .. Liebte das One-Liner, aber es hat einige interaktive Linien, die nicht laufen .. weiß nicht warum?

Wenn dpkg ausgeführt wird und von apt-get aufgerufen wird, wird stdin gelöscht. Wenn Sie einen Befehl wie verwenden curl blah | bash, dann sendest du grundsätzlich Inhalte der Seite über STDIN an bash. Wenn einer Ihrer Befehle apt-get lautet und dann ausgeführt wird, wird alles andere gelöscht.

Der Trick besteht darin, einen Befehl wie diesen zu verwenden apt-get install --yes denyhosts </dev/null. Dies gibt apt-get eine andere Eingabe und es leert einfach / dev / null anstelle des restlichen Skripts.

Wenn Sie ein vollständiges Beispiel für die Installation eines Objekts über ein Remote-Skript anzeigen möchten, sollten Sie sich dieses Skript ansehen denyhosts einrichten

Für die Aufnahme bevorzuge ich Curl über Wget, aber Wget sollte auch in Ordnung sein.


5
2018-01-24 23:28



Ich versuchte mit einem Dummy-Skript mit einigen interaktiven, es funktionierte, dude .. Ich bekomme es nicht xD dl.dropbox.com/u/11210438/lala.sh - Fabiano Soriani


#!/bin/sh
if [ ! -f "/tmp/flockonus-stack.sh" ]
then
    wget -O /tmp/flockonus-stack.sh http://dl.dropbox.com/u/11210438/flockonus-stack.sh
fi

sh /tmp/flockonus-stack.sh

4
2018-01-24 21:59





All diesen Beispielen fehlt ein ziemlich wichtiger Punkt. Wenn Sie die URL verwenden http://dl.dropbox.com/u/11210438/flockonus-stack.sh, Sie müssen das Skript jedes Mal überprüfen, wenn Sie es herunterladen, da es von jedem auf dem Netzwerkpfad zwischen Ihnen und Dropbox geändert werden kann. Wenn Sie zu wechseln https: //dl.dropbox.com/u/11210438/flockonus-stack.shDu wirst diese Quelle der Unsicherheit nicht haben.

(Dropbox versucht, die http-URL auf https umzuleiten, aber im Falle eines Netzwerkangriffs würde wget niemals mit der echten Dropbox sprechen und würde die Weiterleitung nie sehen)


4
2018-05-04 23:44



Dies ist wahrscheinlich besser als Kommentar zu der Frage übrig, nicht als Antwort, da sie die Frage nicht genau beantwortet. Immer noch erwähnenswert! - Bill Weiss


Versuchen Sie es einfach herunterzuladen, wie Sie es mit wget angegeben haben, und führen Sie es dann direkt aus. Sie können sich etwas einfallen lassen und Variablen für das Skript verwenden, das Sie herunterladen möchten usw., aber das wird den Trick machen

Zum Beispiel:

!#/bin/bash

#Change to temp directory
cd /tmp

#Download file using wget
wget http://dl.dropbox.com/u/11210438/flockonus-stack.sh

#Execute the file

sh flockonus-stack.sh

2
2018-01-24 22:06





Nicht interaktive Skripte

wget -O - http://website.com/my-script.sh | bash

Beachten Sie, dass interaktive Skripts bei Verwendung dieser Methode nicht funktionieren.


Interaktive Skripte

Damit interaktive Skripts funktionieren, können Sie Folgendes verwenden:

bash <(wget -qO- http://website.com/my-script.sh)

Interaktive Skripts, die als root ausgeführt werden müssen

Warnung: Dies ist extrem gefährlich. Nicht empfohlen.

sudo su -c "bash <(wget -qO- http://website.com/my-script.sh)" root

Beachten Sie, dass Sie nicht einfach verwenden können sudo bash seit Verwendung <(...) erstellt eine virtuelle Datei und der Dateideskriptor ist nicht über die root Bash-Instanz zugänglich. Es muss auf dem gleichen Benutzer ausgeführt werden, der die virtuelle Datei lesen muss, also muss es als eigener Befehl innerhalb der root-Benutzer-Shell gesendet werden.


2
2018-01-02 22:17