星期一, 6月 20, 2005

轉貼:Hacking日記

我好像從來沒有分享過 hack 機器的經驗…
最近碰巧遇到一台機器, 有感而發來寫篇文章分享一些東西.
分享的東西不是說如何去 hack 一台機器, 而是要如何保護好自己…
喔喔 sorry, 這句話講的好像有點太偉大了,
這篇不是一個深入探討系統攻防的文章, 高手不用抱太大的期望 :)

我很少去玩 Windows 的機器, 因為我覺得 UNIX 的機器比較有挑戰性也比較有趣,
不過這次恰好遇到一台 Windows 的機器, 閒來無事看到有機可趁就把他幹掉了…

很多人都知道使用 Windows 系統要定期做 Windows Update,
要裝防毒軟體, 外加定期更新他的的病毒碼, 不要執行來路不明的程式,
要開防火牆, 要裝 SP2(?), 不要用 IE(?), 不要用 Outlook(?)…
這樣才你的系統不會沒事就被幹掉.

但是在 Internet 流行的現代, 要架設一台伺服器出來實在是太簡單了,
尤其是在 Windows 上, 就算對伺服器完全不懂的人也只要隨便抓個伺服器軟體,
一直按下一步下一步下一步, 馬上就可以建立一個對外的服務…
但是對於這種對伺服器一知半解的人, 胡亂設定一通所架設出來的東西,
往往也幫自己的系統開了一個很大的洞.
在做 network security 實務的人, 也對這樣的現象感到很頭痛.
尤其是這個現象現在在網路上真的越來越普遍.

這次舉的例子就是一個眾所皆知, 被廣泛使用的 FTP 伺服器軟體: Serv-U.
這個軟體可以讓你很容易的建立一個 FTP 伺服器, 分享軟體給其他人.

事情就發生在某天有個 FTP command packet 經過我家網路卡的洞口,
這時候我在洞口剛好看到這個 command packet 從我家門口經過,
也剛好上面寫了一組 username & password….

這邊先告訴我們一個教訓, 一般 FTP 預設所有的資訊都是不加密不編碼的.
所以重要資料要傳輸的時候請用 sftp 或用支援 SSL/TLS 的 FTP 伺服器,
所以想要架設 FTP 伺服器的人最好要考慮好自己的需求及開放的程度.

觀察也發現這個 FTP 連線的流量很大, 想說上面應該有好東西, 所以就上去看看…
GOOD! 超過 800G 的容量, 雖然說不是非常長更新, 但是東西還不少.
後來在目錄裡切來切去的時候發現居然切回 C:/ 的目錄 …

這邊又要告訴我們, 使用 FTP 伺服器的虛擬目錄功能時, 要仔細設好目錄的權限,
最好能把該 user 鎖定在 FTP 的根目錄中, 不要讓他能逛到系統的檔案區.

ok, 居然切到 C:/ 之後, 手指就不自覺得想建立一個目錄試看看,
目的在於試試看 C:/ 是不是 Read-Only…. “Premission denied.”
好險他的系統目錄是 Read-Only, 要不然這人就真的是大白痴了.
不過還是可以在系統目錄裡面逛逛看有沒有什麼好東西可以紀念一下..
就想說去看看他 FTP 伺服器的 user config file 好了,
當然就很順利的抓到 serv-u.ini , 裡面有所有的 ftp account 資訊.
好險 serv-u 裡面的 user password 是用 one-way encryption 編碼過的,
要不然他可慘了.

這邊有個例子, 在看解碼器的時候都是強調要先拿到 shadow password file.
有人就問過我, 讀不到 shadow password file 要怎麼拿去給解碼器解碼?
如果拿到 shadow password file 就代表拿到 root 權限了, 那幹麻還要解碼?
這也一個有 shadow passwd file 但是沒有完整權限的例子 (好像有點爛?)

不過對於跑解碼去解那些編碼過的 serv-u 的密碼我可一點興趣也沒有,
一來要花時間去解碼, 二來可能會解不出來, 三來解出這些密碼也沒啥用.
頂多是看看裡面有哪些 account, 大致上有什麼權限等等…
然後也注意到有些 user 是有完整的讀寫權限的, 不過我還是懶的去解那些人的密碼.
但是當我看到我正在用的這個 account 的資訊時, 發現了一個很好玩的事.
這個 account 除了 READ(讀取檔案), LIST(目錄列表) 權限之外,
居然還有 APPEND(檔案附加) 的權限 ??

APPEND 權限乍看之下並沒有太大的用途, 但是可以想想他的作用..
他可以在任何一個檔案後面附加資訊進去, 這跟 WRITE 權限已經沒有多大的分別了!
你有想到要如何利用這個權限來取得機器完整的控制權嗎?
我的作法是, 我可以新增一個 ftp account 在 serv-u.ini 裡面,
也就是新增一個 FTP 帳號, 並且給予這個 user 完整的存取權限!!
作法就是先把原本的 serv-u.ini 抓下來, 然後在後面加上一個新的 user account,
然後在利用 FTP續傳 的功能把改過的 serv-u.ini 傳上去 (使用到了 APPEND 權限),
這樣新增的 user account 就會進去了…

然後用新建的 ftp account 去登入 FTP 伺服器… Logged in !
這時候我們可以在利用 Serv-u 的特殊指令: site exec , 在 FTP 伺服器端執行任何指令.
而且執行的視窗也不會在 console 上跳出來, 這根本就是為 hacker 設計的嘛 XD
(這個 ftp account 必須具有 EXEC 權限)

不過這樣還不夠, 我們先建立一個批次檔, 傳到伺服器的硬碟上, 並且透過 serv-u 去執行他:
qprocess > process
net user > users
net config server > config.server
net config workstation > config.workstation
net statistics server > stat.server
net statistics workstation > stat.workstation
quser > quser
這些命令無聊的人可以在自己的 windows 上執行看看,
他只是列出一堆系統的資訊, 並不會造成任何損害…
好奇的人可以試試看, 執行完後會把資訊寫在一堆檔案裡面, 打開就可以看到了.

取得一些系統資訊後就要來想辦法真正控制整台電腦,
我們可以利用的是 WinXP, Win2003 之後提供的 遠端桌面 的功能,
遠端桌面對一般 user 來說是很棒的電腦遙控工具, 對 hacker 來說是一個很漂亮的大門…
想要用遠端桌面登入對方的電腦, 必須有 Windows 的 account & passwd (不是 serv-u 的),
並且該 user 要被設定成可以由遠端桌面登入 (或是該 user 屬於 Administrators 群組)

在這邊我們並不知道這台電腦的系統帳號跟密碼, 那要怎麼辦?
那還不簡單, 幫他建一個就好啦! 一樣透過 Serv-u 執行這些命令:
net user hihi 12344321 /add
net localgroup administators hihi /add
這樣我們就有一個 hihi 的 user, 密碼是 12344321
這時侯還要確認看看對方的 3389 port 有沒有打開, 現在很多人都會使用使用遠端桌面的功能,
所以大部分都是開的, 如果沒開的話就幫他把遠端桌面的服務啟動就好了…

這邊我們也學到一個東西, Windows 的 port 3389 就像 UNIX 的 port 22 一樣,
是個讓 Hacker 很方便進來的大門, 很容易讓人很方便的完全控制你的系統.
在 UNIX 底下比較嚴謹機器都會把 port 22 擋掉, 只開幾個信任的 IP 可以連接…
相同的在 Windows 底下也是一樣, 可以的話也盡量能限制能連接 port 3389 的 IP …

這時候我們使用 hihi 透過遠端桌面連接對方的電腦, 已經是能控制對方系統的極限了.
但是要注意的是, 要清除所遺留下來的 logs… 這邊就不多說了.
還有就是遠端桌面登入的時候會造成 console 的 user 被 logout (for WinXP),
所以不想被發現的話可以改用 VNC, UltraVNC, PCAnywhere 這類的東西…

時代在進步, 用來越多方便 user 使用的工具一直被發展出來, 架設伺服器的門檻也越來越低,
相對的, 讓 Hacker 能進入的縫也越來越多.
在這種網路的時代, Netowrk security 的概念是一個必學的課程…

以前曾經有個 Hacker 說過:
“如果網路掌握未來人類的生活, 那我就是未來之神”
現在網路已經快要掌握未來人類的生活了, 未來之神不知道會有幾百萬個…….
(當然啦, 我還不在裡面)


這是從LCR’s BLOGCO的

沒有留言:

網誌存檔