打印本文 关闭窗口 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Linux下的后门和日志工具 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
作者:陈鹏 文章来源:eNet 点击数 更新时间:2009/9/11 23:14:00 文章录入:陈鹏 责任编辑:陈鹏 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1、从这里延伸:后门和连接工具 (1)Httptunnel Tunnel的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上,它是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙。说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成HTTP请求的格式骗过防火墙,所以它不需要别的代理服务器而直接穿透防火墙。 HTTPTunnel包括两个程序:htc和hts,其中htc是客户端,而hts是服务器端,我们现在来看看我是如何用它们的。比如开了FTP的机器的IP是192.168.10.231,本地机器IP是192.168.10.226,因为防火墙的原因,本地机器无法连接到FTP上。怎么办?现在就可以考虑使用HTTPTunnel了。过程如下: 第一步:在本地机器上启动HTTPTunnel客户端。用Netstat看一下本机现在开放的端口,会发现8888端口已在侦听。 第二步:在对方机器上启动HTTPTunnel的服务器端,并执行命令“hts -f localhost:21 80”,这个命令的意思是说,把本机的21端口发出去的数据全部通过80端口中转一下,并且开放80端口作为侦听端口,再用Neststat看一下他的机器,就会发现80端口现在也在侦听状态。 第三步:在本地机器上用FTP连接本机的8888端口,会发现已经连上对方的机器了。那么,为什么人家看到的是127.0.0.1,而不是192.168.10.231呢?因为我们现在是连接本机的8888端口,防火墙肯定不会有反应,如果没往外发包,局域网的防火墙肯定就不知道了。现在连接上本机的8888端口以后,FTP的数据包不管是控制信息还是数据信息,都被htc伪装成HTTP数据包然后发过去,在防火墙看来,这都是正常数据,相当于欺骗了防火墙。 需要说明的是,这一招的使用需要其他机器的配合,就是说要在他的机器上启动一个hts,把他所提供的服务,如FTP等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就在于,即使他的机器以前80端口开着,现在也不会出现什么问题,重定向的隧道服务将畅通无阻! (2)Tcp_wrapper Tcp_wrapper是Wietse Venema开发的一个免费软件。Tcp_wrapper的诞生有个小小的故事,大约1990年,作者所在大学的服务器屡屡受到一个外来黑客侵入,因为受害主机的硬盘数据屡次被rm -rf/命令整个抹掉,所以找寻线索极为困难,直到有一天晚上作者在工作的过程中无意中发现这个黑客在不断的finger 受害主机、偷窥受害者的工作。于是,一个想法诞生了:设计一个软件,使它可以截获发起finger请求的IP,用户名等资料。Venema很快投入了工作,而Tcp_wrapper也由此诞生!此后,Tcp_wrapper随着广泛的应用逐渐成为一种标准的安全工具。通过它,管理员实现了对inetd提供的各种服务进行监控和过滤。 Tcp_wrapper编译安装成功后,会生成一个tcpd程序,它可以在inetd.conf这个控制文件中取代in.telnetd的位置,这样,每当有telnet的连接请求时,tcpd即会截获请求,先读取管理员所设置的访问控制文件,合乎要求,则会把这次连接原封不动的转给真正的in.telnetd程序,由in.telnetd完成后续工作。如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供telnet服务。Tcp_wrapper访问控制的实现是依靠两个文件:hosts.allow,hosts.deny来实现的。如果我们编辑/etc/syslog.conf文件时,加入了日志纪录功能,即: #tcp wrapper log local3.info /var/log/tcplog 编辑结束后,保存文件,在/var/log下会生成tcplog文件,注意这个文件的读写属性, 应该只对root有读写权限。然后ps -ef grep syslogd,找出syslogd的进程号,kill -HUP 重启syslogd进程使改动生效。 在这里,我们可以预先看一看以后生成的tcplog文件内容,如下:
(3)rootkit工具:LRK
其次是后门程序。木马程序可以为本地用户提供后门;木马网络监控程序则可以为远程用户提供inetd、rsh、ssh等后门服务,具体因版本而异。随着版本的升级,Linux Rootkit IV的功能也越来越强大,特征也越来越丰富。一般包括如下网络服务程序:
再就是工具程序。所有不属于以上类型的程序都可以归如这个类型,它们实现一些诸如:日志清理、报文嗅探以及远程shell的端口绑定等功能,包括:
(4)netcat 这是一个简单而有用的工具,能够通过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能。 2、查找Linux下的蛛丝马迹:日志工具
Logcheck首次运行时读入相关的日志文件的所有内容,Logtail会在日志文件的目录下为每个关心的日志文件建立一个logfile.offset 的偏移量文件,以便于下次检查时从这个偏移量开始检查。Logcheck执行时,将未被忽略的内容通过邮件的形式发送给 logcheck.sh 中 系统管理员指定的用户。 (2)logrotate 一般Linux 发行版中都自带这个工具。它可以自动使日志循环,删除保存最久的日志,它的配置文件是 /etc/logrotate.conf,我们可以在这个文件中设置日志的循环周期、日志的备份数目以及如何备份日志等等。在/etc/logrotate.d目录下,包括一些工具的日志循环设置文件,如syslog等,在这些文件中指定了如何根据/etc/logrotate.conf做日志循环,也可以在这里面添加其他的文件以循环其他服务的日志。 (3)swatch swatch 是一个实时的日志监控工具,我们可以设置感兴趣的事件。Swatch 有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息。Swatch提供了许多通知方式,包括email、振铃、终端输出、多种颜色等等。安装前,必须确保系统支持perl。swatch 软件的重点是配置文件swatchmessage,这个文本文件告诉 swatch 需要监视什么日志,需要寻找什么触发器,和当触发时所要执行的动作。当swatch发现与swatchmessage中定义的触发器正则表达式相符时,它将执行在 swatchrc中定义的通知程序。 当然,上面所介绍的软件只是Linux大海中的几只美丽的贝壳,随着越来越多的用户加入到Linux大军中,我们相信,优秀的Hack也将越来越多,这反过来也将促进Linux操作系统逐步走向成熟,我们拭目以待。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
打印本文 关闭窗口 |