Re: [Lug-bg] пробив през апаче и пхп :(
- Subject: Re: [Lug-bg] пробив през апаче и пхп :(
- From: Marian Marinov <mm@xxxxxxxx>
- Date: Thu, 12 Jul 2007 18:07:17 +0300
Summary. When doing this:
/lib/ld-linux.so.2 /path/to/file/on/noexec/fs
The linux-kernel disallows the mmap() of the executable textsegment:
mmap2(0x8048000, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0)
= -1 EPERM (Operation not permitted)
But when trying it after doing nothing but removing the PF_X-flag from all
segments:
mmap2(0x8048000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0x8048000
(The program executes normally after this despite the missing
PROT_EXEC-flag)
The best way to deal with this would probably be to patch ld.so so it enforces
the executable-bit by itself.
Аз лично не съм си играл, чак толкова а и не ми се занимава...
Може и да са го поправили, а може и да не са.
Просто като чета това ме навежда на мисълта, че ядрото проверява само
PROT_EXEC и пропуска изпълнението нататък... Съответно ако в libc няма
проверка за това, програмата ще се стартира.
Поздрави
Мариян
> Georgi Chorbadzhiyski <gf@xxxxxxxxxxx>
> Sent by: lug-bg-bounces@xxxxxxxxxxxxxxxxxx
> 12.07.2007 16:13
> Please respond to
> Linux Users Group - Bulgaria <lug-bg@xxxxxxxxxxxxxxxxxx>
>
>
> To
> Linux Users Group - Bulgaria <lug-bg@xxxxxxxxxxxxxxxxxx>
> cc
>
> Subject
> Re: [Lug-bg] пробив през апаче и пхп :(
>
> Around 07/12/07 15:29, Marian Marinov scribbled:
> > Има доста информация в интернет как можеш да стартираш бинарен файл
>
> върху дял
>
> > който е монтиран noexec. Основната идея е да се
> > използва /lib/ld-linux.so.2 /path/to/binary/file
>
> Това отдавна не работи, от 2.5 нещо си нататък. При файла зареден от
> noexec партишън ядрото не позволява паметта в която е зареден да бъде
> маркирана като PROT_EXEC (ако си спомням правилно) ефективно това
> не дава на динамичния линкер (ld-linux.so.2) да линкне и изпълни
> файла.
>
> Разбира се ако имаш някъде интерпретатор като perl, php, bash и
> файл написан на някой от тези скриптови езици, можеш да изпълниш
> /bin/interpretatora faila, но на партишън с noxec няма начин да
> изпълниш компилиран код (освен ако в ядрото няма някоя грешка)
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|