黑客技術(shù):IPC$命令詳解概念篇
黑客技術(shù)——什么是IPC$命令
IPC$(Internet Process Connection)是共享"命名管道"的資源,它是為了讓進(jìn)程間通信而開放的命名管道,通過提供可信任的用戶名和口令,連接雙方可以建立安全的通道并以此通道進(jìn)行加密數(shù)據(jù)的交換,從而實(shí)現(xiàn)對(duì)遠(yuǎn)程計(jì)算機(jī)的訪問。IPC$是NT/2000的一項(xiàng)新功能,它有一個(gè)特點(diǎn),即在同一時(shí)間內(nèi),兩個(gè)IP之間只允許建立一個(gè)連接。NT/2000在提供了ipc$功能的同時(shí),在初次安裝系統(tǒng)時(shí)還打開了默認(rèn)共享,即所有的邏輯共享(c$,d$,e$……)和系統(tǒng)目錄winnt或windows(admin$)共享。所有的這些,微軟的初衷都是為了方便管理員的管理,但在有意無意中,導(dǎo)致了系統(tǒng)安全性的降低。
平時(shí)我們總能聽到有人在說ipc$漏洞,ipc$漏洞,其實(shí)ipc$并不是一個(gè)真正意義上的漏洞,我想之所以有人這么說,一定是指微軟自己安置的那個(gè)‘后門’:空會(huì)話(Null session)。那么什么是空會(huì)話呢?
黑客技術(shù)——什么是空會(huì)話
在介紹空會(huì)話之前,我們有必要了解一下一個(gè)安全會(huì)話是如何建立的。在Windows NT 4.0中是使用挑戰(zhàn)響應(yīng)協(xié)議與遠(yuǎn)程機(jī)器建立一個(gè)會(huì)話的,建立成功的會(huì)話將成為一個(gè)安全隧道,建立雙方通過它互通信息,這個(gè)過程的大致順序如下:
1)會(huì)話請(qǐng)求者(客戶)向會(huì)話接收者(服務(wù)器)傳送一個(gè)數(shù)據(jù)包,請(qǐng)求安全隧道的建 立;
2)服務(wù)器產(chǎn)生一個(gè)隨機(jī)的64位數(shù)(實(shí)現(xiàn)挑戰(zhàn))傳送回突В?
3)客戶取得這個(gè)由服務(wù)器產(chǎn)生的64位數(shù),用試圖建立會(huì)話的帳號(hào)的口令打亂它,將結(jié) 果返回到服務(wù)器(實(shí)現(xiàn)響應(yīng));
4)服務(wù)器接受響應(yīng)后發(fā)送給本地安全驗(yàn)證(LSA),LSA通過使用該用戶正確的口令來核實(shí)響應(yīng)以便確認(rèn)請(qǐng)求者身份。如果請(qǐng)求者的帳號(hào)是服務(wù)器的本地帳號(hào),核實(shí)本地發(fā)生;如果請(qǐng)求的帳號(hào)是一個(gè)域的帳號(hào),響應(yīng)傳送到域控制器去核實(shí)。當(dāng)對(duì)挑戰(zhàn)的響應(yīng)核實(shí)為正確后,一個(gè)訪問令牌產(chǎn)生,然后傳送給客戶。客戶使用這個(gè)訪問令牌連接到服務(wù)器上的資源直到建議的會(huì)話被終止。
以上是一個(gè)安全會(huì)話建立的大致過程,那么空會(huì)話又如何呢?
空會(huì)話是在沒有信任的情況下與服務(wù)器建立的會(huì)話(即未提供用戶名與密碼),但根據(jù)WIN2000的訪問控制模型,空會(huì)話的建立同樣需要提供一個(gè)令牌,可是空會(huì)話在建立過程中并沒有經(jīng)過用戶信息的認(rèn)證,所以這個(gè)令牌中不包含用戶信息,因此,這個(gè)會(huì)話不能讓系統(tǒng)間發(fā)送加密信息,但這并不表示空會(huì)話的令牌中不包含安全標(biāo)識(shí)符SID(它標(biāo)識(shí)了用戶和所屬組),對(duì)于一個(gè)空會(huì)話,LSA提供的令牌的SID是S-1-5-7,這就是空會(huì)話的SID,用戶名是:ANONYMOUS LOGON(這個(gè)用戶名是可以在用戶列表中看到的,但是是不能在SAM數(shù)據(jù)庫中找到,屬于系統(tǒng)內(nèi)置的帳號(hào)),這個(gè)訪問令牌包含下面?zhèn)窝b的組:
Everyone
Network
在安全策略的限制下,這個(gè)空會(huì)話將被授權(quán)訪問到上面兩個(gè)組有權(quán)訪問到的一切信息。那么建立空會(huì)話到底可以作什么呢?
空會(huì)話可以做什么
對(duì)于NT,在默認(rèn)安全設(shè)置下,借助空連接可以列舉目標(biāo)主機(jī)上的用戶和共享,訪問everyone權(quán)限的共享,訪問小部分注冊(cè)表等,并沒有什么太大的利用價(jià)值;對(duì)2000作用更小,因?yàn)樵赪indows 2000 和以后版本中默認(rèn)只有管理員和備份操作員有權(quán)從網(wǎng)絡(luò)訪問到注冊(cè)表,而且實(shí)現(xiàn)起來也不方便,需借助工具。
從這些我們可以看到,這種非信任會(huì)話并沒有多大的用處,但從一次完整的ipc$入侵來看,空會(huì)話是一個(gè)不可缺少的跳板,因?yàn)槲覀儚乃抢锟梢缘玫綉袅斜恚蠖鄶?shù)弱口令掃描工具就是利用這個(gè)用戶列表來進(jìn)行口令猜解的,成功的導(dǎo)出用戶列表大大增加了猜解的成功率,僅從這一點(diǎn),足以說明空會(huì)話所帶來的安全隱患,因此說空會(huì)話毫無用處的說法是不正確的。以下是空會(huì)話中能夠使用的一些具體命令:
1 首先,我們先建立一個(gè)空連接(當(dāng)然,這需要目標(biāo)開放ipc$)
命令:net use \\ip\ipc$ "" /user:""
注意:上面的命令包括四個(gè)空格,net與use中間有一個(gè)空格,use后面一個(gè),密碼左右各一個(gè)空格。
2 查看遠(yuǎn)程主機(jī)的共享資源
命令:net view \\ip
解釋:前提是建立了空連接后,用此IPC$命令可以查看遠(yuǎn)程主機(jī)的共享資源,如果它開了共享,可以得到如下面的結(jié)果,但此IPC$命令不能顯示默認(rèn)共享。
在 \\*.*.*.*的共享資源
資源共享名 類型 用途 注釋
-----------------------------------------------------------
NETLOGON Disk Logon server share
SYSVOL Disk Logon server share
命令成功完成。
3 查看遠(yuǎn)程主機(jī)的當(dāng)前時(shí)間
命令: net time \\ip
解釋:用此命令可以得到一個(gè)遠(yuǎn)程主機(jī)的當(dāng)前時(shí)間。
4 得到遠(yuǎn)程主機(jī)的NetBIOS用戶名列表(需要打開自己的NBT)
命令:nbtstat -A ip
用此IPC$命令可以得到一個(gè)遠(yuǎn)程主機(jī)的NetBIOS用戶名列表,返回如下結(jié)果:
- Node IpAddress: [*.*.*.*] Scope Id: []
- NetBIOS Remote Machine Name Table
- Name Type Status
- ---------------------------------------------
- SERVER <00> UNIQUE Registered
- OYAMANISHI-H <00> GROUP Registered
- OYAMANISHI-H <1C> GROUP Registered
- SERVER <20> UNIQUE Registered
- OYAMANISHI-H <1B> UNIQUE Registered
- OYAMANISHI-H <1E> GROUP Registered
- SERVER <03> UNIQUE Registered
- OYAMANISHI-H <1D> UNIQUE Registered
- ..__MSBROWSE__.<01> GROUP Registered
- INet~Services <1C> GROUP Registered
- IS~SERVER......<00> UNIQUE Registered
- MAC Address = 00-50-8B-9A-2D-37
黑客技術(shù)基礎(chǔ)中,以上敘述的就是我們經(jīng)常使用空會(huì)話做的事情,好像也能獲得不少東西喲,不過要注意一點(diǎn):建立IPC$連接的操作會(huì)在Event Log中留下記錄,不管你是否登錄成功。