Информационная Безопасность. Аудит Безопасности


Нажмите CTRL-D чтобы добавить нас в закладки
HackZone.RU - Как защитить WEB сервер под управлением Windows 2003
Войти / Регистрация / Участники
Определение даты выпуска iPhone по серийному номеру
-
Поиск по сайту
Форумы



Реклама

Поиск ТОП Добавить публикацию

Как защитить WEB сервер под управлением Windows 2003

16.11.2011

Стояла задача защитить Web сервер под управлением windows 2003. Как всем известно сервер защищён тогда когда на нём закрыты все возможные порты. И стучать некуда и ломать нечего. Естественно сервер должен был иметь 80 порт открытым.

Схема была следующей. Сервер имел отдельный порт например 2754 на который приходили данные в виде ключа доступа сгенерированного по определённым правилам и команда для управления портами. По сути сервер и в рабочем режиме имел два открытых порта: 80 и 2754.

Для реализации данной схемы в настройках Apache, в файле httpd.conf было добавлено несколько опций.

# port listening
Listen 2754

#Vhost on 2754 port

DocumentRoot c:\www\portcontroller


Для любопытных в файле c:\www\portcontroller\.htaccess было добавлено:

Options -Indexes
order deny allow
Deny from all
Allow from 10.100.10.123

IP 10.100.10.123 это ip с которого приходили наши команды на открытие портов.

Далее Был написан скрипт c:\www\portcontroller\portctl.php

date_default_timezone_set("Europe/Kiev");
$fm = fopen("portcontroller.log","a");
$fdate = date("d-m-Y H:i:s");

if(empty($_GET['key'])){
fpots($fm,$fdate."ALARM!!!!Open Port without SpecialKey!!|\n");
exit();
} else {

$_date = date("Y:m:d");
$_date = md5($_date); // - Ключ по дате
$key_val = md5($_date."a1dc248dd2d814c73dw82f99d384f55"); // - усложнение ключа

if($key_val === $_GET['key']){

$response .= "Server PortController 0.0.1 |";
$response .= "Wellcome! |";
$command = base64_decode($_GET['command']);

if($command == "OpenPortPlease"){
fputs($fm,$fdate."Open ports |\n");
exec("netsh firewall add portopening TCP 413 ENABLE",$exec_output);
exec("netsh firewall set portopening protocol=ALL port=445 mode=ENABLE",$exec_output);
exec("netsh firewall add portopening TCP 3306 ENABLE",$exec_output);
exec("netsh firewall set portopening protocol=ALL port=3389 mode=ENABLE",$exec_output);
}

if($command == "ClosePortPlease"){
fputs($fm,$fdate."Close ports |\n");
exec("netsh firewall delete portopening TCP 413",$exec_output);
exec("netsh firewall set portopening protocol=ALL port=445 mode=DISABLE",$exec_output);
exec("netsh firewall delete portopening TCP 3306",$exec_output);
exec("netsh firewall set portopening protocol=ALL port=3389 mode=DISABLE",$exec_output);
}

if($command != "GetStatus") {
$limit = 21;
} else {
$limit = 13;
}


$response .= "|| Ports: ||";

exec("netsh firewall show state",$exec_output);
$x=0;
foreach($exec_output as $str){
$x++;
if($x > $limit) $response .= $str."|";

}

$response = base64_encode($response);
print $response;


} else {
exit();
fputs($fm,$fdate."Alarm!!! Open port with wring SpecialKey!|\n");
}
}


Ключ генерируется по дате конечно можно его генерировать как угодно, но было выбрано такое решение. Далее $command = base64_decode($_GET['command']); приходила команда с клиента запрашивающая открывать порты или закрывать. А вот закрытие портов или открытие происходило при помощи утилиты NETSH exec("netsh firewall add portopening TCP 333 ENABLE",$exec_output);
Не сложно догадаться как должен был выглядеть клиент для передаче нужных параметров серверу. Он генерировал ключ доступа по дате и секретной hash сумме для усложнения кода + base64encode команду для передачи её на сервер. При валидации всех ожидаемых данных сервер открывал порты для управления. Например по RDP или простой SMB. После окончания работы с сервером надо было не забывать закрывать порты.

Также средствами Windows фаервола было отключено ICMP. Для того чтобы если кто то захочет пропинговать ресурс не видел ответов. Тупая но подлянка.Далее на админку сайта было добавлен .htpassword авторизация:

В файл .htaccess

AuthType Basic  
AuthName "WhoAreYou?"
AuthUserFile  c:\www\****\admin\.htpasswd  
AuthName admin
require valid-user

и командочка

htpasswd -c .htpasswd admin

Вот мы и получили защищённый сервер. С открытым 80 портом и портом управления 2754. Защищённой админкой при помощи HtaccessAuth. Коли ваш сайт написан не дураком (не имеет дыр) то такой сервер будет долго служить.


Для того чтобы реализовать данную возможность на Linux сервере необходимо переделать команды NETSH на iptables в php скрипте

 

При копировании материалов ссылка на HackZone.RU обязательна

Добавить страницу в закладки

 Детали
Категория: Защита от взлома
Опубликовал: bessono
Просмотров: 19771
Проголосовало через SMS: 0
Ключевые слова: windows 2003, apache, (найти похожие документы)
  Разместить у себя на сайте
Прямая ссылка
HTML
BBCode ссылка
BBCode ссылка с текстом

 Комментарии (оставить свой комментарий можно здесь)
Только зарегистрированные пользователи могут оставлять комментарии

Зарегистрироваться *** Авторизоваться


 Последние новости и статьи  Последние сообщения с форумов
  • В darknet сливают данные 100 000 российских банковских карт
  • Вирус Escobar ворует коды двухфакторной аутентификации из Google ...
  • DeadBolt использует уязвимость, исправленную в декабре
  • Почти миллион WordPress-сайтов в опасности из-за уязвимости в поп...
  • Шифровальщик DeadBolt взломал 3600 NAS. Qnap устанавливает обновл...
  • Банковский троян Chaes устанавливает вредоносные расширения для C...
  • Взломана платформа Qubit Finance, хакеры похитили 80 млн долларов
  • Арест участников REvil взволновал других преступников
  • Обнаружена malware MoonBounce, внедряющаяся в UEFI
  • Администратор кардерского форума UniCC и участник хак-группы The ...

    Все новости... Все статьи... Прислать новость RSS
  • Разное / Предложения работы » Взлом авторизации CRM
  • Разное / Предложения работы » взломать сайт и выграть электронную жеребьёвку
  • Разное / Предложения работы » разблокировать сбер аккаунт
  • Разное / Болталка » Re: Форум жив?
  • Разное / Болталка » Форум жив?
  • Разное / Болталка » С Новым 2022 Годом!
  • Взлом и безопасность / Программы » Re: Hasp ключ для ABC-4
  • Портал / Отзывы и предложения » Предлагаем партнерство вашему форуму.
  • Разное / Предложения работы » взлом почты
  • Разное / Куплю, приму в дар » Покупка аккаунтов Uphold

    Все форумы... RSS


  • Разместить рекламу
    © HackZone Ltd. 1996-2020. Все права зарегистрированы.
    Перепечатка материалов без согласования и указания источника будет преследоваться по Закону

    О проекте | История проекта | Размещение рекламы | Обратная связь | Правила поведения на портале
    contador de visitas счетчик посещений

    #{title}

    #{text}

    x

    #{title}

    #{text}