차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판마지막 판양쪽 다음 판 | ||
wiki_security_corp:powershell_script를_이용하여_active_directory의_비정상적_계정_조회_uac_flag [2015/03/17 09:27] – wiki1122 | wiki_security_corp:powershell_script를_이용하여_active_directory의_비정상적_계정_조회_uac_flag [2023/05/22 07:40] – wiki1122 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{keywords> | ||
+ | |||
+ | * 사업 등 관련 문의: T) 02-322-4688, | ||
+ | |||
고객사로부터 자사의 AD보안정책에 대한 컨설팅 의뢰가 있었다. | 고객사로부터 자사의 AD보안정책에 대한 컨설팅 의뢰가 있었다. | ||
- | AD보안정책은 AD의 설계 부터 계정관리에 이르기 까지 다양한 관점에서 볼수 있겠지만, | + | AD보안정책은 AD의 설계 부터 계정관리에 이르기 까지 다양한 관점에서 볼수 있겠지만, |
- | 이번 컨설팅에서는 최근의 이슈인 비정상적인 계정을 파악하여 개선방안을 제시하는데 주력하였다. | + | |
예를 들면, \\ | 예를 들면, \\ | ||
- | - badpwdcount 속성값이 현저하게 높은 계정 | + | - badpwdcount 속성값이 현저하게 높은 계정 |
- | - lastlogoff 속성값이 현저하게 오래된 계정 | + | - lastlogoff 속성값이 현저하게 오래된 계정 |
- | - no password required로 설정되어 있는 계정 | + | - no password required로 설정되어 있는 계정 |
- password never required로 설정되어 있는 계정 \\ | - password never required로 설정되어 있는 계정 \\ | ||
등은 공격대상 계정이거나 휴면계정 또는 잠재적 위험에 노출되어 있는 계정이므로 보다 심층적인 계정발급과 설정을 점검해야 하는 계정이기 때문이다. | 등은 공격대상 계정이거나 휴면계정 또는 잠재적 위험에 노출되어 있는 계정이므로 보다 심층적인 계정발급과 설정을 점검해야 하는 계정이기 때문이다. | ||
+ | \\ | ||
- | 다량의 계정속성 값을 조회하기 위하여 Powershell Script를 사용하여 엑셀로 저장하여 다양한 관점에서 분석하게 되었는데, | + | 다량의 계정속성 값을 조회하기 위하여 Powershell Script를 사용하여 엑셀로 저장하여 다양한 관점에서 분석하게 되었는데, |
- | 여기에서는 계정속성 값 중에서 UAC(User Account Control) 조회할때 유의해야 하는 사항을 중심으로 작성해 보았다. | + | |
UAC의 대표적인 속성들은 다음과 같은 종류가 있다. \\ | UAC의 대표적인 속성들은 다음과 같은 종류가 있다. \\ | ||
줄 21: | 줄 24: | ||
- Smart card required for logon \\ | - Smart card required for logon \\ | ||
- | 위의 속성 이외에도 여러가지가 있으며 실제 이 값들은 integer값으로 설정되어 있기 때문에 | + | 위의 속성 이외에도 여러가지가 있으며 실제 이 값들은 integer값으로 설정되어 있기 때문에 Powershell script로 조회를 하려면 아래와 같은 flag table을 기준으로 script를 작성하는 것이 |
- | Powershell script로 조회를 하려면 아래와 같은 flag table을 기준으로 script를 작성해야 | + | |
+ | {{: | ||
+ | AD Domain controller에 로그인한 상태라면 AD module을 import해서 script가 좀더 단순하겠지만, | ||
- | {{: | + | 위의 그림에서와 같이 UAC flag값는 실제 10진수로 저장이 되어 있으나 이는 2의 제곱값과 동일하다. |
- | AD Domain controller애 로그인한 상태라면 AD module을 import해서 script가 좀더 단순하겠지만, | + | 따라서 계정의 UAC flag 값에 따라 분기되는 Powershell Script는 아래와 같이 작성할 수 있다. |
- | AD Domain User 계정 하나만을 부여받은 상태에서 AD module없이 작성된 script는 아래와 같이 좀 길어진다. | + | |
- | 위의 그림에서와 같이 UAC flag값는 실제 10진수로 저장이 되어 있으나 이는 2의 제곱값과 동일하다. | + | |
- | 따라서 계정의 UAC flag 값에 따라 분기되는 Powershell Script는 아래와 같이 작성할 수 있다. | + | |
모든 계정에 대한 조회는 foreach 함수를 사용하여 조회하고 합계를 카운트하면 비정상적인 계정의 목록과 합계를 도출할 수 있다. \\ | 모든 계정에 대한 조회는 foreach 함수를 사용하여 조회하고 합계를 카운트하면 비정상적인 계정의 목록과 합계를 도출할 수 있다. \\ | ||