REXEC

REXEC是服務的遠程計算機上運行命令。rexec 命令在執行指定命令前,驗證遠程計算機上的用戶名,只有安裝了 TCP/IP 協定後才可以使用該命令。

基本介紹

  • 中文名:REXEC
  • 外文名:REXEC
  • 屬於:服務的遠程計算機上運行命令
  • 使用前提:安裝 TCP/IP 協定
  • 性質:ANSI字元串形式的連線埠號
rexec弱口令的檢測,三種作業系統,

rexec弱口令的檢測

rexec的網路通信細節
rexec服務偵聽512/TCP口,而512/UDP口對應biff服務。
rexec -a -l <username> -p <password> <host> <command>
rexec建立到rexecd的TCP連線(512/TCP),傳送如下請求數據:
[port]\0<username>\0<password>\0<command>\0
port
ANSI字元串形式的連線埠號,不是短整型形式的連線埠號。用途同rsh,stderr會重
定向到回連的TCP連線上。但對port沒有範圍限制,可任意指定。
此外,主連線(512/TCP)的源連線埠沒有範圍限制,這與rsh、rlogin通信不同。
username
試圖遠程使用的服務端用戶名,最長16個字元。
password
與username對應的明文口令,最長16個字元。
command
試圖遠程使用的服務端命令,也有長度限制,不過比較大。
rexecd向rexec傳送如下回響數據:
<ret><data>
ret等於0x00表示成功,data對應執行結果,一般是\n分隔、結尾的文本。
ret等於0x01表示失敗,data對應錯誤信息,一般也是\n分隔、結尾的文本。
rexec通信過程與rsh通信過程極其相似,甚至連那個變態的port欄位都一個用途。顯
然應儘量不提供port欄位。rexec通信過程中口令以明文形式傳遞,很不安全。這個
服務好像並沒有考慮暴力窮舉猜測口令的事,實在是個不該開放的服務。

三種作業系統

1) Linux
rexec -a -l <username> -p <password> <host> <command>
-a的作用就是不提供port欄位,預設沒有指定-a。
in.rexecd會對客戶端IP進行反向域名解析,解析不成功的話向客戶端返回錯誤信息
並終止服務進程。沒有命令行開關改變這種行為,解決方案是在/etc/hosts中為客戶
端IP增加相應條目。
2) Solaris
在我手頭的Solaris 8上沒找到rexec命令。
in.rexecd不會對客戶端IP進行反向域名解析。沒有命令行開關改變這種行為。
3) Aix
rexec -a -n <host> <command>
-a的作用同上。指定-n,rexec將互動式獲取username/password。
rexecd會對客戶端IP進行反向域名解析,解析不成功的話向客戶端返回錯誤信息並終
止服務進程。解決方案有兩種,一是在/etc/hosts中為客戶端IP增加相應條目,二是
修改/etc/inetd.conf中rexecd的命令行,增加命令行開關"-c",取消反向域名解析。

熱門詞條

聯絡我們