漏洞载体:firefox ->cve-2018-12386 寄存器混淆漏洞
参考链接:https://ssd-disclosure.com/index.php/archives/3765
Win7x64提权漏洞:CVE-2018-8120
参考链接:https://www.freebuf.com/vuls/174183.html
Github: https://github.com/alpha1ab/CVE-2018-8120

修改好 cve12386的exp,把 READ_WRITE_EXECTUE 的地址空间给成0x30000 便于存放提权的shellcode 。
之后,使用cve8120 修改 _EPROCESS 的 job 结构体部分。添加红框的代码即可

说明: [rcx ] 存放的该进程的 _EPROCESS 结构
[rax] 存放的system 的 _EPROCESS
红框的上面部分看注释就知道是替换 进程的TOKEN,然后该进程就是system权限了。

红框的部分就是修改该进程的job 结构体,可以参考链接:https://www.vergiliusproject.com/kernels/x64/Windows%207%20%7C%202008R2/SP1/_EPROCESS
具体的结构如下:

Win7 X64中 job 结构体的偏移是在 0x260
然后需要修改2个位置:

其中, 0xf0 偏移的 LimitFlags
0x130的 UIRestrictionsClass
这2个数据都是 ULang类型 ,修改为 0 即可过掉沙盒。

以上过程使用 VirtualKD调试内核。 记得在外部的windbg加上符号表路径

当然,若不过沙盒,cve12386是可以做到在system32下写文件的操作,但是不能弹出计算器。

最后,其中的shellcode 由 PEDUMP64 工具运行 cve8120编译好的win32程序而来。