MIT License

项目介绍

xuanxuan0/DripLoader 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 MIT License 许可证,目前获得 834 个 Star、125 次 Fork。

仓库全名
xuanxuan0/DripLoader
开源许可证
MIT License
Star 数
834
Fork 数
125
未关闭 Issue
1

README 摘要

DripLoader (PoC) 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. DripLoader evades common EDRs by: using the most risky APIs possible like…

完整内容见 GitHub 原始 README 或本页 。

常见问题

DripLoader 用什么语言开发?

主要使用 C++ 编写,采用 MIT License 许可证,目前有 834 个 Star。

DripLoader 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 DripLoader 的源码?

可以直接克隆仓库:git clone https://github.com/xuanxuan0/DripLoader.git,默认分支为 master;安装与运行步骤见仓库 README。

DripLoader 最近还在维护吗?

仓库最近一次更新为 2021年8月23日,当前有 1 个未关闭 Issue;Star 数为 834,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

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

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
1099
价值分
539
活跃状态
活跃

语言占比

Assembly
C
C++

Release

  • v0.92021年4月29日

贡献者

README

DripLoader (PoC)

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 like NtAllocateVirtualMemory and NtCreateThreadEx
  • 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 enough AllocationGranularity (64kB) sized, NO_ACCESS memory segments at the base address
  • Loops over those
    • Allocating PageSize (4kB) sized, writable segments
    • Writing shellcode
    • Reprotecting as RX
  • Overwrites prologue of one ntdll function in the remote process memory space with a jmp 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 like Get-InjectedThread. Persisting within a process is another story, and this is up to the payload author.
  • It is sRDI-compatible, but if your payload creates another local thread you will lose the benefit of thread start address in ntdll.

To test it out of the box

  • compile/download
  • XOR your binary shellcode blob file with default key 0x08, name it blob.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 example MessageBox blob for your pleasure, be aware though it’s size is unrealistically small for a payload.

评论

暂无评论