Selamlar,
İngiltere Bilgi Komisyonluğu (ICO) 20 Ekim 2026'da iki Galli kuruluşa, Ogi Networks Limited (ONL) ve Data Cymru'ya kınama verdi. Kasım 2024'teki fidye yazılımı saldırısında, 12 yıldan uzun süredir var olan "Test2" adlı bir test hesabı kullanıldı. Hesabın parolası baştan beri "Password1" idi ve bir parola gücü aracına göre bir saniyeden kısa sürede kırılabiliyordu. Saldırıda 182,7 GB veri şifrelendi, 42 GB veri çalındı; çoğu çocuk 3.300 kişinin bilgisi etkilendi. Bu konu, aynı hatayı kendi AD ortamınızda nasıl yakalayacağınızı anlatıyor.
Konuda anlatılacaklar
- ICO kararından çıkan somut hatalar
- Pasif hesapları bulmak
- Parolası hiç değişmemiş hesaplar
- Test/servis hesabı adlandırma avı
- Güvenli devre dışı bırakma süreci
ICO'nun tespitleri
- Test hesabı Ocak 2012'de "Password1" ile oluşturulmuş, parola karmaşıklığı kuralı uygulanmamış.
- Hesaplar düzenli denetlenmemiş; gereksiz hesap 12 yıl yaşamış.
- Üç sistemde yerel yönetici hesapları 12 yıldan uzun süre aynı parolayı korumuş.
- Data Cymru'nun hesap incelemeleri planlı ve rutin değilmiş, AD'nin tamamını kapsamıyormuş.
- Dış kaynak sağlayıcı ile kurum arasında sorumluluk ve veri işleme sözleşmesi net değilmiş.
1. Pasif hesapları bulmak
Import-Module ActiveDirectory
# 90 gundur giris yapmamis, etkin kullanici hesaplari
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -UsersOnly |
Where-Object { $_.Enabled } |
Select-Object Name,SamAccountName,LastLogonDate,DistinguishedName |
Sort-Object LastLogonDate | Export-Csv inactive90.csv -NoTypeInformation -Encoding UTF8
# Hic giris yapmamis ama etkin hesaplar
Get-ADUser -Filter { Enabled -eq $true } -Properties LastLogonDate,whenCreated |
Where-Object { -not $_.LastLogonDate } |
Select Name,SamAccountName,whenCreated2. Parolası yıllardır değişmeyenler
$esik = (Get-Date).AddYears(-1)
Get-ADUser -Filter { Enabled -eq $true } -Properties PasswordLastSet,PasswordNeverExpires |
Where-Object { $_.PasswordLastSet -lt $esik -or $_.PasswordNeverExpires } |
Select Name,SamAccountName,PasswordLastSet,PasswordNeverExpires |
Sort PasswordLastSet3. Test ve geçici hesap avı
Get-ADUser -Filter { Enabled -eq $true } -Properties Description,LastLogonDate |
Where-Object { $_.SamAccountName -match '(?i)test|demo|temp|tmp|vendor|setup' -or
$_.Description -match '(?i)test|gecici|deneme' } |
Select Name,SamAccountName,Description,LastLogonDate4. Güvenli devre dışı bırakma
Hesabı hemen silmeyin. Önerilen süreç:
- Sahibini bulun (yönetici, dış kaynak firması). Sahibi yoksa bu zaten bir bulgu.
- Devre dışı bırakın, açıklamaya tarih ve talep numarası yazın, ayrı bir "Disabled" OU'ya taşıyın.
- 30-90 gün bekleyin; kimse şikayet etmezse silin.
Disable-ADAccount -Identity test2
Set-ADUser test2 -Description "Disabled 2026-10-23 - pasif hesap denetimi"
Move-ADObject (Get-ADUser test2).DistinguishedName -TargetPath "OU=Disabled,DC=lab,DC=local"Kalıcı çözüm
ICO'nun önerileriyle uyumlu olarak: zayıf ve yaygın parolaları engelleyen bir parola filtresi (Entra Password Protection gibi), uzaktan erişimde varsayılan MFA, tüm AD'yi kapsayan çeyreklik hesap incelemesi ve dış kaynak sözleşmelerinde hesap yaşam döngüsünün kimde olduğunun yazılı tanımı. Komutları önce lab ortamında deneyin.
Kendi ortamınızda (veya labınızda) bu komutları çalıştırdığınızda kaç pasif hesap çıktı? Rakam paylaşabilirsiniz, isim değil.
Yasal uyarı
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.
Kaynaklar