일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스서버 기본 활용 방안
- 윈도우 서버 기본 활용 방안
- DB backup server
- rsyslog
- 자료구조 #알고리즘 #최소비용신장트리 #그래프
- XSS종류
- SQLInjection방어방법
- Docker #취약점진단
- SQL #Injection
- K-Shield 주니어 10기 #지원후기 #최종합격후기 #정보보안 #
- 버블정렬 #bubble sort
- css #속성
- 케이쉴드주니어 #2주차 #웹 구성 요소의 이해
- 케이쉴드주니어 #1주차
- 정보처리기사 #정처기
- 기업 IT 인프라 구성의 이해
- 케이쉴드주니어 #3주차 #apache #tomcat
- 케쉴주
- css #float #flexbox #container #item #main-axis #cross-axis
- 케이쉴드주니어 #2주차 #네트워크 구성 용어의 이해
- 스톱워치 #JS
- css #display #position
- XSS방어방법
- 정보보안기사
- 삽입정렬 #insertion sort
- BlindSQLInjection
- 케이쉴드주니어 #3주차 # 가상기업인프라구성
- 자료구조 #알고리즘 #tree #트리순회
- 케이쉴드주니어 #1주차 #온라인
- 모각코 #8월과정 #html #css #javascript
- Today
- Total
itsme
10-11주차 : 윈도우 서버 취약점 진단 본문
GUI → CLI로 변환해야함.
[W-01. Administrator 계정 이름 변경 및 보안성 강화]
- Administrator 계정 활성화 여부
- 활성화 시 계정이름 확인
- 계정 이름이 Administrator 일 경우 강화된 패스워드를 사용하고 있는지 확인
- 강화된 패스워드 사용 여부 확인 방법
- 패스워드 최소 길이 : 8자 이상
- 패스워드 복잡성 설정 : 설정 여부 (설정 시 4조합)
<양호 조건>
- Administrator 계정 비활성화
- Administrator가 활성화 되어있으나, 계정 이름이 변경된 경우
- Administrator가 활성화 되어 있고, 계정 이름을 그대로 사용하고 있으나, 패스워드 최소 길이가 8자 이상이고, 패스워드 복잡성 설정이 설정된 경우
Administrator 계정 이름 변경 및 보안성 강화 확인 방법
- 계정 확인 : net user
- 로컬 보안 정책 확인 (GUI)
- win + r
- 로컬 정책 → 보안 → 계정 : Administrator 계정 상태
- 로컬 정책 → 보안 → 계정 : Administrator 계정 이름 바꾸기
- 계정 정책 → 암호 정책 → 최소 암호길이, 암호는 복잡성을 만족해야함.
- 로컬 보안 정책 확인 (CLI)
- cmd → cd Desktop
- secedit /export /cgf secpol.txt
- 계정 상태
- EnableAdminAccount : 1은 활성화, 0은 비활성화
- 계정 이름
- NewAdminstratorName : 쌍따옴표 안의 내용을 확인
- 최소 암호길이
- MiniumPasswordlLength : 숫자 크기
- 암호는 복잡성을 만족해야함
- PasswordComplexity : 1은 사용, 0은 사용 안함
[W-04. 계정 잠금 임계값 설정]
- net account로도 확인 가능
- chcp 437 : 영어 코드 페이지
- Lockout threshold
- chcp 949 : 한글 코드 페이지
- 잠금 임계값
- 로컬 보안 정책 확인 (나중에 스크립트를 위해 확인하는 방법)
- 계정 잠금 입계값 : LockoutBadCount 설정의 숫자 크기 확인
- 0보다는 크고 5보다는 작거나 같아야 양호
[W-47. 계정 잠금 기간 설정]
- LockoutBadCount 가 설정되어있지 않으면, 해당 설정들은 로컬 보안 정책 상 확인하기 어려움
- LockoutBadCount 가 활성화 되어있으면 아래 설정들이 활성화
- LockoutDuration : 계정 잠금 기간
- ResetLockoutCount : 다음 시간 후 계정 잠금 수를 원래대로 설정
- 두 설정이 60보다 커야 양호
[W-55. 최근 암호 기억]
- 최근 암호 기억이 4개 이상으로 설정되어 있다면 양호
[W-08. 하드디스크 기본 공유 제거]
시작 우클릭 → 실행 → regedit → HKLM → SYSTEM → CurrentControlSet → Services → Lanmanserver → parameters
** AutoShareServer 따로 추가 해줘야함.
reg query “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” /s /v AutoShareServer
[W-25. FTP 서비스 구동 점검]
- FTP인지 secure FTP 인지 구분 어려워 FTP 서비스가 구동되고 있는지 아닌지 여부만 판단해서 양호, 취약을 판단
- FTP 서비스가 구동 중 이면 취약
- FTP 서비스가 구동 중이지 않으면 양호
- 다만, 차후 인터뷰를 통해서 구동 중인 FTP 서비스가 secure FTP 라는 것이 증명된다면, 이 항목은 양호로 변겅
net start 명령어를 통해서 확인
- net start 명령은 현재 실행 중이 서비스 목록만 출력
- net start | find /i “FTP”
[W-69. 정책에 따른 시스템 로깅 설정]
<Event Audit>
시스템 이벤트 : AuditSystemEvents = 3 로그온 이벤트 : AuditLogonEvents = 3 개체 엑세스 : AuditObjectAccess = 0 권한 사용 : AuditPrivilegeUse = 0 정책 변경 : AuditPolicyChange = 1 계정 관리 : AuditAccountManage = 1 프로세스 추적 : AuditProcessTracking = 0 디렉터리 엑세스 : AuditDSAccess = 1 계정 로그온 : AuditAccountLogon = 1
감사 안함(0)은 확인 X 성공, 실패만 확인
[W-38. 화면 보호기 설정]
- 화면 보호기 설정
- 대시 시간 10분 이하 값으로 설정
- 화면 보호기 해제를 위한 암호를 사용
ScreenSaveActive : 화면 보호기 설정 여부
ScreenSaverIsSecure : 화면 보호기 해제 암호 사용 여부
ScreenSaveTimeOut : 대기시간 확인 600보다 작아야함.
- 맨 처음 확인 하는 부분 (교안 내 확인 방법)
- 해당 내용으로 얗호, 취약을 1차적으로 판단한 후 아래의 추가 확인 기능 부분을 통해 별도 설정이 되어있다면 양호로 변경할 수도 있음.
- 추가 확인 가능 부분
- (현재 사용자) 화면 보호기 로컬 그룹 정책 설정
- reg query "HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop" \v ScreenSaveAcitve
- 로컬 전체 사용자 화면 보호기 설정
- reg query "HKEY_USERS" \s \v ScreenSaveActive
- 로컬 사용자별 화면 보호기 정보
- Powershell "Get-WmiObject Win32_UserAccount | Select-Object -Property SID"
- reg query "HKEY_USERS\나온 SID\Control Panel\Desktop" /s | findstr /i "ScreenSaveActive ScreenSaverlsSecure ScreenSaveTimeOut"
- (현재 사용자) 화면 보호기 로컬 그룹 정책 설정
[배치 스크립트]
@echo off : echo 하고자 하는것만 출력
아니면 명령 한줄한줄 다 cmd창에 뜸
에러 찾을 수 없을때 @echo off 빼고 실행해보기
ehco “” == echo.
/dev/null == nul
2>/dev/null == 2>nul
cat /etc/passwd > /dev/null == pause>nul
Linux : echo “Hello World”
Windows : echo Hello World
echo <hello>, |hello| → error
echo ^<hello^>, ^|hello^| → not error
<ERRORLEVEL>
직전에 실행한 명령어의 성공 여부를 알려줌
성공 : 0반환
실패 or 문제 생김 : 0이 아닌 다른 값 반환
%errorlevel%변수에 저장
<쉘 스크립트 작성시 유의점>
처음에 root계정인지 아닌지 확인하는 부분이 있어야함
Linux : id | grep “uid=0” = “”
Windows : net session > nul 2>&1
윈도우는 옵션값의 대소문자 구분하지 않음
<FIND>
문자열을 검색하고 지정된 문자열을 포함하는 텍스트 줄을 표시
<FINDSTR>
파일에서 텍스트의 패턴을 검색하며, 정규표현식이 사용 가능하여 FIND 명령보다 강력
리눅스의 grep, egrep과 유사한 기능
- /b: 줄의 시작부터 검색
- /a : 줄의 끝 부분부터 검색
- /v : 지정한 문자열이 없는 줄을 표시
- /i : 대소문자 구분 무시
- /s : 현재 디렉터리와 모든 하위 디렉터리를 검색
- /c:”문자열” : 문자열 그대로 검색하는 옵션, 공백까지 문자열로 인식해서 검색
- /r : 문자열 검색 시 정규식 사용
EX)
<검색 List>
Hello World
Hello Batch
K-Shield World
findstr “Hello World” ⇒ Hello World, Hello Batch, K-Shield World
findstr /c:”Hello World” ⇒ Hello World
findstr /c:”^Hello World$” ⇒ 정규식 표현이 문자로 인식되어 아무것도 안나옴
findstr /rc:”^Hello World$” ⇒ Hello World
<변수>
set val=Hello
echo %val%
/a : =기호 오른쪽의 문자열을 연산을 위한 수식
<연산>
set count=0
set /a count+=1
echo %count%
⇒ 1
<문자열 일부 추출>
set val=Hello
set val=%val:~0,1%
H e l l o
~0 ~1 ~2 ~3 ~4
echo %val%
→ H
<치환>
set val=Hello
set val=%val:l=k%
echo %val%
→ Hekko
<IF문>
if [not] errorlevel [숫자]
if [not] 문자열==문자열
if [not] exist [파일 이름]
if [조건] (
) else if [조건] (
) else if [조건] (
) else (
)
<FOR문>
.bat : %%a, (파일), “문자열”, ‘명령어’
cmd : %a
Hello World Batch 1 2 3
for /f "tokens=1,2" %%a in ("Hello World Batch") do echo %%a Hello World Batch 1 2 a b
for /f "tokens=2,3" %%a in ("Hello World Batch") do echo %%a Hello World Batch 2 3 a b
for /f "tokens=2" %%a in ("Hello World Batch") do echo %%b Hello World Batch 2
a
for /f "tokens=1,2,3" %a in ("Hello World Batch") do echo %b Hello World Batch 1 2 3 a b c
for /f "tokens=1-3" %a in ("Hello World Batch") do set conf=%%b Hello World Batch 1 2 3 a b c
"tokens=1-3 delims=" "delims=" -> 라인 단위로 하나의 토큰을 처리
<CALL>
쉘 스크립트에서 함수처럼 사용할 수 있는 명령어
call :printstr test call :printstr kisec call :printst1 k-shield
exit /b 0 :printstr echo This is %1 exit /b
:printstr1 echo This is %1 exit /b
<GOTO>
지정한 레이블로 이동하는 명령어
'대외활동 > K-Shield 10기' 카테고리의 다른 글
케이쉴드 주니어 10기 수료 인증식 (0) | 2023.07.17 |
---|---|
8-9주차 : 리눅스 서버 취약점 진단 (1) | 2023.06.11 |
7주차 : 정보시스템 취약점 진단 개요 (0) | 2023.06.11 |
6주차 : 위협에 대응하기 위한 보안 환경의 이해 (0) | 2023.04.16 |
5주차 : 웹 서비스 기반 주요 위협(2) (0) | 2023.04.10 |