Page 1 of 2
CGI-Crontab WICHTIG
Posted: 2003-03-15 15:12
by mr. i-net
Hi,
ich habe ein Problem. und zwar habe ich auf meinem Webserver confixx laufen und ein confixxuser kann sich als root.ftponly einen cronjob per browser (über ein selbst gebasteltes script) anlegen.
wie kann ich das verhindern. da der owner des scripts ja root ist könnte man damit ja auch den server rebooten. ist ein riesen sicherheitsloch.
kann mir jemand helfen?
hier das script:
Code: Select all
#!/usr/bin/perl -w
use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
my @Feldnamen = $cgi->param();
my $CTIME = localtime(time);
open(COMMAND, $cgi->param('Command') . "|");
# Html-Ausgabe schreiben
print $cgi->header(),
$cgi->start_html('Vielen Dank für Ihre Bewertung');
print $cgi->h1('Ergebnis der Kommandoausführung :');
foreach my $Feld (@Feldnamen) {
print $Feld,
$cgi->b(' = '),
$cgi->param($Feld), "<br>";
}
while(<COMMAND> )
{
chomp $_;
print $_ . "<br>";
}
print $cgi->end_html();
der browser befehl:
Code: Select all
exec.pl?Command=crontab < cron.tab
[/code]
Re: CGI-Crontab WICHTIG
Posted: 2003-03-15 15:53
by dodolin
a) Gib den Usern Shellzugang, dann können sie ihre Cronjobs selbst anlegen (unter ihrem eigenen User). Das ist nicht unsicherer, denn wenn die User Cronjobs ausführen dürfen, kannst du ihnen auch gleich Shellzugang geben, ist das gleiche.
b) Lege den Cronjob halt nicht als root, sondern unter dem jeweiligen User an.
c) Oder habe ich jetzt da was falsch verstanden?
Re: CGI-Crontab WICHTIG
Posted: 2003-03-15 16:20
by mr. i-net
ja glaube schon
der user hat ohne mein wissen per script den cronjob angelegt. ich weiß aber nicht warum der irgendwas als root speichern kann.
Re: CGI-Crontab WICHTIG
Posted: 2003-03-15 16:34
by memphis
wenn dein webserver (apache) als root läuft, dann laufen seine scripte auch als root und dann kann er ja master of server spielen ;-) ... wenn es daran liegt.
wenn nicht, dann weiß ich auch nicht woran es liegt ...
Code: Select all
/etc/local/apache/conf oder /etc/local/apache2/conf
in der httpd.conf:
User www
Group www
Vorher halt noch im Shell
eingeben ...
Ach so ... und dann den Apache neu starten (apachectl -k restart (in 2.0) oder apachectl restart (in 1.3))
Re: CGI-Crontab WICHTIG
Posted: 2003-03-15 16:43
by mr. i-net
nene
der server läuft als
http://www.wwwrun
und durch das script (s.o.) wird in /var/spool/cron/ eine datei mit dem namen des linuxusers des kunden (bei webmin also web123). diese datei enthält dann einen cronjob (standard cronjob format * * * /home....usw.).
diese hat dann den besitzer root und die gruppe ftponly. aber wie das zustande kommt, dass der als eine datei erstellt mit owner root ist mir ein rätsel.
Re: CGI-Crontab WICHTIG
Posted: 2003-03-15 16:56
by memphis
Laut dem Script wird einfach nur der Shell Command
ausgeführt ...
du solltest also mal einen CGIWrapper installieren, vielleicht hilft das ja ...
ich hab mal im Internet nachgeschaut und folgende Seite gefunden
http://tech.irt.org/articles/js184/ ... ich hoff mal das hilft,
mehr weiß ich nicht mehr
Re: CGI-Crontab WICHTIG
Posted: 2003-03-15 17:41
by mr. i-net
richtig,
es wird nur dieser auszug ausgeführt. nur genau das ist es.
es wird ein eintrag in die crontab erstellt. aber wenn ich einen cronjob mit beliebigem inhalt erstellen kann, dann ist mein webserver doch ziemlich weltoffen.
wrapper: ich habe suEXEC laufen und es klappt auch. wenn ich einfache cgi-scripte ausführen werden diese als web*.ftponly ausgeführt.
ich möchte also im prinzip nur verhindern, dass ein user einen cronjob erstellt und jeden beliebigen shell befehl ausführen kann.
ich könnte auch exe.pl?Command=cat httpd.conf eingeben. dann kann er die datei lese, aber warum?????
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 08:33
by flibbi
Hallihallo,
hat denn niemand einen Tipp, ein HowTo oder ähnliches wie man verhindert das ein User per CGI Unix System Kommandos ausführen kann?

Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 09:03
by floschi
Hi !
Ich verschiebe mal ins Securityforum...
...aber ich glaub immernoch, dass es an Dateirechten oder so liegt.
Grüßle
Olfi ;)
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 10:16
by flibbi
Nein, das ist es ja. Die sind korrekt gesetzt.
Teste doch mal bei dir das Script und lass
exec.pl?Command=cat /woauchimmer/httpd.conf ausführen ob es bei dir geht... wenn nicht, dann brauch ich mal deine Hilfe :roll: wenn ja, sind wir schon zwei die nach nem Fix suchen ...
PS: SuExec klappt wie gesagt einwandfrei, ein whois.cgi gibt die richtigen Benutzer an ...
Server: Redhat 7.3 + Confixx 2.06
Apache 1.3.26, PHP 4.3
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 11:01
by rootmaster
das kommt daher, dass crond standardmäßig setuid root installiert ist ;)
es bedeutet keinesfalls, dass ein user alles ausführen könnte, es sei denn, er fände eine schwäche im cron 8)
"back to the roots"
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 13:19
by flibbi
Und wie kann ich es verhindern das ein User per CGI ein Cron eintragen kann?
Das muss doch irgendwie gehen..
ich mein der Cron wird zwar als User webXXX angelegt, nur ist es so, das Cronjobs ja extra berechnet werden und ich halt nicht will das ein User in meiner Crontab rum fummelt.
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 13:21
by captaincrunch
Guckst du hier :
http://www.redhat.com/docs/manuals/linu ... tasks.html
Besonders der Abschnitt "Controlling Access to Cron" dürfte für dich interessant sein ...
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 14:15
by memphis
mmh interessant, nur ... ich glaub I-Net Superman hat das dumme problem, dass sie als Root angelegt werden *G*
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 15:16
by floschi
memphis wrote:hat das dumme problem, dass sie als Root angelegt werden *G*
Ja, wegen dem setuid root des crond - aber mittels cron.allow bzw. cron.deny (heissen die so?) müsste es gehen ;)
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 15:18
by flibbi
Cron ist ein Problem, aber mit dem Script was oben steht kann ich auch mehr machen wie Cron, also in alle Dateien rein gucken .. und das hat ja nix mit der root uid zu tun ...
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 15:19
by captaincrunch
Natürlich kannst du ... dazu gibt's das "r"eadable-Flag für die Gruppe "others" ja schließlich ...

Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 17:25
by floschi
reden wir gerade vom lesen oder vom ausführen einiger Dateien? Lesen können Shelluser ja vieles (d.h. Passwortdateien schützen!), aber ausführen eben nicht ;)
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 17:30
by flibbi
Hey, Danke :)
ein touch /etc/cron.allow hat zumindest das Cron Problem beseitigt. Sehr gut.
Nun sind wir halt beim lesenden Zugriff auf einigen Sachen ...
ich hab nur etwas Angst wenn ich z.B. eine Datei in den REchten änder, das dann irgendwas nicht mehr so wirklich klappt ...
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 17:31
by memphis
meinst du? also so wie ich den text verstanden hab ist es so, dass man auswählen kann welcher Benutzer anlegen und löschen also Admin spielen kann. Also müsste er ja den Root in die Deny oder niemanden in die Allow Liste tun ...
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 18:00
by mr. i-net
olfi wrote:reden wir gerade vom lesen oder vom ausführen einiger Dateien? Lesen können Shelluser ja vieles (d.h. Passwortdateien schützen!), aber ausführen eben nicht ;)
hi. dann ist es ja völlig normal das jeder, alle daten auf dem server lesen kann, die ein read for others erlaubt haben. (eigentlich logisch)..... aber kann ich das irgendwie verhindern, ohne allen dateien dieses read for others zu entziehen.
ist ja auch gar nicht möglich, da ich webhosting betreibe und die kunden ihre daten ja oft mit 755 angeben oder mindestens 644.
wie ist das rechtlich gesehen? ich biete so gesehen ja keinen 100%igen datenschutz für die kunden. jeder kann im prinzip per cgi-script die dateien der anderen kunden auslesen.
Re: CGI-Crontab WICHTIG
Posted: 2003-03-19 21:42
by floschi
Mr. I-Net wrote: jeder kann im prinzip per cgi-script die dateien der anderen kunden auslesen.
Nein, du kannst alles per suExec machen und dann den others das r entziehen - dann kann auch kein Skript was anderes lesen, wie z.B. Passwörter etc.
Re: CGI-Crontab WICHTIG
Posted: 2003-03-20 00:20
by flibbi
Hast du auch einen Tipp wie?
SuEXEC an sich klappt ja, CGIs werden als der entsprechende User ausgeführt... mehr bringt das doch eigentlich nicht, oder?
Re: CGI-Crontab WICHTIG
Posted: 2003-03-20 00:28
by floschi
flibbi wrote:Hast du auch einen Tipp wie?
SuEXEC an sich klappt ja, CGIs werden als der entsprechende User ausgeführt... mehr bringt das doch eigentlich nicht, oder?
Na dann probier mal mit deinem Skript auf ein File eines anderen Users lesend zuzugreifen, bei dem weder die Gruppe noch die others ein r haben...
Re: CGI-Crontab WICHTIG
Posted: 2003-03-22 12:55
by mr. i-net
ja das ist klar. auf dateien die kein r für others haben kann ich nicht zugreifen. das ist klar.
aber die user in den anderen accounts haben ja oft 755 oder 777 und damit ist das hin.
kann ich das mit suexec irgendwie einstellen, dass das lesen fremder daten verhindert wird.