이 페이지에서
Batch Skeleton Script (for Windows) 배경
Bash Skeleton Script 배경 설명과 동일하게, 기존에 사용해오던 취약점 진단 스크립트는 업무를 수행하면서 급하게 작업하다 보니 단일 파일로 작성이 되어 수정 및 개선에 어려움이 있었다.
File: Windows 보안 진단 스크립트 v2024.01
이 스크립트는 과거(2024.02.05)에 직접 작성해 두었던 Windows Server 환경에 대한 인프라 진단 스크립트로, 진단항목(체크리스트)은 ”주요정보통신기반시설 기술적 취약점 분석 평가” 항목을 따르고 있으나 세부 동작 기준이 회사정책(내규) 및 OS 환경에 따라 대응하기 위해 부분적으로 다른점이 존재할 수 있다. 슬슬 변화에 맞추어 스크립트도 업데이트가 할

기존 스크립트는 이 게시글을 참조하자.
- 첫 번째로, 코드 자체가 길어지다 보니 수정 및 개선할 위치를 찾기 어렵고
- 두 번째로, 가독성이 떨어지는 한편
- 세 번째로, 앞서 두 가지 항목이 복합적으로 작용하여, 수정하고자 하는 진단 코드 구문 분석에 어려움이 있다.
이러 저러한 사유로 취약점 진단 스크립트를 개선 하려고 생각은 많이 했었는데, 간혹 테스트만 해보던 구조를 이번 참에 좀 더 손 봐 개선 하고자 생각 해두었던 "유지보수 용이"
, "재사용성 향상"
, "모듈화된 구조"
의 개선점
을 적용하여 골조가 될 스크립트를 만들어 두었다. 만든지는 시간이 좀 지났는데 깜빡하고 있다가 뒤늦게 업로드 한다.
혹여 어떠한 필요성에 의해 검색을 통해 이 자료를 접하게 된 동종 업계 종사자들이 있다면 이 자료가 도움이 될 수 도 있지 않을까 싶기에 공개 자료로서 남겨둔다.
개선한 스크립트의 주요 특징
- 실행은 security_check.bat로 수행
- Windows 에서 동작할 수 있도록 compile 된 linux 기반의 명령어 포함
- 실행시 다음 기능 점검
- 관리자 권한으로 실행했는지 체크
- 관리자 권한으로 실행시 동작 수행
- 관리자 권한이 아닌 경우 관리자 권한으로 자동 실행(새로운 창)
- 진단에 사용하는 첨부 파일이 존재하는지 체크
- CHCP 상태 확인 및 전환/복구
- 부하 분산을 위한 공통정보(로컬 그룹 정책 등) 사전 수집
- 관리자 권한으로 실행했는지 체크
- 기능을 파일 단위로 분리
- 주요 함수들 파일로 분리
- 진단 스크립트 항목을 별도 파일로 분리
골조 스크립트 다운로드
골조 스크립트 파일 구조
Batch Skeleton Script.zip
┬─ [[ File Structure ]]
├─ bin/ # Windows 에서 동작할 수 있도록 compile 된 linux 기반의 cmd 등이 위치
│ └ awk, cat, egrep, expr, ...
├─ func/ # CHCP 전환, 권한체크 등 스크립트 전반에서 공용적으로 쓰일 수 있는 GOTO 문을 Function 과 유사한 형태로 분리 위치
│ └ chcp_manage.bat, check_permission.bat, check_tools.bat, ...
├─ pre/ # 실행시 화면 및 결과 화면 헤더로 보여줄 문구. 즉, 리눅스의 motd 와 같은 처리를 위한 motd.bat이 위치
│ └ motd.bat, ...
├─ scripts/ # 진단 스크립트 항목별로 쪼개진 하위 호출 스크립트가 위치
│ └ W01.bat, ...
├─ TMP/ #스크립트 실행과정 중 생성되는 임시파일이 위치
└ security_check.bat # 스크립트 실행은 이 파일로 수행한다.
Preview : 관리자(Administrator) 권한이 아닌 상태로 실행 시
Drive:\Path> security_check.bat
================================================================================
== Administrator Privileges Required
================================================================================
Ko(65001) : Administrator 沅뚰븳?쇰줈 ?ㅼ떆 ?ㅽ뻾 ?⑸땲??
KO(949) : Administrator 권한으로 다시 실행 합니다.
En : This script will restart to run with Administrator privileges.
Preview : 관리자(Administrator) 권한으로 실행 시
Drive:\Path> security_check.bat
=======================================================================================================================
>> Infra Vulnerability Assessment Script
=======================================================================================================================
Make By : HaeKwang Kim (kinesis@kinesis.kr / kinesis815@naver.com)
Version : 2025.00.00.v0
This script has been tested in the following environments:
- Microsoft Windows **
- Microsoft Windows **
=======================================================================================================================
## 전처리시작 ## 진단을 위해 필요한 사전 데이터를 수집합니다.
** 정보수집중 ** 시스템 정보를 수집하는 중... : DONE
** 정보수집중 ** 로컬 보안 정책 정보를 수집하는 중... : DONE
** 정보수집중 ** WMIC를 이용하여 OS 정보를 수집하는 중... : DONE
** 정보수집중 ** WMIC를 이용하여 GROUPS 정보를 수집하는 중... : DONE
** 정보수집중 ** WMIC를 이용하여 Accounts 정보를 수집하는 중... : DONE
** 정보수집중 ** WMIC를 이용하여 Net Login 정보를 수집하는 중... : DONE
** 정보수집중 ** NET을 이용하여 Accounts 정보를 수집하는 중... : DONE
** 정보수집중 ** NET을 이용하여 Users 정보를 수집하는 중... : DONE
** 정보수집중 ** NET을 이용하여 LocalGroups 정보를 수집하는 중... : DONE
** 정보수집중 ** NET을 이용하여 Administrators LocalGroup 정보를 수집하는 중... : DONE
** 정보수집중 ** NET을 이용하여 'Remote Desktop Users' LocalGroup 정보를 수집하는 중... : DONE
** 정보수집중 ** NET을 이용하여 현재 활성화 된 Services 정보를 수집하는 중... : DONE
## 전처리종료 ## 진단을 위해 필요한 사전 데이터 수집이 완료되었습니다.
# Processings # W-01. 계정관리 - Administrator 계정 이름 변경 또는 보안성 강화
W-01:Check 01 - 최상위 관리자 계정인 Administrator의 계정명 변경 여부 점검 : 취약
토론하기