常见的漏洞分为软件漏洞和配置漏洞,软件漏洞的挖掘需要扎实的编程功底和对操作系统原理的深入理解;
配置漏洞通常是由于管理员的自身知识的不足造成的。在 Linux 环境下,X Window 是用来显示图形界面应用程序的底层系统,X Window 服务的认证通常分为 xhost 和 xauth 认证,xhost 认证的配置方法比较简便,只需在 xhost 命令后使用+或-选项来分别表示允许或拒绝某个主机访问本地的 X Window 服务就可以了。比如:"xhost +192.168.0.88" 就表示允许 IP 地址为 192.168.0.88 的机器访问本地的 X Window 服务 , "Xhost -192.168.0.88" 则表示禁止 IP 地址为 192.168.0.88 的机器访问本地的 X Window 服务,可是如果当管理员配置不当,配置成"xhost +"这样的通配符方式后,就表示允许任意 IP 地址的主机来访问本地的 X Window 服务,这样的配置是很危险的,远程攻击者可以利用管理员的这个配置漏洞,结合其他的系统服务,轻易的拿到主机的最高权限。
一.查点
先来对目标机器进行端口扫描,了解开放的服务。在 Linux 环境下,我选择的 Nmap 这个扫描之王。扫描结果如图 1 所示:
图 1通过 Nmap 返回的扫描结果,可以得知主机开放了 SSH 服务(22 端口),X Window 服务(6000 端口)。此时的入侵思路有 2 个,一是通过对 SSH 服务的暴力破解得到主机访问权限,或者如果主机的 SSH 服务采用的版本为 V1,也可以使用 Cain 或 Ettercap 工具对其进行嗅探攻击,从而得到明文连接密码;二是看看 X Window服务配置是否正确,如果管理员配置不当,那我们的入侵就简单多了。
xscan 是一款在评估 X Window 服务时,最常用的一款扫描工具,该工具可以快速识别一个网段或一台主机的 X window 服务当采用 xhost 认证方法时,激活了+通配符(xhost +)这种配置错误的主机。Linux 下的许多工具都是采用源码形式发布的,所以我们首先需要编译下。命令如下:
tar -zxf xscan.tar.gz
gcc xscan.c snoop.c -o xscan -L/usr/X11R6/lib -lX11
xscan 的使用非常简单,在 xscan 后输入要扫描的独立 IP 地址或 IP 网段就可以了。命令如下:
./xscan 192.168.0.144
效果如图 2 所示:
图 2
通过 xscan 的扫描结果,可以看到该工具已经连接到了主机 192.168.0.144 的 X window 服务,并开始捕获192.168.0.144 这台主机的击键信息,并把记录保存到 KEYLOG192.168.0.144:0.0 文件中。
二.入侵
从上面对主机的查点,得知了 192.168.0.144 这台主机 X window 服务的 xhost 认证配置不当,我们可以使用 xwininfo 这款工具,实时的监控 192.168.0.144 主机的屏幕,了解目标主机的一举一动。xwatchwin 也是采用源码的形式发布的,编译命令如下:
tar -zxf xwatchwin.tar.Z
cc -O xwatchwin.c -o xwatchwin -L/usr/X11R6/lib -lX11
当使用 xwatchwin 时,需要本地的 Linux 平台已经进入图形界面了,否则该工具无法成功使用。工具的使用命令如下:
./xwatchwin 192.168.0.144 root
输入完上面的命令的后,就会弹出一个窗口,我们就可以实时的监视 192.168.0.144 这台主机的一举一动了,效果如图 3 所示:
图 3如果只想知道目标主机的击键情况 ,也为了节省带宽 ,又或者当目标主机的管理员键入的密码被显示为*号字符(登录邮箱,论坛)时,可以使用 xspy 这款工具,实时的记录目标主机的键盘记录,从而得到敏感的信息,方便我们进一步入侵。在编译 xspy 的时候,如果你的 Linux 主机已经包括了 usleep 函数,需要修改下Imakefile 文件,把其中的 usleep.c 和 usleep.o 删除,这样才能正常的编译。如图 4: