13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

检测CobaltStrike只使用40行代码

无文件落地的木马主要是一段可以自定位的shellcode组成,特点是没有文件,可以附加到任何进程里面执行。一旦特征码被捕获甚至是只需要xor一次就能改变特征码,由于传统安全软件是基于文件检测的,对目前越来越多的无文件落地木马检查效果差。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比廉江网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式廉江网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖廉江地区。费用合理售后完善,十余年实体公司更值得信赖。

基于内存行为特征的检测方式,可以通过检测执行代码是否在正常文件镜像区段内去识别是否是无文件木马.由于cobaltstrike等无文件木马区段所在的是private内存,所以在执行loadimage回调的时候可以通过堆栈回溯快速确认是否是无文件木马。

检测只需要40行代码:

堆栈回溯:

 
 
 
  1. bool WalkStack(int pHeight) 
  2. bool bResult = true; 
  3. PVOID dwStackWalkAddress[STACK_WALK_WEIGHT] = { 0 }; 
  4. unsigned __int64 iWalkChainCount = RtlWalkFrameChain(dwStackWalkAddress, STACK_WALK_WEIGHT, 1); 
  5. int iWalkLimit = 0; 
  6. for (unsigned __int64 i = iWalkChainCount; i > 0; i--) 
  7. if (iWalkLimit > pHeight) 
  8. break; 
  9. iWalkLimit++; 
  10. if (CheckStackVAD((PVOID)dwStackWalkAddress[i])) { 
  11. DebugPrint("height: %d address %p \n", i, dwStackWalkAddress[i]); 
  12. bResult = false; 
  13. break; 
  14. return bResult; 
  15. }

使用:

编译好驱动,加载驱动,之后运行测试看看:

普通生成(x32与x64)测试:

基于VirtualAlloc的C代码测试:

测试结果:

基于powershell的测试:

基于python的测试:

测试结果:

弊端:

目前已知的ngentask.exe、sdiagnhost.exe服务会触发这个检测规则(看样子是为了执行一些更新服务从微软服务端下载了一些shellcode之类的去运行).如果后续优化则需要做一个数字签名校验等给这些特殊的进程进行加白操作.这是工程问题,不是这个demo的问题

一如既往的 github:https://github.com/huoji120/CobaltStrikeDetected


网页标题:检测CobaltStrike只使用40行代码
链接URL:http://cdbrznjsb.com/article/cdossgj.html

其他资讯

让你的专属顾问为你服务