直接系统调用学习记录

admin 2023年10月20日10:51:07评论15 views字数 634阅读2分6秒阅读模式

什么是直接系统调用

直接系统调用是windows系统上的操作,允许用户模式临时到内核模式.攻击者无需从kenel32.dll获取api或者是ntdll.dll。

EDR
现在的EDR厂商实现在Ring3层实现了挂钩,通过用户资料替换操作码和操作数导致重新到EDR的hook.dll。EDR检测出本机API执行的代码是否存在恶意内容和行为

常规调用和直接调用的流程图片
这个是未挂钩的执行图片

直接系统调用学习记录

这个是EDR挂钩之后的执行流程

直接系统调用学习记录

这个是直接系统调用的流程图

直接系统调用学习记录

显而易见直接系统调用没走正常路线所有没有被EDR的钩子检测到达到了绕过EDR的目的

需要的文件
https://github.com/jthuraisamy/SysWhispers2
这里使用SysWhisper2当中的syscalls.h

asm文件
需要的函数

MOVE r10,rcx
mov eax,funcation
syscall
ret

代码实现

这里我使用c++来实现这个代码

直接系统调用学习记录

这里现获取到ntdll.dll的句柄,从ntdll.dll中的NtallocateVirtualMemory函数读取系统调用号,系统调用号为函数的第四个字节,这个就是系统调用的核心部分。
重复这个操作获取到全部要使用的函数然后就可以执行加载shellcode

这里给出MASM汇编代码

直接系统调用学习记录


EXTERN用于全局访问变量 包含了对应的SSN

展示效果

直接系统调用学习记录

处理一下

直接系统调用学习记录

来源:【https://xz.aliyun.com/】,感谢【本*v

原文始发于微信公众号(衡阳信安):直接系统调用学习记录

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月20日10:51:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   直接系统调用学习记录https://cn-sec.com/archives/2126693.html

发表评论

匿名网友 填写信息