当前位置首页 > 百科> 正文

Linux后门

2019-11-13 19:00:36 百科

Linux后门

攻入Linux系统后,很多入侵者往往就开始得意忘形了。

基本介绍

  • 中文名:Linux后门
  • 类型:专业用语
  • 隶属:Linux系统
  • 包括:Httptunnel
攻入Linux系统后,很多入侵者往往就开始得意忘形了。这其中还有一个原因,就是技术性也要求更高了。下面,我们来看看一些常用的经典工具。
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 loglocal3.info /var/log/tcplog
编辑结束后,保存档案,在/var/log下会生成tcplog档案,注意这个档案的读写属性, 应该只对root有读写许可权。然后ps -ef   grep syslogd,找出syslogd的进程号,kill -HUP 重启syslogd进程使改动生效。 在这里,我们可以预先看一看以后生成的tcplog档案内容,如下: Jul 31 22:00:52 www.test.org in.telnetd: connect from 10.68.32.1 Jul 31 22:02:10 www.test.org in.telnetd: connect from 10.68.32.5 Jul 31 22:04:58 www.test.org in.ftpd: connect from 10.68.32.3 Aug 2 02:11:07 www.test.org in.rshd: connect from 10.68.32.5 Aug 2 02:11:07 www.test.org in.rlogind: connect from 10.68.32.1
从上面我们可以看到,在安装了Tcp_wrapper的主机上,系统的每一次连线,Tcp_wrapper都做了纪录,它的内容包括时间、服务、状态、ip等,对攻击这有很大的参考价值,不过,一定要记得清除日誌了。
(3)rootkit工具:LRK
Rootkit出现于二十世纪90年代初,它是攻击者用来隐藏自己的蹤迹和保留root访问许可权的工具。通常,攻击者通过远程攻击或者密码猜测获得系统的访问许可权。接着,攻击者会在侵入的主机中安装rootkit,然后他会通过rootkit的后门检查系统,看是否有其他的用户登录,如果只有自己,攻击者就开始着手清理日誌中的有关信息。通过rootkit的嗅探器获得其它系统的用户和密码之后,攻击者就会利用这些信息侵入其它的系统。
如果攻击者能够正确地安装rootkit併合理地清理了日誌档案,系统管理员就会很难察觉系统已经被侵入,直到某一天其它系统的管理员和他联繫或者嗅探器的日誌把磁碟全部填满,他才会察觉已经大祸临头了。不过,在系统恢复和清理过程中,大多数常用的命令例如ps、df和ls已经不可信了。许多rootkit中有一个叫做FIX的程式,在安装rootkit之前,攻击者可以首先使用这个程式做一个系统二进制代码的快照,然后再安装替代程式。FIX能够根据原来的程式伪造替代程式的三个时间戳(atime、ctime、mtime)、date、permission、所属用户和所属用户组。如果攻击者能够準确地使用这些优秀的应用程式,并且在安装rootkit时行为谨慎,就会让系统管理员很难发现。
下面我们介绍一个非常典型的针对Linux系统的LRK版本6。Linux Rootkit 6是一个开放源码的rootkit,经过多年的发展,Linux Rootkit的功能越来越完善,具有的特徵也越来越多。下面我们简单地介绍一下Linux Rootkit包含的各种工具。
首先是隐藏入侵者行蹤的程式。为了隐藏入侵者的行蹤,Linux Rootkit IV的作者可谓煞费心机,编写了许多系统命令的替代程式,使用这些程式代替原由的系统命令,来隐藏入侵者的行蹤。这些程式包括:
ls、find、du 这些程式会阻止显示入侵者的档案以及计算入侵者档案占用的空间。在编译之前,入侵者可以通过ROOTKIT_FILES_FILE设定自己的档案所处的位置,默认是/dev/ptyr。注意如果在编译时使用了SHOWFLAG选项,就可以使用ls -/命令列出所有的档案。这几个程式还能够自动隐藏所有名字为:ptyr、hack.dir和W4r3z的档案。
ps、top、pidof 这几个程式用来隐藏所有和入侵者相关的进程。
netstat 隐藏出/入指定IP位址或者连线埠的网路数据流量程。
killall 不会杀死被入侵者隐藏的进程。
ifconfig 如果入侵者启动了嗅探器,这个程式就阻止PROMISC标记的显示,使系统管理员难以发现网路接口已经处于混杂模式下。
crontab 隐藏有关攻击者的crontab条目。
tcpd 阻止向日誌中记录某些连线。
syslogd 过滤掉日誌中的某些连线信息。
其次是后门程式。木马程式可以为本地用户提供后门;木马网路监控程式则可以为远程用户提供inetd、rsh、ssh等后门服务,具体因版本而异。随着版本的升级,Linux Rootkit IV的功能也越来越强大,特徵也越来越丰富。一般包括如下网路服务程式:
chfn 提升本地普通用户许可权的程式。运行chfn,在它提示输入新的用户名时,如果用户输入Rookit密码,他的许可权就被提升为root。
chsh 提升本地用户许可权的程式。运行chsh,在它提示输入新的shell时,如果用户输入rootkit密码,他的许可权就被提升为root。
passwd 和上面两个程式的作用相同。在提示你输入新密码时,如果输入rookit密码,许可权就可以变成root。
login 允许使用任何帐户通过rootkit密码登录。如果使用root帐户登录被拒绝,可以尝试一下rewt。当使用后门时,这个程式还能够禁止记录命令的历史记录。
inetd 特洛伊inetd程式,为攻击者提供远程访问服务。
rshd 为攻击者提供远程shell服务。攻击者使用rsh -l rootkitpassword host command命令就可以启动一个远程root shell。
sshd 为攻击者提供ssh服务的后门程式。
再就是工具程式。所有不属于以上类型的程式都可以归如这个类型,它们实现一些诸如:日誌清理、报文嗅探以及远程shell的连线埠绑定等功能,包括:
fix 档案属性伪造程式。
linsniffer 报文嗅探器程式。
sniffchk 一个简单的bash shell脚本,检查系统中是否正有一个嗅探器在运行。
login 允许使用任何帐户通过rootkit密码登录。如果使用root帐户登录被拒绝,可以尝试一下rewt。当使用后门时,这个程式还能够禁止记录命令的历史记录。
z2 utmp/wtmp/lastlog日誌清理工具。可以删除utmp/wtmp/lastlog日誌档案中有关某个用户名的所有条目。不过,如果用于Linux系统需要手工修改其原始码,设定日誌档案的位置。
bindshell 在某个连线埠上绑定shell服务,默认连线埠是12497。为远程攻击者提供shell服务。
(4)Netcat
这是一个简单而有用的工具,能够通过使用TCP或UDP协定的网路连线去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程式和脚本轻鬆驱动。同时,它也是一个功能强大的网路调试和探测工具,能够建立你需要的几乎所有类型的网路连线,还有几个很有意思的内置功能。
2、查找Linux下的蛛丝马迹:日誌工具
对于高明的攻击者来说,进入系统后,还应了解自己的“蛛丝马迹”并清除这些痕迹,自然就要了解一些日誌工具了。
(1)logcheck
logchek 可以自动地检查日誌档案,定期检查日誌档案以发现违反安全规则以及异常的活动。它先把正常的日誌信息剔除掉,把一些有问题的日誌保留下来,然后把这些信息 email 给系统管理员。logcheck 用 logtail 程式记住上次已经读过的日誌档案的位置,然后从这个位置开始处理新的日誌信息。logcheck 主要由下面几个主要的档案:
logcheck.sh 可执行的脚本档案,记录logcheck检查那些日誌档案等,我们可以把它加入crontab中定时运行。
logcheck.hacking 是logcheck 检查的模式档案。和下面的档案一起,按从上到下的顺序执行。这个档案表明了入侵活动的模式。
logcheck.violations 这个档案表示有问题,违背常理的活动的模式。优先权小于上面的那个模式档案。
logcheck.violations.ignore 这个档案和上面的logcheck.violations的优先是相对的,是我们所不关心的问题的模式档案。
logcheck.ignore 这是检查的最后一个模式档案。如果没有和前三个模式档案匹配,也没有匹配这个模式档案的话,则输出到报告中。
Logtail 记录日誌档案信息。
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作业系统逐步走向成熟,我们拭目以待。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net