亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 解剖win2k下的空會話.txt

?? 可以對黑客編程有一定的了解
?? TXT
字號:
解剖WIN2K下的空會話

I、  Introduction
II、 About TCP port 445
III、The null session
IV、 Break through "RestricAnonymous=1"
V、  Conclusion

   

I、  Introduction

     關于WIN2K下面的空會話,已經是一個很老的話題了。當然,也一直被認為是WIN2K自帶的一個后門。當建立一個
空會話之后,對于一臺配置不到位的WIN2K服務器來說,那么將能夠得到非常多的信息,比如枚舉帳號等等。


II、 About TCP port 445, WIN2000的TCP 445端口

    SMB(Server Message Block)協議在NT/2000中用來作文件共享,在NT中,SMB運行于NBT(NetBIOS over TCP/IP)
上,使用137,139(UDP),139(TCP)端口。在2000中,SMB可以直接運行在tcp/ip上,而沒有額外的NBT層,使用
TCP 445端口。因此在2000上應該比NT稍微變化多一些。

    可以在“網絡連接/屬性/TCPIP協議/屬性/高級/WINS中設置啟用或者禁用NBT(NetBIOS over TCP/IP)。

    當2000使用網絡共享的時候,就面臨著選擇139或者445端口了。下面的情況確定會話使用的端口:

1、如果客戶端啟用了NBT,那么連接的時候將同時訪問139和445端口,如果從445端口得到回應,那么客戶端將發送RST
到139端口,終止這個端口的連接,接著就從445端口進行SMB的會話了;如果沒有從445端口而是從139得到回應,那么
就從139端口進行會話;如果沒有得到任何回應,那么SMB會話失敗。
2、如果客戶端禁用了NBT,他就將只從445端口進行連接。當然如果服務器(開共享端)沒有445端口進行SMB會話的話,
那么就會訪問失敗了,所以禁用445端口后,對訪問NT機器的共享會失敗。
3、如果服務器端啟用NBT,那么就同時監聽UDP 137、138端口和TCP139,445。如果禁用NBT,那么就只監聽445端口了。

    所以對于2000來說,共享問題就不僅僅是139端口,445端口同樣能夠完成。


III、The NULL session,關于空會話

    NULL會話(空會話)使用端口也同樣遵循上面的規則。NULL會話是同服務器建立的無信任支持的會話。一個會話包
含用戶的認證信息,而NULL會話是沒有用戶的認證信息,也就好比是一個匿名的一樣。

    沒有認證就不可能為系統建立安全通道,而建立安全通道也是雙重的,第一,就是建立身份標志,第二就是建立一
個臨時會話密匙,雙方才能用這個會話進行加密數據交換(比如RPC和COM的認證等級是PKT_PRIVACY)。不管是經過NTLM
還是經過Kerberos認證的票據,終究是為會話創建一個包含用戶信息的令牌。(這段來自Joe Finamore)

    根據WIN2000的訪問控制模型,對于空會話同樣需要提供一個令牌。但是空會話由于是沒有經過認證的會話,所以令
牌中不包含用戶信息,因此,建立會話雙方沒有密匙的交換,這也不能讓系統間發送加密信息。這并不表示空會話的令牌
中不包含SID,對于一個空會話,LSA提供的令牌的SID是S-1-5-7,這就是空會話建立的SID,用戶名是 ANONYMOUS LOGON。
這個用戶名是可以在用戶列表中看到的。但是是不能在SAM數據庫中找到,屬于系統內置的帳號。
(關于這部分對NULL SESSION的分析,可以參照:《NULL Sessions In NT/2000》http://rr.sans.org/win/null.php)

    NULL會話幾乎成為了微軟自己安置的后門,但是微軟為什么要來設置這樣一個“后門”呢?我也一直在想這個問題,
如果NULL會話沒有什么重要的用途,那么微軟也應該不會來設置這樣一個東西。好不容易才在微軟上找到這個:

    當在多域環境中,要在多域中建立信任關系,首先需要找到域中的PDC來通過安全通道的密碼驗證,使用空會話能夠
非常容易地找到PDC,還有就是關于一些系統服務的問題。而且LMHOSTS的#Include就需要空會話的支持,可以參考文章:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q121281
還有http://support.microsoft.com/default.aspx?scid=kb;EN-US;q124184

    其實建立一個空會話的條件也非常嚴格。首先要能夠滿足上面的,也就是打開TCP 139和TCP 445端口。我們可以從
一次關閉這兩個端口的情況中看得出來。服務器關閉445和139端口,然后我們來進行空會話的連接。首先,客戶端打算
連接的是445端口,然后再試圖連接139端口。當然最后還是失敗了。
    僅僅開放這兩個端口還不行,服務器還必須得打開IPC$共享。如果沒有IPC共享,即使共享一個文件,有權限為
Anonymous Logon,也不能建立會話,即使權限設置為完全控制,出現的連接錯誤依然是權限不夠。這和其他帳號是不
一樣的。如果要允許一個文件夾共享能夠類似IPC$(命名管道而非共享)能夠使用空會話,那么需要修改注冊表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\中的:NullSessionShares,
添加新的共享名,這樣才能建立一個共享的空會話。這時,將不依賴IPC的存在了。(即使這樣的空會話對于后面的突破
也是一點沒可取之處的,因為沒有了IPC$命名管道,RPC不可取了,這下知道IPC這個命名管道的具體實現了。呵呵)

    雖然空會話建立的要求很嚴格,但是那都是默認建立的。既然是默認的,對于使用WIN2K系統的服務器來說,就還是
有利用的價值。最明顯的就是空會話可以很方便地連接到其他的域,枚舉用戶、機器等。這也就是掃描軟件進行探測的原
理。我舉個簡單的程序例子來說明這個用途,并枚舉用戶組和用戶。

#include <windows.h>
#include <stdio.h>
#include <lm.h>

#pragma comment (lib, "Mpr.lib")
#pragma comment (lib, "Netapi32.lib")

void explorer_groups(char *);

void main( int argc, char *argv[ ] )
{
	DWORD ret;
	char username[100] = "", password[100] = "";
	char server[100] = "", ipc[100] = "";
	NETRESOURCE NET;

	if (argc == 1) { 
		exit(1);
	}

	strncpy(server,argv[1],100); 
	printf("server: %s\n", server);

	sprintf(ipc,"\\\\%s\\ipc$",server);

	NET.lpLocalName = NULL;
	NET.lpProvider = NULL;
	NET.dwType = RESOURCETYPE_ANY;
	NET.lpRemoteName = (char*)&ipc;

	printf("setting up session... ");
	ret = WNetAddConnection2(&NET,(const char *)&password,(const char *)&username,0);

	if (ret != ERROR_SUCCESS)
	{
		printf("IPC$ connect fail.\n");
		exit(1);
	}
	else printf("IPC$ connect success.\n");
	explorer_groups((char*)&server);

   	printf("Disconnect Server... ");
	ret = WNetCancelConnection2((char*)&ipc,0,TRUE);
	if (ret != ERROR_SUCCESS)
	{
		printf("fail.\n");
		exit(1);
	}
	else printf("success.\n");
	exit (0);
}

void explorer_groups(char *server) 
{
	DWORD ret, read, total, resume = 0;
      	int i;
	LPVOID buff;
	char comment[255];
	wchar_t wserver[100];

	do {
		ret = NetLocalGroupEnum(wserver, 1, (unsigned char **)&buff, MAX_PREFERRED_LENGTH, &read, &total, &resume);

		if (ret != NERR_Success && ret != ERROR_MORE_DATA) 
		{
			printf("fail\n");
			break;
		} 
	        PLOCALGROUP_INFO_1 info = (PLOCALGROUP_INFO_1) buff;

		for (i=0; i<read; i++) {
			printf("GROUP: %S\n",info[i].lgrpi1_name);
			
			WideCharToMultiByte(CP_ACP, 0, info[i].lgrpi1_comment , -1, comment,255,NULL,NULL); 
			printf("\tCOMMENT: %s\n",comment);

			DWORD ret, read, total, resume = 0;
			ret = NetLocalGroupGetMembers((const unsigned short*)&wserver, info[i].lgrpi1_name, 2, (unsigned char **)&buff, 1024, &read, &total, &resume);

			if (ret != NERR_Success && ret != ERROR_MORE_DATA) {
				printf("fail\n");en 
				break;
			} 

            PLOCALGROUP_MEMBERS_INFO_2 info = (PLOCALGROUP_MEMBERS_INFO_2) buff;

            for (unsigned i=0; i<read; i++) {
                printf("\t\t%S\n", info[i].lgrmi2_domainandname);
				printf("\t\t\tSID:%d\n", info[i].lgrmi2_sid);
				printf("\t\t\tSIDUSAGE:%d\n",info[i].lgrmi2_sidusage);
            }
            NetApiBufferFree (buff);
		}

		NetApiBufferFree (buff);

	} while (ret == ERROR_MORE_DATA );
}

    這是一個簡單的例子。當然可以查詢更多的東西。類似,就不再重復了。枚舉用戶名是很重要的用途,因為接下來
可以做的就是進行密碼的猜解,這對系統安全構成的威脅是非常大的。

    想到有威脅,就需要知道怎么防范。防范很簡單。不過這里需要提醒的是關于注冊表(或者安全策略中)中可以設
置Restrictanonymous為1,這樣可以禁止空連接進行枚舉。因為很多安全配置介紹中都是這樣做的,因為如果設置為2的
話,有一些問題會發生。比如一些WIN的服務出現問題等等。但是,RestricAnonymous設置為1并不會組織用戶帳號的
枚舉。因為空連接是一樣能夠建立的,并不是說阻止了空連接的建立。但是我們這里需要來突破!!


IV、 Break through "RestricAnonymous=1",突破RestricAnonymous=1的限制進行用戶枚舉

    雖然我們還是能夠建立空連接,但是卻沒有那些NET函數的訪問權限了。這個可以看MSDN上關于對網絡管理函數的安
全問題。但是,有一個突破點,呵呵,那就是猜測。這個需要聯系到訪問控制模型上了。就象前面對NULL會話說到的那樣,
NULL會話獲得ANONYMOUS LOGON 用戶名的SID(安全標志符),系統用SID來標志這個用戶,同時創建令牌。而這個令牌才
是系統對用戶的訪問權限標志,并不是用帳戶名來確定。現在我們需要的是SID,因為令牌中包含了帳戶的SID,對于系統
來說,SID是不變的。SID是在帳戶或者組創建的時候就建立好了。可是每個WIN2K系統為相同用戶名的帳戶創建的SID并不
相同。

    我們來先分析這個重要的SID。SID的格式是:S-R-X-Y(1)-Y(2)-……-Y(N)。其中S表示該字符串是SID,R是SID的版
本號,對于2000來說,這個就是1,然后X是標志符的頒發機構 (identifier authority)。對于2000內的帳戶,頒發機
構就是NT,值是5。然后Y表示一系列的子頒發機構,前面幾項是標志域的,最后一個Y(N)標志著域內的帳戶和組。也就是
說,對于多數帳戶來說,區別在與這個Y(N)。

    現在需要分析一下SAM結構中對帳戶的管理。展開注冊表的SAM之后,
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Builtin\Aliases\Members,存儲著重要的帳戶內容。找到本地的域,然后展開,
得到的就是本地帳號的所有SID列表。分析其規律,因為有些是系統規定的Y(N),所以就有規律了。其中的000001F4,十
進制的500,這一定是一個固定的,標志系統建立時候的內置管理員帳號administrator,000001F5就是GUEST帳號了。然
后看到了一個跳躍到了000003E8,這是其他帳號的開始,比如 TsInternetUser帳戶以及自定義的帳戶了。

    到了這里,我們還需要函數的支持。LookupAccountName()和LookupAccountSid(),這兩個函數是允許空會話使用的。
上面通過空會話來建立連接然后使用NET*函數枚舉帳戶已經被RestrictAnonymous禁止了。因此,SID成為我們的突破口。
不過SID對于一臺機器來說是固定的,但是并不是說跟其他的機器的SID是一樣的,我們需要進行一定的猜測,用來獲得SID
中不同的部分,就是幾個子頒發機構。我們猜測的東西就是用戶名。假象系統存在的用戶名,比如TsInternetUser,
Guest帳戶等。然后通過這些帳戶名獲得SID的前面部分,然后根據前面部分進行枚舉,將最后一個子頒發機構進行遞加,
從而獲得每個帳戶的SID,然后又回過來,利用函數LookupAccountSid()進行用戶名的查詢。這樣就達到了枚舉帳戶的目的
了,而且是在 RestrictAnonymous=1 的情況下。

    我寫了一個程序,我猜測的帳號是guest。大致思路在這里介紹了,把代碼貼在這里太占篇幅,原代碼和執行程序可以
在我的主頁(www.opengram.com)下載。


V、  Conclusion

    不過,即便我們花費這么大精力能夠突破RestricAnoymous=1的限制,但是防范起來簡直太容易了。取消掉IPC$命名管
道,就讓NULL SESSION完全沒有用了。


-----------------------
reference:

1、MSDN
2、http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0299/security/security0299.htm&nav=/msj/0299/newnav.htm 
3、《The use of TCP port 445 in Windows 2000》 Arne Vidstrom

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人超碰人人澡人人澡| 精品福利二区三区| 日韩亚洲欧美在线| 国产精品久久免费看| 免费亚洲电影在线| 一本大道久久a久久综合| 精品美女一区二区三区| 午夜精品久久久久久久| 色综合色狠狠综合色| 久久久国产午夜精品| 蜜臀久久99精品久久久画质超高清| 91色.com| 国产精品美女视频| 狠狠色丁香久久婷婷综合_中| 欧美日韩综合不卡| 亚洲日本va在线观看| 成人性生交大片| 久久婷婷国产综合精品青草| 蜜桃一区二区三区在线| 欧美午夜精品久久久| 亚洲三级小视频| 成人午夜视频免费看| 久久免费午夜影院| 久久99精品久久久久久国产越南 | 欧美日韩国产a| 亚洲欧美日韩在线| 91在线观看一区二区| 中文字幕乱码亚洲精品一区| 国产成人免费在线观看| 国产三级一区二区| 东方欧美亚洲色图在线| 中文成人综合网| 成人精品视频一区二区三区尤物| 亚洲国产精品成人综合色在线婷婷| 国产在线精品一区二区夜色| 精品久久国产97色综合| 国内成+人亚洲+欧美+综合在线 | 一区免费观看视频| 99在线精品视频| 亚洲女子a中天字幕| 在线精品视频免费播放| 亚洲午夜三级在线| 91精品国产综合久久香蕉的特点 | 91精品国产美女浴室洗澡无遮挡| 日韩国产精品91| 日韩精品一区二区三区中文精品 | 久久网这里都是精品| 国产精品资源网站| 国产精品的网站| 欧美伊人精品成人久久综合97| 一区二区成人在线视频| 欧美精品久久99久久在免费线 | 国产精品99久| 国产精品久久久久久户外露出 | 国产一区二区在线电影| 中文字幕乱码亚洲精品一区| 日韩西西人体444www| 麻豆成人综合网| 国产喷白浆一区二区三区| 色综合天天综合网国产成人综合天| 亚洲综合色噜噜狠狠| 欧美电影免费观看高清完整版在线观看| 精品一区二区三区av| 综合欧美亚洲日本| 日韩手机在线导航| 菠萝蜜视频在线观看一区| 亚洲愉拍自拍另类高清精品| 欧美不卡一二三| 成人成人成人在线视频| 石原莉奈一区二区三区在线观看 | 亚洲精品欧美二区三区中文字幕| 欧美日韩精品一区二区三区蜜桃 | 国产蜜臀97一区二区三区 | 亚洲国产精品自拍| 2017欧美狠狠色| 欧美视频在线不卡| 国产成a人亚洲精品| 丝袜亚洲另类丝袜在线| 中文无字幕一区二区三区| 欧美久久一区二区| av成人老司机| 国产精品综合一区二区三区| 亚洲电影视频在线| 亚洲天堂2016| 国产欧美日韩卡一| 欧美va亚洲va在线观看蝴蝶网| 色综合久久久久| 丁香婷婷综合激情五月色| 日韩精品亚洲一区二区三区免费| ...中文天堂在线一区| wwwwww.欧美系列| 日韩一区二区在线观看视频播放| 色婷婷亚洲婷婷| www.久久精品| 国产91精品欧美| 精彩视频一区二区三区| 日本伊人午夜精品| 亚洲成av人片一区二区| 一级日本不卡的影视| 中文字幕av免费专区久久| 欧美videossexotv100| 欧美精品一级二级| 欧美性大战久久久| 欧美在线观看禁18| 在线视频观看一区| 色婷婷激情一区二区三区| 91小视频免费观看| 91网站最新网址| 色综合激情五月| 91啦中文在线观看| 91久久精品网| 在线看国产一区二区| 91视频com| 欧洲视频一区二区| 欧美性感一区二区三区| 欧美丝袜第三区| 欧美群妇大交群中文字幕| 欧美精品欧美精品系列| 5月丁香婷婷综合| 91麻豆精品国产91久久久久久久久| 欧美在线观看视频在线| 欧美丰满少妇xxxxx高潮对白| 欧美亚洲国产一区在线观看网站| 欧美色倩网站大全免费| 欧美日韩视频在线一区二区| 欧美一区二区视频在线观看| 日韩欧美区一区二| 国产日本欧洲亚洲| 亚洲视频小说图片| 亚洲最新在线观看| 日韩精品亚洲专区| 国产一区二区看久久| 成人高清av在线| 欧美在线观看视频一区二区三区| 欧美久久一区二区| 久久综合久久综合久久综合| 中文字幕高清一区| 亚洲综合在线免费观看| 日韩在线观看一区二区| 国产精品中文有码| 色综合天天性综合| 91.麻豆视频| 亚洲国产精品国自产拍av| 樱桃视频在线观看一区| 久久精品国产久精国产| 99久久er热在这里只有精品15| 欧美视频中文一区二区三区在线观看| 日韩一区二区影院| 国产精品美女久久久久高潮| 亚洲国产成人av网| 国模娜娜一区二区三区| 一本到不卡免费一区二区| 欧美一区二区三区在| 国产精品进线69影院| 三级不卡在线观看| www.66久久| ㊣最新国产の精品bt伙计久久| 日韩精品乱码免费| 99久久综合精品| 精品免费国产二区三区| 亚洲黄色免费网站| 国产黄色成人av| 欧美精品自拍偷拍| 国产精品入口麻豆九色| 奇米色一区二区三区四区| 色综合久久六月婷婷中文字幕| 日韩视频一区二区三区在线播放| 综合亚洲深深色噜噜狠狠网站| 美女在线一区二区| 欧美性受xxxx黑人xyx| 国产精品日韩成人| 另类综合日韩欧美亚洲| 欧美视频日韩视频在线观看| 国产精品美女一区二区三区| 紧缚奴在线一区二区三区| 欧美日韩高清影院| 亚洲黄色性网站| 99视频在线观看一区三区| 精品国产乱码久久久久久图片| 亚洲国产精品久久久久秋霞影院| 97se狠狠狠综合亚洲狠狠| 久久精品一区四区| 黄色成人免费在线| 欧美不卡一二三| 日韩高清中文字幕一区| 欧美日韩黄色一区二区| 一个色综合网站| 在线观看国产日韩| 国产欧美一区二区三区网站| 麻豆精品久久久| 日韩亚洲欧美成人一区| 日日夜夜免费精品视频| 欧美精品乱码久久久久久按摩| 亚洲一本大道在线| 欧美日韩欧美一区二区| 亚洲午夜日本在线观看| 在线观看国产91| 亚洲一区二区视频| 欧美日韩国产小视频| 亚洲成人一二三|