Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Jul 2005 19:44:36 -0400
From:      Adam Jacob Muller <adam@oxeo.com>
To:        Gustavo A. Baratto <gbaratto@superb.net>
Cc:        freebsd-isp@freebsd.org
Subject:   Re: preventing a user to start a process
Message-ID:  <C3458B6A-487C-4DE2-A863-9EA95D289EED@oxeo.com>
In-Reply-To: <018901c5922d$ad881f10$7201a8c0@guinness>
References:  <42E66986.4080004@chef-ingenieur.de>	<6B57C9BC-0815-4854-996A-F6AD3765DFEB@oxeo.com><008901c59208$0f05d000$7201a8c0@guinness> <42E6A0B2.1030308@chef-ingenieur.de> <018901c5922d$ad881f10$7201a8c0@guinness>

next in thread | previous in thread | raw e-mail | index | archive | help
<?
mkdir("/tmp/usr/local/bin",0777,true);
file_put_contents("/tmp/usr/local/bin/httpd",base64_decode 
("somenastyexplotcodethathasbeenbase64encoded=="));
?>

Yes, I know this can be fixed. Just want to make sure you include  
this in the final solution :-)

ps aux | grep nobody | awk '$11!="/usr/local/apache/bin/httpd"'

will probably work


Adam


On Jul 26, 2005, at 6:02 PM, Gustavo A. Baratto wrote:

> ps aux | grep www | grep -v /usr/local/bin/httpd
>
> The above returns all processes that user www is running, that are  
> not apache itself.
>
> You can use some perl to split the lines to find out how long the  
> processes have been running based on the STARTED column of the  
> command above. If I had such code ready, I'd just send to you, but  
> unfortunately I dont.
>
> Cheers.
>
> ----- Original Message ----- From: "Thomas Krause" <freebsd- 
> isp@chef-ingenieur.de>
> To: <freebsd-isp@freebsd.org>
> Sent: Tuesday, July 26, 2005 1:44 PM
> Subject: Re: preventing a user to start a process
>
>
>
>>
>>
>> Gustavo A. Baratto schrieb:
>>
>>> Although jailing is a good thing, I don't think it will prevent  
>>> unwanted processes to be spawned, if php allows it. And having  
>>> writable directories mounted noexec doesn't help much either,  
>>> because one can just run:
>>> /usr/bin/sh /path/to/writable/dir/script.sh
>>>
>>> Since most of the times script kiddies use /tmp or /var/tmp  
>>> (which are usually noexec) to upload their scripts, the sh or  
>>> perl binaries are located in file systems that allow execution.
>>>
>>> So, you can either tell php not to spawn processes (safe_mode or  
>>> disable_functions), or to have all file systems in contact with  
>>> php mounted noexec (not just the writable directories). This will  
>>> probably make your life hell. Or even disallow any kind of  
>>> uploads in php (which is not very effective against code  
>>> execution, as a bug in your code could allow execution like phpBB  
>>> exploit a while ago).
>>>
>>> If you cannot do any of these because you require the  
>>> functionality, you can write a cron'ed script that checks for  
>>> processes owned by www that are running for a certain period of  
>>> time and are not the apache. You can either kill these processes  
>>> or e-mail yourself, and then you take an action.
>>>
>>
>> I think, I should do so. But how to identify the process? The ircd
>> was renamed to "sh", to make it harder to find in the process list.
>> It should be possible with the PGID (from /var/run/httpd.pid) and
>> the UID. Does anyone know a usable (or recyclable) script for that
>> job?
>>
>> Regards,
>> Thomas.
>>
>>
>>
>>>
>>> Cheers
>>>
>>> ----- Original Message ----- From: "Adam Jacob Muller"  
>>> <adam@oxeo.com>
>>> To: "Thomas Krause" <freebsd-isp@chef-ingenieur.de>
>>> Cc: "David Hogan" <david@fundamentalit.com>; <freebsd- 
>>> isp@freebsd.org>; "'Gustavo A. Baratto'" <gbaratto@superb.net>
>>> Sent: Tuesday, July 26, 2005 9:59 AM
>>> Subject: Re: preventing a user to start a process
>>>
>>>
>>>
>>>> Pretty much the only "secure" option is to either
>>>> A.    run in a chroot jail
>>>> B.    run with any writable directories mounted noexec
>>>> or if your really paranoid, do both
>>>>
>>>> Adam
>>>>
>>>>
>>>> On Jul 26, 2005, at 12:49 PM, Thomas Krause wrote:
>>>>
>>>>
>>>>>
>>>>>
>>>>> David Hogan schrieb:
>>>>>
>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: owner-freebsd-isp@freebsd.org [mailto:owner-freebsd-  
>>>>>>> isp@freebsd.org]
>>>>>>> On Behalf Of Thomas Krause
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> I've searched all php-files for the system()-funktion - it's not
>>>>>>> possible for me do disable this function.
>>>>>>>
>>>>>>>
>>>>>> Can't you just use the 'disable_functions =' option in php.ini  
>>>>>> to disable
>>>>>> the php functions that can be used to spawn processes ?
>>>>>> You could use it to disable at least the following functions:
>>>>>> system()
>>>>>> exec()
>>>>>> passthru()
>>>>>> popen()
>>>>>> pcntl_exec()
>>>>>> shell_exec()
>>>>>>
>>>>>>
>>>>>
>>>>> Unfortunately, that is not possible. E.g. typo3 calls  
>>>>> Imagemagick,  so I need system().
>>>>>
>>>>> Regards,
>>>>> Thomas.
>>>>> _______________________________________________
>>>>> freebsd-isp@freebsd.org mailing list
>>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-isp
>>>>> To unsubscribe, send any mail to "freebsd-isp- 
>>>>> unsubscribe@freebsd.org"
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> freebsd-isp@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-isp
>>> To unsubscribe, send any mail to "freebsd-isp- 
>>> unsubscribe@freebsd.org"
>>>
>> _______________________________________________
>> freebsd-isp@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-isp
>> To unsubscribe, send any mail to "freebsd-isp- 
>> unsubscribe@freebsd.org"
>>
>
> _______________________________________________
> freebsd-isp@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-isp
> To unsubscribe, send any mail to "freebsd-isp-unsubscribe@freebsd.org"
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C3458B6A-487C-4DE2-A863-9EA95D289EED>