複製鏈接
請複製以下鏈接發送給好友

ipc

(進程間通信)

編輯 鎖定
本詞條缺少概述图,補充相關內容使詞條更完整,還能快速升級,趕緊來編輯吧!
IPC(Inter-Process Communication進程間通信)。進程間通信是指兩個進程的數據之間產生交互
中文名
進程間通信
外文名
IPC
全    稱
Inter-Process Communication
適用領域
計算機

目錄

ipc進程間通信

編輯
IPC(Inter-Process Communication)進程間通信,提供了各種進程間通信的方法。在Linux C編程中有幾種方法
(1) 半雙工Unix管道
(2) FIFOs(命名管道)
(3) 消息隊列
(4) 信號量
(5) 共享內存
(6) 網絡Socket
FIFOs是共享"命名管道"的資源,它是為了讓進程間通信而開放的命名管道,通過提供可信任的用户名和口令,連接雙方可以建立安全的通道並以此通道進行加密數據的交換,從而實現對遠程計算機的訪問。IPC是NT/2000的一項新功能,它有一個特點,即在同一時間內,兩個IP之間只允許建立一個連接。NT/2000在提供了ipc功能的同時,在初次安裝系統時還打開了默認共享,即所有的邏輯共享(c,d,e……)和系統目錄winnt或windows(admin)共享。所有的這些,微軟的初衷都是為了方便管理員的管理,但在有意無意中,導致了系統安全性的降低。
平時我們總能聽到有人在説ipc漏洞,ipc漏洞,其實ipc並不是一個真正意義上的漏洞,我想之所以有人這麼説,一定是指微軟自己安置的那個‘後門’:空會話(Null session)。
網絡入侵
IPC(Inter-Process Communication)網絡入侵
為了幫助大家更好的學習IPC,我在這裏特定整理及完善了一下IPC的概念、一些常用命令、在IPC出現在些問題的原因等等,資料大都來自因特網,由於不知道作者名字,故不能標記內容來處,敬請見諒。
IPC的概念
空會話的概念
空會話是在沒有信任的情況下與服務器建立的會話,對於一個空會話,LSA提供的令牌的SID(空會話的SID)是S-1-5-7,用户名是:ANONYMOUS LOGON(系統內置的帳號),該訪問令牌包含下面偽裝的組:Everyone和Network。
IPC建立的過程
1)會話請求者(客户)向會話接收者(服務器)傳送一個數據包,請求安全隧道的建立;
2)服務器產生一個隨機的64位數(實現挑戰)傳送回客户;
3)客户取得這個由服務器產生的64位數,用試圖建立會話的帳號的口令打亂它,將結果返回到服務器(實現響應);
4)服務器接受響應後發送給本地安全驗證(LSA),LSA通過使用該用户正確的口令來核實響應以便確認請求者身份。如果請求者的帳號是服務器的本地帳號,核實本地發生;如果請求的帳號是一個域的帳號,響應傳送到域控制器去核實。當對挑戰的響應核實為正確後,一個訪問令牌產生,然後傳送給客户。客户使用這個訪問令牌連接到服務器上的資源直到建議的會話被終止。
IPC連接條件
★ 跟操作系統相關(NT/2000/XP可以建立ipc$連接,98/ME不能建立ipc$連接);
★ 目標主機必須要開啓ipc$共享;
本地主機必須要啓動Lanmanworkstation服務(功能為提供網絡鏈結和通訊);
★ 目標主機必須要啓動Lanmanserver服務(ipc$依賴於此服務,它提供了 RPC 支持、文件、打印以及命名管道共享);
★ 目標主機必須要啓動NetLogon,它支持網絡上計算機 pass-through 帳户登錄身份;
★ 目標主機應該啓動NBT(打開139端口);
★ 目標主機防火牆配置(如果屏蔽139和445端口也將導致連接失敗);
★ 用户名或者密碼錯誤;
★ 命令輸入錯誤(特別要注意空格的輸入,用户名和密碼中不包含空格時兩邊的雙引號可以省略,密碼為空,直接輸入兩個引號"");
★ 建立好連接後目標主機重啓,ipc$連接會自動斷開。
連接錯誤號分析
錯誤號5: 拒絕訪問,權限不夠;
錯誤號51: 無法找到網絡路徑(網絡有問題);
錯誤號53: 找不到網絡路徑(ip地址錯誤;目標主機未開機;目標主機lanmanserver服務未啓動;目標主機防火牆設置過濾端口);
錯誤號67: 找不到網絡名(本地主機中lanmanworkstation服務未啓動或者目標主機刪除了ipc$);
錯誤號1219: 提供的憑據與已存在的憑據集衝突(已經建立了一個ipc$,可以刪除再連);
錯誤號1326: 用户名或密碼錯誤;
錯誤號1792: 試圖登錄,網絡登錄服務沒有啓動(目標主機中NetLogon服務未啓動);
錯誤號2242: 該用户的密碼已經過期。
常用口令
★ 建立空連接: net use\\IP\ipc$"" /user:""
★ 建立非空連接: net use\\IP\ipc$"password" /user:"username"
★ 查看遠程主機的共享資源(但看不到默認共享) net view\\IP
★ 查看本地主機的共享資源(可以看到本地的默認共享) net share
★ 得到遠程主機的用户名列表 nbtstat -A IP
★ 得到本地主機的用户列表 net user
★ 查看遠程主機的當前時間 net time\\IP
★ 顯示本地主機當前服務 net start
★ 啓動/關閉本地服務 net start 服務名 /y net stop 服務名 /y
★ 映射遠程共享: net use z:\\IP\sihochina此命令將共享名為sihochina的共享資源映射到z盤
★ 刪除共享映射 net use z: /del /y 刪除映射的z盤net use * /del /y 刪除全部
★ 向遠程主機複製文件 copy \路徑\*.exe\\IP\共享目錄名,如: copy sihochina.exe\\IP\c將當前目錄下的sihochina.exe複製到對方c盤內
★ 遠程添加計劃任務 at\\ip時間 程序名,如: at\\192.168.0.111:00 sihochina.exe 11:00在主機192.168.0.1上運行sihochina.exe
本文所用的方法主要是在VISTA 旗艦版SP2以及XP SP2的環境下測試的,別的系統沒做測試,不過相信都大同小異,出現的問題也應該差不多,我將列舉我在兩個系統的實驗中所出現的所有問題供大家參考。