日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
檢測CobaltStrike只使用40行代碼

無文件落地的木馬主要是一段可以自定位的shellcode組成,特點(diǎn)是沒有文件,可以附加到任何進(jìn)程里面執(zhí)行。一旦特征碼被捕獲甚至是只需要xor一次就能改變特征碼,由于傳統(tǒng)安全軟件是基于文件檢測的,對目前越來越多的無文件落地木馬檢查效果差。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比廉江網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式廉江網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋廉江地區(qū)。費(fèi)用合理售后完善,十余年實體公司更值得信賴。

基于內(nèi)存行為特征的檢測方式,可以通過檢測執(zhí)行代碼是否在正常文件鏡像區(qū)段內(nèi)去識別是否是無文件木馬.由于cobaltstrike等無文件木馬區(qū)段所在的是private內(nèi)存,所以在執(zhí)行l(wèi)oadimage回調(diào)的時候可以通過堆棧回溯快速確認(rèn)是否是無文件木馬。

檢測只需要40行代碼:

  • 在loadimagecallback上做堆棧回溯
  • 發(fā)現(xiàn)是private區(qū)域的內(nèi)存并且是excute權(quán)限的code在加載dll,極有可能,非常有可能是無文件木馬或者是shellcode在運(yùn)行:
  •   
      
      
    1. void LoadImageNotify(PUNICODE_STRING pFullImageName, HANDLE pProcessId, PIMAGE_INFO pImageInfo)
    2. {
    3.     UNREFERENCED_PARAMETER(pFullImageName);
    4.     UNREFERENCED_PARAMETER(pProcessId);
    5.     UNREFERENCED_PARAMETER(pImageInfo);
    6.     if (KeGetCurrentIrql() != PASSIVE_LEVEL)
    7.         return;
    8.     if (PsGetCurrentProcessId() != (HANDLE)4 && PsGetCurrentProcessId() != (HANDLE)0) {
    9.         if (WalkStack(10) == false) {
    10.             DebugPrint("[!!!] CobaltStrike Shellcode Detected Process Name: %s\n", PsGetProcessImageFileName(PsGetCurrentProcess()));
    11.             ZwTerminateProcess(NtCurrentProcess(), 0);
    12.             return;
    13.         }
    14.     }
    15.     return;
    16. }

堆?;厮荩?/p>

 
 
 
  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. }

使用:

編譯好驅(qū)動,加載驅(qū)動,之后運(yùn)行測試看看:

普通生成(x32與x64)測試:

基于VirtualAlloc的C代碼測試:

測試結(jié)果:

基于powershell的測試:

基于python的測試:

測試結(jié)果:

弊端:

目前已知的ngentask.exe、sdiagnhost.exe服務(wù)會觸發(fā)這個檢測規(guī)則(看樣子是為了執(zhí)行一些更新服務(wù)從微軟服務(wù)端下載了一些shellcode之類的去運(yùn)行).如果后續(xù)優(yōu)化則需要做一個數(shù)字簽名校驗等給這些特殊的進(jìn)程進(jìn)行加白操作.這是工程問題,不是這個demo的問題

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


網(wǎng)站名稱:檢測CobaltStrike只使用40行代碼
網(wǎng)頁路徑:http://m.5511xx.com/article/cdossgj.html