보안 / 개발 챌린저가 목표

Window Batch File 본문

IT Security/Class

Window Batch File

햄미은서 2020. 9. 23. 18:09

▶ 스크립트와 취약점 진단의 기본 구조

<진단 스크립트의 실행과 결과>

  진단 대상 서버의 보안설정이 사전에 정의된 취약점 진단 기준에 따라 해당 설정 파일의 경로, 설정 값 등을 확인하고 그 보안 기준에 따라 확인 결과를 "양호" 또는 "취약"으로 표기

 

chcp 437
rem echo [W-04] 계정 잠금 임계값				>> ..\%COMPUTERNAME%_WinSrv.txt
echo.
net accounts > net-accounts.txt
type net-accounts.txt | find "Lockout threshold" > lockoutchecktemp.txt
FOR /F "tokens=3" %%a in (lockoutchecktemp.txt) do SET KISATEMP=%%a

if %KISATEMP% LEQ 5 GOTO GOOD
echo [W-04] 취약 >>  ..\%COMPUTERNAME%_WinSrv.txt

goto bad

:GOOD
echo [W-04] 양호 >> ..\%COMPUTERNAME%_WinSrv.txt

: BAD

set KISATEMP=
del net-accounts.txt
del lockoutchecktemp.txt

위의 코드는 감사 용도로 많이 쓰인다. 결과만 파일에 나오는 형식!

 


 

chcp 437

명령어 실행 결와의 내용이 영문으로 바뀐다. 밑에서 볼 "Lockout threshold" 이 잠금 임계값 이라는 뜻인데, 이 단어를 찾아야 하기 때문이다.

 

 

rem echo [W-04] 계정 잠금 임계값				>> ..\%COMPUTERNAME%_WinSrv.txt

진단 항목을 선언 후, ">>"는 WinSrv.txt가 없으면 새로 만들고, 있으면 이어쓰기 하라는 의미이다. 그리고 컴퓨터의 이름으로 txt 파일에 기록한다.

 

 

net accounts > net-accounts.txt

net-accounts.txt 파일을 생성한다.

 

 

type net-accounts.txt | find "Lockout threshold" > lockoutchecktemp.txt

net-accounts.txt 파일을 찾아 출력하고, Lockout threshold를 반복적으로 찾아 lockoutchecktemp.txt에 새로 쓴다.

 

 

FOR /F "tokens=3" %%a in (lockoutchecktemp.txt) do SET KISATEMP=%%a

lockoutchecktemp.txt 파일 내에 3번째 문자열을 찾아 해당 변수를 KISATEMP에 표시한다.

 

 

if %KISATEMP% LEQ 5 GOTO GOOD
echo [W-04] 취약 >>  ..\%COMPUTERNAME%_WinSrv.txt

만약 새로 생성한 KISATEMP 내 값이 5보다 작거나 같으면 GOOD로 이동(GOTO)한다.

 

 

:GOOD
echo [W-04] 양호 >> ..\%COMPUTERNAME%_WinSrv.txt

GOOD이면 양호라고 표기한다.

 

 

set KISATEMP=
del net-accounts.txt
del lockoutchecktemp.txt

del 명령어를 이용하여 생성된 파일을 삭제한다.

'IT Security > Class' 카테고리의 다른 글

모의해킹의 이해 (2)  (0) 2020.10.07
모의해킹의 이해 (1)  (0) 2020.10.05
정보 시스템의 이해와 취약점 진단 기준  (0) 2020.09.14
어플리케이션(Application) 보안  (0) 2020.09.13
IPS(Suricata) 구축  (0) 2020.09.09
Comments