Windows操作系统中默认安装了各种各样的命令,但是真正被普通用户用到的其实只有其中的一小部分。而JPCERT/CC还发现攻击者在入侵到目标的网络当中时会使用Windows的命令来收集系统信息和传播恶意病毒。
这里值得注意的是被普通用户和攻击者所使用的Windows命令的差别,如果这两者之间有很大的差别,就有可能通过监测/控制Windows的命令执行来发现或者限制攻击者的行为。
本文中的这个项目将展示如何通过揭露攻击者在被入侵的Windows操作系统上所使用的Windows命令以及限制普通用户不必要的命令执行来减轻攻击所造成的影响。
恶意远程控制软件(Remote Access Tool/Trojan – RAT)通常都会有一个函数用来执行从远程环境接收到的命令,在这个函数的帮助下,攻击者能够在远程环境下在被控端执行任意Windows命令。
攻击者在网络中成功安装这样的恶意软件后,会按以下的顺序试图控制同网络当中的其他主机来收集机密的信息等。
(1)初步调查:收集被感染主机的信息。
(2)侦查:寻找保存在主机中的信息和搜索同网络下的其他主机。
(3)扩大感染:用其他的恶意软件感染主机或者试图访问其他主机。
在上述的所有阶段中都会用到Windows命令,下面我将对每个阶段用到的Windows命令进行介绍。
表格1列举了攻击者尝试收集被感染主机的信息时所用到的命令。“Times executed”的统计来自于3个不同的攻击组织在他们的C&C服务器中用到的Windows命令的总和。
Table 1: 初步调查 (Top 10 commands)
攻击者利用诸如“tasklist”,“ver”,“ipconfig”和“systeminfo”等的命令来收集网络、进程、操作系统的信息来研究他们成功感染的主机是什么主机,这可能用来断定那个主机是不是用来进行病毒研究的沙盒等。
表格2中的命令经常被用来搜索机密信息和搜索同网络当中的其他主机
攻击者用”dir”和”type”来搜索文件。有时他们会通过活用”dir”命令的参数来搜集被感染主机的一系列文件。
通过”net”命令来搜索网络数据,特别的,下面的命令经常被看到:
· net view: 显示指定的计算机共享的域、计算机或资源的列表
· net user: 管理 本地/域 账号
· net localgroup: 获得一个属于本地组的用户列表
· net group: 获得一个属于特定域组的用户列表
· net use: 获取资源
此外,以下的命令可以在开启了Active Directory(参考表格5附录A)的环境中使用。这些命令被安装在Windows Server中,不存在于Windows7 和Windows8操作系统,但是攻击者可以手动安装并执行命令。
· dsquery: 在Active Directory中搜索账号
· csvde: 在Active Directory中获得账号的信息
为了入侵远程主机并且在网络中感染其他主机,下面的命令经常被使用:
“at”和”wmic”经常被用来在远程主机中执行恶意程序。
利用”at”命令,攻击者可以在远程主机上通过计划任务执行程序来连接主机:
at //[remote host name or IP address] 12:00 cmd /c "C:/windows/temp/mal.exe"
同样的,通过“wmic”命令,攻击者也可以在远程主机上执行任意命令:
wmic /node:[IP address] /user:”[user name]” /password:”[password]” process call create “cmd /c c:/Windows/System32/net.exe user”
公平的说这些黑客使用的Windows命令包含了很多普通用户不会用到的,通过应用能够限制这些命令执行的AppLocker(应用程序控制策略)和软件限制原则,是有可能限制黑客的攻击行为的。比如说,如果你想限制”net”命令的使用,你可以设置如下的规则(更详细的AppLocker配置信息,请查阅Microsoft官网)。
同样的,通过启用AppLocker的事件记录功能,当Windows命令被执行或者尝试执行的命令被拒绝时会将该事件记录到日志中,这样有利于调查黑客到底在被感染的主机中执行了那些命令。
AppLocker也可以用来监控Windows命令。AppLocker不能防止命令被执行,但执行的历史会被记录在事件日志中。如果用户自己要使用的Windows命令也经常被攻击者使用,将AppLocker设置为监控目的是一个很好的选择。
针对目标进行攻击时,攻击者为了实现他们的目的不仅会使用恶意软件还经常使用Windows命令。如果这样的行为能被发现,那么就可以在它传播的早期就将其拦截。但是,通过限制Windows的命令是很难实现的,所以我们的建议是通过AppLocker等收集软件执行过程中的日志。
*原文地址: jpcert ,东二门陈冠希/编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)