CASINOJOY - Ставка На Успех! Проверь Свою Удачу!


Нажмите 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
Просмотров: 18060
Проголосовало через SMS: 0
Ключевые слова: windows 2003, apache, (найти похожие документы)
  Разместить у себя на сайте
Прямая ссылка
HTML
BBCode ссылка
BBCode ссылка с текстом

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

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


 Последние новости и статьи  Последние сообщения с форумов
  • Опубликован бесплатный дешифратор для вымогателя BlackByte
  • Zerodium покупает уязвимости в ExpressVPN, NordVPN и Surfshark
  • За взломом сайтов REvil стояли правоохранительные органы
  • Уязвимость ProxyToken позволяет воровать почту через Microsoft Ex...
  • T-Mobile взломали через уязвимый роутер
  • Ботнет Phorpiex прекратил работу, его исходный код выставлен на п...
  • Критическая уязвимость в Cosmos DB
  • Исследователи научились обходить PIN-коды для карт Mastercard и M...
  • WhatsApp уверяет пользователей, что Facebook не имеет доступа к и...
  • Однострочная команда в Windows 10 может повредить жесткий диск с ...

    Все новости... Все статьи... Прислать новость RSS
  • Взлом и безопасность / Программы » Re: Hasp ключ для ABC-4
  • Портал / Отзывы и предложения » Предлагаем партнерство вашему форуму.
  • Разное / Предложения работы » взлом почты
  • Разное / Предложения работы » Сервис Postman - 500 руб за получение писем и 10€ за пересыл...
  • Разное / Куплю, приму в дар » Покупка аккаунтов Uphold
  • Разное / Предложения работы » Re: Нужен Взлом сайта на DLE
  • Разное / Предложения работы » Re: Нужен Взлом сайта на DLE
  • Разное / Предложения работы » Re: Нужен Взлом сайта на DLE
  • Разное / Предложения работы » Re: Нужен Взлом сайта на DLE
  • Взлом и безопасность / Новичкам » Re: Помогите взломать gmail.com

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


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

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

    #{title}

    #{text}

    x

    #{title}

    #{text}