PowerView ilə enumeration

PowerView nədir?

PowerView, Active Directory (AD) mühitində pentesting (penetrasyon testi) ve təhlükəsizlik dəyərləndirmələri üçün yaradılmış bir PowerShell moduludu. Bu modul AD üzərində kəşfiyyat aparmaq, məlumat toplamaq və təhlükəsizlik zəifliklərini aşkar etmək üçün istifadə olunur.

PowerView yükləmək üçün https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

PowerView istifadə qaydası.

  • Cari domein əldə etmək üçün: Get-Domain

  • Digər domainləri enumeration etmək üçün: Get-Domain -Domain

  • SİD dəyərini tapmaq üçün: Get-DomainSID

Note:SID (Security Identifier) hər bir təhlükəsizlik obyektini (istifadəçi hesabları, qruplar, kompüterlər və s.) unikal şəkildə müəyyən edən Windows əməliyyat sistemlərində istifadə olunan sətirdir. SID-lər hər bir obyektin unikal identifikatoru kimi çıxış edir və Windows-un təhlükəsizlik modelində mühüm rol oynayır.

  • Domain Policy əldə etmək üçün:

Get-NetGPO
Get-DomainPolicy

#Bizə sistemə giriş və ya kerberos haqqında Domenin siyasət konfiqurasiyalarını göstərəcək
Get-DomainPolicy | Select-Object -ExpandProperty SystemAccess
Get-DomainPolicy | Select-Object -ExpandProperty KerberosPolicy

#Maşının yerli Admin qrupunun bir hissəsi olan istifadəçiləri əldə edin
Find-GPOComputerAdmin -ComputerName <ComputerName>
  • Domain Controllers haqqda məlumat:

Get-DomainController
Get-DomainController -Domain <DomainName>
# Domain controller və domaindəki komputerlərin ƏS göstərir
Get-NetComputer -fulldata | select operatingsystem   
  • Domen İstifadəçilərini Sadalanması(enumeration):

Get-NetUser
Get-NetUser -SamAccountName <user> 
Get-NetUser | select cn
Get-UserProperty

#Son parol dəyişikliyini yoxlayır
Get-UserProperty -Properties pwdlastset

#İstifadəçinin atributunda xüsusi "sətir" əldə edin
Find-UserField -SearchField Description -SearchTerm "wtver"

#Maşına daxil olan istifadəçini sadalayın
Get-NetLoggedon -ComputerName <ComputerName>

#Maşın üçün Sessiya Məlumatını sadalayın
Get-NetSession -ComputerName <ComputerName>

#Bütün Domen İstifadəçilərini faylda saxla
Get-DomainUser | Out-File -FilePath .\DomainUsers.txt

#Müəyyən istifadəçinin xüsusi xassələrini qaytaracaq
Get-DomainUser -Identity [username] -Properties DisplayName, MemberOf | Format-List

#Maşına daxil olan istifadəçini sadalayır
Get-NetLoggedon -ComputerName <ComputerName>

#Maşın üçün Sessiya Məlumatını sadalayır
Get-NetSession -ComputerName <ComputerName>

#Xüsusi istifadəçilərin daxil olduğu cari/müəyyən edilmiş domenin domen maşınlarını sadalayır
Find-DomainUserLocation -Domain <DomainName> | Select-Object UserName, SessionFromName
  • Enum Domain Computers:

Get-DomainComputer -Properties OperatingSystem, Name, DnsHostName | Sort-Object -Property DnsHostName

#Canlı maşınları sadalayır
Get-DomainComputer -Ping -Properties OperatingSystem, Name, DnsHostName | Sort-Object -Property DnsHostName
  • Qruplar və Qrup Üzvləri:

# bütün userləri göstərir
Get-NetUser | select cn   

#Bütün Domen Qruplarını faylda saxla:
Get-DomainGroup | Out-File -FilePath .\DomainGroup.txt

#Xüsusi Qrup üzvlərini qaytarın
Get-DomainGroup -Identity '<GroupName>' | Select-Object -ExpandProperty Member
Get-DomainGroupMember -Identity '<GroupName>' | Select-Object MemberDistinguishedName

#Yerli (və ya uzaqdan) maşında yerli qrupları sadalayın. Uzaq maşında yerli admin hüquqlarını tələb edir
Get-NetLocalGroup | Select-Object GroupName

#Yerli (və ya uzaq) maşında xüsusi yerli qrupun üzvlərini sadalayır. Həmçinin uzaq maşında yerli admin hüquqları tələb olunur
Get-NetLocalGroupMember -GroupName Administrators | Select-Object MemberName, IsGroup, IsDomain

#Məhdudlu Qruplar və ya Qrup Siyasəti Tərcihləri vasitəsilə yerli qrup üzvlüklərini dəyişdirən domendəki bütün GPO-ları qaytarır
Get-DomainGPOLocalGroup | Select-Object GPODisplayName, GroupName
  • Paylaşımları Sadalayın:


#Domen Paylaşımlarını Sadalayır
Find-DomainShare
Invoke-ShareFinder   

#Domainə Cari istifadəçinin girişi olan paylaşımları sadalayır
Find-DomainShare -CheckShareAccess

#Əlçatan paylaşımlarda "Maraqlı" Faylları sadalayır
Find-InterestingDomainShareFile -Include *passwords*
  • Qrup Policies sıralama(enum):

Get-DomainGPO -Properties DisplayName | Sort-Object -Property DisplayName

#Bütün GPO-ları xüsusi kompüterə sadalayır
Get-DomainGPO -ComputerIdentity <ComputerName> -Properties DisplayName | Sort-Object -Property DisplayName

#Maşının yerli Admin qrupunun bir hissəsi olan istifadəçiləri əldə edir
Get-DomainGPOComputerLocalGroupMapping -ComputerName <ComputerName>
  • Organizational Units sadalanması(enum):

Get-DomainOU -Properties Name | Sort-Object -Property Name
  • Access Control List(ACL) sadalanması:

#Göstərilən hesabla əlaqəli ACL-ləri qaytarır
Get-DomaiObjectAcl -Identity <AccountName> -ResolveGUIDs

#Maraqlı ACE-ləri axtarır
Find-InterestingDomainAcl -ResolveGUIDs

#Müəyyən edilmiş yol ilə əlaqəli ACL-ləri yoxlayır (məsələn, smb paylaşımı)
Get-PathAcl -Path "\\Path\Of\A\Share"

#Maraqlı ACE-ləri axtarın
Invoke-ACLScanner -ResolveGUIDs

Note: ACL (Access Control List) kompüter faylı, resursu və ya obyektində girişə nəzarət siyahısını müəyyən edən strukturdur. Bu siyahı müəyyən istifadəçilərin və ya qrupların müəyyən resurslara (fayllar, qovluqlar, qeydlər, printerlər və s.) hansı növ daxil ola biləcəyini müəyyənləşdirir.

  • Domaindəki güvən əlaqələrini sadalayır(trust relationships)

Get-DomainTrust
Get-DomainTrust -Domain <DomainName>

#cari domain üçün və tapdıqı digər domeinlər üçün Trust-ları sadalayır
Get-DomainTrustMapping

Note:Güvən əlaqələri domenin Active Directory (AD) mühitində başqa bir domen və ya təhlükəsizlik domeni ilə əlaqəsinə istinad edir. Bu əlaqə iki fərqli təhlükəsizlik məhdudiyyəti və ya fərqli təhlükəsizlik siyasətlərinə malik domenlər arasında autentifikasiya və giriş icazələrini təmin etməyi asanlaşdırır.

  • Forest-ləri sıralamaq üçün istifadə olunan əmrlər:

Get-ForestDomain
Get-ForestDomain -Forest <ForestName>

#Domaində forest güvən əlaqələrini yoxlayır
Get-ForestTrust
Get-ForestTrust -Forest <ForestName>

Note:"Forest" Active Directory (AD) mühitində bir-birinə güvənən və eyni konfiqurasiya və təhlükəsizlik siyasətini paylaşan bir və ya bir neçə domenin birləşməsindən yaranan strukturdur.

  • İstifadəci məlumatlarının oğurlanması:

#Cari istifadəçinin yerli admin girişinə malik olduğu cari domendəki bütün maşınları tapır
Find-LocalAdminAccess -Verbose

#Domenin bütün maşınlarında yerli adminləri tapın
Find-DomainLocalGroupMember -Verbose

#Local adminin və ya userin sessiyası olan kompüterləri tapın
Find-DomainUserLocation | Select-Object UserName, SessionFromName

#Admin girişini təsdiqləyin
Test-AdminAccess

Last updated