自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

檢測(cè)Cobalt Strike只使用40行代碼

安全 網(wǎng)站安全
無(wú)文件落地的木馬主要是一段可以自定位的shellcode組成,特點(diǎn)是沒(méi)有文件,可以附加到任何進(jìn)程里面執(zhí)行。

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

[[416030]]

基于內(nèi)存行為特征的檢測(cè)方式,可以通過(guò)檢測(cè)執(zhí)行代碼是否在正常文件鏡像區(qū)段內(nèi)去識(shí)別是否是無(wú)文件木馬.由于cobaltstrike等無(wú)文件木馬區(qū)段所在的是private內(nèi)存,所以在執(zhí)行l(wèi)oadimage回調(diào)的時(shí)候可以通過(guò)堆?;厮菘焖俅_認(rèn)是否是無(wú)文件木馬。

檢測(cè)只需要40行代碼:

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

堆棧回溯:

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

使用:

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

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

基于VirtualAlloc的C代碼測(cè)試:

測(cè)試結(jié)果:

基于powershell的測(cè)試:

基于python的測(cè)試:

測(cè)試結(jié)果:

弊端:

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

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

責(zé)任編輯:趙寧寧 來(lái)源: FreeBuf
相關(guān)推薦

2013-11-26 10:12:57

2013-11-26 10:48:12

2013-08-15 17:32:51

2023-09-27 07:57:54

2022-08-30 10:06:34

網(wǎng)絡(luò)安全黑客網(wǎng)絡(luò)攻擊

2025-03-11 13:33:09

2022-10-08 06:14:36

Sliver工具箱惡意攻擊

2021-08-13 16:05:26

僵尸網(wǎng)絡(luò)漏洞網(wǎng)絡(luò)攻擊

2022-04-15 08:07:21

ReactDiff算法

2017-07-24 15:06:02

代碼人臉識(shí)別實(shí)踐

2021-09-17 16:28:10

Linux系統(tǒng)攻擊滲透測(cè)試

2022-06-16 11:02:21

漏洞攻擊

2018-01-23 09:17:22

Python人臉識(shí)別

2023-02-07 13:42:44

代碼實(shí)現(xiàn)并發(fā)

2020-02-28 15:33:12

代碼人工智能檢測(cè)

2017-03-28 21:03:35

代碼React.js

2020-08-21 13:40:17

Python代碼人體膚色

2020-08-24 15:49:28

代碼bug出錯(cuò)

2022-09-25 23:10:53

Python數(shù)據(jù)集機(jī)器學(xué)習(xí)

2012-07-23 09:58:50

代碼程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)