Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Evasive shellcode loader for bypassing event-based injection detection (PoC)

License

NotificationsYou must be signed in to change notification settings

xuanxuan0/DripLoader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

msbuild

Evasive shellcode loader for bypassing event-based injection detection, without necessarily suppressing event collection. The project is aiming to highlight limitations of event-driven injection identification, and show the need for more advanced memory scanning and smarter local agent software inventories in EDR.

image

DripLoader evades common EDRs by:

  • using the most risky APIs possible likeNtAllocateVirtualMemory andNtCreateThreadEx
  • blending in with call arguments to create events that vendors are forced to drop or log&ignore due to volume
  • avoiding multi-event correlation by introducing delays

What does DripLoader do

  • Identifies a base address suitable for our payload
  • Reserves enoughAllocationGranularity (64kB) sized,NO_ACCESS memory segments at the base address
  • Loops over those
    • AllocatingPageSize (4kB) sized, writable segments
    • Writing shellcode
    • Reprotecting asRX
  • Overwrites prologue of onentdll function in the remote process memory space with ajmp to our base
  • Drops a thread on that trampoline

I'll explain some of the thinking here:https://blog.redbluepurple.io/offensive-research/bypassing-injection-detection

And so

  • It's able to fully bypass many EDR injection detections, including Defender ATP.
  • Bypasses simple thread-centric scanners likeGet-InjectedThread. Persisting within a process is another story, and this is up to the payload author.
  • It issRDI-compatible, but if your payload creates another local thread you will lose the benefit of thread start address inntdll.

To test it out of the box

  • compile/download
  • XOR your binary shellcode blob file with default key 0x08, name itblob.bin
  • place both files in the same directory
  • run it and follow the prompts or ./DripLoader.exe <target_pid> <delay_per_step_ms>

I attached an exampleMessageBox blob for your pleasure, be aware though it's size is unrealistically small for a payload.


[8]ページ先頭

©2009-2025 Movatter.jp