일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 취약점진단
- SQLMap
- SQL Injection
- programmers
- study
- Suninatas
- 써니나타스
- hackerrank
- meterpreter
- 모의해킹
- StringBuilder
- stock price
- java
- Router
- 정보시스템
- leetcode
- HTML Injection
- Algorithm
- CSRF
- algotithm
- ToDoList
- 라우터
- 취약점
- 모드 설정
- wpscan
- 미터프리터
- todo
- metasploit
- todo List
- 웹해킹
- Today
- Total
보안 / 개발 챌린저가 목표
Window 서버 진단 (2) 본문
~ 서비스 관리 ~
- 어떤 서비스인지 테스트해보고, 어떤 부분에서 약점이 있는지 찾아보고, 이 서비스를 대체할 것은 어떤 것이 있는지 찾아보면 좋다!
▶ 하드디스크 기본 공유 제거
- 윈도우 운영체제에서 기본적으로 실행되고 있는 원격관리용 서비스이다.
* 원격관리?
서버에 접근권한을 가진 관리자가 자주 사용하는 PC와서버에 물리적으로 접근이 용이하지 않을 때,
빠른 접속을 통한 장애처리 등을 위해 관리자 PC에서 윈도우 서버에 네트워크를 이용한 원격접속을 말함
- 하드디스크 기본 공유를 통한 원격접속 위협(제거하라고 하는 이유)
☞ 하드디스크 기본공유에 대한 관리미흡으로 불법접근 및 윈도우 서버 장악
* 관리 미흡?
① 하드디스크 기본공유 서비스에 대해 잘 인지하지 못한 상태에서 지속적으로 운영되는 경우
② 하드디스크 기본공유 뿐만 아니라 다른 원격접속 서비스(SSH, Telnet 등)를 사용하고 있는 경우
③ 하드디스크 기본공유를 이용한 원격접속 접근제어가 이루어지지 않은 경우
⇒ 내ㆍ외부 공격자가 하드디스크 공유 접속을 위한 계정 및 패스워드를 획득한 후 무단으로 원격접속이 가능할 수 있다.
- 하드디스크 기본공유를 이용한 원격접속하는 명령어
☞ 관리자 PC ⇒ 윈도우 서버(하드디스크 기본공유)
☞ 관리자 PC(Client)
net use [드라이브명]: \\[윈도우서버IP]\[윈도우서버드라이브명]$ "[패스워드]" /user:[윈도우서버계정명]
- 드라이브명 : 볼륨. C, D 같이 사용하고 있는 것은 지정할 수 없다.
ipconfig 를 이용하여 ip 주소를 확인한 다음,
Host PC에서 ping을 보내보면 잘 보내지는 것이 확인된다.
X: \\192.168.0.128\C$ "abcd" /user:Administrator
C드라이브를 마운트한다.
* 마운트?
저장 장치에 접근할 수 있는 경로를 디렉터리 구조에 편입시키는 작업.
Host PC에서 확인하면 생기는 것이 확인된다.
net share 을 이용하여 확인하면 잘 연결된 것을 볼 수 있다.
여기서,
C$, ADMIN$ : 기본 공유 가능
IPC$ : 프로세스 간 공유이므로 제외. 우리가 중지할 수 있는 방법으로 중지 안됨. 필수이기 때문!
fsmgmt.msc 를 통하여 IPC$를 제외한 기본공유를 중지한다(재시작 시 다시 기본공유가 시작된다).
공유 폴더에서 우리가 제거하고자 하는 것(ADMIN$, C$)을 우클릭하여 공유 중지를 클릭한 다음 yes한다.
없어진 것이 확인된다.
net share 를 통하여 없어진 것을 확인할 수 있다.
!여기서 문제는!
Server이기 때문에 재부팅을 자주 하지 않는다. PC와 다르게! 지속적으로 서비스를 하는 것이 목적이기 때문이다.
그래도 패치, 특정 서비스 설치 후 재시작 등 재시작을 하긴 한다.
다시 껐다가 켜보면,
다시 시작이 되어있는 것이 보인다.
regedit 을 이용하여 레지스트리 편집기를 열어준다.
https://support.microsoft.com/ko-kr/help/954422/how-to-remove-administrative-shares-in-windows-server-2008
링크를 참고하여, 레지스트리 하위 키를 찾는 곳을 알아낸다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\AutoShareServer
AutoShareServer의 DWORD 값 : 0 (false)
새로 만들기 - DWORD(32비트) 값 - AutoShareServer 를 만들어준다.
추가가 됐다. 이제, 윈도우 서버 재시작 후 net share로 하드디스크 기본 공유 제거를 확인한다.
없어진 것이 확인되었다.
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /s /v AutoShareServer
명령어를 이용하여 AutoShareServer 레지스트리 DWORD 값을 확인이 가능하다.
/s : 모든 하위 키 및 이름을 재귀적으로 쿼리를 지정
/v : 쿼리 수 있는 레지스트리 값 이름을 지정
echo [W-20 Start] >>[win]%computername%.txt
echo [W-20 하드디스크 기본 공유 제거] >>[win]%computername%.txt
echo # 하드디스크 기본 공유 확인 # >>[win]%computername%.txt
net share >>[win]%computername%.txt
echo. >>[win]%computername%.txt
echo. >>[win]%computername%.txt
echo # 레지스트리 AutoShareServer 확인 # >>[win]%computername%.txt
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /s /v AutoShareServer >>[win]%computername%.txt
echo W-20 END >>[win]%computername%.txt
echo ================================================== >>[win]%computername%.txt
실행한 다음, bat 파일을 만들어서 window server에서 실행했다가 나온 파일을 다시 host pc에서 열어보면,
잘 나오는 것이 확인된다.
* AutoShareServer가 아예 안나오거나, 표시한 부분이 1이 나오면 취약!
▷ FTP 서비스 구동 점검
- FTP 서비스? 파일 전송을 위한 프로토콜이며 기본적으로 21 Port를 사용한다.
- FTP 서비스가 불필요하게 운영될 경우
☞ FTP 서비스 무단 접속을 통해 악성코드를 전송하여 유포시키거나 원격지 서버에 중요파일 열람 및 삭제할 수 있는 위협을 받는다.
- FTP 서비스 확인 방법 : net start | find /I "ftp"
- FTP 서비스가 불필요하게 사용중인 경우 중지 및 삭제를 해야한다.
net start 는 실행중인 서비스 목록을 얻어오는 것이다.
echo [W-37 Start] >>[win]%computername%.txt
echo [W-37 FTP 서비스 구동 점검] >>[win]%computername%.txt
echo # FTP 서비스 구동 여부 확인 # >>[win]%computername%.txt
net start | find /I "ftp" >>[win]%computername%.txt
echo. >>[win]%computername%.txt
echo. >>[win]%computername%.txt
echo W-37 END >>[win]%computername%.txt
echo ================================================== >>[win]%computername%.txt
▶ SNMP 서비스 구동 점검
- SNMP(Simple Network Management Protocol) ? 네트워크에 존재하는 다양한 장비들을 관리하기 위해 사용되는 간단한 프로토콜
- 사용하는 이유는 가용성 때문이다.
PING | SNMP Service Client | NMS (Network Management System) |
request msg → ← response msg | ① 네트워크 데이터 전송 가능상태 제공 ② 시스템의 CPU, Memory, Storage 정보 제공 ③ 시스템의 네트워크 Traffic 정보 제공 ④ 시스템의 명령어 또는 응용프로그램 실행 권한 제공 ⇒ 현재 상태를 지속적으로 확인할 수 있는 자동화된 특징을 가지고 있음 |
SNMP Service Client로부터 현재상태 즉, 옆의 정보를 제공받음 |
net start | find /I "snmp" 으로 SNMP 서비스 동작 여부를 확인할 수 있다.
위에는 아무것도 밑에 뜨지 않기 때문에 서비스가 동작하지 않고 있다는 것이다.
서버 관리자
서버관리자 - 기능 - 기능추가
SNMP 서비스를 설치한다.
설치가 완료되었다.
다시 net start | find /I "snmp" 를 하면 서비스가 실행되는 것이 확인된다.
services.msc 를 통하여 서비스 창에 들어와 SNMP Service의 속성을 들어간다.
보안 탭의 받아들인 커뮤니티 이름에 추가를 하여 다음과 같이 읽기 전용, 커뮤니티 이름은 kisec123$%^로 설정하고 추가를 한다.
여기서 커뮤니티 이름은 패스워드 같은 개념이다.
잘 추가가 되었다.
echo [W-46 Start] >>[win]%computername%.txt
echo [W-46 SNMP 서비스 구동 점검] >>[win]%computername%.txt
echo # SNMP 서비스 구동 여부 확인 # >>[win]%computername%.txt
net start | find /I "snmp" >>[win]%computername%.txt
echo. >>[win]%computername%.txt
echo. >>[win]%computername%.txt
echo W-46 END >>[win]%computername%.txt
echo ================================================== >>[win]%computername%.txt
결과를 확인할 수 있다.
▷ SNMP 서비스 커뮤니티 스트링의 복잡성 설정
- 일종의 패스워드로 사용하는 Community String을 유추할 수 없는 복잡한 값으로 변경하여 불필요한 시스템 정보 노출을 차단하기 위함이다.
- public, private가 아니어야함과 동시에 패스워드의 정책에 따라야 양호로 판정한다.
reg query "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities"
~ 로그 관리 ~
▶ 정책에 따른 시스템 로깅 설정
- 권고 기준 : KISA 홈페이지의
(한국인터넷진흥원)주요정보통신기반시설_기술적_취약점_분석_평가_상세_가이드(2017).pdf
위의 설명을 보고 다음과 같이 기준이 설정되어 있다.
위의 표와 같이 보안 설정을 바꿔준다(각 항목을 더블클릭 하여 설정 열어서 바꿔줄 수 있음!).
echo [W-58 Start] >>[win]%computername%.txt
echo [W-58 정책에 따른 시스템 로깅 설정] >>[win]%computername%.txt
echo # 로컬보안정책 설정정보 추출 # >>[win]%computername%.txt
secedit /export /cfg c:\secpol.txt >>[win]%computername%.txt
echo. >>[win]%computername%.txt
echo. >>[win]%computername%.txt
echo # 로깅 설정 확인 # >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditObjectAccess" >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditAccountManage" >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditAccountLogon" >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditPrivilegeUse" >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditDSAccess" >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditLogonEvents" >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditSystemEvents" >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditPolicyChange" >>[win]%computername%.txt
type c:\secpol.txt | find /I "AuditProcessTracking" >>[win]%computername%.txt
echo W-58 END >>[win]%computername%.txt
echo ================================================== >>[win]%computername%.txt
AuditObjectAccess : 객체 액세스 감사
AuditAccountManage : 계정 관리 감사
AuditAccountLogon : 계정 로그온 이벤트 감사
AuditPrivilegeUse : 권한 사용 감사
AuditDSAccess : 디렉토리 서비스 액세스 감사
AuditLogonEvents : 로그온 이벤트 감사
AuditSystemEvents : 시스템 이벤트 감사
AuditPolicyChange : 정책 변경 감사
AuditProcessTracking : 프로세스 추적 감사
0 감사 안함 / 1 성공 / 2 실패 / 3 성공, 실패
~ 보안 관리 ~
▷ 화면보호기 설정
다음과 같이 디스플레이 - 화면 보호기 변경 에서 설정을 변경시켜준다.
reg 명령어로 해당 레지스트리 값을 찾는다.
reg query "HKCU\Control Panel\Desktop" /v "ScreenSaveActive" ☞ 화면보호기 설정 여부 확인
reg query "HKCU\Control Panel\Desktop" /v "ScreenSaverIsSecure" ☞ 화면보호기 해제 암호 사용 여부
reg query "HKCU\Control Panel\Desktop" /v "ScreenSaveTimeOut" ☞ 대기시간 확인
1 -> True.
'IT Security > Class_Do it' 카테고리의 다른 글
모의해킹 실습 (1) (0) | 2020.10.07 |
---|---|
네트워크 장비 진단 (0) | 2020.09.25 |
Window 서버 진단 (1) (0) | 2020.09.21 |
리눅스 쉘 스크립트 작성 실습 (0) | 2020.09.16 |
쉘의 이해와 스크립트 작성 (0) | 2020.09.16 |