2004/05/31

IIS/PWS Banner Edit Tool

IIS배너는 특정서버의 웹서버 및 운영체제를 악의적인 목적으로 하는 접근자에게 노출시키는 약점이 있습니다.

헥사 에더터를 이용해 직접 수정이 가능하지만, 실수할경우 문제가 발생할수 있기 때문에 다음 툴을 이용하면 간단하게 수정이 가능합니다.



다운로드 : ------
WWW : http://www.nstalker.com/defense/products/IIS-Banner-Edit.zip
FTP : http://www.nstalker.com/defense/products/FTP-Banner-Edit.zip
SMTP : http://www.nstalker.com/defense/products/SMTP-Banner-Edit.zip



31-iisbanner.gif

2004/04/07

ADSI 및 WSH를 사용하여 FSMO 역할 소유자를 찾는 방법

다음 스크립트는 지정된 도메인이나 도메인 컨트롤러에 대한 FSMO(신축 단일 마스터 작업) 역할 소유자를 출력해 줍니다.

다음 코드를 Find_fsmo.vbs 같은 파일로 저장후에 실해하면 됩니다.

-------------------------------------------------

Option Explicit
Dim WSHNetwork, objArgs, ADOconnObj, bstrADOQueryString, RootDom, RSObj
Dim FSMOobj,CompNTDS, Computer, Path, HelpText


Set WSHNetwork = CreateObject("WScript.Network")
Set objArgs = WScript.Arguments

HelpText = "This script will find the FSMO role owners for your domain." & Chr(13) &_
Chr(10) & "The syntax is as follows:" & Chr(13) & Chr(10) &_
"find_fsmo DC=MYDOM,DC=COM" & Chr(13) & Chr(10) &_
"""Where MYDOM.COM is your domain name.""" & Chr(13) & Chr(10) & "OR:" &_
Chr(13) & Chr(10) & "find_fsmo MYDCNAME " & Chr(13) & Chr(10) &_
"""Where MYDCNAME is the name of a Windows 2000 Domain Controller"""


Select Case objArgs.Count
Case 0
Path = InputBox("Enter your DC name or the DN for your domain"&_
" 'DC=MYDOM,DC=COM':","Enter path",WSHNetwork.ComputerName)
Case 1
Select Case UCase(objArgs(0))
Case "?"
WScript.Echo HelpText
WScript.Quit
Case "/?"
WScript.Echo HelpText
WScript.Quit
Case "HELP"
WScript.Echo HelpText
WScript.Quit
Case Else
Path = objArgs(0)
End Select
Case Else
WScript.Echo HelpText
WScript.Quit
End Select


Set ADOconnObj = CreateObject("ADODB.Connection")

ADOconnObj.Provider = "ADSDSOObject"
ADOconnObj.Open "ADs Provider"


'PDC FSMO
bstrADOQueryString = "<LDAP://"&Path&">;(&(objectClass=domainDNS)(fSMORoleOwner=*));adspath;subtree"
Set RootDom = GetObject("LDAP://RootDSE")
Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
WScript.Echo "The PDC FSMO is: " & Computer.dnsHostName


'Rid FSMO
bstrADOQueryString = "<LDAP://"&Path&">;(&(objectClass=rIDManager)(fSMORoleOwner=*));adspath;subtree"

Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
WScript.Echo "The RID FSMO is: " & Computer.dnsHostName


'Infrastructure FSMO
bstrADOQueryString = "<LDAP://"&Path&">;(&(objectClass=infrastructureUpdate)(fSMORoleOwner=*));adspath;subtree"

Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
WScript.Echo "The Infrastructure FSMO is: " & Computer.dnsHostName


'Schema FSMO
bstrADOQueryString = "<LDAP://"&RootDom.Get("schemaNamingContext")&_
">;(&(objectClass=dMD)(fSMORoleOwner=*));adspath;subtree"

Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
WScript.Echo "The Schema FSMO is: " & Computer.dnsHostName


'Domain Naming FSMO
bstrADOQueryString = "<LDAP://"&RootDom.Get("configurationNamingContext")&_
">;(&(objectClass=crossRefContainer)(fSMORoleOwner=*));adspath;subtree"

Set RSObj = ADOconnObj.Execute(bstrADOQueryString)
Set FSMOobj = GetObject(RSObj.Fields(0).Value)
Set CompNTDS = GetObject("LDAP://" & FSMOobj.fSMORoleOwner)
Set Computer = GetObject(CompNTDS.Parent)
WScript.Echo "The Domain Naming FSMO is: " & Computer.dnsHostName


* 위 스크립트는 MSDN에서 참조하였습니다.

2004/02/26

Exchange 2003을 설치후 DC 서버종료시간이 길어지는 현상

Exchange는 AD환경에 아주 밀접하게 관련되어 있으며, 여러가지 AD 커뮤니케이션을 위해 여러가지 서비스를 제공합니다.

이런 서비스중 DSAccess 서비스 같은것은 여러가지 Exchange 컴포넌트를 위해 AD로부터 관련 케시정보를 제공합니다.

Information Store,MTA,그리고 AD환경에 필요한 다른 컴포넌트들도 이에 포함됩니다. 케시된 AD정보를 복원하기 위해 Exchange는 DC로부터 몇몇 직접적인 쿼리를 요구하기도 합니다.

Windows Server 2003 DC를 종료할때, 여러가지 서비스가 Windows 2000보다 빨리 종료되며, 이것은 Windows 20003에서 새로운 문제를 유발합니다.

예로 LSASS(로컬보안하위시스템)같은 서비스에는 DSAccess 와 아주 밀접하게 연관되어 있습니다. DSAccess를 확실하게 종료하기전에 이와 같은 서비스는 먼저 종료됩니다.

그래서 DSAccess서비스는 몇분동안 시스템이 종료되기까지 기달립니다.(기본으로 10분). 또한 Exchange의 다른 서비스들은 이런 현상때문에 사소한 문제가 있을수 있습니다.

1. 이와 같은 문제를 해결하기 위해서는 시스템 종료시 종료 스크립트를 만들어 실행하면 됩니다. 시스템셧다운시 다음과 같은 순서대로 종료시 Exchange 관련 서비스는 깔끔하게 종료할수 있습니다.
순서는 Exchange관련 서비스를 먼저 종료후, 나머지 관련 서비스를 종료하는 것입니다.

net stop msexchangeis
net stop msexchangemta
net stop msexchangemgmt
net stop msexchangesa
net stop resvc
net stop smtpsvc
net stop w3svc
net stop httpfilter
net stop http
net stop iisadmin
net stop winhttpautoproxysvc

2. 이 문제 해결에 대한 다른 접근 방법은 레지스트리 값을 수정하는 것입니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control 의 서브키중 WaitToKillServiceTimeout 의 값을 default 10분에서 20초(20000) 로 변경을 하면 됩니다.

이 값은 해당 서비스나 프로세스 스스로 종료을 하지 못하거나 delay가 발생할때, OS에서 강제적으로 delay가 걸리는 서비스를 종료하는 것입니다.




26-TechNetB_masthead_ltr.gif

가장 많이 본 글