Blog

Attribute Oluşturma ve Context Menu Üzerinde Gösterimi

Active Directory, Microsoft tarafından Windows Server ve Client bilgisayar sistemleri için tasarlanmış dizin servisidir. İçerisinde GPO dediğimiz group policy objelerini bulunduran ve bu objeler üzerinde çeşitli kısıtlamalar yapmanıza yarayan bir servistir. Bu kadar kayıt tutulduğuna göre elbette bir veri tabanı niteliğide taşır. Hatta yarattığınız bir group policylerinizi bünyesindeki yüzlerce sınıf sayesinde geliştirilen scriptlerle (betik), tüm windows tabanlı işletim sistemlerinde etkili veri yönetimini sağlayan WMI teknolojisine de sahiptir. Örneğin bu sayede t-sql ile sorgu yapılabilir işletim sistemleri hakkında.

AD ile ilk kez karşılaşan arkadaşlarda olabileceğinden arkadaşlarımız adına daha anlaşılabilir olması için yazımın sonunda bazı terminolojileri belirtme gereği duydum.

Anlatıma geçmeden önce şunu belirtmeliyim ki Linux sistemleri kullanıyor olabilirsiniz. Kali’de bir tool kullanmak hoşunuza gidebilir ya da security onion vb. İmkanlar sizin zevklerinize karşılık verebilir. Ancak saldırılan sistem hakkında bir bilgi sahibi olmanız  sizlere işletim sistemlerine karşı saldırı ve savunma operasyonları hakkında daha uygun adım atmanızı sağlayacaktır.

 

Gelelim sistemci arkadaşlarımıza. Diyelim ki sanal makinenizde windows server 2012 r2 v.s bir işletim sisteminiz var ve yeni attribute eklemeyi denemek istediniz diyelim.. Öncelikle şunu belirtmeliyim ki active directory üzerinde schema ile oynamak önerilen bir şey değildir. Sizlerinde bildiği gibi schema genişletilebilen bir yapıdır ancak daraltılamaz. O yüzden var olan attribute’leri istediğiniz amaca göre kullanmanız var olan sisteminizin düzeni hakkında daha uygun olacaktır. Diyelim ki illa eklemek zorunda kaldığınız bir durum söz konusu oldu veya denemek istediniz o zaman adım adım Ad üzerinde yeni bir attribute eklemeyi (örneğn tCNUMBERQ isimli kendi belirlediğimiz bir attribute) gösterelim. Hatta eklediğimiz usera sağ tıklama yaptığımızda (ki context menu denir) “tCNUMBERQ” isimli şekildeki gibi görünür bir yeni attribute ekleyeceğiz:

 

 

 

Bu işlemi gerçekleştirebilmek için ilk önce active directory schema modülünü registerımıza yükledik:“regsvr32 schmmgmt.dll”

 

Not: Bazen bir modül import ederken bu komut çalışmayabilir o işletim sistemimizin kurulu olduğu örneğin "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" yolundaki InstallUtil.exe ornek.dllsize yardımcı olacaktır. Bizim için regsvr32 şu an işimizi görecektir.

Windows+R ile ulaştığımız Run konsoluna “mmc” yazdığımızda microsoft management console diyeadlandırılan microsoftun standart yönetim konsoluna erişebilirsiniz.

Sonra File>Add/Remove Snap-in... dediğimizde soldaki menuden Active Directory Schema modülünü resimdeki gibi import ediyoruz. Sol tarafta Schema modülü görünmezse ilk adımda bahsettiğimiz regsvr32 işleminizde bir sıkıntı var demektir.

 

 

 Şimdi sıra yeni attribute oluşturmaya. Schemamızı import ettikten sonra karşımızda Attributes ve Classesolarak isimlendirilmiş klasörler mevcuttur.

Attribute> Create Attribute diyelim.

Çıkan uyarıya takılmayın, yolunuza devam edin, normaldir bu uyarıyı almanız.

 

 

 

Common name: attribute’a verilen genel isim

LDAP Display Name: LDAP’ınızda görünen isim (classta da buraya verdiğiniz isimi görürsünüz.)

Unique X500 Object OID: Objenize verilecek olan ID’dir. Ekte indirdiğiniz klasörden “X500_OID_Gen.vbs” kullandığımız işletim sistemi üzerinde çalıştıralım. En üste yazan OID’mizi bir dosyaya not edelim. “Your root OID is:” yazan kısım..

(1.2.840.113556.1.8000.2554.58284.28113.26490.17459.34446.737106.538896)

Syntax: tc numarası olacağı için sintaxımıza Numerical String verelim.

 

 

Classes>user>Add ile biraz önce oluşturduğumuz tCNUMBERQ isimli attribute ekledik.

 

Windows+R > services.msc ile servislerimize ulaştırdık. Buradan AD Domain Sevices’ı yeniden başlatalım:

 

“ADSI EDIT” konsolumuzu açalım ve Configuration ayarlarına ulaşalım. Bunun için ADSI Edit kısmındanConnect to... diyelim ve resimdeki gibi Configuration ayarını görünür hale getirelim.

 

CN=Configuration>CN=DisplaySpecifiers>CN=409>CN=user-Display yolunu izleyelim.

Karşılaştığımız ekranda adminContextMenu attribute değerini aşağıdaki syntax gibi girmeye dikkat edelim:

2,$tCNUMBERQ,C:\tcno.vbs

2: id, $tCNUMBERQ: attribute ldap adı, C:\tcno.vbs: attribute script yolu(indirdiğiniz dosyada mevcut).

 

Yukarıda belirttiğimiz yere indirdiğimiz “tcno.vbs” scriptini atalım. Ben C’ye attım, size kalmış. Ancak scriptinizin yolunu yukarıda belirtmelisiniz.

tcno.vbs scriptimizi edit yapalım. Burası önemli... scriptin Context Menu de çalışabilmesi için..

tcno.vbs

------------------------------------------------------------------------------------------------------------------------------

Dim oVar

Dim oUsr

Dim tmp

Set oVar = Wscript.Arguments

Set oUsr = GetObject(oVar(0))

tmp = InputBox("TC KIMLIK NO: " & oUsr.tCNUMBERQ &  vbCRLF & vbCRLF & "TC kimlik no giriniz.")

if tmp <> "" then oUsr.Put "tCNUMBERQ",tmp

oUsr.SetInfo

Set oUsr = Nothing

WScript.Quit

---------------------------------------------------------------------------------------------------------------------------------

 

Hayırlı olsun, yeni bir attribute eklemiş bulunmaktayız. Şimdi ADUC (AD users and Computers) da yeni bir kullanıcı oluşturalım ve scriptimizi test edelim.

 

Görüldüğü gibi context menu de scriptimiz çalıştırdık ve Cezeri isimli kullanıcımıza schemada olmayan yeni bir attribute eklemiş olduk:

 

 

Peki oluşturduğumuz attributelar ya da var olan attributelar ne işimize yarar? Mesela PowerShell tc numarasını bildiğimiz Cezeri isimli kullanıcının bilgilerini getirebiliriz.

 

Tc numarası 50200491038 olan kullanıcıyı getirme:

Get-ADUser -f {tCNUMBERQ -eq 50200491038}

 

 

Sonuç olarak şu an amacımıza ulaştık. Biraz daha fantezi yapmamız gerekirse Aceba User>Properties te önümüze çıkan menüde yeni bir tab oluşturmak istersek ne yapacağız?

Tab oluşturma aslında var olan düzene yeni bir özellik eklemedir. Sonuçta program bize böyle imkan vermiyor. Burada devreye Component Object Model dediğimiz COM Programlama devreye giriyor. Com programlama C++.. ilgilenen varsa özellikle öneririm bir bakmasını. Google’da “active directory account lockout tool” diye arattğımızda ALTOOL çıkacaktır karşımıza. Siz direk buradan da indirebilirsiniz. Dosyanın içini çıkarttığımızda “acctinfo.dll” isimli dosyamız bize lazım olan .dll dosyasıdır.

 

Dosyamızın bulunduğu yerde cmd başlattıktan sonra “regsvr32 acctinfo.dll” komutu ile registerımıza .dll importu işlemini gerçekleştirelim.

Windows+R ile  “ mmc dsa.msc -32 “ komutu ile ADUC açılım. Böyle yapmamızın sebebi ADUC normal başlatığımızda Additional Attribute Tabının görülmüyor olmasından kaynaklanmaktadır.

COM Programlamada ATL kütüphanesinden yararlanılmaktadır. İnternette kapsamlı bilgiye bu konu hakkında ulaşabilirsiniz. İlgilenen arkadaşlara öneririm.

 

EK-I (OID+tcno+acctinfo.dll): https://goo.gl/XNSGVi




Yazar Hakkında

Beykoz'da yaşamakta olan yazar, 2017 yılında Karabük Üniversitesi İngilizce Bilgisayar Mühendisliği bölümünden mezun oldu (3,17). Lisede websitesi yapma ve adobe programları ile uğraşarak başlayan merakı ile bu bölüme yönelmiştir. Üniversite hayatında özgür yazılıma merak sarması ile birlikte diğer programlama dillerinin yanı sıra şu an ağırlığını python, ruby programlama dillerine yoğunlaştırmış bulunmaktadır. Linux sistemlerin aşığı olan yazar şu an System-Network Mühendisi olarak iş hayatına devam etmektedir. Cyber Researcher olarakta hayatını sürdürmekte olan yazarımız hobi olarak Gitar ve Kemane enstrümanları ile uğraşmaktadır. Lisede başladığı blog yazarlığına mümkün olduğunca sürdürmeye çalışmanın yanı sıra şu an üç senedir deneme türünde bir kitap yazmaktadır.






Yorum Yapmak İçin Giriş Yapın.