반응형

MDI 는 아래의 글로 새로 작성하였습니다.

2024.04.28 - [Microsoft Defender XDR/MDI] - Microsoft Defender for Identity (MDI). (0) Introduction

 

원래는 내용을 수정하면서 작성하려고 하였으나, 방향성이 크게 달라져서 글을 새로 작성하기 시작하였습니다. 

아래의 글은 참고만 하시기 바랍니다.


 

지난 포스팅

2022.09.06 - [Azure AD] - Microsoft Defender for Identity (MDI) (1). Configuration

 

MDI 구성보다는 분석이 중요한 파트입니다.

그래서 기술자료에서 공부가 필요한 부분은 조사 대응(Investigate and respond) 입니다.

자산 조사 | Microsoft Docs

 

그런데 테스트 스터디를 하려면 결국 의심스러운 활동에 대한 기록이 있어야 합니다.

아래의 자료를 참고하여 Lab 구성을 진행하였습니다.

Microsoft Defender for Identity security alert lab setup | Microsoft Docs

 

 

기술자료에서 제시한 것과 유사하도록 아래와 같은 형태로 구성하였습니다.

 

 

[Step 1] Active Directory users and groups

Microsoft Defender for Identity 보안 경고 랩 설정 | Microsoft Docs

 

생성할 사용자 목록입니다.

Displayname SAMAccount Purpose
Jeff Leatherman         JeffL 곧 효과적인 피싱 공격의 희생자가 될 예정입니다.        
Ron HelpDesk         RonHD Ron은 Contoso IT 팀의 “지원 담당자”입니다. RonHD는 “Helpdesk” 보안 그룹의 구성원입니다.
Samira Abbasi         SamiraA Contoso에서 이 사용자는 도메인 관리자입니다.        
MDIAdmin MDIAdmin Defender for Identity의 서비스 계정

 

아래는 MDI 서비스 계정을 제외한 나머지 계정을 생성 설정하는 스크립트입니다.

# Store the user passwords as variables
$SamiraASecurePass = ConvertTo-SecureString -String 'NinjaCat123' -AsPlainText -Force
$ronHdSecurePass = ConvertTo-SecureString -String 'FightingTiger$' -AsPlainText -Force
$jefflSecurePass = ConvertTo-SecureString -String 'Password$fun' -AsPlainText -Force

# Create new AD user SamiraA and add her to the domain admins group
New-ADUser -Name SamiraA -DisplayName "Samira Abbasi" -PasswordNeverExpires $true -AccountPassword $samiraASecurePass -Enabled $true
Add-ADGroupMember -Identity "Domain Admins" -Members SamiraA

# Create new AD user RonHD, create new Helpdesk SG, add RonHD to the Helpdesk SG
New-ADUser -Name RonHD -DisplayName "Ron Helpdesk" -PasswordNeverExpires $true -AccountPassword $ronHdSecurePass -Enabled $true
New-ADGroup -Name Helpdesk -GroupScope Global -GroupCategory Security
Add-ADGroupMember -Identity "Helpdesk" -Members "RonHD"

# Create new AD user JeffL
New-ADUser -Name JeffL -DisplayName "Jeff Leatherman" -PasswordNeverExpires $true -AccountPassword $jefflSecurePass -Enabled $true

 

[Step 2] Servers and computers

서버 테스트 PC 다음과 같이 구성되어 있습니다.

FQDN OS IP Purpose
TOYDC01.wingtiptoys.kr Windows Server 2022 10.0.22.2 Defender for Identity 센서가 로컬에 설치된 도메인 컨트롤러
TOYDC02.wingtiptoys.kr Windows Server 2022 10.0.22.3 Defender for Identity 센서가 로컬에 설치된 도메인 컨트롤러
VictimPC.wingtiptoys.kr Windows 10 10.0.22.9 공격 대상자 PC
AdminPC.wingtiptoys.kr Windows 10 10.0.22.8 도메인 관리자 PC

 

[Step 3] Configure SAM-R capabilities

부분은 이전 포스팅에서 구성완료하였습니다.

 

[Step 4] Add sensitive group to Defender for Identity

MDI 설정 -> Entity tags -> Groups -> Tag groups

 

Helpdesk 추가

 

추가 확인

 

[Step 5] VictimPC local policies

Victim PC에서 다음 Powershell 스크립트를 실행합니다.

# Add JeffL to local Administrators group on VictimPC
Add-LocalGroupMember -Group "Administrators" -Member "wintiptoys\JeffL"
# Add Helpdesk to local Administrators group on VictimPC
Add-LocalGroupMember -Group "Administrators" -Member "wingtiptoys\Helpdesk"

 

Victim PC Local Administrators 그룹에 helpdesk jeffl 추가되었는지 확인합니다.

 

Victim PC에서 다음 스크립트를 실행하여 시뮬레이션을 진행합니다.

$action = New-ScheduledTaskAction -Execute 'cmd.exe'
$trigger = New-ScheduledTaskTrigger -AtLogOn
$runAs = 'wingtiptoys\RonHD'
$ronHHDPass = 'FightingTiger$'
Register-ScheduledTask -TaskName "RonHD Cmd.exe - AATP SA Playbook" -Trigger $trigger -User $runAs -Password $ronHHDPass -Action $action

 

작업 스케쥴러에 다음과 같이 등록됩니다.

 

재부팅 , JeffL로 로그인합니다.

 

Windows Security

 

Virus & threat protection

 

Virus & threat protection settings -> Manage settings

 

모든 설정을 Off 변경합니다.

 

아래의 툴들을 다운로드합니다.

GitHub - gentilkiwi/mimikatz: A little tool to play with Windows security

GitHub - PowerShellMafia/PowerSploit: PowerSploit - A PowerShell Post-Exploitation Framework

PsExec - Windows Sysinternals | Microsoft Docs

NetSess (joeware.net)

 

[Step 6] AdminPC local policies

Admin PC에서 다음 명령어을 실행합니다.

# Add Helpdesk to local Administrators group
Add-LocalGroupMember -Group "Administrators" -Member "wingtiptoys\Helpdesk"
# Remove Domain Admins from local Administrators group
Remove-LocalGroupMember -Group "Administrators" -Member "Domain Admins"

 

추가 확인

다음 스크립트를 실행합니다.

while ($true)
{
    Invoke-Expression "dir \\TOYDC01\c$"
    Start-Sleep -Seconds 300
}

 

다음 포스팅에서는 구성한 Lab 기준으로 테스트를 진행해 보겠습니다.

반응형

+ Recent posts