gcc cc unsw
-
supertux schrieb:
rüdiger schrieb:
Aus Sicherheitsgründen geht die Shell eben erst die "offiziellen" Pfade durch (/bin /sbin /usr/bin /usr/sbin /usr/local/bin usw.).
Nop, das ist falsch.
Nein, ist es nicht. Was soll daran denn falsch sein?
Beim obigen Beispiel kann der Eingreifer die "böse" ssh in /usr/local/bin anlegen und wenn ich ssh ausführe, dann wird die "böse" ausgeführt.
Nein, kann er nicht, denn /usr/local/bin ist nur für Root beschreibbar, der Angreifer braucht also bereits Root-Rechte, um da reinschreiben zu können, was nicht wahnsinnig sinnvoll wäre.
-
supertux hat recht - es gibt kein aus sicherheitsgründen zuerst die std pfade
die shell testet einfach alles was in $PATH ist durch - und zwar der reihenfolge nach
für gewöhnlich haben die distributionen jedoch sicherheitstechnisch praktische defaults für $PATH und als user sollte man neues hinten dran hängen
-
r0nny schrieb:
die shell testet einfach alles was in $PATH ist durch - und zwar der reihenfolge nach
Natürlich. Und da sind (aus Sicherheitsgründen) eben zunächst mal die diversen Standard-Pfade drin. Auf $PATH hat rüdiger ja ohnedies hingewiesen, weiß also nicht, was der Post von supertux an neuen Informationen beinhalten hätte sollen.
-
Ich glaube, wie reden alle aneinander vorbei.
Ich meinte mit "falsch", dass die SHELL nicht standardmäßig sofort in /bin/, /usr/bin usw. die Programme sucht, unabhängig vom Inhalt von $PATH (so verstehe ich das aus Rüdigers Beitrag), sondern sich nur auf $PATH beschränkt. Dass PATH in der Regel als erstes /bin, /usr/bin, usw. hat, ist meiner Meinung nach eine andere Sache, es kann sein, dass diese Konstellation so as Sicherheitsgründen enstanden ist, das weiß ich aber nicht, mir ging es nur, dass die SHELL sich auf $PATH beschränkt. Aber jeder kann die PATH Variable ändern und dann ändert sich das Verhalten der SHELL.
supertux@supertux:~> PATH= supertux@supertux:~> ls bash: ls: No such file or directory
Nein, kann er nicht, denn /usr/local/bin ist nur für Root beschreibbar, der Angreifer braucht also bereits Root-Rechte, um da reinschreiben zu können, was nicht wahnsinnig sinnvoll wäre.
Das gleiche Argument kann ich für das Working Directory benutzen, der Angreifer braucht die Rechte des Benutzers. Rüdiger schriebt ja "Wenn nämlich jemand schafft ein gefälschtes Programm".
-
supertux schrieb:
Ich meinte mit "falsch", dass die SHELL nicht standardmäßig sofort in /bin/, /usr/bin usw. die Programme sucht, unabhängig vom Inhalt von $PATH (so verstehe ich das aus Rüdigers Beitrag), sondern sich nur auf $PATH beschränkt.
Das wissen sowohl rüdiger als auch ich. Und rüdiger hat in seinem Post auch auf $PATH hingewiesen.
Das gleiche Argument kann ich für das Working Directory benutzen, der Angreifer braucht die Rechte des Benutzers. Rüdiger schriebt ja "Wenn nämlich jemand schafft ein gefälschtes Programm".
Nein, das WD muss ja nicht das Homedirectory sein. Kann durchaus auch /pub oder /tmp oä sein; irgendein Ort eben, wo auch Non-Root-User hineinschreiben dürfen.
-
nman schrieb:
Nein, das WD muss ja nicht das Homedirectory sein. Kann durchaus auch /pub oder /tmp oä sein; irgendein Ort eben, wo auch Non-Root-User hineinschreiben dürfen.
deswegen hab ich ja WD und nicht HOME geschrieben. Aber streiten wir nicht weiter wegen einer Ungenauigkeit, wobei wir alle dasselbe meinen
-
Unter SuSE sollte es sogar reichen, ein Programmnamen zu wählen, der nicht bereits existiert, da bei SuSE . afair in PATH enthalten ist
Das muss aber eine ziemlich alte version von Suse sein.
So weit ich mich erinnere war seid Version 8.0 ./ standardmeßig nicht in PATH enthalten.
-
Marcin schrieb:
Das muss aber eine ziemlich alte version von Suse sein.
So weit ich mich erinnere war seid Version 8.0 ./ standardmeßig nicht in PATH enthalten.Zumindest bei dem 8.3 hier ist . am Ende von $PATH bei allen Usern. Bei root natürlich nicht. Und IMHO ist das bei aktuellen SuSEs und einigen anderen Distributionen genauso.
-
Und IMHO ist das bei aktuellen SuSEs
Falls du 10.2 meinst, dann vielleicht , diese Version habe ich noch nicht benutzt. In Version 10.1, 10.0 ist es auf jeden Fall nicht so, 8.0 und 8.2 hatte ich auch einige Zeit benutzt, da war es auch nicht so.
Es ist mir jedenfalls noch bei keiner Suse Version (auch bei 9er) aufgefallen dass PATH auch ./ beinhalten würde. Ausgerechnet 8.3 hatte ich nicht mal installiert gehabt.
-
supertux schrieb:
Ich meinte mit "falsch", dass die SHELL nicht standardmäßig sofort in /bin/, /usr/bin usw. die Programme sucht, unabhängig vom Inhalt von $PATH (so verstehe ich das aus Rüdigers Beitrag), sondern sich nur auf $PATH beschränkt.
Ich wollte mir bei der Erklärung kein Bein ausreissen. Ansonsten siehe nmans Beiträge.