|
樓主 |
發表於 2009-2-2 02:39:48
|
顯示全部樓層
入 侵 原 理 解 說 :
此 一 入 侵 乃 是 利 用 FTP公 眾 匿 名 帳 號 anonymous, ftp其 中 後 者 的 ftp正 好 與 系 統 中 內 定 的 FTP公
眾 帳 號 目 錄 名 稱 相 同 , 使 得 系 統 誤 以 為 ftp是 一 個 已 經 登 記 的 用 戶 而 不 是 一 個 公 眾 匿 名 帳 號 而
使 其 進 入 系 統 目 錄 中 。
為 什 麼 會 有 這 種 現 象 發 生 呢 ? 原 來 FTP伺 服 程 式 將 連 線 進 來 的 使 用 者 分 為 「 匿 名 帳 號 」 與 「 正
式 帳 號 」 。 如 果 是 匿 名 帳 號 , 則 系 統 僅 要 求 其 輸 入 自 己 的 E-Mail或 是 Ident資 料 當 密 碼 , 就 可
以 進 入 系 統 中 的 /home/ftp目 錄 中 , 而 以 /home/ftp當 作 此 類 使 用 者 的 根 目 錄 , 這 種 用
anonymous或 是 ftp當 帳 號 匿 名 簽 入 的 使 用 者 是 沒 有 辦 法 切 到 系 統 目 錄 中 的 (實 際 的 /目 錄 ), 再
怎 麼 下 chdir/命 令 也 只 能 到 /home/ftp為 止 。
而 如 果 是 在 /etc/passwd中 登 記 有 案 的 帳 號 , 則 以 系 統 中 實 際 的 /為 其 根 目 錄 , 此 類 使 用 者 可
以 在 其 權 限 範 圍 內 瀏 覽 整 顆 硬 碟 。
而 因 為 匿 名 帳 號 是 以 /home/ftp目 錄 為 起 點 , 正 好 與 ftp此 一 匿 名 帳 號 相 同 , 故 wu-ftpd 2.x版
以 前 的 版 本 會 將 使 用 ftp簽 入 的 帳 號 亦 視 為 一 般 User。 (不 過 如 果 是 用 anonymous此 一 匿 名 帳 號
簽 入 , 就 不 會 有 這 種 狀 況 了 )
使 用 ftp帳 號 並 入 侵 到 系 統 裡 面 以 後 會 有 什 麼 好 處 呢 ? 由 於 該 入 侵 者 已 經 可 以 完 整 瀏 覽 該 硬 碟
, 並 享 有 一 般 User之 權 限 , 當 然 入 侵 者 也 可 以 進 到 /etc目 錄 下 , 並 讀 取 passwd檔 案 。 如 果 該
系 統 沒 有 做 shadow的 話 , 那 就 可 以 大 大 方 方 地 拿 走 passwd檔 案 , 然 後 回 家 利 用 類 似 上 期 本 專
欄 所 介 紹 之 密 碼 分 析 程 式 算 出 密 碼 來 。 如 果 正 好 還 破 出 root的 密 碼 的 話 , 那 就 … …
入 侵 防 治 方 式 :
1.如 果 你 的 ftp伺 服 程 式 是 wu-ftpd而 且 版 號 低 於 2.4版 , 請 盡 快 換 到 2.4版 使 用 。
2.將 ftp帳 號 列 入 /ftp/ftpusers檔 案 中 , 讓 匿 名 使 用 者 只 能 利 用 anonymous此 一 匿 名 帳 號 簽 入
。
3.替 系 統 安 裝 Shadow Password。
4.再 次 確 認 系 統 中 沒 有 叫 做 ftp或 是 anonymous的 目 錄 。
5.改 /etc/inetd.conf檔 案 , 關 閉 FTP服 務 。
利 用 通 信 協 定 先 天 上 的 安 全 漏 洞 入 侵 系 統
這 次 我 們 依 然 以 FTP程 式 作 為 說 明 , 講 解 如 何 由 FTP通 信 程 式 本 身 的 漏 洞 來 竊 取 某 些 敏 感 性 資
料 。
FTP Bounce跳 躍 攻 擊 法
本 範 例 將 講 解 如 何 經 由 FTP竊 取 到 被 限 制 傳 送 的 軟 體 。 某 一 位 於 美 國 的 FTP主 機 , 暫 名 為 A主 機
, 其 IP Address為 a.a.a.a, 在 其 中 的 /export-restrict目 錄 中 放 有 一 禁 止 出 口 的 密 碼 程 式
crypt.tar.gz, 此 目 錄 被 設 定 為 只 要 不 是 美 國 本 土 的 主 機 連 線 , 就 無 法 取 得
/export-restrict目 錄 中 的 任 何 檔 案 。 (註 一 )
現 在 在 台 灣 有 一 台 C主 機 , 其 IP Address為 c.c.c.c, C主 機 上 有 一 個 用 戶 想 要 連 線 到 A主 機 去
Download crypt.tar.gz這 一 個 編 密 軟 體 , 但 是 A 主 機 拒 絕 讓 C主 機 傳 送 這 個 檔 案 。 因 為 A主 機
經 由 檢 查 C主 機 的 IP Address之 後 , 得 知 C主 機 並 不 位 在 美 國 , 因 此 不 讓 C主 機 download這 個 檔
案 。 但 是 A主 機 可 以 用 同 樣 的 程 序 檢 查 出 哪 些 主 機 位 於 美 國 , 並 且 讓 這 些 主 機 進 去 拿 資 料 。
現 在 假 設 在 美 國 有 一 台 公 眾 FTP主 機 , 名 為 B主 機 , 其 IP Address為 b.b.b.b, 此 一 B主 機 開 放
一 個 /upload目 錄 讓 大 家 放 檔 案 上 來 和 其 他 人 分 享 , 任 何 人 都 可 以 放 檔 案 到 /upload裡 面 , 也
可 以 刪 掉 自 己 所 放 的 檔 案 。
C主 機 上 的 這 一 個 用 戶 很 想 要 拿 到 這 個 編 密 軟 體 , 但 是 受 限 於 出 口 禁 令 無 法 拿 到 這 個 檔 案 。 有
一 天 他 發 現 B主 機 上 有 一 個 /upload目 錄 可 以 供 大 家 上 傳 shareware檔 案 (亦 即 是 一 個 大 家 都 可
讀 可 寫 的 目 錄 ), 於 是 C主 機 上 的 這 個 用 戶 想 出 了 個 好 點 子 , 利 用 FTP Bounce跳 躍 攻 擊 法 , 把
B主 機 當 作 中 介 主 機 來 偷 到 A主 機 上 的 crypt.tar.gz檔 案 。
1.首 先 , 該 用 戶 以 自 己 機 器 的 真 實 IP Address(不 能 用 localhost或 是 127.x.x.x)連 上 自 己 的
機 器 :
linux1:~# ftp 168.95.109.222
Connected to 168.95.109.222.
220 linux1 FTP server(Version wu-2.4(4)Sun Jun 22 22:47:03 CDT 1997)ready.
Name (localhost:root): user1
331 Password required for user1.
Password:
230 User user1 logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
2.接 下 來 , 使 用 quote指 令 將 FTP內 部 命 令 pasv傳 送 給 FTP伺 服 程 式 , 使 其 進 入 被 動 模 式
(Passive Mode)
ftp$ quote pasv
227 Entering Passive Mode (168,95,109,222,5,243)
剛 剛 要 您 使 用 真 實 IP Address連 上 自 己 機 器 而 不 要 用 localhost用 意 即 在 此 , 如 果 你 用
localhost連 上 , 則 通 信 是 藉 由 loopback介 面 來 傳 送 , 而 不 是 真 實 的 網 路 介 面 , 無 法 得 知 進 入
passive mode以 後 所 使 用 的 通 信 Port號 碼 。
如 果 用 了 localhost就 會 變 這 樣 :
ftp$ quote pasv
227 Entering Passive Mode (127,0,0,1,5,243)
得 到 這 個 資 訊 對 我 們 一 點 幫 助 都 沒 有 。 現 在 將 您 剛 剛 使 用 pasv命 令 所 得 到 的 IP位 址 以 及
Port數 目 抄 下 來 , 稍 後 應 用 (就 是 168,95,109,222,5,243)。
3.再 使 用 一 次 quote命 令 , 送 出 stor指 令 , 並 指 定 要 存 一 個 新 檔 案 “ foo” 。 (foo是 慣 用 字 ,
你 可 以 自 己 取 別 的 名 字 )
4.現 在 你 的 FTP程 式 應 該 已 經 停 掉 了 , 暫 時 別 理 它 (但 是 別 把 連 線 切 斷 , 就 讓 它 保 持 這 樣 )
5.用 文 字 編 輯 器 編 輯 如 下 的 檔 案 (是 一 個 指 令 稿 , 讓 我 們 能 夠 遙 控 B主 機 做 我 們 想 要 做 的 動 作
, 就 好 像 是 我 們 直 接 在 B主 機 上 操 作 一 個 FTP Client程 式 一 樣 , 右 右 括 號 為 其 解 說 , 編 輯 時 不
用 打 上 去 ):
完 成 後 , 將 此 一 檔 案 定 一 個 你 喜 歡 的 名 字 。 在 這 邊 我 們 使 用 command為 名 稱 。
6.現 在 再 用 FTP連 線 到 B主 機 去 , 然 後 用 匿 名 使 用 者 登 錄 , 並 且 切 換 到 /upload目 錄 去 。 剛 剛 我
們 已 經 講 過 , B主 機 的 /upload目 錄 是 供 使 用 者 上 傳 Shareware或 其 他 資 料 用 的 , 因 此 任 何 人 都
可 以 在 這 邊 寫 入 資 料 。 現 在 先 使 用 put指 令 將 剛 剛 寫 好 的 指 令 稿 command上 傳 到 B主 機 的
/upload目 錄 中 (cd /upload;put command)。
7.在 B主 機 上 再 次 使 用 quote命 令 送 出 “ port a,a,a,a,0,21” 這 就 是 A主 機 的 IP Address, 而
且 我 們 指 定 用 21號 的 Port來 傳 送 資 料 。
8.現 在 繼 續 使 用 quote 指 令 送 出 “ retr command” 將 command指 令 稿 的 內 容 列 出 , 其 結 果 將 會
變 為 執 行 該 檔 案 內 容 。
9.由 於 command 檔 案 中 指 揮 B主 機 去 A主 機 抓 資 料 (第 7步 驟 時 已 經 將 B主 機 和 A主 機 連 結 ), 而
A主 機 由 於 從 IP Address 查 出 B 主 機 為 美 國 境 內 的 主 機 , 因 此 允 許 來 自 B 主 機 的 抓 檔 請 求 。
10.現 在 檢 查 第 三 步 驟 所 產 生 的 ‘ foo’ 檔 案 , 現 在 應 該 已 經 變 為 crypt.tar.gz, 此 一 檔 案 之
內 容 , 資 料 竊 取 成 功 。
入 侵 原 理 解 說
由 於 本 例 中 的 A主 機 不 接 受 美 國 以 外 地 區 的 主 機 擷 取 關 於 密 碼 的 資 料 , 因 此 我 們 透 過 一 台 同 樣
位 於 美 國 且 具 有 一 個 公 眾 目 錄 的 B主 機 來 幫 我 們 抓 資 料 。 其 關 鍵 技 術 在 於 利 用 了 B主 機 的 「 遠
端 執 行 」 能 力 , 藉 由 預 先 寫 好 的 指 令 稿 遙 控 B主 機 , 為 我 們 到 A主 機 上 去 抓 到 我 們 想 要 的 資 料
。 |
|