"第七十九课:基于白名单Regsvr32执行payload第九季1 - APT攻击与防御技术"
在网络安全领域,攻击者经常利用系统自带的工具或功能来绕过安全防护,Regsvr32就是其中之一。本课程主要讨论如何在Windows环境中,尤其是Windows 2003系统上,利用白名单机制下的Regsvr32命令来执行恶意payload。Regsvr32是一个用于注册或卸载COM(Component Object Model)组件的命令行工具,通常位于`windows\system32`目录下。在Windows 2003系统中,由于64位系统的存在,还有一个副本位于`C:\WINDOWS\SysWOW64`目录下。
攻击者利用Regsvr32的一个关键点在于,它要求DLL文件提供DllRegisterServer、DllUnregisterServer两个输出函数,或者是DllInstall函数。当这些函数被调用时,DLL可以执行任意代码,这就为攻击者提供了机会。通过构造一个看似合法的DLL,并利用Regsvr32来加载这个DLL,攻击者可以在目标系统上执行任意命令。
在实际的攻击场景中,攻击者可能首先会尝试获得对目标系统的初步访问权限,例如通过网络扫描、漏洞利用或者其他社会工程手段。一旦有了立足点,攻击者就可以利用Regsvr32来进一步提升权限,或者执行隐蔽的操作。在本课程中,攻击机(192.168.1.4,使用Debian操作系统)将模拟这种攻击,而靶机(192.168.1.119,运行Windows 2003系统)作为受害者。
Metasploit Framework(MSF)是一个广泛使用的渗透测试工具,它包含了多种攻击模块。在本示例中,攻击者将使用MSF的auxiliary服务器模块`auxiliary/server/regsvr32_command_delivery_server`。这个模块允许攻击者通过Regsvr32命令来传递和执行远程命令。配置攻击机的过程包括选择模块、设置命令(如添加新用户)以及启动exploit。
1. 使用`use auxiliary/server/regsvr32_command_delivery_server`命令切换到该模块。
2. 使用`set CMD netuserMicropoorMicropoor/add`命令设置要执行的命令,这里是添加一个新的用户。
3. 确认命令设置无误。
4. 使用`exploit`命令启动攻击服务。
攻击机将监听在8080端口,等待靶机通过特定URL(http://0.0.0.0:8080/ybn7xESQYCGv)连接并执行命令。这种攻击方法的隐蔽性较强,因为Regsvr32通常是系统正常运行的一部分,可能会被白名单策略放过。
然而,值得注意的是,随着安全研究的发展,Metasploit框架中的某些模块可能会过时或被移除。在本课程提及的时候,MSF可能已经没有了exploit版本的Regsvr32模块,这意味着攻击者可能需要寻找其他方法来实现相同的目标。
了解和掌握Regsvr32的利用方式对于防御者来说至关重要,因为这有助于识别和防止这类攻击。防御者应该保持系统更新,应用严格的安全策略,限制不必要的COM组件注册,并监控异常的Regsvr32活动。同时,对员工进行安全意识培训,提高他们对社会工程攻击的警惕性,也是防御APT攻击的重要环节。