當前位置:湖南陽光電子技術(shù)學(xué)校文章資訊技術(shù)園地電腦維修技術(shù)
招生辦公室電話:13308461099 13807313137 全國免費電話:13807313137

利用Win2K下的空會話(null session)入侵服務(wù)器

減小字體 增大字體 作者:佚名  來源:本站整理  發(fā)布時間:2010-07-29 20:26:31

i、 introduction
ii、 about tcp port 445
iii、the null session
iv、 break through "restricanonymous=1"
v、 conclusion
終于有時間可以寫自己的東西了。呵呵,直入主題,不廢話了。
i、 introduction
關(guān)于win2k下面的空會話,已經(jīng)是一個很老的話題了。當然,也一直被認為是win2
k自帶的一個后門。當建立一個空會話之后,對于一臺配置不到位的win2k服務(wù)器來說,
那么將能夠得到非常多的信息,比如枚舉帳號等等。
ii、 about tcp port 445, win2000的tcp 445端口
smb(server message block)協(xié)議在nt/2000中用來作文件共享,在nt中,smb運行
于nbt(netbios over tcp/ip)上,使用137,139(udp),139(tcp)端口。在2000中
,smb可以直接運行在tcp/ip上,而沒有額外的nbt層,使用tcp 445端口。因此在2000上
應(yīng)該比nt稍微變化多一些。
可以在“網(wǎng)絡(luò)連接/屬性/tcpip協(xié)議/屬性/高級/wins中設(shè)置啟用或者禁用nbt(net
bios over tcp/ip)。
當2000使用網(wǎng)絡(luò)共享的時候,就面臨著選擇139或者445端口了。下面的情況確定會
話使用的端口:
1、如果客戶端啟用了nbt,那么連接的時候?qū)⑼瑫r訪問139和445端口,如果從445端口得
到回應(yīng),那么客戶端將發(fā)送rst到139端口,終止這個端口的連接,接著就從445端口進行
smb的會話了;如果沒有從445端口而是從139得到回應(yīng),那么
就從139端口進行會話;如果沒有得到任何回應(yīng),那么smb會話失敗。
2、如果客戶端禁用了nbt,他就將只從445端口進行連接。當然如果服務(wù)器(開共享端)
沒有445端口進行smb會話的話,那么就會訪問失敗了,所以禁用445端口后,對訪問nt機
器的共享會失敗。
3、如果服務(wù)器端啟用nbt,那么就同時監(jiān)聽udp 137、138端口和tcp139,445。如果禁用
nbt,那么就只監(jiān)聽445端口了。
所以對于2000來說,共享問題就不僅僅是139端口,445端口同樣能夠完成。
iii、the null session,關(guān)于空會話
null會話(空會話)使用端口也同樣遵循上面的規(guī)則。null會話是同服務(wù)器建立的
無信任支持的會話。一個會話含用戶的認證信息,而null會話是沒有用戶的認證信息
,也就好比是一個匿名的一樣。
沒有認證就不可能為系統(tǒng)建立安全通道,而建立安全通道也是雙重的,第一,就是
建立身份標志,第二就是建立一個臨時會話密匙,雙方才能用這個會話進行加密數(shù)據(jù)交
換(比如rpc和com的認證等級是pkt_privacy)。不管是經(jīng)過ntlm還是經(jīng)過kerberos認證
的票據(jù),終究是為會話創(chuàng)建一個含用戶信息的令牌。(這段來自joe finamore)
根據(jù)win2000的訪問控制模型,對于空會話同樣需要提供一個令牌。但是空會話由于
是沒有經(jīng)過認證的會話,所以令牌中不含用戶信息,因此,建立會話雙方?jīng)]有密匙的
交換,這也不能讓系統(tǒng)間發(fā)送加密信息。這并不表示空會話的令牌中不含sid,對于一
個空會話,lsa提供的令牌的sid是s-1-5-7,這就是空會話建立的sid,用戶名是 anony
mous logon。這個用戶名是可以在用戶列表中看到的。但是是不能在sam數(shù)據(jù)庫中找到,
屬于系統(tǒng)內(nèi)置的帳號。
(關(guān)于這部分對null session的分析,可以參照:《null sessions in nt/2000》http
://rr.sans.org/win/null.php)
null會話幾乎成為了微軟自己安置的后門,但是微軟為什么要來設(shè)置這樣一個“后
門”呢?我也一直在想這個問題,如果null會話沒有什么重要的用途,那么微軟也應(yīng)該
不會來設(shè)置這樣一個東西。好不容易才在微軟上找到這個:
當在多域環(huán)境中,要在多域中建立信任關(guān)系,首先需要找到域中的pdc來通過安全通
道的密碼驗證,使用空會話能夠非常容易地找到pdc,還有就是關(guān)于一些系統(tǒng)服務(wù)的問題
。而且lmhosts的#include就需要空會話的支持,可以參考文章:
http://support.microsoft.com/default.aspx?scid=kben-us;q121281
還有http://support.microsoft.com/default.aspx?scid=kben-us;q124184
其實建立一個空會話的條件也非常嚴格。首先要能夠滿足上面的,也就是打開tcp
139和tcp 445端口。我們可以從一次關(guān)閉這兩個端口的情況中看得出來。服務(wù)器關(guān)閉44
5和139端口,然后我們來進行空會話的連接。首先,客戶端打算
連接的是445端口,然后再試圖連接139端口。當然 后還是失敗了。
僅僅開放這兩個端口還不行,服務(wù)器還必須得打開ipc$共享。如果沒有ipc共享,即
使共享一個文件,有權(quán)限為anonymous logon,也不能建立會話,即使權(quán)限設(shè)置為完全控
制,出現(xiàn)的連接錯誤依然是權(quán)限不夠。這和其他帳號是不一樣的。如果要允許一個文件
夾共享能夠類似ipc$(命名管道而非共享)能夠使用空會話,那么需要修改注冊表:
hkey_local_machine/system/currentcontrolset/services/lanmanserver/parameters
/中的:nullsessionshares,
添加新的共享名,這樣才能建立一個共享的空會話。這時,將不依賴ipc的存在了。(即
使這樣的空會話對于后面的突破也是一點沒可取之處的,因為沒有了ipc$命名管道,rp
c不可取了,這下知道ipc這個命名管道的具體實現(xiàn)了。呵呵)
雖然空會話建立的要求很嚴格,但是那都是默認建立的。既然是默認的,對于使用
win2k系統(tǒng)的服務(wù)器來說,就還是有利用的價值。 明顯的就是空會話可以很方便地連接
到其他的域,枚舉用戶、機器等。這也就是掃描軟件進行探測的原理。我舉個簡單的程序
例子來說明這個用途,并枚舉用戶組和用戶。
#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 *)&use
rname,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_pre
ferred_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, comm
ent,255,null,null);
printf("/tcomment: %s/n",comment);
dword ret, read, total, resume = 0;
ret = netlocalgroupgetmembers((const unsigned short*)&wserver, i
nfo[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) b
uff;
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 );
}
這是一個簡單的例子。當然可以查詢更多的東西。類似,就不再重復(fù)了。枚舉用戶
名是很重要的用途,因為接下來可以做的就是進行密碼的猜解,這對系統(tǒng)安全構(gòu)成的威
脅是非常大的。
想到有威脅,就需要知道怎么防范。防范很簡單。不過這里需要提醒的是關(guān)于注冊
表(或者安全策略中)中可以設(shè)置restrictanonymous為1,這樣可以禁止空連接進行枚
舉。因為很多安全配置介紹中都是這樣做的,因為如果設(shè)置為2的
話,有一些問題會發(fā)生。比如一些win的服務(wù)出現(xiàn)問題等等。但是,restricanonymous設(shè)
置為1并不會組織用戶帳號的枚舉。因為空連接是一樣能夠建立的,并不是說阻止了空連
接的建立。但是我們這里需要來突破!!
iv、 break through "restricanonymous=1",突破restricanonymous=1的限制進行用戶
枚舉
雖然我們還是能夠建立空連接,但是卻沒有那些net函數(shù)的訪問權(quán)限了。這個可以看
msdn上關(guān)于對網(wǎng)絡(luò)管理函數(shù)的安全問題。但是,有一個突破點,呵呵,那就是猜測。這
個需要聯(lián)系到訪問控制模型上了。就象前面對null會話說到的那樣,null會話獲得anon
ymous logon 用戶名的sid(安全標志符),系統(tǒng)用sid來標志這個用戶,同時創(chuàng)建令牌
。而這個令牌才是系統(tǒng)對用戶的訪問權(quán)限標志,并不是用帳戶名來確定。現(xiàn)在我們需要
的是sid,因為令牌中含了帳戶的sid,對于系統(tǒng)來說,sid是不變的。sid是在帳戶或
者組創(chuàng)建的時候就建立好了。可是每個win2k系統(tǒng)為相同用戶名的帳戶創(chuàng)建的sid并不相
同。
我們來先分析這個重要的sid。sid的格式是:s-r-x-y(1)-y(2)-……-y(n)。其中s
表示該字符串是sid,r是sid的版本號,對于2000來說,這個就是1,然后x是標志符的頒
發(fā)機構(gòu) (identifier authority)。對于2000內(nèi)的帳戶,考試合格頒發(fā)機構(gòu)就是nt,值是5。然
后y表示一系列的子考試合格頒發(fā)機構(gòu),前面幾項是標志域的, 后一個y(n)標志著域內(nèi)的帳戶和
組。也就是說,對于多數(shù)帳戶來說,區(qū)別在與這個y(n)。
現(xiàn)在需要分析一下sam結(jié)構(gòu)中對帳戶的管理。展開注冊表的sam之后,
hkey_local_machine/sam/sam/domains/builtin/aliases/members,存儲著重要的帳戶
內(nèi)容。找到本地的域,然后展開,得到的就是本地帳號的所有sid列表。分析其規(guī)律,因
為有些是系統(tǒng)規(guī)定的y(n),所以就有規(guī)律了。其中的000001f4,十進制的500,這一定是
一個固定的,標志系統(tǒng)建立時候的內(nèi)置管理員帳號administrator,000001f5就是guest
帳號了。然后看到了一個跳躍到了000003e8,這是其他帳號的開始,比如 tsinternetu
ser帳戶以及自定義的帳戶了。
到了這里,我們還需要函數(shù)的支持。lookupaccountname()和lookupaccountsid(),
這兩個函數(shù)是允許空會話使用的。上面通過空會話來建立連接然后使用net*函數(shù)枚舉帳
戶已經(jīng)被restrictanonymous禁止了。因此,sid成為我們的突破口。不過sid對于一臺機
器來說是固定的,但是并不是說跟其他的機器的sid是一樣的,我們需要進行一定的猜測
,用來獲得sid中不同的部分,就是幾個子考試合格頒發(fā)機構(gòu)。哈哈,我們猜測的東西就是用戶名
。假象系統(tǒng)存在的用戶名,比如tsinternetuser,guest帳戶等。然后通過這些帳戶名獲
得sid的前面部分,然后根據(jù)前面部分進行枚舉,將 后一個子考試合格頒發(fā)機構(gòu)進行遞加,從而
獲得每個帳戶的sid,然后又回過來,利用函數(shù)lookupaccountsid()進行用戶名的查詢。
這樣就達到了枚舉帳戶的目的了,而且是在 restrictanonymous=1 的情況下。
我寫了一個程序,我猜測的帳號是guest。大致思路在這里介紹了,把代碼貼在這里
太占篇幅,原代碼和執(zhí)行程序可以在我的主頁(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/sec
urity0299.htm&nav=/msj/0299/newnav.htm
3、《the use of tcp port 445 in windows 2000》 arne vidstrom

  湖南省陽光電子技術(shù)學(xué)校常年開設(shè):手機維修培訓(xùn)、家電維修培訓(xùn)、電工培訓(xùn)、電腦維修培訓(xùn)、焊工培訓(xùn)--面向全國火爆招生!網(wǎng)址:http://www.hnygpx.com 報名電話:13807313137)。安置就業(yè)。考試合格頒發(fā)全國通用權(quán)威證書。采用我校多年來獨創(chuàng)的“模塊教學(xué)法”,理論與實踐相結(jié)合、原理+圖紙+機器三位一體的教學(xué)模式,半天理論,半天實踐,通俗易懂,確保無任何基礎(chǔ)者也能全面掌握維修技能、成為同行業(yè)中的佼佼者。工作(一期不會,免費學(xué)會為止)。

Tags:session 服務(wù)器 null 會話

作者:佚名
[]
電工培訓(xùn)學(xué)校 電動車維修學(xué)校 摩托車維修學(xué)校 摩托車維修培訓(xùn) 手機維修培訓(xùn) 家電維修培訓(xùn) 電腦維修培訓(xùn) 電動工具維修培訓(xùn) 液晶電視維修培訓(xùn) 安防監(jiān)控培訓(xùn) 空調(diào)維修培訓(xùn) 網(wǎng)絡(luò)營銷培訓(xùn) 網(wǎng)站設(shè)計培訓(xùn) 淘寶網(wǎng)店培訓(xùn) 電器維修培訓(xùn) 家電維修學(xué)校 電工培訓(xùn) 焊工培訓(xùn) 電工學(xué)校 電工培訓(xùn)學(xué)校 電動車維修學(xué)校 摩托車維修學(xué)校 摩托車維修培訓(xùn) 手機維修培訓(xùn) 家電維修培訓(xùn) 電腦維修培訓(xùn) 電動工具維修培訓(xùn) 液晶電視維修培訓(xùn) 安防監(jiān)控培訓(xùn) 空調(diào)維修培訓(xùn) 網(wǎng)絡(luò)營銷培訓(xùn) 網(wǎng)站設(shè)計培訓(xùn) 淘寶網(wǎng)店培訓(xùn) 電器維修培訓(xùn) 家電維修學(xué)校 電工培訓(xùn) 焊工培訓(xùn) 電工學(xué)校 電工培訓(xùn)學(xué)校 電動車維修學(xué)校 摩托車維修學(xué)校 摩托車維修培訓(xùn) 手機維修培訓(xùn) 家電維修培訓(xùn) 電腦維修培訓(xùn) 電動工具維修培訓(xùn) 液晶電視維修培訓(xùn) 安防監(jiān)控培訓(xùn) 空調(diào)維修培訓(xùn) 網(wǎng)絡(luò)營銷培訓(xùn) 網(wǎng)站設(shè)計培訓(xùn) 淘寶網(wǎng)店培訓(xùn) 電器維修培訓(xùn) 家電維修學(xué)校 電工培訓(xùn) 焊工培訓(xùn) 電工學(xué)校 電工培訓(xùn)學(xué)校 電動車維修學(xué)校 摩托車維修學(xué)校 摩托車維修培訓(xùn) 手機維修培訓(xùn) 家電維修培訓(xùn) 電腦維修培訓(xùn) 電動工具維修培訓(xùn) 液晶電視維修培訓(xùn) 安防監(jiān)控培訓(xùn) 空調(diào)維修培訓(xùn) 網(wǎng)絡(luò)營銷培訓(xùn) 網(wǎng)站設(shè)計培訓(xùn) 淘寶網(wǎng)店培訓(xùn) 電器維修培訓(xùn) 家電維修學(xué)校 電工培訓(xùn) 焊工培訓(xùn) 電工學(xué)校
中山市,固原市,銀川市,玉樹,海東,隴南市,酒泉市,張掖市,天水市,金昌市,蘭州市,榆林市,延安市,渭南市,銅川市,阿里,山南,拉薩市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,畢節(jié),銅仁,遵義市,貴陽市,甘孜州,資陽市,達州市,宜賓市,南充市,遂寧市,綿陽市,瀘州市,自貢市,三亞市,崇左市,河池市,玉林市,欽州市,梧州市,柳州市,梅州市,肇慶市,湛江市,佛山市,珠海市,韶關(guān)市,湘西州,懷化市,郴州市,張家界市,邵陽市,株洲市,仙桃市,隨州市,荊州市,荊門市,襄樊市,黃石市,駐馬店市,信陽市,南陽市,漯河市,中衛(wèi)市,石嘴山市,海西,海南藏州,黃南州,海北,甘南,慶陽市,平?jīng)鍪?武威市,白銀市,嘉峪關(guān)市,安康市,漢中市,咸陽市,寶雞市,林芝,日喀則,昌都,迪慶,德宏,大理,西雙版納,紅河州,臨滄市,麗江市,保山市,曲靖市,黔東州,黔西州,安順市,六盤水市,涼山州,阿壩州,雅安市,廣安市,眉山市,內(nèi)江市,廣元市,德陽市,攀枝花市,成都市,海口市,來賓市,百色市,貴港市,北海市,桂林市,南寧市,云浮市,揭陽市,潮州市,清遠市,陽江市,汕尾市,惠州市,茂名市,江門市,汕頭市,深圳市,廣州市,婁底市,永州市,益陽市,岳陽市,湘潭市,長沙市,恩施州,黃岡市,孝感市,鄂州市,十堰市,武漢市,周口市,商丘市,三門峽市,許昌市,焦作市,安陽市,鶴壁市,平頂山市,開封市,鄭州市,聊城市,濱州市,德州市,萊蕪市,日照市,泰安市,煙臺市,濰坊市,東營市,淄博市,上饒市,濟南市,撫州市,宜春市,贛州市,新余市,九江市,景德鎮(zhèn)市,寧德市,南平市,泉州市,莆田市,廈門市,宣城市,亳州市,六安市,宿州市,黃山市,滁州市,安慶市,淮北市,馬鞍山市,蚌埠市,蕪湖市,合肥市,麗水市,舟山市,衢州市,金華市,湖州市,嘉興市,寧波市,宿遷市,鎮(zhèn)江市,鹽城市,連云港市,蘇州市,徐州市,南京市,綏化市,牡丹江市,佳木斯市,大慶市,鶴崗市,哈爾濱市,白城市,白山市,遼源市,吉林市,葫蘆島市,鐵嶺市,盤錦市,阜新市,錦州市,本溪市,鞍山市,沈陽市,錫林郭勒盟,通遼市,烏海市,呂梁市,忻州市,晉中市,晉城市,陽泉市,太原市,廊坊市,承德市,保定市,邯鄲市,唐山市,寧夏,甘肅省,西藏,貴州省,重慶市,廣西,湖南省,河南省,江西省,安徽省,江蘇省,黑龍江省,遼寧省,山西省,天津市,四平市,內(nèi)蒙古,吳忠市,果洛,西寧市,定西市,商洛市,西安市,那曲,黔南州,巴中市,樂山市,賀州市,防城港市,東莞市,河源市,常德市,衡陽市,咸寧市,宜昌市,濮陽市,新鄉(xiāng)市,洛陽市,菏澤市,臨沂市,威海市,濟寧市,棗莊市,青島市,吉安市,鷹潭市,萍鄉(xiāng)市,南昌市,龍巖市,漳州市,三明市,福州市,池州市,巢湖市,阜陽市,銅陵市,淮南市,臺州市,紹興市,溫州市,杭州市,泰州市,揚州市,淮安市,南通市,常州市,無錫市,大興安嶺,黑河市,七臺河市,伊春市,雙鴨山市,雞西市,齊齊哈爾市,延邊,松原市,通化市,長春市,朝陽市,遼陽市,營口市,丹東市,撫順市,大連市,阿拉善盟,興安盟,烏蘭察布市,巴彥淖爾市,呼倫貝爾市,鄂爾多斯市,赤峰市,頭市,呼和浩特市,臨汾市,運城市,朔州市,長治市,大同市,衡水市,滄州市,張家口市,邢臺市,秦皇島市,石家莊市,青海省,陜西省,云南省,四川省,海南省,廣東省,湖北省,山東省,福建省,浙江省,上海市,吉林省,河北省,北京市 主站蜘蛛池模板: 嫩草www视频在线观看高清 | SM双性精跪趴灌憋尿调教H | 亚洲视频精品在线观看 | 日本免费无码A专区在线观看 | 国产色综合久久无码有码 | 俄罗斯女人Z0Z0极品 | 伊人久久综合成人亚洲 | bt成人种子 | 国产在线aaa片一区二区99 | 一本道久在线综合色姐 | 被两根巨大同时进去高H | 寂寞夜晚免费观看视频 | 精品国产免费观看久久久 | 青青伊人国产 | 久久国产精品久久国产精品 | 四川老师边上网课边被啪视频 | 美女扒开尿口让男生添动态图 | 黑人玩弄极品人妻系列 | 色中色入口2015 | 亚洲欧洲日本天天堂在线观看 | 欧美成人一区二免费视频 | 青柠高清在线观看完整版 | 亚洲色图在线观看视频 | 男人天堂黄色 | 国产欧美日韩网站 | 国产伦子沙发午休系列资源曝光 | 亚洲精品AV中文字幕在线 | 久青草国产在线视频 | 高清国产mv视频在线观看 | 亚洲不卡视频在线 | 成人免费一区二区无码视频 | 涩涩爱涩涩电影网站 | 国产精品亚洲欧美 | 亚洲一卡二卡三卡四卡无卡麻豆 | 征服丝袜旗袍人妻 | 色婷婷AV国产精品欧美毛片 | 在线免费观看毛片 | 日本无码人妻精品一区二区视频 | 国产亚洲欧美日韩综合综合二区 | 蜜桃视频无码区在线观看 | 草莓在线观看 |