Self-Improvement
(Bash, Batch Shell) 주요정보통신기반시설 코드 본문
bash, batch 코드를 처음 배우고나서 프로젝트성??으로 2018년에 작성해봤던 자료를 저장, 정리
네트워크 장비 보안 (Bash)
EX) N-14.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#!/bin/bash
. function-net.sh
MAIN1
LIST4
BAR
CODE [N-14] NTP 서버 연동
LEVEL 중
cat << EOF >> $RESULT
[ 양호 ] : NTP 서비스가 서버로 설정된 경우
[ 취약 ] : NTP 서비스를 사용하지 않거나, 서버와 연동되어 있지 않은 경우
EOF
BAR
PRINT1
if [ -f network-config ] ; then
NTP1=`grep ^ntp network-config | awk '{print $3}'`
if [ $NTP1 ] ; then
OK NTP 서비스가 $NTP1 서버로 설정되어 있습니다.
else
WARN NTP 서비스가 설정되어 있지 않습니다.
fi
else
INFO network-config 파일이 존재하지 않습니다.
fi
cat $RESULT
echo ; echo
|
cs |
리눅스 보안 (Bash)
EX) U-20.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/bin/bash
. function.sh
MAIN1
LIST2
BAR
CODE "[U-20] /etc/hosts 파일 소유자 및 권한 설정"
LEVEL 상
cat << EOF >> $RESULT
[ 양호 ] : /etc/hosts 파일의 소유자가 root이고, 권한이 600인 경우
[ 취약 ] : /etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600이 아닌 경우
EOF
BAR
PRINT1
BOOLEAN1=0
ls /etc/hosts > /dev/null 2>&1
if [ $? -eq 0 ] ; then
BOOLEAN1=1
fi
if [ $BOOLEAN1 -ne 0 ] ; then
CHOWN1=`ls -l /etc/hosts | awk '{print $3}'`
if [ $CHOWN1 = root ] ; then
OK /etc/hosts 파일이 존재하며 소유자는 root입니다.
else
WARN /etc/hosts 파일이 존재하지만 소유자는 root가 아닙니다.
fi
elif [ $BOOLEAN1 -eq 0 ] ; then
INFO /etc/hosts 파일이 존재하지 않습니다.
fi
if [ $BOOLEAN1 -eq 1 ] ; then
PERM1=`ls -l /etc/hosts | awk '{print $1}'`
if [ $PERM1 = "-rw-------" ] ; then
OK hosts 파일의 권한이 600 입니다.
else
WARN hosts 파일의 권한이 600이 아닌 $PERM1 으로 되어 있습니다.
fi
fi
cat $RESULT
echo ; echo
|
cs |
윈도우 2008 보안 (Batch)
EX) W-57.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
@echo off
setlocal
color 0f
chcp 949
mode con cols=80 lines=25
title Windows 2008 R2 Server Vulnerable Check Script
pushd %~dp0
set resultfile="report.txt"
if exist %resultfile% del %resultfile%
echo --------------------------------------------------------- >> %resultfile%
echo 윈도우즈 서버 >> %resultfile%
echo --------------------------------------------------------- >> %resultfile%
echo 3. 패치 관리 >> %resultfile%
echo --------------------------------------------------------- >> %resultfile%
echo. >> %resultfile%
echo ●[ W-57 ] 정책에 따른 시스템 로깅 설정 >> %resultfile%
echo ========================================================= >> %resultfile%
echo [위험도] 중 >> %resultfile%
echo [ 양호 ] 아래와 같은 이벤트에 대한 감사 설정이 되어 있는 경우 >> %resultfile%
echo - 로그온 이벤트, 계정 로그온 이벤트, 정책 변경: 성공/실패 감사 >> %resultfile%
echo - 계정 관리, 디렉터리 서비스 액세스, 권한 사용:실패 감사 >> %resultfile%
echo [ 취약 ] 아래와 같은 이벤트에 대한 감사 설정이 되어 있지 않은 경우 >> %resultfile%
echo ========================================================= >> %resultfile%
echo ● 결과 >> %resultfile%
secedit /export /cfg secedit.txt > nul 2>&1
TYPE secedit.txt | findstr /i auditlogonevents | findstr 3 > nul 2>&1
if %errorlevel% == 0 (
echo [ 양호 ] 로그온 이벤트의 대한 감사 설정이 제대로 되어 있습니다. >> %resultfile%
) else (
echo ※[ 취약 ] 로그온 이벤트의 대한 감사 설정이 제대로 되어있지 않습니다. >> %resultfile%
)
TYPE secedit.txt | findstr /i auditaccountlogon | findstr 3 > nul 2>&1
if %errorlevel% == 0 (
echo [ 양호 ] 계정 로그온 이벤트의 대한 감사 설정이 제대로 되어 있습니다. >> %resultfile%
) else (
echo ※[ 취약 ] 계정 로그온 이벤트의 대한 감사 설정이 제대로 되어있지 않습니다. >> %resultfile%
)
TYPE secedit.txt | findstr /i auditpolicychange | findstr 3 > nul 2>&1
if %errorlevel% == 0 (
echo [ 양호 ] 정책 변경의 대한 감사 설정이 제대로 되어 있습니다. >> %resultfile%
) else (
echo ※[ 취약 ] 정책 변경의 대한 감사 설정이 제대로 되어있지 않습니다. >> %resultfile%
)
echo ======== >> %resultfile%
TYPE secedit.txt | findstr /i auditaccountmanage | findstr 2 > nul 2>&1
if %errorlevel% == 0 (
echo [ 양호 ] 계정 관리의 대한 감사 설정이 제대로 되어 있습니다. >> %resultfile%
) else (
echo ※[ 취약 ] 계정 관리의 대한 감사 설정이 제대로 되어있지 않습니다. >> %resultfile%
)
TYPE secedit.txt | findstr /i auditdsaccess | findstr 2 > nul 2>&1
if %errorlevel% == 0 (
echo [ 양호 ] 디렉터리 서비스 액세스의 대한 감사 설정이 제대로 되어 있습니다. >> %resultfile%
) else (
echo ※[ 취약 ] 디렉터리 서비스 액세스의 대한 감사 설정이 제대로 되어있지 않습니다. >> %resultfile%
)
TYPE secedit.txt | findstr /i auditprivilegeuse | findstr 2 > nul 2>&1
if %errorlevel% == 0 (
echo [ 양호 ] 권한 사용의 대한 감사 설정이 제대로 되어 있습니다. >> %resultfile%
) else (
echo ※[ 취약 ] 권한 사용의 대한 감사 설정이 제대로 되어있지 않습니다. >> %resultfile%
)
del secedit.txt
echo. >> %resultfile%
echo. >> %resultfile%
type %resultfile%
pause
|
cs |
데이터베이스 보안(Bash)
'프로그래밍 > Shell' 카테고리의 다른 글
ubuntu에서 루트 권한으로 스크립트 안의 명령어들을 실행하게하는 방법 (0) | 2020.03.23 |
---|---|
bash scripting cheatsheet(배시 스크립트 유용한 명령어 사이트) (0) | 2019.01.16 |
Batch shell 할시에 윈도우 명령어 (0) | 2018.10.21 |
홈 디렉터리의 .bash_history파일 출력 형식 변환 (0) | 2018.10.21 |
14) 쉘 프로그래밍 실습4 (0) | 2018.10.21 |