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















 
 
 
 
 
 
 