天天看點

Linux權限維持之PAM萬能密碼登入

0x00-前言 PAM(Pluggable Authentication Modules )是由Sun提出的一種認證機制。它通過提供一些動态連結庫和一套統一的API,将系統提供的服務和該服務的認證方式分開,使得系統管理者可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程式,同時也便于向系統中添加新的認證手段。PAM最初是內建在Solaris中,目前已移植到其它系統中,如Linux、SunOS、HP-UX 9.0等。

簡而言之,PAM中

包含Linux的登入認證子產品,并且Linux開源,是以我們便可以修改認證檔案中的代碼邏輯,實作權限維持。

檢視pam版本:

getconf LONG_BIT

cat /etc/redhat-release

rpm -qa | grep pam

apt-get list --installed | grep pam

檢視系統版本

cat /etc/issue

cat /etc/*-release

cat /etc/lsb-release

PAM包下載下傳位址:

0x01-實驗環境

Centos7 root權限

PAM版本1.1.8

Linux權限維持之PAM萬能密碼登入

安裝gcc

首先下載下傳對應版本的PAM包,解壓

修改moudles/pam_unix/pam_unix_auth.c檔案,修改處位于180行

Linux權限維持之PAM萬能密碼登入

改成如下代碼,代碼很簡單。修改判斷邏輯,并且記錄管理者的登入到/usr/share/java/.null中

Linux權限維持之PAM萬能密碼登入

代碼

修改完後在Linux-PAM-1.1.8.tar.gz 目錄中執行./configure && make

Linux權限維持之PAM萬能密碼登入

OK,遇到yywrap未定義引用不要慌,執行

編譯好的檔案在modules/pam_unix/.libs/中

Linux權限維持之PAM萬能密碼登入

随後替換 pam_unix.so檔案,系統原本的認證檔案為/lib64/security/pam_unix.so

32位系統為/lib/security/pam_unix.so

随後關閉SElinux

驗證

Linux權限維持之PAM萬能密碼登入

使用goodboy密碼順利登入系統。當然我使用原本root的密碼也能登入,并且會被記錄在/usr/share/java/.null中。

Linux權限維持之PAM萬能密碼登入
Linux權限維持之PAM萬能密碼登入