16 Mayıs 2018 Çarşamba

Halka Açık Kablosuz Ağ Saldırıları 2



Merhabalar,

Bir önceki yazımızda, sahte kablosuz ağ oluşturarak kullanıcıların sistemlerini nasıl ele geçirebileceğimizden bahsetmiştik. Bu yazımızda da benzer isimli kablosuz ağımıza kullanıcıları çekerek eriştikleri web adreslerindeki kullanıcı bilgilerini ele geçirmeye çalışacağız.
Şifresi kullanıcılarla paylaşılan kablosuz ağları nasıl taklit edebileceğimize dair detaylara bir önceki yazımızdan ulaşabilirsiniz. Sahter kablosuz ağımızı oluşturmak için Wifi-Pumpkin aracından yararlanmıştık.
 “Eylul” ismindeki gerçek kablosuz ağını “EyluI” (sondaki küçük L harfi yerine büyük I harfini kullanarak) kendi kablosuz ağımızı oluşturduktan sonra, SET (Social Engineering Toolkit) ile kullanıcının erişim sağladığı web adresini taklit edeceğiz. Kablosuz ağımızın şifresinin, taklit ettiğimiz kablosuz ağın şifresi ile aynı olması, kullanıcının farklı bir ağa bağlandığının farkına varmasını zorlaştıracaktır.


Ekran Görüntüsü 1: Windows ortamında kablosuz ağ isimlerinin görüntülenmesi

Social Engineering Toolkit , içerisinde bir çok sosyal mühendislik saldırısı senaryosu içeren bir araçtır. Kali Linux içerisinde kurulu olarak gelmektedir.
SET aracını başlattığımızda bize nasıl bir senaryo hazırlamak istiyorsak ona göre yönlendirecek bir menü karşılıyor.
Social-Engineering Attacks > Website Attack Vectors > Credential Harvester Attack Method > Site Cloner yolunu izleyerek, web sitesinin bir kopyasını alarak kullanıcı bilgilerinin ele geçirilmesi senaryosunu seçiyoruz.


Ekran Görüntüsü 2: Kopya web sitesinin oluşturulması
Daha sonra kullanıcıların kullanıcı bilgilerini ele geçirdikten sonra hangi adrese yönlendireceğimizi belirliyoruz. Hangi siteyi klonlamak istiyorsak, site adresini giriyoruz ve kopya web adresi yayına başlıyor.
Ben bu senaryoda, popüler bir kariyer ve sosyal paylaşım adresini tercih ettim.
Daha sonra Wifi-pumpkin aracının DNS Spoofer modülü ile kullanıcıların gerçek web sitesine yaptığı DNS isteklerine kopya adresin yayın yaptığı IP adresinin cevap olarak dönülmesini sağlıyoruz.


Ekran Görüntüsü 3: Kullanıcı DNS isteklerinin yönlendirilmesi
Kullanıcı ilgili adrese gitmek isteğinde  SET aracı ile hazırladığımız kopya web sitesine ulaşacak. Bu adreste girmiş olduğu kullanıcı bilgileri bize iletilecek.


Ekran Görüntüsü 4: Kullanıcının www.linkedin.com adresinin DNS isteğine aldığı yanıt


Ekran Görüntüsü 5: Kullanıcı tarafında kopya websitesinin görüntülenmesi


Ekran Görüntüsü 6:Kullanıcı bilgilerinin ele geçirilmesi
Kullanıcı bilgileri ele geçirildikten sonra kullanıcının gerçek siteye erişebilmesi için DNS Spoofer modülü ile yaptığımız DNS yönlendirmesi kaldırılması gerekir.

Alınabilecek önlemler
--Halka açık olarak yayın yapan ve şifresi paylaşılan kablosuz ağları kullanılmamalıdır.
--Bu ağları kullanmak durumunda kalmanız halinde, benzer isimle başka bir kablosuz ağın olup olmadığı kontrol edilmelidir.
--Benzer isimde kablosuz ağ varsa, farklı işletim sistemine sahip bir sistem ile kablosuz isimleri kontrol edilebilir. Android, IOS işletim sistemlerinde kablosuz ağ isimlerindeki küçük farklılıklar daha belirgin olabiliyor.


Ekran Görüntüsü 7: Android ortamında kablosuz ağ isimlerinin görüntülenmesi
--Bağlantılarınız olağan dışı bir şekilde farklı adreslere yönlendiriliyorsa, yönlendirildiğiniz adreslerden dosya indirme işlemini gerçekleştirilmemelidir.
--Erişim sağlayadığınız web adresinin SSL sertifikasının, o adrese ait olup olmadığını kontrol ediniz. Bir şüpheniz olması durumunda bu siteden bir dosya indirilmemeli ve kullanıcı bilgileri paylaşılmamalıdır.
Bu yazı, kullanıcıların bilgi güvenliği farkındalığını arttırmak amacıyla yazılmıştır. Bu saldırının uygulanmasından doğacak yasal sorumluluk uygulayan kişilere aittir.
Bu yazı, BeyazŞapka Dergisi'nin Şubat 2018 sayısında yayınlanmıştır.

Halka Açık Kablosuz Ağ Saldırıları



Merhabalar,

Bu sayıda, şifresi paylaşılan halka açık kablosuz ağları kullanan, kullanıcılara uygulanabilecek bir saldırı senaryosunu ele alacağız.
Kafeler, havaalanları ya da kurumsal şirketlerin misafirleri için kullanılan kablosuz ağlarının şifresi genellikle açık olarak kullanıcılar ile paylaşılmaktadır. Saldırganlar, bu ağlara bağlanarak kullanıcılara saldırmak yerine benzer isimle kendi sahte kablosuz ağlarını kurarak, kullanıcıları bu ağ’a bağlanmasını sağlayarak saldırı gerçekleştirebilmektedirler.
Biz de senaryomuzu bu şekilde uygulayacağız. Halka açık kablosuz ağa benzer isimle bir kablosuz ağ kurup, şifresini de gerçek ağ ile aynı olacak şekilde yapılandıracağız. Böylece bağlantı sağlayan kullanıcıların, sahte kablosuz ağ’a bağlandıklarının farkına varmalarını zorlaştıracağız.
Daha sonrasında kullanıcının DNS isteklerini istediğimiz adrese gidecek şekilde yönlendirip, java güncelleme sayfasına bağlandıklarını görmelerini sağlayacağız. Java güncellemesi olarak indirip çalıştırdıkları dosya da, bizim kullanıcının sistemini ele geçirmemizi sağlayan arka kapıyı içermektedir.
Sahte Kablosuz ağ oluşturmak için Wifi-Pumpkin aracını kullanacağız. Bu araç aynı zamanda, dns isteklerini yönlendirebilmemizi ve sahte java güncelleme sayfası oluşturmamızı da sağlayacak.
Bizim senaryomuzda, Gerçek kablosuz ağın ismi “Eylul”, bizim oluşturduğumuz sahte kablosuz ağın ismi ise “EyluI” olacak. İlk bakışta, ikisi arasındaki fark belli olmuyor. Sahte kablosuz ağın isminin son harfi için küçük “L” harfi yerine büyük “I” harfini kullandık. Aynı isimle ağ oluşturduğumuz takdirde, kullanıcılar gerçek ağa bağlanırken de, sahte ağa bağlanırken de kimlik doğrulama sorunu yaşayacaklardır.


Ekran Görüntüsü 1: Sahte Kablosuz Ağ’ın Oluşturulması

Ekran Görüntüsü 1’de Sahte kablosuz ağımızın yapılandırmasını görebilirsiniz. Burada dikkat edilecek noktalar, daha öncede belirttiğim gibi ismin farklı olması ve şifrenin gerçek ağ şifresi ile aynı olmasıdır.
Daha sonra oluşturduğumuz arka kapı dosyasını, java güncelleme paketi olarak sunacak bir web sunucu için Wifi-Pumpkin aracının “Windows Update Attack Generator” modülünü kullanıyoruz.


Ekran Görüntüsü 2: Sahte Java güncelleme sayfasının oluşturulması
Web sunucu hazır olduktan sonra, DNS isteklerini yönlendirmek için DNS Spoofer modülünü aktif ediyoruz. Ben burada sadece “javaupdater.com” adresini yönlendirdim. Gerçek bir senaryoda, kullanıcının bütün isteklerini sahte java güncelleme sayfasına yönlendirerek, daha agresif bir saldırı gerçekleştirilebilir.


Ekran Görüntüsü 3: DNS isteklerinin yönlendirilmesi
Kullanıcı tarafında sahte java güncelleme sayfası aşağıdaki şekilde görünecektir.


Ekran Görüntüsü 4: Kullanıcı tarafında sahte Java güncelleme sayfası
Kullanıcının sayfayı ziyaret ettiğini aracın monitor kısmından takip edebiliriz.


Ekran Görüntüsü 5: Kullanıcının aktivitelerinin takip edilmesi
Kullanıcı dosyayı indirip çalıştırdığında da, arka kapının geri dönüş yapacağı handler üzerinden kullanıcının sistemi üzerinde oturum elde edilmiş oluyor.


Ekran Görüntüsü 6: Kullanıcı sistemi üzerinde oturum elde edilmesi
Alınabilecek önlemler
--Halka açık olarak yayın yapan ve şifresi paylaşılan kablosuz ağları kullanılmamalıdır.
--Bu ağları kullanmak durumunda kalmanız halinde, benzer isimle başka bir kablosuz ağın olup olmadığı kontrol edilmelidir.
--Benzer isimde kablosuz ağ varsa, farklı işletim sistemine sahip bir sistem ile kablosuz isimleri kontrol edilebilir. Android, IOS işletim sistemlerinde kablosuz ağ isimlerindeki küçük farklılıklar daha belirgin olabiliyor.
--Bağlantılarınız olağan dışı bir şekilde farklı adreslere yönlendiriliyorsa, yönlendirildiğiniz adreslerden dosya indirme işlemini gerçekleştirilmemelidir.
--Mutlaka bir uç nokta güvenlik ürünü kullanılmalıdır. İmza tabanlı olarak yada makine öğrenme yöntemi ile dosyaların güvenli olup olmadığı kontrol edilebilir.

-- İndirilen dosyaların otomatik olarak çalıştırılmasını engelleyen erişim kısıtlama politikaları kullanılabilir.




Not: Bu makale BeyazŞapka dergisinin Kasım 2017 sayısında yayınlanmıştır.
Bu köşede anlatılan yöntemler, bilgi güvenliği farkındalığını arttırmak adına anlatılmaktadır. Doğabilecek yasal sorumluluklar bu yöntemleri uygulayan kişilere aittir.

Oltalama e-Postalarında Punycode Kullanımı


Merhabalar,

Bu sayıda, Punycode’un oltalama e-postalarında kullanımı konusundan bahsedeceğim. Punycode nedir sorusunun cevabı ile başlayalım.

Punycode, Unicode karakterleri ASCII karakterlere çevirmek için kullanılan bir yöntemdir. Kayıt edilecek alan adında ASCII’de yer almayan karakterler kullanılacaksa, bu karakterler punycode ile ASCII karakterlere çevirilmelidir. Örnek olarak, kril alfabesi karakterleri verilebilir.[1]
Geçtiğimiz aylarda, punycode kullanılarak kayıt edilen bazı web adreslerinin gerçeği ile aynı görünüme sahip olabileceğini görmüştük. Saldırganlar, ücretsiz SSL sertifikası kullanarak senaryolarını daha gerçekçi hale getirmekteler.[2] Bu örnekte, saldırganlar kril alfabesindeki “a” harfinin latin alfabesindeki “a” harfine benzerliğinden faydalanmışlar.
Biz de bu yazıda, punycode’u oltalama saldırılarını daha gerçekçi kılmak için nasıl kullanabileceğimizi göreceğiz.

E-postalarda, iki farklı gönderen kısmı bulunmaktadır. Bunlardan birincisi SMTP komutlarından MAIL FROM: komutunun parametresi olarak girilen protokol gönderenidir. İkincisi ise mailin DATA komutundan sonra kullanılan From: alanında girilen zarf gönderenidir.
Kullanıcı tarafından kullanılan e-posta uygulamaları genellikle zarf gönderenini kullanmaktadır. Bu parametre manipülasyona açık olması sebebi ile saldırganlar tarafından oltalama saldırılarında sıklıkla tercih edilmektedir.
Aşağıdaki örnekte, msesli@gmail.com adresinden gelen e-posta kullanıcı tarafında sesli@mehmet.com adresinden gönderilmiş gibi görünmektedir.


Ekran Görüntüsü 1: Data kısmındaki From: parametresi manipüle edilmiş e-posta




Ekran Görüntüsü 2: Gönderilen e-posta’nın SMTP komutları
Bu senaryoda, mehmet.com alan adını kullanan bir e-posta adresine sesli@mehmet.com adresinden e-posta geliyormuş gibi gösteriyoruz. Normal şartlar altında, mehmet.com adresine mehmet.com e-posta sunucuları dışında bir sunucudan, gönderen kısmında mehmet.com olan bir mail gönderilemiyor olması gerekir.
SMTP Gateway ürünleri burada bu iki parametreyi de kontrol edebilir. Protokol göndereni de, zarf göndereninde de mehmet.com geçen maillerin bloklanması sağlanabilmektedir.
İşte bu noktada, punycode devreye giriyor. Zarf göndereninde yer alan adres punycode ile manipüle edildiğinde, SMTP gateway ürünleri bu kontrolleri varsayılan olarak yapmadığı için e-postalar  sunuculara iletilmektedir.
Aşağıdaki örnekte punycode kullanılan e-posta’nın SMTP komutlarını görüyoruz.


Ekran Görüntüsü 3: Punycode kullanılan e-posta’nın SMTP komutları



Ekran Görüntüsü 4:Punycode kullanılan e-posta’nın kullanıcı tarafındaki görünümü
Ekran görüntüsü 3’ten de görülebileceği gibi, Zarf göndereninde sesli@mehmet.com yerinde sesli@--xnmhmet-zwe.com kullanılmıştır. Bu iki adreste kullanıcı tarafında aynı şekilde görünmektedir. Bu yöntem ile SMTP gateway ürünlerinin yaptığı kontroller atlatılıp, kullanıcıya legal görünümlü e-posta ulaştırılabilmektedir.

Alınabilecek Önlemler;
--Öncelikle maillerin gerçek adreslerden kontrolünü sağlamak için SPF, DKIM kontrolü kullanılabilir.
-- Punycode kullanılan alan adlarının (IDN:Internationalized Domain Names) da kontrol edildiği bir siber istihbarat servisi kullanılabilir.
Böylece saldırıda kullanılacak alan adını, Siber İstihbarat servisinin sağladığı liste üzerinden kontrol ederek, oltalama e-postalarının engellenmesini sağlayabilirsiniz.
Nebula Siber İstihbarat servisi ile ilgili bilgi almak için aşağıdaki bağlantıyı kullanabilirsiniz.
--SMTP gateway ürününüzde, zarf göndereni de kontrol edilebilir.
Varsayılan olarak bu kontrol, bazı SMTP gateway ürünlerinde gerçekleştirilmeyebiliyor.
-- Aşağıdaki adresten alan adınızda yer alan karakterlerin diğer alfabelerdeki eşleniklerini belirleyip, kendi sözlüğünüzü hazırlayabilirsiniz. http://www.unicode.org/cldr/utility/confusables.jsp?a=&r=IDNA2008
Gelen postaların gönderen kısmındaki alan adını hazırlamış olduğunuz sözlük ile kontrol ederek oltalama e-postalarını engelleyebilirsiniz.
-- Sözlük yerine regex ile de bu kontrolü sağlayabilirsiniz. Senaryomuz için örnek regex;
^(?:xn--).*(?:m|e|h|t)(?:-)?
Burada alan adımızda yer alan m,e,h,t harflerini alternatifli olarak bir punycode kullanılmış bir alan adında geçip geçmediğini kontrol ediyoruz.
Saldırganlar, alan adlarında her seferinde farklı karakterin punycode alternatifini kullanabilmektedirler. Bu yüzden, alan adında yer alan her harfin latin alfabedeki halini içeren alan adlarını kontrol ediyoruz.
Ayrıca, SMTP gateway ürününde bu kontrolü yaparken, adres “–xn” ile başlıyorsa ve regexte yer alan şablonumuz ile eşleşiyorsa blokla şeklinde yapılandırırsak her mailde regex kontrolü yapılmayacağı için performans açısında da iyileştirme sağlayacaktır.
--Yapmış olduğum araştırmalarda, protokol göndereni ile zarf göndereni birbirinden farklı olan e-postaların engellenmesi için e-posta güvenlik ürünlerinde anti-spam kuralları olabilmektedir. Konu ile ilgili üreticinize danışmanızı öneririm.
Bir sonraki yazıda görüşmek üzere.
Kaynaklar;
[1]https://www.punycoder.com
[2]https://www.xudongz.com/blog/2017/idn-phishing/

Not: Bu makale BeyazŞapka dergisinin Ağustos 2017 sayısında yayınlanmıştır.
Bu köşede anlatılan yöntemler, bilgi güvenliği farkındalığını arttırmak adına anlatılmaktadır. Doğabilecek yasal sorumluluklar bu yöntemleri uygulayan kişilere aittir.

Windows Sistemler üzerinde yetkisiz oturum elde edilmesi


Merhabalar,

Bu sayıda Windows sistemler üzerinde yetkisiz oturum elde edilmesi konusundan bahsedeceğim.
Geçtiğimiz aylarda, yerel yönetici hesabı ile, alan adı hesaplarının oturumlarını şifre bilgisi olmadan elde edebildiğini gösteren makaleler yayınlanmıştı. Bu yazıda, Windows bir sistem üzerinde yerel yönetici olma yöntemini de ekleyerek bu senaryoyu tekrar ele alacağız.
Yerel yönetici olmak için de, domain kullanıcılarının oturumlarını elde etmek içinde ilgili sistemlere fiziksel erişim gerektiğini hatırlatmak isterim.
Bütün Windows sistemlerinde oturum açma ekranında sol alt köşede yer alan ikon Windows\system32 altındaki Utilman.exe dosyasını çalıştırmaktadır. Windows sistemi, Linux işletim sistemi ile boot edildikten sonra cmd.exe dosyasının adı Utilman.exe olarak, Utilman.exe dosyasının ismi de farklı bir isimle değiştirildiğinde, login ekranındaki ikon bize Utilman.exe yerine komut satırını getirecektir. Üstelik bu komut satırında SYSTEM yetkileri ile komut çalıştırabilir durumda olacağız.
SYSTEM yetkileri ile Windows işletim sistemi üzerinde herhangi bir kısıtlama olmadan komut çalıştırılabilmektedir.

Aşağıdaki ekran görüntüsünde standart bir Windows sistemin login ekranını görebilirsiniz.



Ekran Görüntüsü 1: Standart kullanıcı giriş ekranı
Bu ekran görüntüsünde ise manipülasyon sonrası Windows kullanıcı giriş ekranı görebilirsiniz.


Ekran Görüntüsü 2: Manipülasyon sonrası kullanıcı ekranı
Bu aşamada, “net user” komutu ile mevcut kullanıcılar listelenip, “net user <kullanıcı adı> *” komutu ile bu kullanıcının şifresini değiştirilebiliriz.
Windows sistem üzerinde yerel yönetici olduktan sonra, alan adı kullanıcıların oturumlarını şifre bilgisi olmadan elde edilmesine gelebiliriz.
Normal şartlar altında, yerel veya alan adı kullanıcıları, başka bir kullanıcının oturumunu almak istediğinde ilgili kullanıcının şifre bilgisi olmadan bu işlem gerçekleştirilememektedir.


Ekran Görüntüsü 3: Task Manager üzerinden oturum değiştirme ekranı
Benzer şekilde “tscon” komutu ile bu işlem gerçekleştirilmek istendiğinde de yetki hatası alınmaktadır.


Ekran Görüntüsü 4:Tscon komutu ile yetki hatası ekran görüntüsü
Psexec  aracı, Windows sistemler üzerinde uzaktan komut çalıştımamızı sağlayan bir araçtır. Bu araç ile yerel yönetici hesabı  kullanılarak sistem üzerinde “utilman.exe”(cmd.exe) çağırıldığında, sistem üzerinde SYSTEM yetkileri ile komut çalıştırılabilmektedir.


Ekran Görüntüsü 5: System yetkilerinde olduğumuzu gösteren ve mevcut kullanıcı oturumları listeleyen ekran görüntüsü
Bu aşamada, “query user” komutu ile mevcut oturumlar listelenir.
Ardından “tscon” komutu ile alan adı yönetici kullanıcısının RDP oturumunu yerel yönetici kullanıcısının RDP oturumuna yönlendiriyoruz.


Ekran Görüntüsü 6: Alan adı yöneticisinin oturumunun yerel yöneticinin RDP oturumuna yönlendirilmesi


Ekran Görüntüsü 7: Elde edilen alan adı yönetici oturumu
Alan adı yönetici oturumunun alınmasından sonra mevcut kullanıcı oturumları şu şekilde görünecektir.


Ekran Görüntüsü 8: Son durumda mevcut kullanıcı oturumları
Alınabilecek Önlemler;
Her ne kadar birinci senaryoda, fiziksel erişim gerekse de, şu önlemleri almak saldırıyı yüksek ihtimalle geçersiz kılacaktır.
--Disk şifreleme ürünü kullanılması.
--BIOS üzerinden ya da disk şifreleme ürünü ile boot işlemi sırasında kimlik doğrulama mekanizmasının kullanılması.
İkinci senaryoda da,
--Askıda kalan oturumların zaman aşımı süresi kısa tutulmalıdır.
--Hak yönetim yazılımları ile sistem üzerinde çalıştırılacak komutlar sıkılaştırılmalıdır.
Bir sonraki yazıda görüşmek üzere.

Not: Bu makale BeyazŞapka dergisinin Mayıs 2017 sayısında yayınlanmıştır.
Bu köşede anlatılan yöntemler, bilgi güvenliği farkındalığını arttırmak adına anlatılmaktadır. Doğabilecek yasal sorumluluklar bu yöntemleri uygulayan kişilere aittir.