[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: eingeschränkter shell zugang per ssh



Hallo,

Serge Gebhardt schrieb:

On Thu, 20 Nov 2003 19:09:55 +0100
Jakob Lell <jlell@JakobLell.de> wrote:


Eigentlich will ich den sshd nicht für logins anbieten, sondern als
kryptierter tunnel für einen cvsd (pserver ist unsicher). Daher habe
ich in der chroot alles ausser csh, cvs und dependencies
rausgeworfen (kein ls, cd, pwd, etc). Die csh benutze ich anstelle
der Bash, weil sie keine auto-completion hat (sonst kann man einfach
rausfinden, welche dateien existieren). Ich denke das setup ist
recht sicher.

welche Dateien vorhanden sind, kann man mit "echo *" auch ohne ls herausfinden. Da echo in der shell integriert ist, kann man es nur mit
Veränderungen am Quellcode entfernen.


Stimmt...


Wenn der user irgendwo in seinem Gefängnis (z.B. /tmp) Schreibzugriff
hat, kann er sich fehlende Programme sogar selbst erzeugen, indem er
sie mit folgenden Kommandos erzeugen: set echo_style="e"
echo -n "\001\002\003...">/tmp/program
Mit ein paar Zeilen Perl kann man jedes beliebige Programm in
derartige Oktalwerte umwandeln. Obwohl das Programm nicht direkt
ausführbar ist (und chmod fehlt), kann der Angreifer über
/lib/ld-linux.so.2 /tmp/program das Programm starten.


Kann man denn überhaupt etwas dagegen tun? echo aus dem csh Quellcode zu
werfen wäre wohl am geeignetesten oder? Damit wäre auch das Problem
weiter oben gelöst.

ich weiss ja nicht, ob es hilft, aber kann man denn nicht im Pfad einen Script echo anlegen, der einfach nichts tut?
Mit 'normalen' Programmen geht das ja, aber mit Shell-internen?



IMHO ist es die einzige Möglichkeit, einen User auf eine shell zu
begrenzen, ihm KEINE Schreibrechte zu geben  und die Resourcen über
ulimit zu begrenzen (Endlosschleife...).


ja, ulimit habe ich drinnen. /tmp braucht Schreibrechte für cvs.

Danke,
Serge






Reply to: