別名(alias)使用問題 [論壇 - Ubuntu 養蟲箱 - bug share]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



別名(alias)使用問題
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 39227
EXP: 85
離線
對於Linux中的alias指令有個疑問,也不知道算不算蟲

假設下了這樣的指令:
$alias alias='cd /'
$alias unalias='cd /'

可以想見會出現alias無法重新被合理利用的情況,請問如果發生這種情形有辦法可以解除這個alias「被鎖定」的現象嗎?
我用LiveDVD的確弄出這個結果,如果認真攻擊這點的話有沒有可能變成一種Linux病毒程式

以上,謝謝

2009/1/25 2:32
I′m UGP
應用擴展 工具箱
訪客
回覆: 別名(alias)使用問題
Anon:訪客
alias 是一種「使用者環境變數」
每位使用者 user 帳號,有它自己的環境變數
該環境變數登出後就會消失,下次再登入不會保留

環境變數最常見的,例如 path 路徑變數,PS1 命令提示字串。

假設有一個帳號叫 UGP,他設定了一個 alias 環境變數,只有他自己有作用而已,其它使用者不受影響。

由於環境變數登出後就會消失
那麼系統原先預設的環境變數是怎麼來的?
應該有一個檔案早就寫好了,以便登入時載入吧?

是的,沒錯
環境變數主要由兩個設定檔做控制:
--------------------------------
1./etc/profile
是全域型的,所有使用者包括 root,登入時都會跑這個檔一次,其內容為 shell script 語法,但檔頭第一行不必宣告。

2. ~/.bashrc
在每位使用者的家目錄底下,如果該使用者的預設 shell 是 bash,登入時就會參考 .bashrc 中的設定。內容也是 shell sciprt 語法,檔頭第一行不必宣告。

可以把這二檔,看作是 windows 底下 autoexec.bat 這類的東西。

-------------------------------------

至於這種東西,有沒有可能成為病毒程式?

這麼講吧,比如說這個 Linux 指令:rm -rf /
如果以 root 權限身份來執行,會發生什麼事情?
答案是:會把硬碟中所有資料,全部刪除

那如果把這類指令寫成 .sh 檔(自動執行批次檔,腳本檔)
不要說 rm -rf / (畢竟要 root 才能執行)
rm -rf ~ 就好(刪除自己家目錄,一般使用者可執行)

然後騙人說:這是某某好用軟體的安裝檔 install.sh

關鍵在:電腦病毒的定義,是它必須具有感染其它檔案的能力。所以充其量這類腳本只能算惡意程式,不是病毒。

相當於 windows 下來講的話
也能寫個 install.bat
騙人說是某某好用軟體安裝檔,點兩下就可安裝
然後內容寫什麼都可以
比如 del c:\windows/*.*
或 deltree c:\windows 什麼的

效果類似,尤其用 windows 的人多半直接用 admin 帳號登入,破壞力更強。不過 windows 使用中檔案會拒絕刪除,也許無法整顆硬碟清空,但也能嚴重破壞系統檔案導致無法開機。

-----------------------------------------

關於類似的招數
還有:在某個目錄中,偽造一個系統指令,比如 ls

Linux 系統下,副檔名只是參考用的,和檔案類型或可不可執行無關,就算副檔名都不加,也能執行。

所以 ls 這兩個字的檔案,也可以是 shell script 腳本,賦予執行權限,就能執行。

假設今天有一位 root,跑到某位使用者的家目錄底下
想查看他家目錄底下有什麼檔案,要打什麼指令?
沒錯,就是 ls

那打了會不會中招?
答案是:不會
因為預設的 path 路徑變數,不會找 . (目前目錄)

這就為什麼在終端機底下,要執行程式
都得打:./檔案名稱 ,特別強調是在這個目錄底下的原因

2009/1/25 13:09 | 7ab5d 1b103 42c8a 3099a
應用擴展 工具箱
回覆: 別名(alias)使用問題
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 39227
EXP: 85
離線
嗯嗯,感謝,內容豐富也很淺而易懂

再問另外一個問題,雖然我沒試過,不過應該可以:
如果把重要的系統指令例如ls、shutdown等用alias設定成惡意的指令,應該也會造成不小的破壞吧,如:
alias ls='sudo rm -rf /'

2009/1/28 15:04
I′m UGP
應用擴展 工具箱
訪客
回覆: 別名(alias)使用問題
Anon:訪客

再問另外一個問題,雖然我沒試過,不過應該可以:
如果把重要的系統指令例如ls、shutdown等用alias設定成惡意的指令,應該也會造成不小的破壞吧,如:
alias ls='sudo rm -rf /'


這是可以的
但正如前面所說的:alias 是「使用者 個人 環境變數」

每位使用者(帳號登入者)都有自己的環境變數,彼此之間沒有關係。

所以這一招只能自爽而已,害不到人的。

舉個白話一點的例子
比方說,每個使用者都有自己的佈景主題、桌布
那把桌布圖片,改成恐怖的鬼,能否嚇到人?

答案是不行的,因為改的桌布,只有你自己能看到而已
別人用別的帳號登入,是看不見你的桌布的
alias 也是類似道理,使用者的個人化環境設定


但如果將 alais 的指令,寫到 shell script 中,騙人說那是某個有用的執行檔,要人去執行。

那個人執行後,就會在不知情的情況下
以自身的權限設定 alias 別名
例如 alias ls='sudo rm -rf /'

所以這就是為什麼 sudo 要打密碼的原因

執行任何東西,若跳出打密碼視窗,表示要進行升級 root 權限的動作。使用者必須自己確認這動作是否安全。

2009/1/28 19:04 | 7ab5d 1b103 42c8a 3099a
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.