주통기 W-01, W-02, W-04, W-06을 점검하는 스크립트작성

2024. 12. 15. 22:28·보안

주통기 ( 주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세가이드) 

W-01, W-02, W-04, W-06 파트를 점검하는 스크립트를 작성해서 실행 해보자 !

 

저는 .bat 형식으로 스크립트를 작성해서 실행했습니다.

 

W-01 Administrator 계정 이름 변경 또는 보안성 강화

@echo off
chcp 949 > nul 2>&1  REM 한국어 코드 페이지 설정
 
echo ==========================
echo W-01 Administrator 계정 이름 변경 또는 보안성 강화 점검
echo ==========================
echo.
 
REM Administrator 계정 정보 확인
net user Administrator > temp.txt
 
REM 계정이 존재하는지 확인
findstr /C:"Administrator" temp.txt > nul
if %errorlevel% neq 0 (
    echo Administrator 계정이 존재하지 않습니다.
    goto end
)
 
REM 계정 이름 확인
for /f "tokens=3" %%A in ('findstr /C:"Full Name" temp.txt') do (
    set adminName=%%A
)
 
if "%adminName%"=="Administrator" (
    echo 경고: Administrator 계정 이름이 기본값입니다. 변경을 고려하세요.
    set accountStatus=취약
) else (
    echo Administrator 계정 이름이 변경되었습니다: !adminName!
    set accountStatus=양호
)
 
REM 비밀번호 설정 확인 및 단순 비밀번호 체크
for /f "tokens=3" %%B in ('findstr /C:"Password required" temp.txt') do (
    set passwordRequired=%%B
)
 
if /I "!passwordRequired!"=="No" (
    echo 경고: Administrator 계정에 비밀번호가 설정되어 있지 않습니다. 보안을 강화하세요.
    set passwordStatus=취약
) else (
    echo Administrator 계정에 비밀번호가 설정되어 있습니다.
   
    REM 비밀번호 복잡성 확인
    set "simplePassword=1"
    for /f "tokens=2" %%C in ('net user Administrator ^| findstr /C:"Password last set"') do (
        set lastPasswordSet=%%C
    )
   
    REM 비밀번호가 단순한 경우를 체크
    if "%lastPasswordSet%"=="Never" (
        set passwordStatus=취약
        echo 경고: 비밀번호가 설정되지 않거나 단순 비밀번호로 설정되어 있습니다.
    ) else (
        set passwordStatus=양호
    )
)
 
REM 최종 점검 결과 출력
echo.
echo ==========================
if "%accountStatus%"=="취약" (
    echo 점검 결과: 취약
) else (
    echo 점검 결과: 양호
)
 
if "%passwordStatus%"=="취약" (
    echo 점검 결과: 취약
) else (
    echo 점검 결과: 양호
)
 
del temp.txt
:end
pause

Administrator Default 계정 이름을 변경했고강화된 비밀번호를 적용했기에 계정이름과 비밀번호 설정에 양호가 뜬모습

 

W-02 Guest 계정 비활성화

@echo off
chcp 949 > nul 2>&1  REM 한국어 코드 페이지 설정
 
echo ==========================
echo W-02 Guest 계정 비활성화 여부 점검
echo ==========================
echo.
 
REM Guest 계정 정보 확인
net user Guest > temp.txt
 
REM 계정이 존재하는지 확인
findstr /C:"Guest" temp.txt > nul
if %errorlevel% neq 0 (
    echo Guest 계정이 존재하지 않습니다.
    goto end
)
 
REM Guest 계정 활성화 여부 확인
for /f "tokens=3" %%A in ('findstr /C:"Account active" temp.txt') do (
    set accountActive=%%A
)
 
if /I "!accountActive!"=="Yes" (
    echo 경고: Guest 계정이 활성화되어 있습니다. 비활성화가 필요합니다.
    set accountStatus=취약
) else (
    echo Guest 계정이 비활성화되어 있습니다.
    set accountStatus=양호
)
 
REM 최종 점검 결과 출력
echo.
echo ==========================
if "%accountStatus%"=="취약" (
    echo 점검 결과: 취약
) else (
    echo 점검 결과: 양호
)
 
del temp.txt
:end
pause

 

 

Guest 계정이 False 상태 (비활성화) 되어있기 때문에 점검 결과 양호로 뜬모습

 

W-04 계정 잠금 임계값 설정

기본적으로 Windows 10 에서 임계값 설정은 Windows 10 Professional 및 Enterprise 버전 에서만 가능하고 

Home 버젼에서는 불가능하다. 

기본적으로 Home 버젼을 사용하기에 W-04 점검은 버젼을 확인하는 형식으로 진행하였다.

 

@echo off
chcp 949 > nul 2>&1  REM 한국어 코드 페이지 설정
 
echo ==========================
echo W-04 계정 잠금 임계값 설정 여부 점검
echo ==========================
echo.
 
REM Windows 버전 확인
ver | findstr /i "10.0." > nul
if %errorlevel% neq 0 (
    echo 이 스크립트는 Windows 10에서만 실행됩니다.
    goto end
)
 
REM Windows 10 Home 버전 확인
wmic os get version | findstr /C:"10.0.19041" > nul
if %errorlevel% == 0 (
    echo 경고: Windows 10 Home 버전에서는 계정 잠금 임계값을 설정할 수 없습니다.
    echo 기본적으로 잠금 임계값이 설정되어 있지 않습니다.
    set accountStatus=취약
) else (
    echo 이 스크립트는 Windows 10 Home에서만 실행됩니다.
    goto end
)
 
echo.
echo ==========================
if "%accountStatus%"=="취약" (
    echo 점검 결과: 취약
) else (
    echo 점검 결과: 양호
)
 
:end
echo 결과를 확인하려면 아무 키나 누르세요...
pause > nul

 

 

 

W-06   관리자 그룹에 최소한의 사용자 포함

@echo off
chcp 949 > nul 2>&1  REM 한국어 코드 페이지 설정
 
echo ==========================
echo W-06 관리자 그룹에 불필요한 사용자의 포함 여부 점검
echo ==========================
echo.
 
REM Administrators 그룹의 구성원 확인
net localgroup Administrators > temp.txt
 
echo 현재 Administrators 그룹 구성원:
type temp.txt
echo.
 
REM 불필요한 관리자 계정 확인
set count=0
set unnecessaryUsers=
 
for /f "tokens=*" %%A in (temp.txt) do (
    if /I "%%A" NEQ "Administrators" (
        if /I "%%A" NEQ "The command completed successfully." (
            if /I "%%A" NEQ "" (
                set /a count+=1
                set unnecessaryUsers=%%A
            )
        )
    )
)
 
REM 결과 판단
if %count% gtr 1 (
    echo 경고: Administrators 그룹에 불필요한 관리자 계정이 존재합니다.
    echo 불필요한 관리자 계정: %unnecessaryUsers%
    set accountStatus=취약
) else (
    echo Administrators 그룹이 양호하게 설정되어 있습니다.
    set accountStatus=양호
)
 
del temp.txt
echo.
echo ==========================
if "%accountStatus%"=="취약" (
    echo 점검 결과: 취약
) else (
    echo 점검 결과: 양호
)
 
echo 결과를 확인하려면 아무 키나 누르세요...
pause > nul

 

 관리자그룹 구성에 'd' 라는 계정이 있기때문에 점검결과 취약으로 뜨는 모습

 

윈도우에서 스크립트를 만들때는 파이썬보다 비전문가들도 실행하기 쉬운 bat 형식으로 작성하는게 좋을 것 같아서

bat 형식으로 구성해 보았다.

스크립트를 작성하는건 익숙하지 않지만 보안에 있어서 스크립트를 작성하고 사용하는 것은 필수적이라고 생각해서

앞으로 더 공부해야 할 것 같다.

저작자표시 (새창열림)

'보안' 카테고리의 다른 글

[Incident Report] devuser SSH 계정 탈취 & 크립토마이너 제거 기록 (Rocky Linux 9)  (0) 2025.12.10
Hydra를 이용한 윈도우 서버 Password Guessing 공격 후 RDP 연결  (0) 2024.12.13
Privilege Escalation: Exploitation for Privilege (권한 상승 실습)  (2) 2024.10.17
DNS 스푸핑 공격 실습  (1) 2024.10.11
Password Cracking (john the ripper)  (0) 2024.09.24
'보안' 카테고리의 다른 글
  • [Incident Report] devuser SSH 계정 탈취 & 크립토마이너 제거 기록 (Rocky Linux 9)
  • Hydra를 이용한 윈도우 서버 Password Guessing 공격 후 RDP 연결
  • Privilege Escalation: Exploitation for Privilege (권한 상승 실습)
  • DNS 스푸핑 공격 실습
not cozy
not cozy
not cozy 님의 블로그 입니다.
  • not cozy
    준
    not cozy
  • 전체
    오늘
    어제
    • 분류 전체보기 (12)
      • 보안 (6)
      • 클라우드 (5)
        • CI CD 자동화 블로그 배포 서비스 (0)
        • AWS (2)
      • 인프라 (0)
      • 프로젝트 (1)
      • 일상 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
not cozy
주통기 W-01, W-02, W-04, W-06을 점검하는 스크립트작성
상단으로

티스토리툴바