安全矩阵

 找回密码
 立即注册
搜索
查看: 863|回复: 0

直接系统调用学习记录

[复制链接]

179

主题

179

帖子

630

积分

高级会员

Rank: 4

积分
630
发表于 2023-10-22 15:51:12 | 显示全部楼层 |阅读模式
直接系统调用学习记录
什么是直接系统调用
直接系统调用是windows系统上的操作,允许用户模式临时到内核模式.攻击者无需从kenel32.dll获取api或者是ntdll.dll。

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

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



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



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



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

需要的文件
  1. 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】


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-8 09:16 , Processed in 0.012573 second(s), 20 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表