Sunucularınızda kimin yönetici (yetkili) olduğunu tek bakışta gösteren envanter aracı. Domain, Windows ve Linux sunucuları tarar; kimin domain admin, yerel Administrators, root ya da sudo yetkisi olduğunu tek dosyalık, aranabilir bir HTML rapora döker. Yalnızca okuma yapar, hiçbir hesabı değiştirmez. Şifreler yalnızca bellekte tutulur, diske yazılmaz ve günlüğe basılmaz.
- Domain yetkileri: Domain Admins, Enterprise Admins, Schema Admins, Administrators, Operator grupları ve Group Policy Creator Owners. Kendi özel yetkili gruplarını da (örn.
VIP0) ekleyebilir ya da otomatik buldurabilirsin. - İç içe gruplar açılır: Bir grubun üyesi başka bir grupsa altındaki kullanıcılar da listelenir.
- Windows sunucular: Yerel Administrators, Remote Desktop Users, lokal kullanıcılar (devre dışı olanlar işaretli), silinmiş hesaplar (orphan SID), domain mi workgroup mu.
- Linux sunucular: UID 0 hesapları,
sudo/wheel/admingrup üyeleri, sudoers kuralları, login shell'i olan kullanıcılar (kilitli olanlar işaretli). - Bulgular: Riskli durumlar Özet sayfasında otomatik listelenir (silinmiş hesap, root dışı UID 0,
NOPASSWD: ALLvb.). - Farklı erişim yolları: Windows'ta WinRM, yoksa WMI/DCOM, o da yoksa ADSI; Linux'ta SSH. Domain'deki makine de, domain dışındaki lokal makine de taranır.
- Releases sayfasından
PrivScope.exedosyasını indir ve çalıştır (kurulum gerekmez). Exe imzasız olduğu için Windows SmartScreen uyarı verebilir (Daha fazla bilgi → Yine de çalıştır); bazı antivirüsler PyInstaller ile paketlenmiş araçları yanlış işaretleyebilir. Güvenmek istemezsen kaynağı okuyup kendin derleyebilirsin: EXE üretme. İndirdiğin dosyayı Releases sayfasındaki SHA256 değeriyle karşılaştırabilirsin. - Sunucu listesi kartında kaynağı seç ve listeyi getir.
- Windows / Linux giriş bilgilerini gir (farklı şifreliler için listede satır satır).
- Taramayı başlat, kayıt yerini seç.
- Bitince açılan HTML raporu tarayıcıda aç.
Uygulamanın içinde, sağ üstteki Yardım (F1) düğmesi kısa bir kullanım kılavuzu açar (adımlar, erişim türleri, hedeflerde gerekenler, sık hatalar).
İki kaynaktan biri:
| Kaynak | Ne zaman |
|---|---|
| vCenter'dan canlı çek | vCenter erişimin varsa. Açık VM'ler ve işletim sistemi otomatik gelir. Appliance/altyapı VM'leri (vCLS, vcsa, photon vb.) elenir. |
| Hazır dosyadan oku | RVTools .xlsx, Excel, CSV ya da düz txt (satır başına bir IP). RVTools'un vInfo sayfasındaki OS ve IP kolonlarından işletim sistemi otomatik alınır. |
Listeyi getir'e basınca liste uygulamaya yüklenir ve düzenleme tablosu açılır. Bu tabloyu daha sonra Düzenle ile tekrar açabilirsin.
- Satıra çift tıkla (ya da Enter): VM adı, IP, Erişim, kullanıcı ve şifreyi gir.
- Erişim seçenekleri:
| Erişim | Anlamı |
|---|---|
Windows · Domain |
Domain'e bağlı Windows. Üst ekrandaki domain admin bilgisi kullanılır. |
Windows · Lokal |
Domain dışı Windows. Satırdaki lokal hesap (örn. Administrator) kullanılır. |
Windows · otomatik |
Satırda cred varsa o, yoksa domain admin. |
Linux |
SSH ile bağlanır. Satırdaki kullanıcı/şifre kullanılır. |
otomatik |
İşletim sistemi bilinmiyorsa portlara bakılarak belirlenir. |
- Toplu cred (30 Linux'un 15'i aynı şifreliyse): satırları Ctrl/Shift ile seç (ya da Seç: listesinden Linux, Windows, Cred'siz olanlar…), Seçililere aynı cred / erişim türü ata… de. Sağ tık menüsünde de var. Kalanlara satıra çift tıklayıp tek tek gir.
- DNS'ten hesap türü öner: Windows satırlarında noktalı DNS adı (
sunucu.firma.local) varsa Domain, kısa adsa Lokal önerir. Bu bir tahmindir; rapordaki Domain / Workgroup kolonu gerçeği gösterir. - Başlığa tıklayınca sıralanır (A-Z, tekrar tıkla Z-A). Yalnızca seçilileri tut yetkili olduğun makineleri ayıklamaya yarar.
- Düzenlenen liste taramada doğrudan kullanılır. Kaynağı ya da dosyayı değiştirirsen liste sıfırlanır.
- Windows: domain admin (
ALAN\kullanici).Windows · Domainsatırlarında kullanılır. - Linux: tüm sunucularda aynıysa buraya. Farklıysa boş bırakıp tabloya gir.
Etkin kutusunu işaretle, DC adresini yaz. Windows domain admin bilgisiyle DC'ye bağlanılır (DC'de ActiveDirectory modülü olmalı).
- Ek gruplar: Standart olmayan ama yüksek yetkili grupların adını virgülle yaz:
VIP0, Server Admins. - Yetkili özel grupları otomatik bul: Active Directory'nin "yetkili" işaretini (
adminCount=1) taşıyan özel grupları kendisi bulur. Yetkisi grup üyeliğinden değil delegasyondan geliyorsa bu işaret olmaz, o zaman adını Ek gruplara yaz.
Domain seçeneği açıkken sunucuların yerel yönetici grubunda geçen domain grupları da DC'den çözülüp altlarına eklenir.
Taramayı başlat'a bas. İlerleme çubuğu, Windows/Linux/Erişilemeyen sayaçları ve günlük canlı akar. OK yeşil, hatalar kırmızı görünür.
Tek dosyalık HTML: sunucuya gerek yok, tarayıcıda açılır. Solda sayfalar (sayı rozetli), üstte arama kutusu, altta TR/EN düğmesi.
| Sayfa | İçerik |
|---|---|
| Overview | Taranan sunucu, yetkili hesap sayıları ve Bulgular tablosu |
| Domain Privileges | Her yetkili grup bir kart; iç içe gruplar └ ile açılır |
| Privileged Accounts | Hesap bazlı görünüm: bir hesap hangi yetkili gruplarda (via Grup = iç içe üyelik) |
| Windows Servers | Sunucu başına yerel yöneticiler, RDP, lokal kullanıcılar, Domain/Workgroup |
| Linux Servers | UID 0, sudo grubu, sudoers kuralları, kullanıcılar |
| Unreachable | Bağlanılamayan sunucular ve sebepleri |
Rozetler: Group (grup), Disabled (devre dışı), Locked (kilitli), Orphan SID (silinmiş hesap), Unreachable (erişilemedi).
PrivScope her hedefe kendi çalıştığı Windows bilgisayardan bağlanır ve yalnızca okuma yapar. Hedef makinede ajan kurmaz, dosya bırakmaz, ayar değiştirmez. Hangi hedefe nasıl bağlanacağı Erişim seçimine ve girdiğin kullanıcıya bağlıdır.
| Hedef | Erişim seçimi | Bağlantı | Hangi hesap |
|---|---|---|---|
| Domain'e bağlı Windows | Windows · Domain |
WinRM → WMI/DCOM → ADSI | Domain admin (ya da hedefte yerel Administrators üyesi bir domain hesabı) |
| Domain dışı / workgroup Windows | Windows · Lokal |
WinRM → WMI/DCOM → ADSI | Makinenin kendi yerel yöneticisi (ör. Administrator) |
| Linux | Linux |
SSH | root ya da sudo yetkili kullanıcı |
| Domain yetkili grupları | Domain kartı Etkin | DC'ye WinRM | Domain admin |
| vCenter listesi | Kaynak: vCenter | vCenter API (443) | En az salt okunur (Read-only) rol |
- Hesap:
ALAN\kullanicibiçiminde, hedef makinenin yerel Administrators grubunda olan bir hesap. Domain Admins üyesi hesaplar varsayılan olarak buna sahiptir. - Bağlantı: PrivScope makineye IP ile bağlanır, bu yüzden kimlik doğrulama NTLM (Negotiate) ile yapılır. Hedefin domain ile güvenli kanalı sağlam olmalıdır (makine hesabı bozuksa domain hesapları girişte reddedilir).
- Hedefte gerekenler: WinRM açık olmalı (aşağıya bak).
- Ağ: PrivScope makinesinden hedefe 5985 (HTTP) ya da 5986 (HTTPS).
- Hesap: Makinenin kendi yerel yöneticisi. Kullanıcıyı
Administrator(ya daMAKINE\Administrator) yaz,ErişimiWindows · Lokalyap. Domain hesabı bu makinelerde geçmez. - Yerleşik
Administratoruzaktan sorunsuz çalışır (devre dışı değilse ve şifresi boş değilse). - Yerleşik olmayan yerel yönetici hesapları için Windows uzaktan yetkiyi kısıtlar (UAC uzak filtresi). Hedefte bir kere şu kayıt defteri değeri gerekir:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System LocalAccountTokenFilterPolicy = 1 (DWORD) - Hedefte gerekenler: WinRM açık (ya da WMI/ADSI için aşağıdaki portlar). Şifre boş olamaz.
Yönetici PowerShell'de bir kere:
Enable-PSRemoting -Force
Bu, WinRM servisini başlatır ve güvenlik duvarında 5985 için izin verir (domain/özel profilde). Çok sayıda makinede tek tek yapmak yerine GPO ile açmak daha pratiktir (Windows Remote Management servisi otomatik başlasın, Allow remote server management through WinRM ilkesi açık olsun, 5985 güvenlik duvarı kuralı gelsin).
Kontrol: PrivScope'un çalıştığı bilgisayarda Test-NetConnection <ip> -Port 5985 sonucu True olmalı.
WinRM'e ulaşılamazsa (zaman aşımı ya da port kapalı) sırayla şunlar denenir. Kimlik bilgisi reddedilirse denenmez (yanlış şifreyle ikinci deneme hesabı kilitleyebilir).
| Sıra | Yöntem | Hedefte açık olması gerekenler | Not |
|---|---|---|---|
| 1 | WinRM | 5985 / 5986 | En hızlı, eksiksiz |
| 2 | WMI/DCOM | 135 + dinamik RPC portları (49152-65535), güvenlik duvarında Windows Management Instrumentation kuralı | Grup üyeleri ve Domain/Workgroup bilgisini eksiksiz verir |
| 3 | ADSI (SAMR) | 445 (SMB) | Yalnızca 445 açıksa. Bazı makinelerde uzaktan grup üyesi listesi vermez; o zaman Administrators için okunamadi yazılır |
Bu iki yedek yol, PrivScope'un çalıştığı bilgisayardaki Windows PowerShell 5.1 ile yapılır (Windows'ta hazır gelir, kurulum gerekmez).
- Bağlantı: DC'ye WinRM (5985/5986), aynı Windows domain admin bilgisiyle.
- DC'de gerekenler: ActiveDirectory PowerShell modülü (domain controller'larda varsayılan gelir) ve WinRM.
- Ne okunur: Domain Admins, Enterprise Admins, Schema Admins, Administrators (Builtin), Account/Server/Print/Backup Operators, Group Policy Creator Owners; ayrıca Ek gruplar ve otomatik bulunan
adminCount=1özel gruplar. Gruplar SID ile bulunur (Türkçe Windows'ta da çalışır). İç içe gruplar açılır. - Domain seçeneği açıkken sunucuların yerel yönetici grubunda geçen domain grupları da DC'den çözülür.
- Bağlantı: SSH (22), parola ile giriş. Anahtar ile giriş desteklenmez.
- Hesap:
rootönerilir. Root SSH girişi kapalıysa sudo yetkili bir kullanıcı gir; komutlarsudo -Sile çalışır ve aynı şifre sudo için de kullanılır. - Hedefte gerekenler:
- SSH sunucusunda
PasswordAuthentication yes(parola girişi açık). - sudo kullanılıyorsa hesap sudoers'ta olmalı ve
requirettykapalı olmalı. - Root olmayan hesapta
Defaults targetpwaçıksa sudo, hedef kullanıcının şifresini ister; bu durum rapordatargetpwbulgusu olarak işaretlenir. - Standart araçlar:
bash,awk,getent,grep(tüm dağıtımlarda vardır).
- SSH sunucusunda
- Ağ: PrivScope makinesinden hedefe 22.
- Kilitli hesapların tespiti
/etc/shadowokumayı gerektirir; bu yüzden root ya da sudo yetkisi şarttır.
PrivScope hiçbir hesabı, grubu, ayarı ya da dosyayı değiştirmez. Okunanlar:
| Platform | Okunan |
|---|---|
| Windows | Yerel Administrators ve Remote Desktop Users grup üyeleri, yerel kullanıcılar (devre dışı bilgisi), domain/workgroup bilgisi |
| Linux | /etc/passwd (UID 0), sudo/wheel/admin grup üyeleri, /etc/sudoers ve /etc/sudoers.d/* (yorum ve Defaults hariç), giriş shell'i olan kullanıcılar ve kilit bilgisi (/etc/shadow) |
| Domain | Yukarıda sayılan yetkili grupların üyeleri (AD'den salt okuma) |
- Windows (exe için başka bir şey kurmak gerekmez). Kaynaktan çalıştırırsan Python 3.11+ ve
pip install pyvmomi paramiko openpyxl pypsrp. - Hedeflere yukarıdaki portlardan ağ erişimi.
- Aynı anda çok sayıda makineyi taradığı için, güvenlik duvarı/IPS bu bilgisayardan gelen bağlantıları engellemiyor olmalı.
| Port | Ne için | Yön |
|---|---|---|
| 443 | vCenter | PrivScope → vCenter |
| 5985 / 5986 | WinRM (Windows, DC) | PrivScope → hedef |
| 135 + dinamik RPC | WMI/DCOM yedeği | PrivScope → hedef |
| 445 | ADSI yedeği (SMB) | PrivScope → hedef |
| 22 | SSH (Linux) | PrivScope → hedef |
PrivScope çalıştığı bilgisayardan (PowerShell):
Test-NetConnection <ip> -Port 5985 # WinRM
Test-NetConnection <ip> -Port 445 # ADSI yedeği
Test-NetConnection <ip> -Port 22 # SSH (Linux)
Sonuç False ise makine kapalı ya da güvenlik duvarı engelliyor demektir. True ama PrivScope kimlik hatası veriyorsa hesap/şifre o makinede geçerli değildir (ör. domain hesabıyla lokal makine).
| Mesaj | Anlamı / çözüm |
|---|---|
kimlik doğrulama reddedildi |
Kullanıcı/şifre o makinede geçersiz. Lokal makinede Windows · Lokal seçip makinenin kendi yöneticisini gir. Domain hesabının o makineye güveni bozuk da olabilir. |
zaman aşımı (güvenlik duvarı ya da makine yanıt vermiyor) |
Makine kapalı ya da WinRM/güvenlik duvarı engelliyor. Hedefte Enable-PSRemoting -Force ya da 5985 izni gerekir; yoksa WMI/ADSI devreye girer. |
bağlantı reddedildi (port kapalı…) |
Port dinlenmiyor (WinRM kapalı). |
erişim reddedildi (ADSI/WMI) |
Hesap o makinede yönetici değil ya da şifre geçersiz. |
Erişim: cred yok |
O satırda ve varsayılanda kullanıcı/şifre girilmemiş. |
vCenter InvalidLogin |
Kullanıcı adı ya da şifre yanlış (ör. administrator@vsphere.local). Yazımı kontrol et. |
- Şifreler yalnızca bellekte tutulur; günlükte
***ile maskelenir. Kapatınca silinir. - Araç yalnızca okuma yapar.
- vCenter/SSH sertifika ve host key doğrulaması kapalıdır (iç ağ varsayımı).
- Rapor gerçek hesap bilgisi içerir. Müşteri ya da ekip dışına çıkarmadan önce kontrol et.
- Excel/RVTools listesine yazdığın şifreler düz metindir; tarama sonrası ilgili kolonları sil.
PrivScope bir yönetici/denetim aracıdır. Yalnızca sahibi olduğun ya da denetim yetkisi verilmiş sistemlerde, kendi yetkili hesabınla kullan. Hiçbir hesabı değiştirmez, ama yanlış şifreyle çok sayıda makineye bağlanmak hesap kilitlenmesine yol açabilir; ilk taramayı küçük bir listeyle dene. Yazılım olduğu gibi sunulur, garanti verilmez.
pip install pyinstaller
pyinstaller --onefile --windowed --name PrivScope pam_audit.py
Çıktı: dist\PrivScope.exe. Kaynaktan çalıştırmak için: python pam_audit.py.
Bu README'deki görüntüler örnek verilerle (corp.local, srv-*) üretilmiştir; gerçek bir ortamı göstermez.
MIT. Ayrıntı için LICENSE dosyasına bak.





