热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Solaris服务器防范rootkit攻击攻略

文章标题:Solaris服务器防范rootkit攻击攻略。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

    一、rootkit的定义

  rootkit这个术语已经存在10多年了。它是由有用的小型程序组成的工具包,使得攻击者能够保持访问计算机上具有最高权限的用户“root”。换句话说,rootkit是能够持久或可靠地、无法检测地存在于计算机上的一组程序和代码。在上述rootkit定义中,关键词是“无法检测”。rootkit所采用的大部分技术和技巧都用于在计算机上隐藏代码和数据。例如,许多rootkit可以隐藏文件和目录。rootkit的其它特性通常用于远程访问和窃听——例如,用于嗅探网络上的报文。当这些特性结合起来后,它们会给安全带来毁灭性的打击。

  要取得一个主机的控制权,最简单的当然就是以登录程序(如 login, ssh, telnet 等) 加上猜测密码的程序来尝试进行登入的行为。不过,由于登入程序大部分都有登入次数的限制,因此使用密码猜测程序就不这么流行了。高级的黑客为了系统网络的安全,会撰写一些程序去测试自己主机的服务漏洞, 并且在发现了某些服务的漏洞之后,会通报该服务的维护团体,或者是贡献自己的修补方式,以补足自己系统的安全性。而服务开发/维护团体在接到这样的通报之后,会在最短的时间内进行程序修改, 并且在因特网上面进行通报与释出该漏洞的修补程序。

  然而在这个漏洞通报出来之后,与修补程序释出Sun空窗期,某些恶意的黑客就会针对这样的漏洞进行攻击,这些黑客同样是撰写程序来攻击该漏洞,同时取得被攻击主机的控制权,或者是植入木马程序在受攻击的主机上。 这些黑客与高级黑客不同的地方,在于他们会很骄傲的将攻击的成果贴在一些黑客常上的网站,藉以推销自己,同时,也会将他们撰写的恶意程序散播到互联网上面。 有些黑客就会将这些恶意程序收集起来,做成软件包,并使这些程序包更加流行于互联网上面, 这些恶意的程序包就被称为 rootkit 。

  二、rootkit 的类型

  我们可将unix和Linux下的 rootkit 分为两大类:应用层级rookit 和内核级别rootkit

  1.应用层级 rootkit

  应用层级 rootkit 是最常被拿来使用的 rootkit。攻击者以 rootkit 中的木马程序来替换系统中正常的应用程序与系统文件。木马程序会提供后门给攻击者并隐藏其踪迹,攻击者做的任何活动都不会储存在纪录文件中。下面列举了一些攻击者可能取代的文件:

  隐藏攻击者踪迹的程序

  (1)ls, find, du - 木马程序可以隐藏攻击者文件、欺骗系统,让系统的文件及目录泄露讯息。

  (2)ps, top, pidof - 这些程序都是程序监看程序,它们可以让攻击者在进行攻击的过程中,隐藏攻击者本身的程序。

  (3)netstat - netstat 是用来检查网络活动的连结与监听,如开放的通讯端口等等

  。木马程序 netstat 可以隐藏攻击者的网络活动,例如 ssh daemon 或其它服务。

  (4)killall - 木马程序 killall 让管理者无法停止程序。

  (5)ifconfig - 当监听软件正在执行时,木马程序 ifconfig 不会显示 PROMISC flag,这样可以隐藏攻击者,不被监听软件察觉。

  (6)crontab - 木马程序 crontab 可以隐藏攻击者的 crontab 进入情况。

  (7)tcpd, syslogd - 木马程序 tcpd 与 "syslog" 不会纪录攻击者的行为。

  后门程序

  (1)chfn - 提升使用者的权限。执行 chfn,在输入新使用者名称时,只要输入 rootkit 密码,就可以取得 root 的权限。

  (2)chsh - 提升使用者的权限。执行 chsh,在输入新 shell 时,只要输入rootkit 密码,就可以取得 root 的权限。

  (3)passwd - 提升使用者的权限。执行 passwd,在输入新密码时,只要输入rootkit 密码,就可以取得 root 的权限。

  (4)login - 能够纪录任何使用者名称,包含 root 登入的密码。

  (5)bd2 - 木马程序 rpcbind 允许攻击者在受害主机上执行任意程序代码。

  木马程序程序

  (1)inetd - 木马程序 inetd 可以替攻击者打开远程登入的通讯端口,只要输入密码就可以取得 root 的权限。

  (2)rshd - 替攻击者提供远程的 shell。

  (3)rsh - 透过 rsh 可以取得 root 的密码。

  (4)sshd -攻击者以特定账号密码登入就能拥有 root shell 的权限。

  监听程序

  (1)linsniffer - linux 小型的监听程序。

  (2)sniffchk - 这个程序可以检验与确认网络监听程序是否正在执行。

  (3)le - Solaris Ethernet 封包的监听程序。

  (4)snif - linux 其它封包的监听程序。

  (5)sniff-10mb - 这是一个设计来监听 10mbps Ethernet 的监听程序。

  (6)sniff-100mb - 这是一个设计来监听 100mbps Ethernet 的监听程序。

  其它种类-

  (1)fix - 安装木马程序时 (例如:ls) 更改的时间戳记与检验封包值的讯息。

  (2)wted - wtmp 的编辑程序。可让攻击者修改 wtmp。

  (3)z2 - 移除 wtmp/utmp/lastlog。

  (4)bindshell - 把 rootshell 与某个通讯端口结合在一起。(预设埠号为 31337)

  (5)zap3 - 攻击者会从 wtmp, utmp, lastlog, wtmpx 和 utmpx 移除他们的踪迹

  。zap3 通常根据下列目录来找寻纪录文件的位置,例如 /var/log, /var/adm,

  /usr/adm, 与 /var/run。

  2.内核级别rootkit

  内核级别rootkit 是比应用层级别 rootkit 功能更强大的 rootkit。内核级别rootkit

  透过操作与利用 kernel,已成为最难被发现 rootkit,因为它能够在应用层检查中,建立一条绕过检验的通道。虽然这种软件主要是针对 linux 所制作,但它可能被修改来针对某个通讯端口或者是其它的操作系统来做攻击,一旦被安装在目标主机上,系统就可说是完全被黑客所控制,系统管理员甚至根本找不到黑客隐藏的踪迹。内核级别rootkit 是如何运作的呢? 它基本上是利用 LKM『Loadable Kernel Module』的功能让攻击者做出非法的动作。LKM 在 linux 或其它系统中都是非常有用的工具,支持 LKM 的系统包含 FreeBSD 与 Solaris。操作系统里面有一些函数被系统用来建构 kernel,当这些函数遭到假冒与窜改,主机就不能再被信任了。下面针对内核级别rootkit 的一些运作方式来做介绍:

  (1)隐藏程序 - 在 unix 执行过程中,程序的纪录讯息会存放于文件系统中的 "/proc",隐藏程序可以操作 sys_getdents() 系统呼叫函数,在程序的架构里就看不见这些附加且正在执行的程序。

  (2)隐藏网络连结 - 类似于隐藏程序,网络连结会纪录在 "/proc/net/tcp" 与 "/proc/net/udp" 这两个文件之中,执行 Kernel rootkit,无论何时读取这两个文件,都会隐藏攻击者的踪迹,不让用户知道。

  (3)隐藏 LKM 的信号 - 通常 LKM 的默认值是可被看见的,这样是为了方便其它使用者也可以使用。攻击者必须使用 "EXPORT_NO_SYMBOLS" 命令隐藏这些信号,以防止任何信号被泄漏出去。

  (4)利用 LKM 传递讯息 - LKM Kernel rootkit 安装完成之后,攻击者若要通知kernel 隐藏另一文件,可透过 Kernel rootkit 来替换 sys_settimeofday()。之后只要透过一些特别的参数,就可以请求系统来完成攻击者想要完成的事情。

  (5)改变文件的执行 - 有时攻击者可能想要替换掉某些文件,例如 "login",但并不想要更改文件,此时 Kernel rootkit 可以替换 sys_execve()。这样系统会持续执行 "login" 并泄漏 "login" 程序的版本给攻击者。

  目前最流行的内核级别rootkit,包含 linux 上的 knark 与 Solaris 上的Loadable Kernel Module,其中 knark 还包含了以下的程序:

  (1)hidef:用来隐藏文件。

  (2)unhidef:用来设定执行文件重新导向,使攻击者的木马可以被执行。

  (3)nethide:可以隐藏 /proc/net/tcp 与 /proc/net/udp 字符串,这也是netstat 撷取资料的地方,攻击者可以用这个工具将目标主机上使用中的联机讯息隐藏起来。

  (4)taskhack:可以改变正在执行中的程序,因此攻击者可以将 /bin/sh 的程序,更改成为 root 的使用者账号。

  (5)rexec:可以从远程在 knark 服务器上执行命令,也可以用来支持 ip 造假的功能。

  (6)rootme:可以将权限提升到 root。

[1] [2] [3] [4] 下一页


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • UDP千兆以太网FPGA_verilog实现(四、代码前期准备UDP和IP协议构建)
    UDP:userDatagramprotocol用户数据报协议无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC76 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
author-avatar
好运娟_968
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有