BloodHoundAD

BloodHoundAD

1 BloodHoundAD & SharpHound Nedir?

BloodHoundAD ilk defa 2016 yılında DEFCON 24’te duyurulmuş bir güvenlik test aracıdır. BloodHound aracı Active Directory ortamında gizli ilişkileri ortaya çıkarmak için kullanılır. Hem Blue hem de Red Team üyelerinin kullanımı için uygun bir araçtır. Bulduğu ilişkileri grafiksel bir arayüz ile bizlere sunar. Bu sayede anlaşılması ve incelenmesi kolay veriler elimize geçmiş olur.

BloodHound Rohan Vazarkar, Andrew Robbins ve Will Schroeder tarafından geliştirilmiş bir araçtır.

BloodHound bir Electron uygulaması olduğu için platform bağımsızdır. Windows, Linux ve OSX’te çalışır. Elbette bir takım bağımlılıkları mevcut.

1.1 SharpHound

BloodHound’un derinliklerine inmeden önce SharpHound’dan bahsetmekte fayda var. SharpHound, BloodHound ile birlikte gelen bir bilgi toplama aracıdır. Esasında biz hedef makineden toplamak istediğimiz bilgileri, ilişkileri SharpHound ile topluyor, BloodHound ile inceliyoruz.

SharpHound bilgi toplanacak makinede çalıştırılır ve JSON çıktıları alınır. Bu JSON çıktıları BloodHound ile incelenir.

Unutmayın ki SharpHoud’ın çalıştırıldığı makine Domain’e üye olan bir hesaba ait olmalı. Aksi takdirde aşağıdaki gibi bir hatayla karşılaşırsınız.

BloodHoundAD

2 Bağımlılıklar & Kurulum

BloodHound neo4j veritabanını kullanılır. Doğal olarak BloodHound’u sıkıntısız bir şekilde çalıştırabilmek için neo4j kurulumunu doğru bir şekilde yapmak gerekmektedir. Neo4j ise Java’ya bağımlılık duyar. Haliyle Java’nın da eksiksiz bir şekilde kurulması gerekmektedir. Aynı zamanda BloodHound’ın veri toplamak için kullandığımız yan aracı olan SharpHound’ın eksiksiz bir şekilde çalışması için .NET Framework 3.0’in kurulu olması gerekmektedir. Son olarak BloodHound’u çalıştıracağınız sistemde NodeJS kurulu olmalı. Son olarak BloodHound aracımız electron-packager’e bağımlılık duymaktadır.

BloodHound aynı zamanda bir takım araç setlerinin ve teorilerin üzerine inşa edilmiştir. Bunlar şu şekildedir;

  • PowerView
  • Graph Theory
  • PowerPath
  • Derivative Local Admin Theory

Öncelikle şunu belirtmeliyim bu dokümantasyon boyunca her türlü kurulum ve uygulama işlemleri Windows işletim sistemi üzerinde yapılacaktır. BloodHound’ın kurulumunu gerçekleştirebilmek için önce bağımlılıklarınız kurmak gerekmekte. Bağımlılıkların kurulumundan tek tek bahsetmek konudan sapmamıza sebep olacaktır. Zaten bağımlılıkların kurulumu “Next, next, next” şeklindedir. Bu noktada neo4j bağımlılığının kurulumu diğerlerine kıyasla biraz daha karmaşık.

2.1 Neo4J Kurulumu

Neo4j çalışmak için Java’ya ihtiyaç duyar. Java’yı kurduktan sonra neo4j resmi sitesinden Neo4j Server’ı indirin. İndirilen zip dosyasını dizine çıkarın. Komut satırını (cmd) yönetici olarak başlatın ve zip dosyasını çıkarttığınız dizine gidin. Ardından neo4j.bat install-service komutunu çalıştırın. Neo4j service installed bilgilendirmesini göreceksiniz. Ardından net start neo4j komutu ile Neo4j’yi başlatın.

BloodHoundAD

Yukarıdaki bilgilendirme yazısını gördüyseniz Neo4j servisi çalışıyor demektir. Herhangi bir tarayıcıdan localhost:7474 adresine gidin. Kullanıcı adına ve parola kısmına neo4j yazarak giriş yapabilirsiniz. İlk girişten sonra sizden parolanızı değiştirmenizi isteyebilir.

Bu aşamanın ardından ufak tefek yapılandırmalar yapacağız. Bunun için öncelikle BloodHound Github Repo’sunu indirin. Ardından BloodHoundExampleDB.graphdb dosyasını kopyalayıp neo4j klasörünün altındaki data/databases altına yapıştırın. Ardından yine neo4j klasörünün altında conf klasörüne girin ve neo4j.conf dosyasını bir metin editörü ile düzenleyin. #dbms.active_database=graph.db satırını dbms.active_database=BloodHoundExampleDB.graphdb şeklinde değiştirin. Neo4j’nin yapılandırması bu adımlardan ibaret.

Neo4j’nin kurulumunu yaparken BloodHound aracımızın kurulumunu da gerçekleştirmiş olduk.

SharpHound’da BloodHound Github Repo’su ile birlikte gelmekte. BloodHound klasörünün içerisinde Ingestors veya Ingestors ardından DebugBuild klasörünün altında bulabilirsiniz.

3 Aracın Kullanımı

3.1 SharpHound Aracının Kullanımı

SharpHound’ın kullanımı ile başlayalım. Dokümasyon boyunca çoğu demo ve görseller kendi hazırlamış olduğum Windows Server üzerinden toplanan veriler olacaktır. Veri toplama aşamalarından tamamiyle SharpHound aracını kullanacağız. Ardından bu verileri anlamlandırmak ve incelemek için BloodHound aracına geri döneceğiz.

SharpHound’un tamamen C# ile yazılmış bir exe versiyonu ile PowerShell üzerinden çalışan bir versiyonu bulunmaktadır. Farklı senaryolara göre farklı kullanım şekilleri gerekebilir. Ancak PowerShell dosyasını sağlıklı bir şekilde çalıştırabilmeniz için tüm PowerShell betikleri gibi yürütme ilke kısıtlamaları olmamalı.

Oturum sağladığımız Domain’e üye bir bilgisayara SharpHound aracımızı gönderiyoruz. Bunu yapmanın birden fazla yolu var. Konuyu fazla saptırmamak adına aracımızın kullanımına odaklanıyorum. SharpHound’un olduğu dizine gidip SharpHound.exe –h komutunu çalıştıralım. Bu komut aracımızın kullanım parametreleri ile ilgili bize ufak bir doküman sağlayacaktır. Doküman ve aracımızın kullanımı oldukça basit ve anlaşılır. Karşımıza aşağıdaki gibi bir ekran gelmeli.

BloodHoundAD

Listemiz aşağıya doğru gidiyor. Hemen basit bir parameter ile veri toplamaya başlayalım. Terminale SharpHound.exe -c All parametresini çalıştıralım. Karşımıza aşağıdaki gibi bir ekran gelmeli.

BloodHoundAD

Collection işlemimizin tamamlandığını ve sonuçlarımızın sıkıştırılıp kaydedildiğine dair bir bilgilendirme mesajı aldık. Sıkıştırılmış dosyamızın adı şuna benzer olacaktır; 20191206113434_BloodHound.zip Dosya adına dikkat ettiğimizde 2019/12/06 şeklinde taramanın gerçekleştirildiği tarihi eklemiş. Zip dosyasının içeriği aşağıdaki görsele benzer bir şekilde olacaktır.

BloodHoundAD

İsimlendirme yine zip dosyamızda olduğu gibi başta tarih olacak şekilde ayarlanmış. BloodHound aracımıza incelemek için vereceğimiz dosyalarımız bunlar. İstersek doğrudan zip dosyasını istersek tek tek JSON dosyalarını aracımıza vermemiz mümkün.

Çıktıyı almak için yazdığımız komutu hatırlayalım; SharpHound.exe -c All. Burada -c parametresi ile Collect demiş olduk. All opsiyonu ile ise grup, oturum, ACL gibi toplanabilecek bilgilerin tamamını topla demiş olduk. Dilersek komutumuzun sonuna -v veya –verbose parametresini ekleyerek aracımızın yaptığı işlemleri görebiliriz. SharpHound.exe -c All -v parametresini çalıştırdığımız takdirde karşımıza aşağıdakine benzer bir ekran gelecektir.

BloodHoundAD

Gördüğümüz gibi karşımıza yaptığı işlemlerle alakalı bilgilendirme mesajları geldi. Örneğin spesifik olarak yalnızca grup üyeliklerini toplamak istiyorsak şöyle bir komut çalıştırmalıyız; SharpHound.exe -c GROUP. Peki bu şekilde spesifik olarak hangi bilgileri toplayabiliyoruz? Tam liste aşağıdaki gibidir.

BloodHoundAD

Bahsetmek istediğim bir diğer parameter ise –stealth parametresi. Stealth parametresi sayesinde sistemden daha sessiz bir şekilde bilgi toplama işlemi yapmak mümkün. Terminale SharpHound.exe –stealth yazarak bu taramayı gerçekleştirebilirsiniz. Karşımıza aşağıdaki gibi bir ekran gelecektir.

BloodHoundAD

Aracımızın verdiği çıktı formatı üzerinde düzenlemeler yapmak, LDAP kullanarak bağlantı kurmak ve performans ile ilgili daha pek çok farklı parametreleri bulunmakta. Tamamına SharpHound.exe -h diyerek göz atabilirsiniz.

Ağda daha fazla oturum keşfetmek istiyorsanız siz taramayı durdurana dek çalışacak bir tarama başlatabilirsiniz. Bunun için; SharpHound.exe -c SessionLoop komutunu çalıştırmanız yeterli olacaktır. Karşımıza aşağıdaki gibi bir ekran gelecektir.

BloodHoundAD

Bu işlemde çalışan Session sayısı kadar çıktı dosyası (zip) üretilecektir. Dokümantasyonda her bir parametreyi tek tek ele almayacağım. Konu çok uzayacaktır. Ancak Help sayfasında oldukça anlaşılır bir şekilde her parameter ayrı ayrı açıklanmış.

3.2 BloodHound Aracının Kullanımı

SharpHound aracımız ile bilgi topladıktan sonra bu bilgileri anlamlandırma ve inceleme noktasında BloodHound aracımıza başvuruyoruz. BloodHound aracımızı çalıştırmak için öncelikle neo4j’yi başlatmamız gerekmekte. Bunun için neo4j’nin yüklü olduğu klasörde bir komut satırı başlatıp net start neo4j komutunu çalıştırmamız gerekmekte. Ardından BloundHound klasörümüze girelim. Klasör içeriği aşağıdaki gibi olacaktır.

BloodHoundAD

Kendi sistem mimarinize uygun olan klasöre girin. Ben BloodHound-win32-x64 klasörüne giriyorum ve BloodHound.exe’yi çalıştırıyorum. Karşınıza aşağıdaki gibi bir doğrulama ekranı gelecektir.

BloodHoundAD

DB Username neo4j olacak. DB Password ise neo4j’ye ilk giriş yaptığınızda değiştirdiğiniz password olacak. Eğer değiştirmediyseniz DB Password’ünüz neo4j olacaktır. Eğer birkaç kez yanlış parola girdiyseniz belirli bir süre beklemeniz gerekecektir. Parolayı da girdiğimiz takdirde karşımıza aşağıdaki gibi bir ekran gelecek.

BloodHoundAD

Bütün işlemlerimizi bu ekran üzerinden yapacağız. Öncelikle karşımızdaki ekranı kabaca biraz tanıyalım.

Sağ menüde en üstte bulunan Refresh ikonu sayfayı tazelememizi sağlamakta.

Sağ menüde ikinci sırada bulunan Export Graph ikonu aracımızdaki çalışmamızı kaydetmemizi sağlamakta. JSON veya PNG formatında aktarımlar yapabilirsiniz.

Sağ menüde üçüncü sırada bulunan Import Graph ikonu daha önceden export ettiğimiz bir çalışma var ise bunu araca yüklememizi ve araçta görüntülememizi sağlamakta.

Sağ menüde dördüncü sırada bulunan Upload Data ikonu SharpHound aracımız ile topladığımız bilgileri BloodHound aracımıza yükleyip incelememizi sağlamakta. Bu noktada ister zip dosyasını istersek JSON dosyalarından herhangi birini veya birkaçını araca verebilmekteyiz. SharpHound’da toplamış olduğumuz bilgileri sürükle/bırak yaparak aracımıza yüklememiz de mümkün.

Sağ menüde beşinci sırada bulunan Change Layout Type ikonu incelemekte olduğumuz verinin görünüm tipini değiştirmemizi sağlamakta. Hiyerarşik veya Directed olarak görüntüleyebilmekteyiz.

Sağ menüde altıncı sırada bulunan Setting ikonu aracımız üzerinde bir takım ayarlamalar yapabilmemizi sağlamakta. Buradaki ayarlamalar genellikle analiz sırasında görünümdeki bazı detayların daha az veya daha fazla gösterilmesi üzerinedir. Ayrıca uygulamamızın Dark moduda bulunmaktadır ve yine buradan değiştirilebilir.

Sağ menüde yedinci ve son sırada bulunan About ikonu aracımızın versiyon bilgisi, lisansı, geliştirici bilgisi gibi bilgileri karşımıza çıkarmaktadır.

Sağ alt köşede ise inceleme yaparken ekranı yakınlaştırmak, uzaklaştırmak ve default görünümüne döndürmek adına üç farklı buton bulunmakta. Aynı işlemi faremizin Scroll’u ile de yapabilmekteyiz.

En altta bulunan Raw Query sayesinde neo4j veritabanının kabul ettiği formatta sorgular çalıştırabilirsiniz. Bu sorgu diline “Cypher Query Language” denmektedir.

Sol üst köşedeki menümüzden de bahsedelim.

BloodHoundAD

Database Info sekmesi topladığımız ve BloodHound’a yüklediğimiz bilgiler hakkında genel bir bakış yapmamızı sağlar. Refresh DB Stats butonu ile yüklü veritabanı istatistiklerini yeniler. Clear Sessions butonu oturumları temizler. Warm Up Database butonu veritabanı üzerinde yapacağınız sorguları hızlandırır. Clear Database butonu mevcut veritabanını siler. Log Out/Switch DB butonu ise giriş yaptığımız kullanıcı oturumundan çıkış yapmamızı sağlar.

Node Info sekmesi grafik üzerinde tıkladığımız düğüm hakkında bize geniş bilgiler sunar. Düğüm kavramı (düğüm yani node kavramı Graph Theory’den gelmektedir.) da işin içerisine girdiğine göre bir düğüme tıklayarak Node Info sayfasını sizlerle paylaşıyorum.

BloodHoundAD

Aşağıya indikçe daha detaylı bilgiler olduğunu görmekteyiz. Ayrıca seçmiş olduğumuz düğüm ile ilgili not ekleme ve görsel ekleme alanları da mevcut.

Queries sekmesi belki de en çok kullanacağımız alan olacak aracımızda. Görünümü aşağıdaki gibidir.

BloodHoundAD

Bu sekme BloodHound’a aktardığımız veritabanı ile ilgili hazır sorguları ve kendi oluşturduğumuz sorguları kolay bir şekilde çalıştırabileceğimiz alan. Yazdığımız bir sorguyu bu alanda kaydedebilir ve başka veritabanlarında tekrar oldukça kolay bir şekilde çalıştırabiliriz.

Yine sol üstte bulunan “Start typing to search for a node…” arama kısmı dikkatinizi çekmiştir. Bu alan yüklediğimiz veritabanındaki bir düğümü aramak için kullanılır. Hemen yanındaki yol ikonu Pathfinding işlemi yapmamıza yarar. Pathfinding iki düğüm arasındaki ilişkiyi görmemizi sağlayan alandır. Pathfinding işlemini aşağıdaki örnek üzerinden anlatalım.

BloodHoundAD

Görüldüğü üzere [email protected] ile DOMAIN [email protected] arasındaki ilişkiyi karşımıza getirdi.

Pathfinding’in hemen yanındaki Back ikonu son işlemi geri almamıza onun da yanındaki Filter Edge Types ikonu ise kenarları (kenar yani edge kavramı Graph Theory’den gelmektedir) sorguya dahil etmek ve sorgudan çıkarmak için kullanılmakta. Filter Edge Types sekmesi aşağıdaki gibidir.

BloodHoundAD

Bir Edge’i sorgudan çıkardıktan sonra grafik alanına sağ tıklayarak Refresh Layout demeliyiz. Refresh Layout butonuna tıklayana kadar yapılan değişiklikleri ekranda görmeyeceğiz. Sekmeleri kapatarak çalışırken daha fazla alan sağlamak adına sol üst köşedeki alt alta üç çizgi ikonuna tıklanabilir.

Aracın kullanımının tam manada oturması adına birkaç örnek Query çalıştıralım ve incelemesini yapalım. Queries sekmesinden “Find all Domain Admins” sorgusunu çalıştıralım. Karşımıza aşağıdaki gibi bir ekran gelmeli. (Elbette karşımıza gelen ekran incelediğimiz veritabanına göre değişecektir. Ben tüm örneklerde kendi hazırladığım ortamdan aldığım veritabanını kullandım.)

BloodHoundAD

Bu örneğimizde yalnızca bir adet Domain Admin bulunmakta. (Sağ tarafta sarı ikona sahip) Ve bu Domain Admin’e bağlı iki adet kullanıcı bulunmakta. Bunlar Administrator ve Mehmet Ayberk kullanıcıları. Eğer ekranda gözüktüğü gibi Node’ların altlarında bilgilendirme mesajları yok ise CTRL’e basarak veya sağ menüdeki Settings’in altındaki Node Label Display ayarı ile oynayarak bilgilendirme mesajlarını açabilirsiniz. Ayrıca çok karmaşık olmayan sorgu sonuçlarında yine Settings’in altındaki Node Label Display seçeneğini de Always Display olarak ayarlamak faydalı olabilir.

Daha kapsamlı bir başka sorgu örneği aşağıdaki gibidir.

BloodHoundAD

Tüm Domain Admin’ler, Controller’lar, User’lar, GPO’lar karşımızda listelenmiş durumda. Farklı senaryolara göre farklı sorgular yaparak ister Red Team tarafında ister Blue Team tarafında aracımızı kullanmak mümkün.

4 Cypher Query Language

Cypher Query Language, BloodHound içerisindeki veritabanlarını sorgulamamıza yarayan dildir. Cypher Query Language neo4j’nin bir nimetidir. Neo4j ilişkisel bir veritabanı olmamasına rağmen bir grafik veritabanıdır. Neo4j veritabanındaki her şey bir Node ve Edge olarak tanımlanmaktadır. BloodHound’u kullanırken Node’a karşılık gelen Active Directory nesneleri şunlardır:

  • User
  • Group
  • Computer
  • Domain

Edge’ler ise Node’lar arasındaki ilişkileri tanımlar. BloodHound aracındaki Edge’ler aşağıdaki ilişkileri temsil etmektedir:

  • MemberOf
  • AdminTo
  • HasSession
  • TrustedBy

BloodHound aracını kullanırken kendimize özel sorguları yazabilmek adına bu ön bilgiler gerekliydi. Şimdi BloodHound’un resmi dokümantasyonundaki birkaç sorguyu inceleyelim. Bu sorguları BloodHound aracından yapabileceğimiz gibi neo4j Browser üzerinden de gerçekleştirebiliriz. Örneğin topladığımız bilgiler arasından tüm Windows 7 makineleri aşağıdaki sorgu ile ekrana getirebiliriz.

MATCH (c:Computer)

WHERE toUpper(c.operatingsystem) CONTAINS “WINDOWS 7”

RETURN c

Hem kullanıcı hem de bir gruba üye olan tüm kullanıcıları listelemek için aşağıdaki sorguyu kullanmalıyız.

MATCH (c:Computer)-[r:MemberOf*1..]->(groupsWithComps:Group)

WITH groupsWithComps

MATCH (u:User)-[r:MemberOf*1..]->(groupsWithComps)

RETURN DISTINCT(groupsWithComps) as groupsWithCompsAndUsers

Peki önceden hazırladığımız ve daha sonraki very tabanlarını incelerken de kullanmak istediğimiz sorguları nasıl kaydedeceğiz? Kaydettiğimiz sorgular nerede gözükecek? Öncelikle bu soruya cevap verelim.

BloodHoundAD

Kaydettiğimiz sorgular Queries sekmesinin altındaki Custom Queries alanında gözükecektir. Ve kayıt işleminin ardından bu sekmeden sorgularımızı tek tık ile çalıştırabileceğiz. Bir sorgu kaydetmek için AppData\Roamin\bloodhound klasörüne gidin. Bu klasörde bulunan her dosya BloodHound başlatıldığında çalıştırılır. Örnek olarak tüm Windows 7 bilgisayarları getiren sorgumuzu kaydedelim. Bunun için customqueries.json dosyasını düzenlememiz gerekmekte. Dosyamızı herhangi bir metin editörü ile açıyoruz. İçeriği aşağıdaki gibi olacaktır.

{queries: []}

Aşağıdaki şekilde değiştiriyoruz.

BloodHoundAD

5 BloodHound.py

BloodHound’un birde Python ile yazılmış bir versiyonu bulunmakta. BlooudHound.py’yi indirmek için resmi GitHub Repo’sunu ziyaret edebilirsiniz. BloodHound.py yalnızca very toplamak için kullanılır. Esasında SharpHound’a karşılık geliyor desek çokta yanlış olmaz. Bu noktada eğer mecbur değilseniz BloodHound.py’yi kullanmanızı önermiyorum. Bunun en temel sebebi ise SharpHound’da bulunan tüm opsiyonların BloodHound.py’de bulunmaması.

6 PowerShell Ingestor

Doküman boyunca tüm örneklerimizi SharpHound.exe üzerinden ve BloodHound üzerinden gerçekleştirdik. Dokümanın başında hatırlarsanız veri toplama işlemini PowerShell scripti üzerinden de gerçekleştirebileceğimizden bahsetmiştim. Şimdi BloodHound klasörü altındaki Ingestors klasörünün içindeki SharpHound.ps1 scripti ile bilgi toplama işlemini nasıl gerçekleştirebileceğimizden bahsedelim. Scripti ayrıca GitHub Repo’sundan da indirebilirsiniz.

PowerShell Ingestor’u özellikle Domain’e bağlı olmayan bir bilgisayarda çalıştıracaksak tercih ediyoruz. Bende örneklerimi bu senaryo üzerinden gerçekleştireceğim. Domain’e dahil olan bir kullanıcı ile PowerShell istemcisi başlatmak için aşağıdaki komutu giriyoruz.

runas /netonly /user:MEHMETAYBERK.local\USER powershell

Bu komutu çalıştırdığımız takdirde bizden giriş yapmaya çalıştığımız kullanıcının parolasını isteyecektir. Parola bilgisini de girdikten sonra karşımıza yeni bir PowerShell istemcisi açılacaktır. Ardından yeni açılan PowerShell istemcisine Import-Module komutu ile PowerShell scriptimizi yüklüyoruz.

Import-Module Sharphound.ps1

Artık istemcimiz üzerinden bilgi toplamaya başlayabiliriz. Bunun için Invoke komutundan yardım alacağız. Invoke komutu PowerShell istemcisinde uzaktan kod çalıştırma işini üstlenir.

Invoke-BloodHound -ZipFileName ‘PATH/TO/ZIP.zip’ -JsonFolder ‘PATH/TO/folderas above’ -CollectionMethod All -Domain MEHMETAYBERK

7 BloodHound-Tools

BloodHound-Tools çeşitli araçlar topluluğudur. BloodHound-Tools’u resmi GitHub Repo’sundan indirebilirsiniz. BloodHound-Tools içerisinde üç farklı araç bulunmaktadır. Bunlar aşağıdaki gibidir.

  • DBCreator
  • BloodHoundAnalytics.pbix
  • BloodHoundAnalytics.py

Bu üç aracı kısaca tanımlayalım. DBCreator toplanan verilerin BloodHound ile kullanılabilmesi adına bir neo4j veritabanı oluşturur. BloodHoundAnalytics.pbix aracı grafikleri oluşturur ve son olarak BloodHoundAnalytics.py aracı scriptimizin çalıştırılmasını sağlamaktadır. Örnek kullanımı oldukça basittir. Terminalde python DBCreator.py komutunu çalıştırmamız yeterli olacaktır.

BloodHoundAD

Örnek veritabanımıza başarılı bir şekilde bağlandığımız zaman yukarıda gördüğünüz gibi Database Connection Successful! şeklinde bir bilgilendirme mesajı göreceksiniz. Ardından örnek bir veritabanı oluşturmak için dbconfig komutunu işleme almamız yeterli olacaktır. Ekran çıktısı aşağıdaki gibi olacaktır.

BloodHoundAD

Oluşturulan veritabanı otomatik olarak BloodHound’a aktıralacaktır.

Blog postu ile ilgili bir sorunuz varsa bizimle iletişime geçebilirsiniz.

Mehmet Ayberk ANNADINÇ

Size nasıl yardımcı olalım?

İhtiyacınız olan her an Prisma danışmanları yanı başınızda. Bizimle 7/24 iletişime geçebilirsiniz.


    Sızma testi hizmetlerimizi incelediniz mi?