이 자료는 국내 닷넷 매거진 2월호 에서 일부 발췌하여 추가 활용 방안도 소개 올립니다. 그외 예전에 메타베이스 에디터를 활용시 동일한 내용을 볼 수 있기 때문에 두가지 사실을 알려 드리겠습니다.
일반적으로 “IUSR_computername” 과 “IWAM_computername” 두개의 계정은 SAM 데이터베이스에 포함된 계정이다. 그래서 쉽게 알아 내는 것은 불가능한 일이며 알게 된다면 문제가 발생한다는 것은 여러분도 아실 것입니다.
아래 그림에서도 보듯이 사용자 그룹에 포함 된 것을 볼 수 있으며 또한 SAM 데이터 베이스도 포함 된 것은 설명을 하지 않아도 될 것이다.
단, AD 일 경우는 SAM 에 존재 하지 않는다는 것은 알고 계시겠죠
[그림. 로컬 사용자 및 그룹]
그런데 한가지 더 패스워드를 저장하는 곳이 있다는 것이다. 다름아닌 메타베이스 파일이다.
메타베이스 파일이 위치한 곳은 %systemdir%/system32/inetsrv 폴더에 위치한 metabase.bin 에 볼 수 있다.
[그림. IIS 구성 백업/복원]
IUSR_computername 과 IWAM_computername 계정에 패스워드를 알아내는 방법 두가지를 소개 해 드리겠습니다.
이 두개의 사용자 계정이 취득한다면 어떠한 문제가 발생 할지 고민 해 볼 수 있을 것입니다. 물론 .VBS 파일이 쉽게 업로드가 되지 않아서 그렇지 가능하다면 또한 위험일 수도 있겠죠. 차후 상세한 이야기는 해 보겠습니다.
첫째. 아래 방법 처럼 스크립트 파일을 만들어서 알아내는 방법
아래 내용을 메모장으로 복사 한 후 “anonymous.vbs" 으로 저장한 후 실행 해 보시길 바랍니다. 물론 사용 하시는 곳은 윈도우 2000 운영체제에서 하셔야 합니다.(다른곳은 안될 수도 있습니다.)
------------------ anonymous.vbs----------------------------
Dim IIsObject
Set IIsObject = GetObject ("IIS://Localhost/w3svc")
Wscript.Echo "According to the metabase, The anonymous credentials are:"
Wscript.Echo " anonymoususername = " & _
IIsObject.Get("anonymoususername")
Wscript.Echo " anonymoususerpass = " & _
IIsObject.Get("anonymoususerpass")
Wscript.Echo " Wamusername = " & IIsObject.get("wamusername")
Wscript.Echo " Wamuserpass = " & IIsObject.get("wamuserpass")
Set IIsObject = nothing
-------------------------- 끝 ---------------------------------
아래 사항은 실제 테스트 해 본 내용입니다.
두번째, 메타베이스에서도 얻을 수 있는 방법
Metaedit 2.2를 사용하여 IIS 4/5의 메타베이스를 내보내기하여 다른 시스템으로 이러한 설정사항들을 가져오기할 수 있는 툴이 있다. 그것을 활용 해서 동일하게 정보를 취득할 수 있다.
다운로드 : http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe
1. Mtaedt22.exe 파일을 다운로드 하여 프로그램을 설치 작업을 진행을 한다.
2. 메타베이스 에디터를 실행을 하여 W3svc 에서 아래와 같은 그림들을 볼 수 있다.
그외 “IUSR_HONG” 와 “IWAM_HONG” 에 대한 정보도 같이 볼 수 있다.
[그림. 메타베이스 에디터 화면]
[그림. IUSR_HONG 계정에 대한 정보]
[그림. IWAM_HONG 계정에 대한 정보]
이 문서 및 참고할 몇 개의 문서를 소개 해 드리겠습니다.
각각의 채널에서 살펴 보시길 바랍니다.
윈도우 2000 보안 기술 문서
- IIS에서 사용되는 IUSR_계정 세부 사항 훔쳐보기
윈도우 2000 기술문서
- IIS의 Metabase를 다른 컴퓨터를 옮기는 방법은 무엇인가?
홍순성
'윈도우 보안' 카테고리의 다른 글
| 웹방화벽. 과연 필요한가? (2) | 2007/02/19 |
|---|---|
| 2007년 2월 Microsoft 보안 공지 요약 (0) | 2007/02/14 |
| IIS 에 설치시 생성되는 IUSR_computername 과 IWAM_computername 계정에 대한 암호취득 방법 (4) | 2007/02/14 |
| IPSec 을 통한 웹서비스 보안 정책(필터링편) (0) | 2007/02/14 |
| IPSec 필터 가중치 및 필터링 활용 (0) | 2007/02/14 |
| 스팸 메일을 줄이는 방법의 3가지 유형 (8) | 2007/02/02 |



댓글을 달아 주세요
추가적으로
C:\inetpub\AdminScripts\adsutil.vbs get w3svc/wamuserpass
라고 치면 암호를 볼 수 있습니다. ******로 표기되는 경우에는 adsutil.vbs파일에서
IsSecureProperty = True
부분은 False 로 바꾸어주면 됩니다. 이 정보는 IIS관련되서 DCOM 오류를 처리할 때 종종 사용됩니다.
정말 치명적인 IIS웹서버의 버그네요. 더군다나 그것을 SAM에 등록하다니...다행히 AD서버는 제외고..
도대체 MS개발자와 보안전문가들은 바보만 있나?
맨날 버그버그...이러니..보안전문가들만 죽어나지..
유닉스 서버도 이와 같은 치명적인 버그가 있는건 아닌지..
버그는 아닌듯 합니다. [IUSER_]계정이 웹컨텐츠를 읽기 위한 계정이고 이계정의 패스워드를 안다고 하더라도 C:\inetpub\AdminScripts\adsutil.vbs 같은 IIS 외부의 파일에 권한이 있을리는 없습니다.
대신 웹서버 관리자들이 [IUSER_]같은 오픈계정에 대한 권한 관리만 잘 하면 될듯 합니다.
기본 정책상으로 iusr_, iwam_ 계정은 모두 guests에 속하기 때문에 로그인이 불가능합니다. 2003의 경우도 adsutil.vbs를 사용하면 암호를 알아낼 수는 있지만, 이를 사용해야 하는 경우는 지극히 제한된 경우입니다. 더구나 직접 보시면 아시겠지만 절대 추측 가능한 암호는 아닙니다.