Gang_2 2023. 2. 1. 02:11

주통기 기술적 취약점 분석을 하기 위해 스크립트를 짜다보면 secedit 명령어를 자주 이용하는 모습을 볼 수 있다.

그래서 미리 정리를 하고 뒷부분을 진행해보려 한다. 대부분의 내용은 아래의 마이크로소프트 홈페이지를 참조한다.

 

https://learn.microsoft.com/ko-kr/windows-server/administration/windows-commands/secedit

먼저 secedit 명령어는 "현재 보안 구성을 지정된 보안 템플릿과 비교하여 시스템 보안을 구성하고 분석한다"라고 한다. 

 

출처 : https://learn.microsoft.com

 

1. secedit /analyze

=> 데이터베이스에 저장된 초기 설정에 대한 현재 시스템 설정 분석 가능

 

 

 

secedit /analyze /db filename [/cfg filename] [/overwrite] [/log filename] [/quiet]

    1) /db : 필수 요소로, 분석이 수행되는 데이터베이스의 경로 및 파일 이름

 

    2) /cfg : 분석을 위해 데이터베이스로 가져올 보안 서식 파일에 대한 경로 파일 이름을 지정함

                 (이 옵션은 매개 변수와 함께 /db <database file name> 사용할 때만 사용)

 

    3) /overwrite :  저장된 템플릿에 결과를 추가하는 대신 데이터베이스에 저장된 템플릿 또는 복합 템플릿을 덮어 쓸지

                            여부를 지정함 (/cfg <configuration file name> 매개 변수 사용할 경우만 유효)

 

    4) /log : 프로세스에서 사용될 로그 파일의 경로 파일 이름 지정

                 (지정하지 않으면 기본 로그 파일인 <systemroot>\Documents and Settings\<UserAccount>

                  \My Documents\Security\Logs\<databasename>.log 사용)

 

    5) /quiet : 화면 출력을 표시하지 않음

 

    +) ex) secedit /analyze /db abc.db -> 파일명이 abc인 db파일의 보안 매개 변수에 대한 분석을 수행한다.

 

 

 

2. secedit /configure

 => 데이터베이스에 저장하는 보안 설정을 사용하여 현재 시스템 설정 구성

 

 

secedit /configure /db <database file name> [/cfg <configuration file name>] [/overwrite] [/areas [securitypolicy | group_mgmt | user_rights | regkeys | filestore | services]] [/log <log file name>] [/quiet]

    1) /db : 필수 요소로, 저장된 구성을 포함하는 데이터베이스의 경로 및 파일 이름을 지정

 

    2) /cfg : 분석을 위해 데이터베이스로 가져올 보안 서식 파일에 대한 경로 파일 이름 지정

                (매개 변수와 함께 /db <database file name> 사용할 때만 유효)

 

    3) /overwrite : /cfg 매개 변수의 보안 템플릿이 저장된 템플릿에 결과를 추가하는 대신 데이터베이스에 저장된 템플릿

                          또는 복합 템플릿을 덮어 쓸지 여부를 지정

                          (매개 변수와 /cfg <configuration file name> 사용되는 경우에만 유효)

 

    4) /areas : 시스템에 적용할 보안 영역을 지정

                     (매개 변수를 지정하지 않으면 데이터베이스에 정의된 모든 보안 설정은 시스템에 적용 )

                     (여러 영역을 구성하려면 각 영역을 공백으로 구분)

 

     △  securitypolicy: 계정 정책, 감사 정책, 보안 옵션 등을 포함하여 시스템에 대한 로컬 정책 및 도메인 정책입니다.

       group_mgmt: 보안 템플릿에 지정된 모든 그룹에 대한 제한된 그룹 설정입니다.

       user_rights: 사용자 로그온 권한 및 권한 부여

       regkeys: 로컬 레지스트리 키에 대한 보안

     △  filestore: 로컬 파일 스토리지에 대한 보안

       services: 정의된 모든 서비스에 대한 보안

 

    5) /log : 프로세스에서 사용될 로그 파일의 경로 파일 이름을 지정

                 (지정하지 않으면 기본 로그 파일이 <systemroot>\Documents and Settings\<UserAccount>

                  \My Documents\Security\Logs\<databasename>.log 사용)

 

    6) /quiet : 화면 및 로그 출력을 표시하지 않음

 

 

여기서부터 위와 반복된 옵션의 설명은 넘어가도록 한다.

 

 

 

3. secedit /export

=> 보안 템플릿을 사용하여 구성된 데이터베이스에 저장된 보안 설정을 내보낸다.

     이를 사용하여 설정을 다른 컴퓨터로 가져오는 것 외에도 로컬 컴퓨터에서 보안 정책 백업 가능

 

 

secedit /export /db <database file name> [/mergedpolicy] /cfg <configuration file name> [/areas [securitypolicy | group_mgmt | user_rights | regkeys | filestore | services]] [/log <log file name>] [/quiet]

     1) /mergedpolicy : 병합하고 도메인 및 로컬 정책 보안 설정을 내보낸다.

 

 

 

4. secedit /generaterollback

=> 지정된 구성 템플릿에 대한 롤백 템플릿을 만들 수 있다.

     기존 롤백 템플릿이 있는 경우, 이 명령을 다시 실행하면 기존 정보를 덮어쓴다.

 

 

secedit /generaterollback /db <database file name> /cfg <configuration file name> /rbk <rollback template file name> [/log <log file name>] [/quiet]

     1) /rbk : 필수 요소로, 롤백 정보 기록되는 보안 템플릿을 지정, 이를 이용해 롤백 파일을 만들 수 있다.

 

 

 

5. secedit /import

=> 보안 템플릿으로 구성된 데이터베이스에서 이전에 내보낸 보안 설정(.inf 파일)을 가져온다.

 

+) .inf 파일을 다른 컴퓨터로 가져오기 전에 가져오기가 secedit /generaterollback 수행될 데이터베이스에서 명령을 실행해야 한다. 또한 가져오기 파일에서 secedit /validate 명령을 실행하여 무결성을 확인해야 한다.

 

 

secedit /import /db <database file name> /cfg <configuration file name> [/overwrite] [/areas [securitypolicy | group_mgmt | user_rights | regkeys | filestore | services]] [/log <log file name>] [/quiet]

 

 

 

6. secedit /validate

=> 보안 템플릿(.inf 파일)에 저장된 보안 설정의 유효성 검사

     (손상되었거나 부적절하게 설정된 보안 템플릿은 적용되지 않음)

 

 

secedit /validate <configuration file name>

    1)  <configuration file name> : 필수 요소로, 유효성을 검사할 보안 서식 파일에 대한 경로 파일 이름을 지정

                                                    (로그 파일은 이 명령으로 업데이트되지 않는다.)