萬盛學電腦網

 萬盛學電腦網 >> 系統工具 >> 445端口入侵詳解

445端口入侵詳解

 445端口入侵詳解

   關於“445端口入侵”的內容
445端口入侵詳解
本站搜索更多關於“445端口入侵”的內容

445端口入侵,在這之前我們首先要看的還是445端口為什麼回成為入侵的端口呢?
445端口就是IPC 服務的默認端口
                                                            ipc$
一 摘要
二 什麼是 ipc$
三 什麼是空會話
四 空會話可以做什麼
五 ipc$ 所使用的端口
六 ipc 管道在 hack 攻擊中的意義
七 ipc$ 連接失敗的常見原因
八 復制文件失敗的原因
九 關於 at 命令和 xp 對 ipc$ 的限制
十 如何打開目標的 IPC$ 共享以及其他共享
十一 一些需要 shell 才能完成的命令
十二 入侵中可能會用到的命令
十三 對比過去和現今的 ipc$ 入侵
十四 如何防范 ipc$ 入侵
十五 ipc$ 入侵問答精選
十六 結束的話
一 摘要
網上關於 ipc$入侵的文章可謂多如牛毛,攻擊步驟甚至已經成為了固化的模式,因此也沒人願意再把這已經成為定式的東西拿出來擺弄。不過話雖這樣說,我認為這些文章講解的並不詳細,一些內容甚至是錯誤的,以致對 ipc$的提問幾乎占了各大安全論壇討論區的半壁江山,而且這些問題常常都是重復的,嚴重影響了論壇質量和學習效率,因此我總結了這篇文章,希望能把 ipc$這部分東西盡量說清楚。
注意:本文所討論的各種情況均默認發生在 win NT/2000 環境下, win98 將不在此次討論之列。
二 什麼是 ipc$
IPC$(Internet Process Connection) 是共享 " 命名管道 "的資源,它是為了讓進程間通信而開放的命名管道,通過提供可信任的用戶名和口令,連接雙方可以建立安全的通道並以此通道進行加密數據的交換,從而實現對遠程計算機的訪問。 IPC$ 是 NT/2000 的一項新功能,它有一個特點,即在同一時間內,兩個 IP 之間只允許建立一個連接。NT/2000 在提供了 ipc$ 功能的同時,在初次安裝系統時還打開了默認共享,即所有的邏輯共享 (c$,d$,e$ …… ) 和系統目錄winnt 或 windows(admin$) 共享。所有的這些,微軟的初衷都是為了方便管理員的管理,但在有意無意中,導致了系統安全性的降低。
平時我們總能聽到有人在說 ipc$ 漏洞, ipc$ 漏洞,其實 ipc$ 並不是一個真正意義上的漏洞 , 我想之所以有人這麼說,一定是指微軟自己安置的那個‘後門':空會話( Null session )。那麼什麼是空會話呢?
三 什麼是空會話
在介紹空會話之前,我們有必要了解一下一個安全會話是如何建立的。
在 Windows NT 4.0 中是使用挑戰響應協議與遠程機器建立一個會話的,建立成功的會話將成為一個安全隧道,建立雙方通過它互通信息,這個過程的大致順序如下:
1 )會話請求者(客戶)向會話接收者(服務器)傳送一個數據包,請求安全隧道的建立;
2 )服務器產生一個隨機的 64 位數(實現挑戰)傳送回客戶;
3 )客戶取得這個由服務器產生的 64 位數,用試圖建立會話的帳號的口令打亂它,將結果返回到服務器(實現響應);
4 )服務器接受響應後發送給本地安全驗證( LSA ), LSA通過使用該用戶正確的口令來核實響應以便確認請求者身份。如果請求者的帳號是服務器的本地帳號,核實本地發生;如果請求的帳號是一個域的帳號,響應傳送到域控制器去核實。當對挑戰的響應核實為正確後,一個訪問令牌產生,然後傳送給客戶。客戶使用這個訪問令牌連接到服務器上的資源直到建議的會話被終止。
以上是一個安全會話建立的大致過程,那麼空會話又如何呢?
空會話是在沒有信任的情況下與服務器建立的會話(即未提供用戶名與密碼),但根據 WIN2000的訪問控制模型,空會話的建立同樣需要提供一個令牌,可是空會話在建立過程中並沒有經過用戶信息的認證,所以這個令牌中不包含用戶信息,因此,這個會話不能讓系統間發送加密信息,但這並不表示空會話的令牌中不包含安全標識符 SID (它標識了用戶和所屬組),對於一個空會話, LSA 提供的令牌的SID 是 S- 1-5-7 ,這就是空會話的 SID ,用戶名是: ANONYMOUS LOGON(這個用戶名是可以在用戶列表中看到的,但是是不能在 SAM 數據庫中找到,屬於系統內置的帳號),這個訪問令牌包含下面偽裝的組:
Everyone
Network
在安全策略的限制下,這個空會話將被授權訪問到上面兩個組有權訪問到的一切信息。那麼建立空會話到底可以作什麼呢?
四 空會話可以做什麼
對於 NT ,在默認安全設置下,借助空連接可以列舉目標主機上的用戶和共享,訪問 everyone權限的共享,訪問小部分注冊表等,並沒有什麼太大的利用價值;對 2000 作用更小,因為在 Windows 2000和以後版本中默認只有管理員和備份操作員有權從網絡訪問到注冊表,而且實現起來也不方便,需借助工具。
從這些我們可以看到,這種非信任會話並沒有多大的用處,但從一次完整的 ipc$入侵來看,空會話是一個不可缺少的跳板,因為我們從它那裡可以得到戶列表,而大多數弱口令掃描工具就是利用這個用戶列表來進行口令猜解的,成功的導出用戶列表大大增加了猜解的成功率,僅從這一點,足以說明空會話所帶來的安全隱患,因此說空會話毫無用處的說法是不正確的。以下是空會話中能夠使用的一些具體命令:
1 首先,我們先建立一個空會話(當然,這需要目標開放 ipc$ )
命令: net use ipipc$ "" /user:""
注意:上面的命令包括四個空格, net 與 use 中間有一個空格, use 後面一個,密碼左右各一個空格。
2 查看遠程主機的共享資源
命令: net view ip
解釋:前提是建立了空連接後,用此命令可以查看遠程主機的共享資源,如果它開了共享,可以得到如下面的結果,但此命令不能顯示默認共享。
在 *.*.*.* 的共享資源
資源共享名 類型 用途 注釋
-----------------------------------------------------------
NETLOGON Disk Logon server share
SYSVOL Disk Logon server share
命令成功完成。
3 查看遠程主機的當前時間
命令: net time ip
解釋:用此命令可以得到一個遠程主機的當前時間。
4 得到遠程主機的 NetBIOS 用戶名列表(需要打開自己的 NBT )
命令: nbtstat -A ip
用此命令可以得到一個遠程主機的 NetBIOS 用戶名列表,返回如下結果:
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
以上就是我們經常使用空會話做的事情,好像也能獲得不少東西喲,不過要注意一點:建立 IPC$ 連接的操作會在 Event Log 中留下記錄,不管你是否登錄成功。 好了,那麼下面我們就來看看 ipc$ 所使用的端口是什麼?
五 ipc$ 所使用的端口
首先我們來了解一些基礎知識:
1 SMBServer Message Block) Windows 協議族,用於文件打印共享的服務;
2 NBTNETBios Over TCP/IP) 使用 137 ( UDP ) 138 ( UDP ) 139 ( TCP )端口實現基於 TCP/IP 協議的 NETBIOS 網絡互聯。
3 在 WindowsNT 中 SMB 基於 NBT 實現,即使用 139 ( TCP )端口;而在 Windows2000 中, SMB 除了基於 NBT 實現,還可以直接通過 445 端口實現。
有了這些基礎知識,我們就可以進一步來討論訪問網絡共享對端口的選擇了:
對於 win2000 客戶端(發起端)來說:
1 如果在允許 NBT 的情況下連接服務器時,客戶端會同時嘗試訪問 139 和 445 端口,如果 445 端口有響應,那麼就發送 RST包給 139 端口斷開連接,用 455 端口進行會話,當 445 端口無響應時,才使用 139 端口,如果兩個端口都沒有響應,則會話失敗;
2 如果在禁止 NBT 的情況下連接服務器時,那麼客戶端只會嘗試訪問 445 端口,如果 445 端口無響應,那麼會話失敗。
對於 win2000 服務器端來說:
1 如果允許 NBT, 那麼 UDP 端口 137, 138, TCP 端口 139, 445 將開放( LISTENING );
2 如果禁止 NBT ,那麼只有 445 端口開放。
我們建立的 ipc$ 會話對端口的選擇同樣遵守以上原則。顯而易見,如果遠程服務器沒有監聽 139 或 445 端口, ipc$ 會話是無法建立的。
六 ipc 管道在 hack 攻擊中的意義
ipc 管道本來是微軟為了方便管理員進行遠程管理而設計的,但在入侵者看來,開放 ipc 管道的主機似乎更容易得手。通過 ipc管道,我們可以遠程調用一些系統函數(大多通過工具實現,但需要相應的權限),

copyright © 萬盛學電腦網 all rights reserved