информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяАтака на InternetГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный взлом GoDaddy 
 Просроченный сертификат ломает... 
 Phrack #70/0x46 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Скрипт то есть, только вот запускать его надо с правами... 11.08.06 12:29  Число просмотров: 3232
Автор: Woonder <Бученков Андрей> Статус: Member
<"чистая" ссылка>
Скрипт то есть, только вот запускать его надо с правами админа, тобишь в свойствах файла на вебсервере указывать на закладке "File Security" анонимный доступ не для IUSR_xxx а для Administrator
Да и прикрутить его к Logon.asp удалось только через Response.redirect("./block.asp").
Server.Transfer("./block.asp") работает всё равно в контексте owalogon.asp а он работает от имени IUSR_xxx
Response.redirect нехорош тем, что на клиентской стороне может быть настроен IE не использовать перенаправления (точно не уверен, но в голове такой вариант крутится)


Счётчик вставил в Logon.asp
Было :***********************************************************************************************************
Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
UserText = L_401User_Text
Case "3"
UserText = L_RelogonUser_Text
Case Else


Стало:*******************************************************************************************************
Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
session("ErrLogonCount")= session("ErrLogonCount")+1
UserText = L_401User_Text+Cstr(LogonAllowed-session("ErrLogonCount"))
If session("ErrLogonCount")>=LogonAllowed then
Response.redirect("./block.asp")
'Server.Transfer("./block.asp")
end if

Case "3"
UserText = L_RelogonUser_Text
Case Else
********************************************************
В Logon.asp добавить
CONST LogonAllowed=9 ' то есть блокировка на 9 неудачной попытке
И моно подправить :
CONST L_401User_Text= "Не удалось выполнить вход в Outlook Web Access. Убедитесь, что имя и пароль пользователя указаны правильно, и повторите попытку. У вас осталось попыток :"

Так же в файле Logon.asp и owalogon.asp надо заменить:
@ ENABLESESSIONSTATE=False на @ ENABLESESSIONSTATE=True

/ExchWeb/bin/Auth/Block.asp
*********************************************************************************************
<% LANGUAGE=VBSCRIPT%>
<%
Dim SecObj
Dim MyIPSec
Dim IPList,IPTempList
Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Set MyIPSec = SecObj.IPSecurity
IPTempList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)

'response.write("До добавления"+"<br>")
for i=0 to Ubound(IPTempList)
IPList(i)=IPTempList(i)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next

IPList(Ubound(IPList)) = Request.ServerVariables("REMOTE_ADDR")+", 255.255.255.255"
'response.write("После добавления"+"<br>")
for i=0 to Ubound(IPList)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next

MyIPSec.IPDeny = IPList

SecObj.IPSecurity = MyIPSec
SecObj.Setinfo
%>
***************************************************************************************
Заметьте Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Выполняет подключение и следовательно будет устанавливать свойства для сайта с идентификатором 100.
Если надо для Default Web Site и виртуального каталога ExchWeb то пишите:
Set SecObj = GetObject("IIS://LocalHost/W3SVC/1/root/ExchWeb")
******************************************************************************
в Скрипте IPTempList добавлен не случайно потому что простая конструкция
IPList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)
IPList(Ubound(IPList)) = "123.0.0.1, 255.255.255.255"
почему-то не работает, хотя так написано в примере от M$


Беда ещё в том, что у OWA много различных страничек для входа на разных языках,
правильнее будет подправить logon.asp из каталога /RUS и /USA, а все остальные языки удалить и подправить файлик owalogon.asp тобишь убрать лишние LangMap.Add


В общем надо ещё много додумыватть, ГУРУ ASP помогайте.
<sysadmin>
Exchange owa: при доступе по https блокируются учетные записи пользователей! 08.08.06 20:12  
Автор: IUnknown Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Ситуация:

1. В групповой политике Account policy настроена на блокировку (lock out) учетной записи пользователя на 10-ой неудачной попытке.

2. При дефолтовой аутентификации "Basic authentication using clear text password", лоумышленник заходит на OWA через HTTPS (например, https://owa.domain.com/exchange), где выскакивает диалог с просьбой авторизоваться.

3. Злоумышленник 10 раз подряд (1) вводит учетное имя Administrator и фиктивный пароль (например, "123").

4. Доменная (!) учетная запись администратора (!!!) оказывается БЛОКИРОВАННОЙ.

Есть ли идеи по-поводу того, как этого НЕДОПУСТИТЬ?
Кроме счетчика локаута включить период локаута. Это решит... 13.09.06 15:23  
Автор: lazy_anty Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Ситуация:
>
> 1. В групповой политике Account policy настроена на
> блокировку (lock out) учетной записи пользователя на 10-ой
> неудачной попытке.
Кроме счетчика локаута включить период локаута. Это решит полпроблемы.

> 2. При дефолтовой аутентификации "Basic authentication
> using clear text password", лоумышленник заходит на OWA
> через HTTPS (например, https://owa.domain.com/exchange),
> где выскакивает диалог с просьбой авторизоваться.
Попутно периодически смотреть по логам, откуда лезет враг, и периодически банить адрес(а) или конкретно выяснять, кто это и разбираться нетехническими методами.

> 3. Злоумышленник 10 раз подряд (1) вводит учетное имя
> Administrator и фиктивный пароль (например, "123").
> 4. Доменная (!) учетная запись администратора (!!!)
> оказывается БЛОКИРОВАННОЙ.
Вообще-то оставлять в форточках, открытых в Инет, активное учетное имя Administrator (даже переименованное, и даже с длинным паролем) весьма стрёмно. Administrator'а заблокируйте сами.
Администрируйте из-под нетривиального учетного имени с правами админа.

> Есть ли идеи по-поводу того, как этого НЕДОПУСТИТЬ?
В принципе, отключить локаут. Поставить большую длину и принудительную периодическую смену пароля с небольшим периодом.
Попробуйте настроить время локаута. Это даст возможность... 12.08.06 23:43    Штраф: 10 [Woonder]
Автор: LiLO Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Попробуйте настроить время локаута. Это даст возможность политике быть эффективной и в тоже время не мучась использовать учетную запись администратора.
А хорошо ли это вообще - использовать АД для веб авторизации? 09.08.06 10:54  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
А как иначе? Научите? 10.08.06 13:54  
Автор: IUnknown Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Что-нибудь другое (например Апач) для https поставить. 10.08.06 17:40  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
Вариант: переименовать доменную (!) учётную запись... 08.08.06 21:19  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
Вариант: переименовать доменную (!) учётную запись Administrator. Кстати, по-моему, это входит в стандартные рекомендации Microsoft. :)
А что делать с другими пятью тысячами (!) учетных записей?! 09.08.06 07:57  
Автор: IUnknown Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Вариант: переименовать доменную (!) учётную запись
> Administrator. Кстати, по-моему, это входит в стандартные
> рекомендации Microsoft. :)

Учетная запись Administrator - как пример, вы же понимате. В моей компании она, вестимо, переименована. Что делать с другими пятью тысячами (!) учетных записей сотрудников моей компании, которые ежедневно пользуются OWA??!

Я полагаю, угроза в том, что поимев, например, адресную книгу моей компании, злоумышленник поимеет и мою компанию.
Спамом - однозначно. А вот брутфорсом паролей всех 5000... 13.09.06 15:29  
Автор: lazy_anty Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Я полагаю, угроза в том, что поимев, например, адресную
> книгу моей компании, злоумышленник поимеет и мою компанию.
Спамом - однозначно. А вот брутфорсом паролей всех 5000 учетных имен - вряд ли. Увеличивайте длину паролей, и уменьшайте период принудительной смены.
1. Отказаться от такой политики блокирования аккаунтов... 09.08.06 14:13  
Автор: AntonK Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> В моей компании она, вестимо, переименована. Что делать с
> другими пятью тысячами (!) учетных записей сотрудников моей
> компании, которые ежедневно пользуются OWA??!
>
> Я полагаю, угроза в том, что поимев, например, адресную
> книгу моей компании, злоумышленник поимеет и мою компанию.

1. Отказаться от такой политики блокирования аккаунтов. (врятли согласитесь, раз ввели ее - значит причины на то были)
2. Ввести временную блокировку аккаунтов. Скажем на 1 час. После чего снова аккаунт разблокируется. (теоретически остается возможность подбора пароля на аккаунт, плюс никто не мешает сделать так чтобы на 1 час заблокировать все аккаунты компании)
3. На web сервере реализовать функцию блокировки доступа с IP злоумышленника когда было 10 неудачных поппыток авторизации. В таком случае злоумышленник будет долго чесать репу где ему достать 5000 разных IPшников чтобы "поиметь" вашу компанию.

ИМХО последний вариант самый интересный. =)
Скрипт то есть, только вот запускать его надо с правами... 11.08.06 12:29  
Автор: Woonder <Бученков Андрей> Статус: Member
<"чистая" ссылка>
Скрипт то есть, только вот запускать его надо с правами админа, тобишь в свойствах файла на вебсервере указывать на закладке "File Security" анонимный доступ не для IUSR_xxx а для Administrator
Да и прикрутить его к Logon.asp удалось только через Response.redirect("./block.asp").
Server.Transfer("./block.asp") работает всё равно в контексте owalogon.asp а он работает от имени IUSR_xxx
Response.redirect нехорош тем, что на клиентской стороне может быть настроен IE не использовать перенаправления (точно не уверен, но в голове такой вариант крутится)


Счётчик вставил в Logon.asp
Было :***********************************************************************************************************
Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
UserText = L_401User_Text
Case "3"
UserText = L_RelogonUser_Text
Case Else


Стало:*******************************************************************************************************
Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
session("ErrLogonCount")= session("ErrLogonCount")+1
UserText = L_401User_Text+Cstr(LogonAllowed-session("ErrLogonCount"))
If session("ErrLogonCount")>=LogonAllowed then
Response.redirect("./block.asp")
'Server.Transfer("./block.asp")
end if

Case "3"
UserText = L_RelogonUser_Text
Case Else
********************************************************
В Logon.asp добавить
CONST LogonAllowed=9 ' то есть блокировка на 9 неудачной попытке
И моно подправить :
CONST L_401User_Text= "Не удалось выполнить вход в Outlook Web Access. Убедитесь, что имя и пароль пользователя указаны правильно, и повторите попытку. У вас осталось попыток :"

Так же в файле Logon.asp и owalogon.asp надо заменить:
@ ENABLESESSIONSTATE=False на @ ENABLESESSIONSTATE=True

/ExchWeb/bin/Auth/Block.asp
*********************************************************************************************
<% LANGUAGE=VBSCRIPT%>
<%
Dim SecObj
Dim MyIPSec
Dim IPList,IPTempList
Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Set MyIPSec = SecObj.IPSecurity
IPTempList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)

'response.write("До добавления"+"<br>")
for i=0 to Ubound(IPTempList)
IPList(i)=IPTempList(i)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next

IPList(Ubound(IPList)) = Request.ServerVariables("REMOTE_ADDR")+", 255.255.255.255"
'response.write("После добавления"+"<br>")
for i=0 to Ubound(IPList)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next

MyIPSec.IPDeny = IPList

SecObj.IPSecurity = MyIPSec
SecObj.Setinfo
%>
***************************************************************************************
Заметьте Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Выполняет подключение и следовательно будет устанавливать свойства для сайта с идентификатором 100.
Если надо для Default Web Site и виртуального каталога ExchWeb то пишите:
Set SecObj = GetObject("IIS://LocalHost/W3SVC/1/root/ExchWeb")
******************************************************************************
в Скрипте IPTempList добавлен не случайно потому что простая конструкция
IPList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)
IPList(Ubound(IPList)) = "123.0.0.1, 255.255.255.255"
почему-то не работает, хотя так написано в примере от M$


Беда ещё в том, что у OWA много различных страничек для входа на разных языках,
правильнее будет подправить logon.asp из каталога /RUS и /USA, а все остальные языки удалить и подправить файлик owalogon.asp тобишь убрать лишние LangMap.Add


В общем надо ещё много додумыватть, ГУРУ ASP помогайте.
И отключит эту запись, так как по SID её можно узнать. 09.08.06 06:07  
Автор: svtvl Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2021 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach