SMAP/SMEP 学习(一)

admin 2022年7月17日03:31:22评论237 views字数 816阅读2分43秒阅读模式

SMAP/SMEP:全称为Supervisor Mode Access Prevention(管理模式访问保护),其作用大致可以理解为,禁止内核对用户空间的访问,实现一个完全的用户空间权限控制,禁止以内核调用导致的超越权限操作,并不会以内核权限为最大而执行用户空间内的权限。


CR4寄存器:在系统内,存在控制寄存器(Control Register),其作用为可控制cpu的部分特性,其中,CR0、CR1、CR2、CR3、CR4分别控制cpu不同内容,CR4的21以及20位SMEP跟SMAP的标志位置,1具备开启功能,0具备关闭功能。

SMAP/SMEP 学习(一)

SMAP与copy_from_user的关系:某些情况下,可以采取copy_from_user的方式绕过SMAP限制,其原因在于,stac为关闭smap,copy_from_user系列函数之中,也采取stack指令来实现内核空间数据与用户空间数据的相互访问。


如何关闭SMAP:

首先需要查询是否开启。

grep smep /proc/cpuinfo

若产生回显,即开启状态。


在/etc/default/grub中写入GRUB_CMDLINE_LINUX="nosmep/nosmap/nokaslr" sudo update-grub

即可关闭SMEP


寻址可利用的ROP链

1、首先需要下载rp ++

2、利用rp ++寻址可利用的dll

win:

rp-win-x64.exe -f WindowsSystem32ntoskrnl.exe -r3 --colors>d:win.txt

3、在导出的文本内找寻ROP利用小工具

SMAP/SMEP 学习(一)

SMAP/SMEP 学习(一)


总结:初步探索了关于SMAPSMEP的技术原理,包括内核空间以及用户空间的隔离方法,以及copy_from_user是怎样将数据在不同空间中传递。

以及还基本了解了如何在不同程序之中寻址关于ROP链的可利用方法,需寻利用mov方法传递cr4。




SMAP/SMEP 学习(一)

原文始发于微信公众号(魅族安全应急响应中心):SMAP/SMEP 学习(一)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月17日03:31:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SMAP/SMEP 学习(一)https://cn-sec.com/archives/1180213.html

发表评论

匿名网友 填写信息