Bir Saldırının Analizi (Bölüm 1)
Bir Saldırının Analizi (Bölüm 2)
Don Parker
Bu serinin 2. bölümünde, kurbanın ağına yapılacak bir saldırı için gerekli olan tüm bilgileri bıraktık. Bunu aklımızda tutarak gerçek bir saldırıya geçelim. Bu saldırı, bir saldırıyı daha ileri götürebilmek için birden fazla istek programının iletilmesini gerektirir.
Bir bilgisayara saldırıp sonra geri çekilmenin bir anlamı olmaz, bu yüzden güçlü bir saldırı yapacağız. Kötü niyetli bir saldırganın amacı genellikle sadece bilgisayar ağındaki varlığını artırmak değil, aynı zamanda bu ağı korumaktır. Bu, saldırganın varlığını gizlemeye devam etmek ve başka bazı eylemlerde bulunmak istediği anlamına geliyor.
İlginç Konular
Şimdi gerçek bir saldırıyı kolaylaştırmak için Metasploit Framework'ü kullanacağız. Bu çalışma mekanizması gerçekten ilginç çünkü size birçok farklı madencilik türü sunmanın yanı sıra, yükleri seçerken de birçok farklı seçenek sunuyor. Belki ters bir yardımcı program veya VNC enjeksiyonu istemiyorsunuz. Faydalı yük genellikle yaklaşan hedefinize, ağ mimarinize ve nihai amacınıza bağlıdır. Bu durumda bunu ters bir yardımcı programla yapacağız. Bu, özellikle hedefimizin yönlendiricinin arkasında olduğu ve doğrudan erişilemediği durumlarda, genellikle daha avantajlı bir yaklaşımdır. Örneğin, bir web sunucusuna "ulaşırsınız" ancak yük hala dengelidir. Buna ileri bir yardımcı programla bağlanmanın mümkün olacağının bir garantisi yoktur, bu nedenle bilgisayarınızın ters bir yardımcı program üretmesini isteyeceksiniz. Metasploit Framework'ün nasıl kullanılacağını başka bir makalede anlatılmış olabileceği için burada ele almayacağız. O yüzden sadece paket seviyeleri gibi şeylere odaklanalım.
Bu sefer her saldırı adımını kısa görseller ve kod parçacıklarıyla tanıtma yöntemini kullanmak yerine farklı bir saldırıyı sunacağız. Yapılacak şey Snort'un yardımıyla saldırıyı yeniden yaratmaktır. Gerçekleştirdiğimiz saldırıda ikili logdan faydalanıp, Snort üzerinden bunu ayrıştıracağız. İdeal olarak yaptığımız her şeyin aynısı olması gerekirdi. Aslında uygulanacak olan bir prova paketidir. Buradaki amaç, olan biteni ne kadar doğru bir şekilde bir araya getirebileceğimizi görmek. Bunu aklımızda tutarak, yürütülen her şeyi kaydeden ikili paket günlüğünü kullanacağız ve bunu Snort'un varsayılan kurallarından bazılarını kullanarak ayrıştıracağız.
Snort Çıktısı
Snort'u çağırmak için kullanılan sözdizimi aşağıdaki gibidir:
C:\snort\bin\snort.exe –r c:\article_binary –dv –c snort.conf –A full
Bu söz dizimi Snort'un article_binary adlı ikili paketi analiz etmesine neden olur, sonuç aşağıda gösterilmiştir. Her bir bölüme detaylı bakabilmemiz için Snort çıktısını kısalttık.
==============================================================
Snort processed 1345 packets.
==============================================================
Breakdown by protocol:
TCP: 524 (38.959%)
UDP: 810 (60.223%)
ICMP: 11 (0.818%)
ARP: 0 (0.000%)
EAPOL: 0 (0.000%)
IPv6: 0 (0.000%)
ETHLOOP: 0 (0.000%)
IPX: 0 (0.000%)
FRAG: 0 (0.000%)
OTHER: 0 (0.000%)
DISCARD: 0 (0.000%)
==============================================================
Action Stats:
ALERTS: 63
LOGGED: 63
PASSED: 0
Bu bölüm ilginçtir çünkü tek bir saldırı eylemi tarafından tetiklenen 63 uyarı vardı. Olayla ilgili çok fazla ayrıntı sağlayabilecek olan alert.ids dosyasına bakacağız. Şimdi, saldırganın yaptığı ilk şeyin Nmap'i kullanarak bir ağ taraması yapmak olduğunu hatırlarsanız, bu aynı zamanda Snort tarafından tetiklenen ilk uyarıyı da oluşturmuştu.
[**] [1:469:3] ICMP PING NMAP [**]
[Classification: Attempted Information Leak] [Priority: 2]
08/09-15:37:07.296875 192.168.111.17 -> 192.168.111.23
ICMP TTL:54 TOS:0x0 ID:3562 IpLen:20 DgmLen:28
Type:8 Code:0 ID:30208 Seq:54825 ECHO
[Xref => http://www.whitehats.com/info/IDS162]
Bu şekilde saldırgan, web sunucusunun ne tür bir web sunucusu olduğunu bulmak için netcat'i kullanmıştır. Bu eylem herhangi bir Snort uyarısını tetiklemedi. Biz de neler olduğunu öğrenmek istiyoruz, o yüzden paketin kayıtlarına daha yakından bakalım. Normal TCP/IP el sıkışma prosedürünü gözlemlediğimizde aşağıdaki paketi göreceğiz.
15:04:51.546875 IP (tos 0x0, ttl 128, id 9588, offset 0, flags [DF], proto: TCP (6), length: 51) 192.168.111.17.1347 > 192.168.111.23.80: P, cksum 0x5b06 (correct), 3389462932:3389462943(11) ack 2975555611 win 64240
0x0000: 4500 0033 2574 4000 8006 75d7 c0a8 6f11 E..3%[email protected].
0x0010: c0a8 6f17 0543 0050 ca07 1994 b15b 601b ..o..C.P.....[`.
0x0020: 5018 faf0 5b06 0000 4745 5420 736c 736c P...[...GET.slsl
0x0030: 736c 0a sl.
Bu pakette dikkat çekici bir şey yok, sadece slslsl örneğinde olduğu gibi bir GET isteğinin ardından gelen bazı dahili sorunlar var. Yani aslında Snort'un yapabileceği hiçbir şey yok. Bu nedenle, bu tür bir numaralandırma girişimini tetikleyecek etkili bir IDS imzası (veya imzası) oluşturmak çok zordur. Bu yüzden böyle bir imza bulunmuyor. Bundan sonraki paket ise kurbanın ağının web sunucusunun kendisini listelediği pakettir.
Numaralandırma tamamlandıktan sonra saldırgan, istismarı yürütmek için derhal web sunucusuna bir kod gönderir. Bu kod daha sonra Snort imzaları etkinleştirildiğinde bazı sonuçlar verecektir. Özellikle aşağıda gösterilen exploit için bu Snort imzasını görebiliriz.
[**] [1:1248:13] WEB-FRONTPAGE rad fp30reg.dll access [**]
[Classification: access to a potentially vulnerable web application] [Priority:
2]08/09-15:39:23.000000 192.168.111.17:1454 -> 192.168.111.23:80
TCP TTL:128 TOS:0x0 ID:15851 IpLen:20 DgmLen:1500 DF
***A**** Seq: 0x7779253A Ack: 0xAA1FBC5B Win: 0xFAF0 TcpLen: 20
[Xref => http://www.microsoft.com/technet/security/bulletin/MS01-035.mspx][Xref
=> http://cve.mitre.org/cgi-bin/cvename.cgi?name=2001-0341][Xref => http://www.s
ecurityfocus.com/bid/2906][Xref => http://www.whitehats.com/info/IDS555]
Saldırgan web sunucusuna erişim sağladıktan sonra TFTP istemcisini kullanarak 4 dosyayı aktarmaya başlayacak: nc.exe, ipeye.exe, fu.exe, msdirectx.exe. Bu dosyalar aktarıldıktan sonra saldırgan netcat'i kullanarak bilgisayarına bir yardımcı program gönderir. Oradan, ilk saldırıdan kaynaklanan diğer yardımcı programı devre dışı bırakabilir ve kalan tüm işi netcat yardımcı programında yapabilir. İlginçtir ki, saldırganın ters yardımcı program aracılığıyla gerçekleştirdiği eylemlerin hiçbiri Snort tarafından kaydedilmedi. Ancak buna rağmen saldırgan, TFTP üzerinden ilettiği bir rootkit kullanarak netcat için işlem bilgilerini gizlemiş.
Sonuç
Bu serinin üçüncü bölümünde Snort kullanılarak yapılmış bir saldırının gösterimini gördük. Rootkit kullanımı dışında yapılanlardan bir tanesini tamamen tekrar yapabiliriz. IDS oldukça kullanışlı bir teknoloji ve ağ savunma sisteminizin bir parçası olmasına rağmen her zaman mükemmel değildir. IDS'ler yalnızca algılayabildiği trafik konusunda sizi uyarabilir. Bunu aklımızda tutarak bu serinin son bölümünde Snort imzalarının nasıl oluşturulacağını öğreneceğiz. Bununla birlikte dijital imzanın (imza) etkinliğini değerlendirmek için nasıl test edileceğini de öğreneceğiz.