dos arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Thu, 19 Apr 2018 19:46:31 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png dos arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | Mod Evasive ile DOS/DDOS Koruması https://canyoupwn.me/tr-mod-evasive-ile-dosddos-korumasi/ https://canyoupwn.me/tr-mod-evasive-ile-dosddos-korumasi/#respond Mon, 29 Aug 2016 17:46:13 +0000 https://canyoupwn.me/?p=4085 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

DOS/DDOS kavramını daha önceki yazımızda incelemiştik. Sunucularımızı bu saldırılardan korumamız için geliştirilen mod evasive yazılımının kurulumu ve konfigürasyonunu yapmaya başlıyalım. Test sistemimiz ubuntu server üzerinde apache çalışan bir sistem. Kurulum Kurulum için alttaki komutla mod evasive kurulumunu yapıyoruz. sudo apt-get install libapache2-mod-evasive Kurulum başarıyla tamamlanıp tamamlanmadığını kontrol etmek için; sudo apachectl -M | grep evasive […]

TR | Mod Evasive ile DOS/DDOS Koruması Mustafa Kaan Demirhan

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

DOS/DDOS kavramını daha önceki yazımızda incelemiştik. Sunucularımızı bu saldırılardan korumamız için geliştirilen mod evasive yazılımının kurulumu ve konfigürasyonunu yapmaya başlıyalım. Test sistemimiz ubuntu server üzerinde apache çalışan bir sistem.

Kurulum

  • Kurulum için alttaki komutla mod evasive kurulumunu yapıyoruz.
sudo apt-get install libapache2-mod-evasive

Ekran görüntüsü_2016-08-15_15-04-54

  • Kurulum başarıyla tamamlanıp tamamlanmadığını kontrol etmek için;
sudo apachectl -M | grep evasive

komutundan evasive20_module (shared)  çıktısını alıp almadığımızı kontrol edelim.

Ekran görüntüsü_2016-08-15_15-04-54

Konfigürasyon

  • Konfigürasyon için alttaki konumdaki dosyayı açıyoruz.
sudo nano /etc/apache2/mods-enabled/evasive.conf

Ekran görüntüsü_2016-08-15_15-04-54

  • Aktifleştirmek istediğimiz parametrelerin başından #  i kaldırıp gerekli düzenlemeleri yapmalıyız.

Ekran görüntüsü_2016-08-15_15-04-54

Parametreler

  • DOSHashTableSize: Kayıt kontrol sıklığı için tutulacak hash tablosu boyutu.
  • DOSPageCount: DOSPageInterval  parametresinde belirtilen zaman aralığında kaç istek yapılacağını belirler.
  • DOSSiteCount: DOSSiteInterval  parametresinde belirtilen zaman aralığında sayfadan çekilecek resim/css dosya limitlerini belirler.
  • DOSPageInterval: DOSPageCount  için zaman değeri.
  • DOSSiteInterval: DOSSiteCount  için zaman değeri.
  • DOSBlockingPeriod: Engellenen IP nin ne kadar süre engelleneceğini belirler.
  • DOSEmailNotify: Mail olarakbilgilendirme için mail adresi girilmelidir.
  • DOSLogDir: Logların tutulacağı dizini belirtir.

 

  • Gerekli konfigürasyonu kendi sistemimize göre ayarladıktan sonra ctrl+x  komutu ile dosyadan çıkıp dosyayı kaydediyoruz.
  • Ayarların geçerli olması için alttaki komutlardan biriyle apache yi yeniden başlatıyouz.
sudo service apache2 restart
sudo /etc/init.d/apache2 restart

Ekran görüntüsü_2016-08-15_15-04-54

Test

  • Kurulumumuzu test etmek için mod-evasive içerisinde gelen perl scripti çalıştırarak kurulumumuzu kontrol edebiliriz.
sudo perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

Ekran görüntüsü_2016-08-15_15-04-54

SS de görüldüğü üzere 403 dönüyor yani kurulumumuz başarıyla tamamlayıp test etmiş olduk.


TR | Mod Evasive ile DOS/DDOS Koruması Mustafa Kaan Demirhan

]]>
https://canyoupwn.me/tr-mod-evasive-ile-dosddos-korumasi/feed/ 0
TR | DOS / DDOS Türleri ve Servis Dışı Bırakma Testleri https://canyoupwn.me/turleriyle-dos-ddos-servis-disi-birakma-testleri/ https://canyoupwn.me/turleriyle-dos-ddos-servis-disi-birakma-testleri/#respond Wed, 22 Jun 2016 14:26:06 +0000 https://canyoupwn.me/?p=2893 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

SERVİS DIŞI BIRAKMA TESTLERİ (DOS – DDoS)   Merhabalar, Güvenliğin yapıtaşlarından biri olan erişebilirlik ilkesine göre hizmet halinde olan bir servis ya da sunucunun çalışmasının düzgün ve devamlı bir şekilde olabilmesi şarttır. DOS ataklarda ise düzgün ve devamlı çalışan servisler durdurulabilmekte, bu servislerin hizmet verebilmesi engellenmektedir. DOS saldırıları çeşitli şekillerde yapılabilmektedir. Yerel ağda bu testler […]

TR | DOS / DDOS Türleri ve Servis Dışı Bırakma Testleri CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

SERVİS DIŞI BIRAKMA TESTLERİ

(DOS – DDoS)

 

Merhabalar,
Güvenliğin yapıtaşlarından biri olan erişebilirlik ilkesine göre hizmet halinde olan bir servis ya da sunucunun çalışmasının düzgün ve devamlı bir şekilde olabilmesi şarttır. DOS ataklarda ise düzgün ve devamlı çalışan servisler durdurulabilmekte, bu servislerin hizmet verebilmesi engellenmektedir. DOS saldırıları çeşitli şekillerde yapılabilmektedir. Yerel ağda bu testler simüle edilerek saldırı testleri yapılabilir.

DOS ataklar hedef sistemin erişebilirliğini engellemek için yapılan ataklardır. DOS veya DDoS ataklar ile hedef cihaza devamlı paket gönderilerek hedef cihazın state tablosu doldurulabilir, CPU değerleri yükseltilerek veya hat taşırarak devre dışı kalması sağlanılabilir.

DDOS ise, dağıtık olarak yapılan servis dışı bırakma saldırılarıdır. Son kullanıcıların bilgisayarlarına zararlı yazılımların buluştırılması ile kontrol altına alınan ve uzaktan kötü amaçlar için kontrol edilen bilgisayarlara zombi adı verilmektedir. DDoS saldırılarında merkezi komut sisteminden verilen talimat ile zombi bilgisayarlardan üretilen paketler ile hedefe saldırıalar yapılarak hedefe olan erişim engellenir. Fast flux ağlar, phishing sitelerin, zararlı kod dağıtan sitelerin gizlenmesi için zombileri kullanan bir DNS tekniğidir. Fast flux ağlarda alan adı  birden fazla IP adresine sahiptir. Alan adına tekabül eden IP adresleri sürekli değiştirilir.

Özet olarak;

DOS; Sistemleri çalışamaz hale getirmek için yapılan saldırı tipi

DDOS;  DOS saldırısının yüzlerce, binlerce farklı sistemden yapılması

İleride DOS ile DDoS arasındaki farklılıkları daha net olarak görebileceksiniz.

 

OSI KATMANI VE KATMANLARA GÖRE DOS/DDoS Çeşitleri

OSI KATMANI

İki bilgisayar arasındaki iletişimi biçimsel olarak tanımlayan ilk kuruluşlardan birisi ISO (International Organization for Standardization) ‘dur. ISO uluslararası veri iletişimi standartları geliştiren bir kuruluştur. ISO 1970’lerde OSI (Open Systems Interconnection) mimarisini geliştirmiştir. OSI ağ sistemleri için bir kılavuz niteliği taşır. OSI öncesinde donanım üreticilerinin kendilerine özgü ağları bulunmakta ve farklı üreticilere ait donanımlar arası uyumsuzluk ortadan kalkmış ve bilgisayarlar arası iletişim ortak bir standarda oturtulmuştur.

OSI yedi katmana ayrılmıştır ve iletişim esnasında kullanılan protokoller ve donanımlar bu katmanlarda yer alır. İki bilgisayar arasında veri iletimi gerçekleştirileceği zaman veriyi gönderen için iletim en üst katmandan başlar alt katmana doğru devam eder bu işleme Encapsulation adı verilir. Veri alan için ise durum tam tersidir. Yani gelen veri en alt katmandan başlar ve üste doğru devam eder  bu işleme ise De-Encapsulation adı verilir. En üst katman kullanıcıya daha yakın olup uygulamaları içerirken alt katmanlara doğru veri makine diline ve en son bit seviyesine kadar düşer. OSI modeli sayesinde bir donanım veya protokolün ağ içerisindeki görevi daha kolay açıklanabilir.

OSI modelinde katmanlar birbirinden kesinlikle bağımsız değildir. Her katman kendinden önce gelen katmana hizmet eder.

 

659cs

 

(Şekil1.OSI KATMANI)

 

KATMANLARA GÖRE DOS/DDoS Çeşitleri

Tüm katmanlara göre bazı DOS çeşitleri vardır.

659cs

(Şekil2. OSI KATMANI VE OSI’ye GÖRE DOS/DDOS ÇEŞİTLERİ)

 

Fiziksel Katmanda DOS Saldırıları

Bu katman verinin kablolar üzerinden iletiminden sorumludur ve verinin içeriğiyle ilgilenmez. Verinin elektrik, ışık veya radyo sinyallerine çevrim şekli ve aktarımını tanımlar. Veriyi gönderen taraf   1 ve 0’lardan oluşan veriyi iletim şekline göre (ışık,radyo veya elektrik) çevrimini, alıcı taraf ise gelen sinyallerin 1 ve 0’lara çevirir. Ağ cihazlarından HUB’lar fiziksel katmanda tanımlıdır. Fiziksel katman iletişim türleri; RS-232, 10Base-T, 100Base-TX, ISDN, DSL vb…

 

Ağ Kablolarına ve Donanımlara Zarar

Direk olarak network ün ayakta durmasını sağlayan donanımlara ve kablolara zarar verilmesidir. Fiziksel olarak sunucular, routerlar, hublar veya switchlere zarar verilmesi ve kapatılması network ün durmasına sebep olur. Fiziksel saldırılar DOS saldırı türleri arasında en tehlikelidir geri dönüşümü olmayan zararlar verilebilir. Hem maddi hem manevi büyük zararlar verilebilir.

 

Frekans Bozumu (Jamming) Saldırısı ve Önlemleri

(Şekil3. Jamming)

Düğümlerin kullandığı radyo frekansını bozan bir saldırı türüdür. Kötü niyetli bir düğüm, normal düğümlerin yolladığı radyo frekansında alıcı antene sinyal yollar. Alıcı normal düğümlerin yolladığı sinyalleri bu saldırı nedeniyle alamaz. Özellikle tek frekanslı ağlarda bu tür saldırı çok kolay yapılabilmektedir. Saldırıya uğrayan bir düğüm için en basit korunma methodu sadece “uyumak”tır. Bununla birlikte uyuma pasif bir korunma methodudur. Daha bir ileri korunma methodu, spektrumu yayıp, frekans sıçraması yapmaktır. Eğer “frekans bozumu” saldırısı mevcut ise, trafiği yeniden yönlendirmek de bir çözüm olabilmektedir. Şekil 3.te trafiğin yeniden nasıl yönlendirildiği gösterilmiştir. Örneğin j alanında frekans bozum saldırısı olduğundan bu alandan normalde hiç bir gerçek trafik geçmemektedir. Bu alanın dışında ki bir düğüm, bu bölgeden olağan dışı bir gürültü sezebilir ve üzerinden geçen trafiği farklı bir yol kullanarak yollayabilir.

 

Data Link Katmanında DOS Saldırıları

Fiziksel katmana erişim ile ilgili kuralları düzenler. Bu katmanda gerçekleştirilen işlemlerin büyük bölümü ağ arayüz kartı içerisinde geçekleştirilir.

Bu katman ağdaki bilgisayarların tanımlanması, hattın hangi bilgisayar tarafından kullanıldığının belirlenmesi ve fiziksel katmandan gelen verinin hata denetimi görevini yerine getirir. Eğer veri ağ katmanından geliyorsa ağ katmanından aldığı verilere hata kontrol bitleri ekleyerek fiziksel katmana aktarmayı gerçekleştirir. İletilen verinin doğru mu yoksa hatalı mı iletildiğini eklediği hata bitleri ile kontrol eder ve hatalı iletilmişse tekrar gönderir.

Veri bağlantı katmanı LLC (Logical Link Control) ve MAC (Media Access Control) alt katmanları olmak üzere iki bölümden oluşur. MAC alt katmanı, ağ katmanından gelen veriye hata bitlerini, alıcı ve gönderici MAC adreslerini ekleyerek fiziksel katmana aktarır. MAC alt katmanı veriyi alan tarafta da aynı işlemlerin tersini yapıp veriyi LLC alt katmanına aktarır. LLC alt katmanı, ağ katmanından geçiş görevi görür. LLC alt katmanı alıcı-gönderici bilgisayarlarda aynı protokollerin kullanılması ve bozuk paketlerin tekrar gönderilmesini sağlar. Ayrıca akış kontrolü ile aşırı yüklenmeyi önler. Bu katmanda Ethernet,Token Ring, FDDI,ATM,Frame Relay ve PPP iletişim kuralları bulunmaktadır.

Ağ cihazlarından switch ve bridge data link katmanında tanımlıdır.

 

ARP Flood

ARP önbelleklerini varolmayan MAC adresleri ile güncellemek frame`lerin düşürülmesine sebep olacaktır. Bu bir DoS saldırısı amaçlı olarak ağdaki tüm istemcilere gönderilebilir.

 

Wi-Fi Deauth.

Bir Wi-Fi ağına De-authentication paketleri göndererek bağlantı kesilebilir.

1

(Şekil4. Wi-Fi De-Auth. Attack)

 

Network Katmanında DOS Saldırıları

Bu katman gelen veri paketlerinin ağ adreslerini kullanarak uygun ağlara yönlendirilmesini sağlar. Ayrıca, ağdaki cihazların adresleme işlemlerini gerçekleştirir. Router ve yönetilebilir switch bu katmanda yer alır. Ayrıca veri paketi farklı bir ağa yönlendirilecekse router’ların kullanacağı bilgi bu katmanda eklenir.

Temel görevi, taşıma katmanından gelen istekleri cevaplandırmak ve bu hizmetleri Veri Bağı katmanına iletmektir. IP, ARP, ICMP, IPSec, IPX ve AppleTalk bu katmanda kullanılan protokollerdir.

 

ICMP Flood

ICMP (Internet Control Message Protocol) sistemler arası iletişim ve hata ayıklama amacıyla kullanılan bir protokoldür. Aslında hiçbir kod yazmadan, command prompttan “ping -t example.com.tr” ile DOS saldırısı gerçekleştirilebilir. Ancak cmd’den gönderilen ping komutu ile 32 bytes’lık bir ICMP paketi gönderiliyor. Eğer daha büyük ICMP paketleri oluşturup, ping atarsak hedef sistemi daha fazla yorarız. Send metodumuzu aşağıdaki gibi düzenleyerek ICMP flood yapabiliriz.

659cs(Şekil5. ICMP Flood)

 

 

Main metodundaki threadden SendPing metodunu çağırıp, uygulamayı çalıştırdığınızda flood yapmaya başlayacaktır.

 

(Şekil6. ICMP Flood)

Soldaki flood yapan uygulama. Sağdaki command prompt. Sürekli 793 bytes’lık ICMP paketleri gönderiliyor.

Daha spesifik kodlar geliştirerek veya farklı araçlardan yararlanarak daha güçlü saldırılar yapılabilir.

 

Transport Katmanında DOS Saldırıları

Bu katman 5-7 ve 1-3 katmanları arasındaki bağlantıyı sağlar. Üst katmandan gelen veriyi bölümlere ayırarak alt katmanlara, alt katmandan aldığı bölümleride birleştirerek üst katmana gönderir. Ayrıca akış kontrolü ile verinin alıcısına ulaşıp ulaşmadığını ve bölümlere ayrılan verinin aynı sırada birleştirilmesini sağlar. Veri iletimini gerçekleştiren TCP,UDP,SPX,SCTP ve DCCP protokolleri bu katmanda yer alır.

 

SYN Flood

Normal olarak bir istemci bir sunucuya TCP bağlantısı başlatma isteğinde bulunduğunda, sunucu ve istemci bir dizi mesaj takas eder ve bu durum şöyle işler:

  1. Adım : İstemci sunucuya bir SYN (synchronize) mesajı göndererek bir bağlantı kurmak ister.
  2. Adım : Sunucu bu mesajı, SYN-ACK mesajlarını istemciye dönerek, kabul eder.
  3. Adım : İstemci ACK ile yanıt verir ve bağlantı kurulmuş olur.

Bir SYN saldırısı, sunucuya beklenen ACK kodunu göndermeyerek çalışan bir ataktır. Kötü niyetli istemci ya basit bir şekilde beklenen ACK’yı göndermez ya da sahte IP adresi kullanarak SYN’deki IP adres kaynağını zehirler(spoofing). Çünkü sunucu sahte IP adresine SYN-ACK göndermeye çalışır. Ancak ACK gönderemeyecektir çünkü o adresle bir SYN gönderilmediğini bilir.

Sunucu bir süre acknowledgement(kabul) için bekleyecektir. Fakat saldırılarda bu istekler sürekli artan şekilde olduğundan sunucu yeni bağlantı oluşturamaz duruma gelir. Ve sunucu devre dışı kalır.

 

Uygulama Katmanında DOS Saldırıları

Kullanıcıya en yakın katman olup kullanıcı tarafından çalıştırılan tüm uygulamalar bu katmanda yer alır. Uygulamalar ile ağ arasındaki arabirimdir. Dosya paylaşımı, e-mail veya veritabanı yönetimi gibi işlemlerin gerçekleştirildiği katmandır. Uygulama katmanında http,SMTP,POP,DHCP,FTP,Telnet,DNS gibi protokoller kullanılır. Örneğin, bir kullanıcı bir web sayfasını ziyaret etmek için tarayıcıyı açması uygulama katmanında gerçekleştirilir. Çünkü, http uygulama katmanı protokolüdür.

 

DNS Amplification Saldırısı

Saldırıyı gerçekleştiren taraf recursive DNS sunuculara değiştirilmiş kaynak IP li sorgular gönderir. Recursive DNS sunucu bu sorguların yanıtlarını kurbanın IP adresine döner.

Saldırgan küçük DNS sorguları gönderir, çok fazla DNS kaydı olduğu bilinen bir alanadı için “ANY” paremetresi kullanılarak tüm kayıtlar istenir. Sorgu paketleri 60byte seviyelerindeyken dönülen cevap 3-4kb seviyesinde olabilir. Buda yaklaşık 50-70 katı bir kuvvetlendirme sağlar. Saldırgan küçük DNS sorgularını fazla sayıda recursive DNS sunucuya gönderebilir, ve tüm sunucular kurbana yanıtları döner. Bu yöntem ile kısa süre içerisinde kurbana ezici bir trafik yönlendirilmiş olur.

 

Katmanlara göre DOS/DDoS Saldırıları temel olarak bu şekildedir.

Bir sonraki makalede görüşmek dileğiyle…

 

TR | DOS / DDOS Türleri ve Servis Dışı Bırakma Testleri CanYouPwnMe

]]>
https://canyoupwn.me/turleriyle-dos-ddos-servis-disi-birakma-testleri/feed/ 0
TR | DNS Amplification Attack https://canyoupwn.me/dns-amplification-attack/ https://canyoupwn.me/dns-amplification-attack/#respond Fri, 11 Mar 2016 23:39:45 +0000 https://canyoupwn.me/?p=998 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

DNS Nedir? İnternet ağını oluşturan her birim sadece kendine ait bir IP adresine sahiptir. Bu IP adresleri kullanıcıların kullanımı için www.site_ismi.com gibi kolay hatırlanır adreslere karşılık düşürülür. DNS sunucuları, internet adreslerinin IP adresi karşılığını kayıtlı tutmaktadır. Örn: 216.58.209.174 yerine google.com domain adresini yazmak gibi DNS, UDP temelli basit bir protokolddür. Dns dendiğinde akla DNS istediği ve DNS […]

TR | DNS Amplification Attack CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

DNS Nedir?

İnternet ağını oluşturan her birim sadece kendine ait bir IP adresine sahiptir. Bu IP adresleri kullanıcıların kullanımı için www.site_ismi.com gibi kolay hatırlanır adreslere karşılık düşürülür. DNS sunucuları, internet adreslerinin IP adresi karşılığını kayıtlı tutmaktadır.

Örn: 216.58.209.174 yerine google.com domain adresini yazmak gibi

DNS, UDP temelli basit bir protokolddür. Dns dendiğinde akla DNS istediği ve DNS cevabı gelmektedir. Bir DNS istek paketin 40-60 Byte civarındadır(alt protokol dahil). DNS cevabı değişir alan adı durumlarına göre ve 512 Byte’dan küçük olmalıdır. Eğer 512 Byte’dan büyük ise TCP üzerinden dönüş yapmak ister.

DNS Güvenlik Zafiyetleri

 

Dns çok önemli bir protokol olduğundan hem güvenlik uzmanlarının hemde hackerlar tarafından sık sık kurcalanmaktadır ve güvenlik zafiyetleri yayınlanır. Genel olarak bu zafiyetleri 3 şekilde gruplandırılabilir.

  • DNS sunucusunun çalışmasını durdurabilecek zafiyetler
  • DNS sunucusunun güvenliğini sıkıntıya sokacak zafiyetler
  • DNS sunucuyu kullanan kullanıcının güvenliğini sıkıntıya sokabilecek zafiyetler

 

Amplified DNS Dos Saldırısı

Bu saldırı türü DNS sunucusunun çalışmasını durdurabilecek bir saldırı çeşitidir. Saldırının temel mantığı şudur: Bir DNS isteğine dönecek cevabın kat kat fazla olmasıdır. Sisteme gönderilecek 50 byte’lık bir DNS istediğine 500 Byte~ cevap döndüğü düşünülürse saldırgan elindeki bant genişliğinin 10 katı kadar saldırı trafiği oluşturabilir.dns-amplification-attack-big

  • Saldırgan Botnet ağına rekursif sorguya açık bir DNS sunucusu bulur ve daha önce hazırladığı özel alan adını sorgulattırır.
  • Ara DNS sunucu kendi ön belliğinde olmayan isteği gidip ana DNS sunucuya sorar.
  • Ana DNS bizi site isim boşluğuna yönlendirir ve ara DNS sunucu cevabı ön belleğine alarak bir kopyasını saldırgana döner. Buradaki amaç ara DNS sucununun dönen 500 Byte’lık cevabı ön belliğine almasını sağlamaktır.
  • Saldırgan Kurban’ın IP adresindn geliyormuş gibi sahte DNS paketleri gönderir. DNS paketleri gönderir. DNS paketlerin host’u sorgulamaktadır. Ara DNS sunucu gelen her paket için 500 byte’lık cevabı kurban sistemlere dönmeye çalışacaktır. Böylelikle bant genişliğini azaltacaktır.

Tsunami Tool ile Saldırı

Saldırıyı tsunami adında bir uygulama ile gerçekleştirebiliriz. Bu adresten edinebilirsiniz.

http://www.infosec-ninjas.com/files/tsunami-0.0.9.tar.gz

Uygulama kurulumu:

wget http://www.infosec-ninjas.com/files/tsunami-0.0.9.tar.gz

apt-get install dh-autoreconf libpcap-dev nload

cd tsunami-0.0.9/

./configure

Make

Örnek saldırı:

[attack] ./tsunami -s 192.168.20.103 -n google.com -p 1 -f recursive_dns.txt
[scan] ./tsunami -o recursive_dns.txt -l 4 -e 172.0.0.0/8

-s : Hedef IP Adres

-i : Kullanılacak Interface

-n : optional domain name . Default olarak geçerli hostname

-p : Her Dns server a gönderilecek paket sayısı.  Default  1

-f : Saldırı için recursive dns servers dosyasını aç

-o : Taranmış olan ip adreslerini dosyaya yaz.

-q : Query type. Default 1

-c : Query class. Default 1

-r : Rasgele recursive dns server listesi kullanma

-h : sadece EDNS0 kayıt eder.

-e : EDNS0 kayıt etme

-t : Zaman Aşımı. Default 3 saniye

MZ Tool ile Saldır

Uygulama kurulumu:

sudo apt-get install mz

ile uygulama kurulumu gerçekleştirilebilir.

Örnek Kullanımı:

# mz -A 5.5.5.5 -B 1.2.39.40 -t dns “q=google.com” -c 1000
  • Burada kaynak ip 5.5.5.5 gibi gösterip 1.2.39.40 a 1000 paket gönderdik. mz bize rastgele dns sorguları üretme yeneteği sağlanmaktadır.

TR | DNS Amplification Attack CanYouPwnMe

]]>
https://canyoupwn.me/dns-amplification-attack/feed/ 0
TR | SNMP Attacks https://canyoupwn.me/snmp-attacks/ https://canyoupwn.me/snmp-attacks/#respond Fri, 11 Mar 2016 09:16:41 +0000 https://canyoupwn.me/?p=1019 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

SNMP Nedir? SNMP Attacks nedir bunu kavrayabilmek için öncelikle SNMP nedir onu öğrenelim. SNMP routerları, switchleri, serverları, printerları  kısaca networke bağlı aygıtların yönetimini sağlayan bir internet protokolüdür. SNMP OSI modelinin 7.katmanında yani application katmanında işler. SNMP iki framework kullanır. Structure of Management Information(SMI) SMI nesneleri isimlendirmek, nesne tiplerini belirlemek, nesnelerin ve değerlerinin nasıl encode edildiğini […]

TR | SNMP Attacks CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

SNMP Nedir?

SNMP Attacks nedir bunu kavrayabilmek için öncelikle SNMP nedir onu öğrenelim. SNMP routerları, switchleri, serverları, printerları  kısaca networke bağlı aygıtların yönetimini sağlayan bir internet protokolüdür. SNMP OSI modelinin 7.katmanında yani application katmanında işler.

Snmp Basics

Simple Network Management Protocol

SNMP iki framework kullanır.

  • Structure of Management Information(SMI)
    SMI nesneleri isimlendirmek, nesne tiplerini belirlemek, nesnelerin ve değerlerinin nasıl encode edildiğini göstermek için genel kuralları tanımlar.
  • Management Information Base(MIB)
    Adından da anlaşıldığı üzere bu framework bilgilerin yönetildiği bir üs gibidir. MIB nesnelerin isimlerini, türlerini ve nesnelerin birbirleri arasındaki ilişkileri oluşturan bir yapıdır.

 

SNMP 3 temel anahtar içeriğe sahiptir.

  • Managed Device
  • Agent
  • Network Management System

SNMP Paket Türleri

SNMP üzerinde bulunan 7 adet paket türü

  • GetRequest (Manager To User)
  • SetRequest (Manager To User)
  • GetNextRequest (Manager To User)
  • GetBulkRequest (Manager To User)
  • Response (Agent to Manager)
  • Trap (Agent to Manager)
  • InformRequest (Manager to Manager)

SNMP Versiyonları

  • SNMP Version 1 : En eski ve en temel versiyon olan SNMP Version 1 güvenlik açısından eksik kalır. Sadece 32 bit counterları destekler.
  • SNMP Version 2c : Version 1 ile hemen hemen aynıdır. Fakat 64 bit counterları da destekler.
  • SNMP Version 3 : Son ve en güvenilir versiyondur. Encryption ve Authentication içerir.

Gelelim asıl konumuza, SNMP Attacks.

SNMP Attacks

Öncelikle öğrendiklerimizin üstünden geçelim ve neler yapılabilir aşama aşama gidelim. İlk olarak az önce okuduğunuz paket türlerinden bu konuda işimize yarayanı ele alalım.

  • GetBulkRequest 

Bu paket sistemimiz üzerindeki araçların bir çok değerini hafızaya kaydeder. Örneğin yazıcımızın ismini, ne tarz toner kullandığını, router üzerindeki IP adreslerini ve benzer bilgileri kaydeder. Burdan çıkarmamız gereken sonuç şudur. GetBulkRequest manipule edilerek karşılaştığımız sistem hakkında kritik bilgilere ulaşabiliriz. Daha da önemlisi hedefe 87 byte’lık bir getBulkRequest yolladığımızda tüm cihazların verilerinin toplamında 60k byte’a yakın parçalanmış veri geri döner. Yolladığımız veriden 700 kat daha büyük bir veri. Bu öğrendiğimiz bilgiyi biraz daha ileri götürelim. Sürekli olarak sisteme getBulkRequest attığımızı düşünelim. En sonunda erişeceğimiz nokta Denial Of Service !

SNMP Attacks

SNMP Attacks – DOS

 

  • Versiyon Kaynaklı Saldırılar

Az önce Version1 ve Version2c’nin güvenlik açısından eksik olduğundan bahsetmiştim. Nedenini Version3’ten az da olsa kestirebilirsiniz. Bu iki versiyonda veriler plain-texttir. Herhangi bir encryption kullanılmaz. Şifreler plain-text olduğundan dolayı network trafiğinden doğruca snifflenebilir.

  • Default Configuration

Default Configuration kullanılması durumunda değiştirilmemiş kullanıcı ismi ve şifre ile sisteme girilebilir. Sistemdeki “Public” ve “Private” community stringlere erişilebilir.

a.Public Community String, bize sistem üzerinde sadece okuma izni olan yerlere erişim imkanı sağlar. Yani Management Information Base(MIB)’e erişimimiz olur. Burada tutulan her veriyi okuyabiliriz. Network arayüzleri, bağlantılar, Sistem versiyonu, dolaylı olarak sistem üzerinde bulunan zaafiyetleri burada okuduğumuz veriler sayesinde öğrenebiliriz.

b.Private Community String, sistem üzerinde hem okuma hem yazma iznine sahip olmamızı sağlar. Yazma iznimiz olduğuna göre Network Arayüzlerini down duruma getirerek başka bir Denial Of Service Attack yapabiliriz. Burada yapılacak başka bir yöntem de yönlendirmeler üzerinde oynayarak başka sistemleri üzerimize yönlendirip bu sistemlere erişim sağlamaktır.

 

Özet olarak; Simple Network Management Protokolü tanımış olduk. Çalışma mekanizması hakkında fikirler edindik. Edindiğimiz fikirler doğrultusunda sistemi zarara uğratmaya neler sebep olur, bunları gördük. Bu bilgilerin üzerine bir şeyler koyup daha iyilerini yapabilmek size kalmış.

Bir sonraki yazıda görüşmek üzere !

TR | SNMP Attacks CanYouPwnMe

]]>
https://canyoupwn.me/snmp-attacks/feed/ 0
TR | IP Fragmantasyonu ile DOS Saldırısı https://canyoupwn.me/tr-ip-fragmantasyonu-ile-dos-saldirisi/ https://canyoupwn.me/tr-ip-fragmantasyonu-ile-dos-saldirisi/#respond Mon, 29 Feb 2016 10:27:48 +0000 https://canyoupwn.me/?p=784 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Bu çalışmada servis dışı bırakma saldırıları olarak bilinen (denial of service) dos saldırılarından biri gerçekleştirilecektir. Bu saldırıyı gerçekleştirmeden önce dos saldırısının ne olduğu bilinmelidir. Dos saldırısı bilgisayar sistemlerini çalışamaz hale getirmek için gerçekleştirilen saldırılardır. Burada amaç hedef sistemden veri sızdırmak değil, hedef sistemin sağlıklı olarak çalışmasını önlemektir. Dos saldırısı birçok farklı yöntemle gerçekleştirilebilir. Bu yazıda dos […]

TR | IP Fragmantasyonu ile DOS Saldırısı CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Bu çalışmada servis dışı bırakma saldırıları olarak bilinen (denial of service) dos saldırılarından biri gerçekleştirilecektir. Bu saldırıyı gerçekleştirmeden önce dos saldırısının ne olduğu bilinmelidir. Dos saldırısı bilgisayar sistemlerini çalışamaz hale getirmek için gerçekleştirilen saldırılardır. Burada amaç hedef sistemden veri sızdırmak değil, hedef sistemin sağlıklı olarak çalışmasını önlemektir. Dos saldırısı birçok farklı yöntemle gerçekleştirilebilir. Bu yazıda dos saldırıları içerisinde pek popüler olmayan, ip fragmantasyonu yöntemi ile dos saldırısı gösterilecektir.

Ip fragmantasyonu ile dos  atağından  bahsetmeden önce ip fragmantasyonundan ve bunun saldırıda nasıl kullanılacağından bahsedelim. Bir ip datagramı bir düğümden diğerine seyahat ederken farklı fiziksel ağlar üzerinden geçmektedir. (Internetworking) Her fiziksel ağın desteklemiş olduğu maksimum çerçeve boyutu ise birbirinden farklıdır. Örneğin Ethernet fiziksek ağı en fazla 1500 bayt çerçeve uzunluğuna sahip ip paketleri taşıyabiliyorken, ATM 9180, 802.5 4465, X25 de 526 baytlık çerçeve uzunluğuna sahip paketleri taşıyabilmektedir.  Bir ip datagramının uzunluğu ise 65536 bayttır. Bu boyuttaki verinin hedef sisteme iletilebilmesi için daha küçük parçalara ayrılması gerekir. Bu işi uç düğümlerde çalışan TCP protokolü yerine getirmektedir.(Bknz TCP Segmentation) Fakat ağ üzerinde seyahat eden ip paketleri farklı fiziksel haberleşme altyapıları üzerinden seyrettiklerinde TCP nin parçalamış olduğu ip datagramlarının boyutları bu haberleşme altyapılarına uyum gösterememektedir. Bu durum aşağıda gösterilmiştir.

Ekran Alıntısı

Şekilde görüldüğü gibi Ethernet altyapıya sahip A PC sinden  çıkan ip paketi 1500 bayt büyüklüğünde olup, hedefe giderken,  X25 altyapısına sahip bir başka ağ ile karşılaşmıştır. X25 haberleşme altyapısı ise en fazla 526 bayt büyüklüğünde paketlerin oluşturulmasını desteklemekte olup, 1500 baytlık ip paketinin bu altyapı üzerinden iletilmesi için parçalanması gerektiği anlaşılmaktadır.  Burada router ip paketini parçalar ve bu parçaları B PC’sine gönderir. B PC’sinin bu paketleri anlamlandırabilmesi için ip paketlerini yeniden birleştirmesi gerekmektedir. (Reassemble) Yeniden birleştirme işlemi yalnızca uç düğümlerde –bu örnek için PC B de– ip katmanında gerçekleştirilebilmektedir. Bu paketlerin ip katmanına iletilebilmesi için eksiksiz olarak uç düğüme ulaşmaları gerekmektedir. Uç düğümde fragmantasyona uğraşmış paketin parçaları birleştirilmeden önce eksiksiz olarak alınıp daha sonra IP katmanına iletilmesi için bir buffer tahsis edilir.

Bu buffer ip katmanı ile veri bağı katmanı arasında yer almaktadır.(mantıksal olarak) Uç düğüm fragmante edilmiş paketleri aldığında ip katmanında birleştirme işlemini icra eder. Aşağıdaki şekilde bu proses gösterilmiştir.

image

Birleştirilme işleminde aşırı zaman ve bellek kaybı oluşmaması amacıyla bir zamanlayıcı kullanır. Zamanlayıcı ilk ip fragmanı alındığında başlar ve set edildiği değere ulaştığında fragmate edilmiş paketlerin tamamı ulaşmamışsa parçalanmış tüm paketler elemine edilir. Tüm bu durumlar göz önüne alınarak bir atak vektör oluşturulması gerekmektedir.

Saldırı vektörümüzü oluşturmadan önce bir paketin uç düğümde alındığında gerçekleşecek olan yaşam döngüsünü bilmemiz gerekmektedir. Aksi takdirde bu dos atağını gerçekleştirmek imkânsız hale gelecektir.

Bir ip paketinin alıcı (receiver) tarafındaki yaşam döngüsü, diğer bir deyişle paket alma prosesi aşağıda açıklanmıştır.(Layer 1-2)

  • Alıcı donanım harekete geçer. Network Interface Controller (NIC), DMA (Direct Memory Access) ile paketi alır ve kernel belleğinde bulunan rx_ring halkasına paketi gönderir. Ham veri (Raw data) rx_ring ile birlikte sk_buff alanına kopyalanır. Veri kernel belleğine alındıktan sonra NIC aldığı veriyi anlamlandırabilmek için CPU ya kesme gönderir. (İnterrulp- Top halves)  CPU paketi işlemesi için kontrolü çekirdek ISR ye (Interrulp Service Routine) aktarır. Bu aşamada proses interrulp kontexinde çalışmaktadır yani diğer tüm kesmeler vb şeyler bu prosesi bölemez. Bu sebeple ISR hızlı çalışmalıdır.
  • Ortam kontrol edilir. ISR NET_RX_SOFTIQR fonksiyonunu çalıştırır ve interrulp handler çalıştırılmaya başlar. Paketler mümkün olduğunda hızlıca işlenip ağ katmanına alınabilmek için bottom halves bayrağı set edilir ve bottom halves durumuna gelinir.
  • Daha sonra net_rx_action fonsiyonu çalışır ve paket üzerinde yapması gereken kontrolleri yapar ve paketi işler. İşlemeler sonlanınca kesmeler sonlandırılır.
  • Backlog_device denilen yapay birikim kontrol aracı paketler için yoklama listesi tutar. Şayet liste tamam değilse netif_rx fonksiyonunu yeniden çağırır. Yoklama listesi tam ise kesme durumundan tekrar çıkılır. Bu mekanizma bir paketin safahatı tamamlanmış ise ağ sürücüsü tarafından eklendiği input_pkt_queue kuyruğundan silinmesi için kullanılır.
  • Bu aşamada işlemi tamamlanan paketler için netif_receive_skb fonksiyonu çalıştırılır ve paketler tiplerine göre ayrılır ve ip_rcv fonsiyonlarına devredilerek işlemler tamamlanır.
  • Mevcut proses denetimine geri dönülür.

Yukarıda ayrıntılı olarak anlatılan paket işleme durumunu özetleyecek olursak. Bottom halves durumunda network ile veri katmanı arası çalıştırılır. (Layer 2-3)

  • Bu katman bottom halvesta çalıştırılır.
  • Bottom halves durumundan çıkmak için ağ katmanına gönderilecek bekleyen paket var ise bu paketi hemen ağ katmanına gönderilir.
  • Döngü boyunca kuyrukta bekleyen ve işlenmiş tüm paketleri Internet kabul protokolüne gönderilir.
  • Gönderilen paketler kuyruğu temizlenir.
  • İşleme prosesi sona erince Bottom half durumundan çıkılır.

Anlatılan prosesin aşağıdaki şekilde data link ve internet katmanlarında gerçekleştiği  görülmektedir.

r_rx

Geliştireceğimiz atak vektör tamda bu noktada devreye girecektir. Burada alıcı proses çalışırken bottom halvese girip oradan çıkamamasını sağlamak istemekteyiz. Çünkü bottom halves işlemleriyle meşgul olan cpu, diğer proseslere kaynak ve zaman ayıramayacak ve çalışma verimliliğini yitirecektir. Paket alma prosesinini bottom halves durumundan çıkamaması için sürekli olarak ip katmanına iletilecek olan bekleyen paket kuyruğunun dolu olması gerekmektedir. Burada bu kuyruğu doldurmak için normal olarak gönderilecek ip paketleri yetersiz kalacaktır.  Çünkü bu katman bu paketleri hızlıca işleyip  bir üst katmana yani ip katmanına iletir. Fakat sisteme sürekli ve yoğun olarak fragmante edilmiş ip paketleri gönderilirse (hatırlanacağı gibi fragmente edilmiş ip paketleri yalnızca ip katmanında birleştirilebilir) backlog_device kontrollerinde görüleceği gibi tampon fragmante edilmiş ip paketleriyle dolacak ve işlenmesi bitmemiş ip paketleri -fragmente edilmiş parçaların tamamının gelmesini beklenecek-  tamponda yer kaplamaya devam edecek, böylece yukarıda da anlatıldığı gibi net_rx_action fonksiyonu sürekli olarak çağrılacaktır. Yani sistem bottom halves durumundan fragmente edilen paketler için kurulan timer süresi dolana kadar çıkamayacaktır.

Yukarıda da anlatılan algoritmada belirtildiği gibi boşalmayan tampon bottom halves durumundan çıkamayacaktır. Böylece sistem kaynakları kernel alanı tarafından yani (software interrulp) kesmeler tarafından kullanılacaktır ve bu da CPU’nun verimliliğini düşürecektir.

Bu aşamada kesmelerin ne olduğunu ve özelliklerini bilmek ve açıklamak zorunlu hale gelmiştir. Özellikle Linux tabanlı işletim sistemlerinde iki farklı çeşit kesme çeşidi bulunmaktadır. Bunlar top halves ve bottom halves olarak adlandırılırlar.

Top halves zaman hassasiyeti olan işler için gerçekleştirilir ve bu kesme handle edildiğinde işletim sistemi önceliği tamamen bu kesmeye verir. Bu durum genelde donanımların göndermiş oldukları kesmelerde meydana gelir. Top halves kesmeler kısa ve hızlı olmak zorundadır. Çünkü işletim sistemi diğer tüm işlemleri askıya alıp önceliği bu işleme vermiştir. Bu durum Top-half kesmelerin interrulp contex alanında tanımlanmasıyla açıklanmaktadır. Top halves kesmeleri, yapılması gereken ertelenebilir işleri ikinci kesme kategorisi olan bottom halvese devreder. Bottom halves da bir kesme türüdür fakat ertelenebilir kesme işlemleri bu seviyede icra edilir. Örneğin network donanımına gelen bir paket ilk algılandığında top halves kesmesi gelir ve bu paketin geriye kalan tüm işlemlerinin icrası için durum bottom halvesa devredilir. Bottom Halves kernel contexi alanında tanımlıdır ve daha fazla aciliyete sahip bir kesme geldiğinde beklemeye geçebilir.  Aşağıdaki şekilde kesme contex alanları gösterilmiştir.

figure1

Tüm bu açıklamalar yapıldıktan sonra artık ip fragmantasyonu tabanlı atak gerçekleştirilebilir. Bu atak çift çekirdek ve multiple cores işlemcili Centos 7 işletim sistemine sahip sanallaştırılmış bir makineye gerçekleştirilecektir. CPU bilgileri aşağıda gösterilmiştir.

cpu

Saldırının amacı bol miktarda fragmante edilmiş ip paketi göndererek Centos 7 sunucusunda yazılım kesmeleri kaynaklı CPU faaliyeti meydana getirmektir. Fragmante edilmiş ip paketi hazırlayabilmek için çeşitli araçlar bulunmaktadır. Bu atakta bu araçlardan hping3 tercih edilmiştir. Bunun sebebi, kullanımı kolay, hızlıca paket oluşturabilmesi ve birçok faydalı özelliğinin bulunmasıdır. Hping3’ ün kullanımı için https://canyoupwn.me/?p=441  adresini ziyaret edebilirsiniz.

Saldırıyı gerçekleştirmek için aşağıdaki hping komutunu çalıştırıyoruz.

Hping3 192.168.1.47 –data 3000 –mtu 200 –flood –rand-source –C 8

Bu komutu açıklayacak olursak, burada 192.168.1.47 saldırıyı gerçekleştireceğimiz sunucunun ip adresi, –flood hping’in olabildiğince fazla paket hazırlayıp göndermesini sağlayan parametre, –rand-source parametresi oluşturulan her pakete farklı bir kaynak ip adresi ekleme parametresi ve –C 8 ise oluşturulan paketin bir ICMP Echo Request paketi olmasını sağlayan parametredir. Bu komutta –data parametresi ile oluşturulacak olan pakete 3000 bayt büyüklüğünde veri eklemeyi amaçlıyoruz ve –mtu parametresiyle de gönderilecek olan paketlerin boyutunun en fazla 200 bayt olabileceğini belirtiyoruz. Bu şekilde paket oluşturmamızın amacı ise hpingin ip fragmantasyonunu paketi gönderirken otomatik olarak yapmasını istememizdir. Şöyle ki hping oluşturduğu her pakete 3000 baytlık veriyi yüklemeye çalışacak fakat mtu değerinin 200 olduğunu gördüğü an bu verinin tek bir pakette gönderilemeyeceğine karar vererek ve 3000 baytı 200 baytlık parçalara fragmante ederek göndermeye çalışacaktır. Gerçekleştirilen bu saldırılar sonucu kurban makinenin (192.168.1.47) CPU durumu ise aşağıda gösterilmiştir.

dasdsa

Kurban makine yukarıdaki ekran görüntüsünde de görüldüğü gibi CPU zamanının önemli bir kısmını si yani software interrulplara harcamaktadır. Yani istenilen sonuca ulaşılmıştır. Burada dikkat edilmesi gereken farklı bir nokta ise CPU faaliyetinin user space yani kullanıcı proseslerinde değil, kernel space yani kernel seviyesinde olmasıdır. Yukarıdaki top komutunun çıktısında da görüldüğü gibi kullanıcı proseslerinin gösterildiği alanda CPU yoğunluğu gösterilmemiştir.

IP fragmantasyonun bu saldırıdaki rolünü iyice anlamak için fragmantasyon yapılmış ve yapılmamış ip paketleriyle bu atak vektörü denenmelidir. İlk olarak aşağıda ip fragmantasyonuna uğramamış paketler ile gerçekleştirilen saldırı gösterilmiştir. Sonuç aşağıdaki gibidir.

Hping3 192.168.1.47  –flood –rand-source –C 8

41412441

IP fragmantasyonuna uğramış paketler ile gerçekleştirilen saldırının sonuçları ise aşağıdaki gibidir.

213131313

Ekran görüntülerinden de anlaşılacağı gibi fragmantasyona uğrayan paketler ile gerçekleştirilen ataklar cpunun zamanını neredeyse iki kat daha fazla almışlardır. (Kurban makinde cpu durumunu görüntülemek için htop komutu kullanılmıştır. Htop anlık verileri ekrana getirdiğinden cpu faaliyetleri stabil hale geldikten sonra ekran görüntüsü alınmıştır.)

Sonuç olarak ip fragmantasyonu ile gerçekleştirilen dos ataklarının, parçalanmamış ip paketleriyle yapılan ataklara göre daha fazla sistemi yorduğu anlaşılmıştır. Burada önemli olan bunun sebeplerinin başlangıçta da bahsedildiği gibi iyi irdelenmesidir.

TR | IP Fragmantasyonu ile DOS Saldırısı CanYouPwnMe

]]>
https://canyoupwn.me/tr-ip-fragmantasyonu-ile-dos-saldirisi/feed/ 0