检测恶意软件、防止恶意软件在关键系统上执行,这一直是这几年安全行业关注的焦点。Tripwire公司致力于监控安装在系统上的新应用、驱动和文件。如果别有用心的攻击者想要利用系统自带的应用和工具实施入侵,其选择往往不多。攻击者只使用受害者自带的工具,也就是"最酷的黑客不用网"(living off the LAN)。
Linux的很多发行版中包含一个名为Netcat的工具包。Netcat是一个强大的管理员工具,被安装在很多服务器上,甚至包括一些Windows系统。它的功能是与远程接口连接并发起通信,或者创建一个预留给远程连接的监听接口。通过控制TCP或UDP的端口限制,Netcat可以被作为端口扫描器来使用,一方面探测打开的端口,另一方面标记下可用的服务和应用。使用一行简单的命令 nc –nv –w1 <ip> <port range> 就可以扫描目标IP上的指定端口。使用Netcat扫描端口的样例见下图。
Sample1如图所示,Netcat客户端快速隐秘地扫描了IP地址192.168.1.3的10到25号端口,发现端口22是打开的,并使用SSH-2.0-OpenSSH 5.3。通过和特定端口的互动,我们可以得到更多目标设备的有用信息,包括应用名称、版本,以及基础操作系统。使用Netcat和HTTP服务互动的样例见下图。
Sample2如图所示,我们可以推测出目标设备使用Apache,运行的版本号是2.2.15,基础操作系统是CentOS。
这样的信息泄露并不一定是有害的,然而Netcat可能表现出一些更恶意的行为,包括允许攻击者建立、使用后门,在不同设备间传送文件。Netcat的其中一项功能是执行一个程序,并将输入变量从监听器传送到该程序。当用户在Linux设备上执行/bin/sh或在Windows设备上执行cmd.exe时,就相当于在自己的电脑上打开了一个后门。幸运的是,对安全管理人员而言,在设备上使用预装Netcat时的命令可能并没有包含-e。不过,攻击者也可以只通过设立一个Netcat监听器来绕过这个问题,该监听器作为中继,功能是从FIFO文件中读取标准化输出。然后攻击者就可以将指令输送到连接着本地主机22号端口的Netcat命令行上,然后将标准化输出重定向到预先定义好的FIFO文件上。最后,只需要连接一个非本地主机的其它IP即可完成中继过程。
尽管有诸如SCP、FTP、TFTP这类传输文件的方式,但它们基本上都被防火墙严密监控着,甚至可能已经被封锁了。
幸运的是,Tripwire软件可以帮忙探测网络环境下的Netcat。Tripwire记录中心的内置相关性检查模块会迅速探测到端口扫描并发出报警,前面提到的那种扫描也不例外。另外,Tripwire企业版的网络犯罪控制模块会检测攻击链上的多个点。其一,任何被安装的新应用,包括Netcat这样的内置工具;其二,任何被封锁或打开的新端口都会被探测到;其三,用户可以对模块进行配置,以检测网络环境内的哪些服务器上安装了Netcat,系统管理员可以基于需要情况决定是否卸载这些设备上的Netcat工具,以减少服务器被入侵的可能性。
上述Netcat的功能在Windows系统上也成立,但Netcat并不是Windows的自带工具,因此使用它进行入侵可能没有那么盛行。不过,微软也为攻击者无意间提供了一些基于SMB的其它工具,比如Windows规范管理架构命令行(WMIC)。要执行远程命令,攻击者需要一个管理员级别的账户。不幸的是,哈希传递攻击(Pass the Hash)在Windows体系下相当普遍,获得一个管理员级别的账户也许并非难事。除了WMIC之外,类似reg.exe和sc.exe这些内置工具也允许攻击者远程控制设备,不过同样也需要管理员账户。
考虑到很多系统管理员也使用类似WMIC、reg.exe、sc.exe这类的工具,探测来自于这些工具的攻击时会获得较大的假阳性率。不过,Tripwire企业版用户可以通过改动审查和关键改动审查两个模块来探测关键注册表的风吹草动。另外,网络犯罪内容模块监控所有Windows设备上的服务状态,任何通过sc.exe执行的命令都会触动检测规则,引起模块报警。
尽管攻击者在使用设备非自带的工具和恶意软件时更加得心应手,上面的这几个例子同样说明,即使是使用系统自带工具,黑客仍然可以展开攻击。幸运的是,不管黑客使用的工具是什么,在我们回溯整个攻击链时,还是能够想到一些起预警作用的安全产品。
网友评论