Wie baue ich bash zum Patchen gegen Shellshock und teste es, bevor ich es im Stammverzeichnis meines Systems installiere?

1510
Adam Terrey

Was scheint mit meinem Code unten falsch zu sein? Ich habe Patch 18 heruntergeladen und gepatcht, von dem ich weiß, dass er der Patch für Shellchock-Schwachstelle ist. Ich bekomme jedoch immer noch die Sicherheitsanfälligkeit, wenn ich Bash ausführt.

Laden Sie den Quellcode und die Patches herunter

wget http://ftp.gnu.org/gnu/bash/bash-3.1.tar.gz wget http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-00 http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-0 

Patches auspacken und anwenden

tar -xvf bash-3.1.tar.gz cd bash-3.1 find ../bash31-??? -exec /bin/sh -c 'patch -p0 <{}' \; 

(Angenommen: Der Suchbefehl oben gibt einfach eine sortierte Liste zurück, weil Shell-Globbing ausgeführt wurde, aber ich weiß, dass dies für die Suchfindung nicht immer zutrifft.)

Config, Make, Make Install

./configure --prefix /tmp/bash_patched && make && make install 

Bash ausführen

/tmp/bash_patched/bin/bash 

Folgendes sollte zurückkehren /tmp/bash_patched/bin/bash 3.1.18(1)-release

echo $BASH $BASH_VERSION 

Machen Sie den Shellshock-Test

env X="() { :;} ; echo busted" /bin/sh -c "echo stuff" 

Für mich kehrt das zurück

busted stuff 
-1

3 Antworten auf die Frage

1
Adam Terrey

Das Problem bleibt im Test /bin/shbis zur Installation im Root-Bereich auf dem System anfällig. Ein besserer Test wäreenv X="() { :;} ; echo busted" /tmp/bash_patched/bin/bash -c "echo stuff"

0
Dobromir Velev

Die Shellshock-Patches sind tatsächlich 19 und 20. Das Wget lädt diese nicht herunter. Ich habe es noch nicht getestet, aber den zweiten Befehl in geändert

wget http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-00 http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-0 http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-020 

sollte es funktionieren lassen

Die Version, die ich sehe, ist 3-1.20 (1) - ok, mein Fehler - die Patches beginnen mit 18. Dies sind eigentlich die späteren Updates, in denen die anderen Probleme behoben werden Dobromir Velev vor 9 Jahren 0
0
JanFrazini

Haben Sie versucht, sich das in der Super User-Frage 816787 beschriebene Skript anzusehen? Für meine Ubuntu-Maschinen funktionierte es wie ein Champion, etwa 15 Minuten pro Server, einschließlich VMware-Snapshots, ohne Neustart.