차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
wiki_security_corp:powershell_script를_이용하여_active_directory의_비정상적_계정_조회_uac_flag [2015/03/17 09:27] wiki1122wiki_security_corp:powershell_script를_이용하여_active_directory의_비정상적_계정_조회_uac_flag [2024/04/04 05:12] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +{{keywords>Active, Directory, AD, Domain, Controller, 모의해킹, 침투테스트, penetration,test,진단, AD, 계정, Userobject,attribute,속성,powershell,script, 계정관리, 설계, password,패스워드, 계정속성,값, 엑셀,비정상적,badpwdcount,lastlogoff,no,never,required,model, User Account Control,uac}}
 +
 +* 사업 등 관련 문의: T) 02-322-4688, F) 02-322-4646, E) [[info@wikisecurity.net]] 
 +
 고객사로부터 자사의 AD보안정책에 대한 컨설팅 의뢰가 있었다. 고객사로부터 자사의 AD보안정책에 대한 컨설팅 의뢰가 있었다.
  
-AD보안정책은 AD의 설계 부터 계정관리에 이르기 까지 다양한 관점에서 볼수 있겠지만,총 계정의 수가 10만개가 넘는 대규모라서, +AD보안정책은 AD의 설계 부터 계정관리에 이르기 까지 다양한 관점에서 볼수 있겠지만, 총 계정의 수가 10만개가 넘는 대규모라서, 이번 컨설팅에서는 최근의 이슈인 비정상적인 계정을 파악하여 개선방안을 제시하는데 주력하였다. \\
-이번 컨설팅에서는 최근의 이슈인 비정상적인 계정을 파악하여 개선방안을 제시하는데 주력하였다.+
 예를 들면, \\ 예를 들면, \\
-- 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(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를 작성해야 좋겠다. \\+ 
 +{{:wiki_security_corp:uac_flag_table.jpg?200&nolink|}} \\ 
 +AD Domain controller에 로그인한 상태라면 AD module을 import해서 script가 좀더 단순하겠지만, 취약점 진단환경이라는 것이 그렇게 잘 협조가 되지 않기 때문에 AD Domain User 계정 하나만을 부여받은 상태에서 AD module 없이 작성된 script는 아래와 같이 좀 길어진다. \\
  
-{{:wiki_security_corp:uac_flag_table.jpg?200|}} \\ +위의 그림에서와 같이 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 함수를 사용하여 조회하고 합계를 카운트하면 비정상적인 계정의 목록과 합계를 도출할 수 있다. \\