黑客自学书本:绕过Windows Control Flow Guard思路共享

访客4年前黑客工具1116

  一般,进犯者可以通过运用内存缝隙来截获控制流。但是研究人员也提出了各式各样的防护手法防止发作这样的问题,例如地址空间050100c6 8bcb mov ecx,ebx随机化(ALSR),异或实行(XOR Execute),控制流完整性(CFI)等各式各样的防护办法。CFI通过强制控制流完整性保证程序的实行不会出现问题,现在安置最为广泛的CFI是windows供给的control flow guard(CFG)。CFG现在安置在最新的Windows 8.1,Windows 10上,现已超过了5亿运用量。因此一旦在CFG上出现问题,或许导致十分严峻的结果。

  Windows CFG完结

  Windows的CFI完结称为Control Flow Guard(CFG),因为实践的功能要求,不或许做到十分准确的CFI,因此,实践在windows上安置的CFI是粗粒度的、前向CFI输入完暗码联接成功后,在如下图的输入框中输入如下指令,点击右侧的按钮实行。。首要,粗粒度的CFI是:全部的有用跳转地址为一个大局的调集,即不准确的为每一个直接跳转指定一个有用跳转地址;其次,什么叫做前向CFI:只考略call,jump的直接跳转和直接跳转,没有核算ret的状况。此外,Windows CFG完结还依赖于bitmap表,该表存储的信息是关于方针地址是否有用的一张表。bitmap表中的两位与实践地址的16byte一一对应,因此有四种状况:

  00:该地址规模没有有用的跳转地址

  01:地址规模包含导出抑制表方针

  10:只要16位对其的地址有用(该规模的之一个地址)

  11:地址规模的全部地址均有用

  因此,可以看出一个十分显着的缝隙:

  

  在编码为11的状况在,整个16位地址均为有用跳转地址,此刻,假设存在直接跳转缝隙,例如:jump [eax] (eax = 0×1007),当eax的值可以批改的时分,跳转地址可以跳转到0×1007地址的上面的指令,(add rsp, 0×40)这是Windows CFG的设计缝隙之一。其次,因为Windows CFG是前向的CFI防护,因此不能阻挠重写return address的状况,则运用该特色,假设可以改写ret addr,也可以到达绕过CFG的意图。

  Bypass CFG

  在论文中说到了一种绕过CFG的办法,该办法和以往的绕过相比较:

  需求更少的栈控制,只需求控制栈顶的区域即可

  灵活性更大,在实践进犯场景中可以复现

  所需gadget在Windows系统中广为存在

  文章界说了两种gadget,通过两种gadget的合作可以完结绕过CFG。界说P(p)R(r) gadget:

  该gadget是一个有用的CFG方针

  该gadget是一条 add {e, r}sp, m 指令,可以不存在

  该gadget是n条 pop 指令,可以不存在

  该gadget是一条 ret r 指令,r可认为0

  p = m + wn(w是一个字的长度,32-bit是4,64-bit是8)

  这样一系列界说其实描述了程序函数调用完毕的操作。例如上图中有用代码段

  add rsp, 0x40

  pop rdi

  pop rbx

  ret

 

  依据界说,该gadget可以界说为P(80)R(0),p = 64 + 8 * 2, r = 0。该gadget链首要意图是更改栈帧的方位,以便批改ret addr。在32位系统中,参数传递是通过栈来传递,通过改动参数即可以影响栈中的内容,通过这种办法可以到达批改ret addr的意图。但是,在64位系统中参数传递是通1.RFID编造过寄存器完结的,因此,栈中的内容一般不会被影响,所以从头界说了 S gadget 以便可以批改栈中内容。一般一个尾调用优化或许发生S gadget。

  界说S gadget:

  该gadget是一个有用的CFG方针

  该gadget溢出n个寄存器到寄存器参数区域(RPA)

  该gadget以一个受控制的直接跳转完毕

  S(2) gadget DEMO

  mov [rsp + 0x8], rcx

  mov [rsp + 0x10], rdx

  sub rsp, 0x40

  ...

  mov rax, [rcx]

  mov rax, [rax + 0x20]

  add rsp, 0x40

  jmp [dispatch_fptr]

 

  rcx, rdx一般在Windows 64-bit函数调用中是作为之一个参数和第二个参数,假定参数可以被进犯者控制,则在这段gadget中,一个被进犯者控制的参数被传入栈中,即有时机批改ret addr。

  下图展现了一个PR-P链的联接进程:

  

  Attack

  怎样运用PR,P gadget进行进犯,论文中以Edge作为进犯方针,施行远程进犯。首要需求知道object在内存中的地址,因此需求有地址泄露的进程,其次,我们需求假造一些数据,要有必定的写内存操作。在进犯的Demo中,运用CVE-2016-7200和CVE-2016-7201两个Edge缝隙,到达地址泄露和恣意内存读写的权限。

  

  S(2) gadget

  1 ; @ chakra+0x31f0000

  2 chakra!ScriptEngine::EnumHeap:

  3 mov r11,侵略者还运用出名的frp署理东西将内网端口显露到外网,用来进入更深的内网。其间,frp署理Server端均为国外服务器。 rsp

  4 ; Spill arguments to RPA

  5 mov [r11+0x10], rdx

  6 mov [r11+0x8], rcx

  7 ; Allocate stack frame

  8 sub rsp, 0x28

  9 ; Prepare call to rcx->__vfptr[10]

  10 mov rax, [rcx]

  11 mov r8, rdx

  12 xor edx, edx

  13 mov rax, [rax+0x50]

  14 ; Deallocate stack frame

  15 add rsp, 0x28

  16 ; Perform indirect call via CFG

  17 jmp cs:__guard_dispatch_icall_fptr

 

  P(16)R(0) gadget

  pop rdi

  pop rsi

  ret

 

  方针函数是JavascriptFunction::HasInstance虚函数,首要定位JavascroptFunction object在内存中的方位,通过批改VTable pointer指向一个假造的VTable,其间instanceof函数在VTable中的方位为0×200,将该函数批改为S(2) gadget 地址。当instanceof函数调用时即实行S(2) gadget。

  S gadget 得到一个指向JavascroptFunction object的指针作为之一个参数,指向Var的指针做为第二个参数,S gadget 在第5行和第6即将参数放入栈中。第13即将JavascroptFunction偏移0×50的放入rax中,之后jmp rax实行P(16)R(0) gadget。

  我们只需求设置一个自己结构的Var指针,即可截获控制流。

  截获控制流之后,便可以通过传统的ROP进行进犯。

  总结

  论文中提出了一种新的绕过Windows CFG的办法,具有必定的灵活性,而且文章中说到在Windows系统中存在较多的可用gadget,因此,假设进行系统性的扫描Windows全部常用动态库,可以在许多场景下进行运用。

  *本文作者:jaguoooooo

黑客自学书本:绕过Windows Control Flow Guard思路共享

全盘加密程序与文件加密程序不同的是,后者只针对某个特定的文件进行加密,而全盘加密将会对系统内的全部数据都进行保护,包含操作系统。但全盘加密程序只会在设备关闭时打开保护功用。; Password protected x64 TCP Reverse Shell绕过Windows Control Flow Guard思路分享

黑客自学书籍注:Cleartext(明文)并不意味着暗码就是按原样存储。它们一般会运用RC4加密办法存储。而用于加密和解密的密钥是SYSKEY,它被存储在注册表中,可以由域管理员提取。这意味着哈希值可逆为明文,因此我们称它为“可逆加密”。· CreateTime(Created)刘同学向总部央求帮助的时分,标明自己“现已瞎了”!

平日PE文件中都含有一个名为IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT的数据目次,您可以或许运用dumpbin/imports或windbg间断检查,其布局描绘详见delayhlp.cpp中,读者可以或许在WinSDK中找到它: 缝隙-信息安全界最常见的词汇,在百度百科是这样描述的。该木马运用Linux系统的shell脚本编写Downloader,运用curl与wget指令主张 *** 央求下载木马的其他组件,虽然代码可被简单分析,但是编写本钱和门槛下降,这也是其时恶意代码运用脚本语言编写的一个趋势。黑客自学书籍

}假设发现 pam_unix 认证失利,仍能登录成功,则有必要警惕 pam_deny.so 是否现已被调包0010: A8 49 AE 64 .I.d

通过CVE的统计数据,我们拾掇出了自1999年至2016年以来,各品牌打印机存在的各类型宣布缝隙,如下所示:<VirtualHost www.test.com:443> 绕过Windows Control Flow Guard思路分享

黑客自学书籍[*] Retrieving MAPI infoLinux的库房结构如下图所示:C:WindowsPantherUnattendUnattended.xmlelif [[ $version == $cs7* ]]; then

Android系统的运用可以恳求读取短信、发送短信、接收短信、拨打 *** 、读取通讯录、批改通讯录等重要权限,无需Root即可替换短信、通讯录、相机、输入法等系统运用功用,可以更活络的去开发第三方运用,但是也给了病毒和恶意软件待机而动,易构成隐私泄露、短信被阻挠(可导致账号被盗、 *** 支付安全问题)、被恶意扣费、自动给通讯录其他人发送病毒链接等问题。

IAM也就是身份访问办理了。IDaaS运用率的进步,必定程度是因为内部安置IAM设备的难度和本钱都比较大。用老外的话来说,各种something-as-a-service办法正在快速成长,所以许多企业用户也会选择IDaaS。Perkins也说,越来越多Web和移动运用的出现,也是从IAM转往IDaaS的重要机会。黑客自学书籍

Man-in-the-middle(中间人,简称为 MITM),可以与 *** 通讯两端分别创建联接,沟通其收到的数据,使得通讯两端都认为自己直接与对方对话,事实上整个会话都被中间人所控制。简而言之,在实在的服务端看来,中间人是客户端;而实在的客户端会认为中间人是服务端。

1.原因:本来在家正常休憩了,我们放在上海保管机房的线上服务器遽然蹦了远程不了,服务发起不了,然后让上海机房重启了一次,仍是直接挂了,一贯到我远程上才行。绕过Windows Control Flow Guard思路分享

二、shellcode怎样应用到缝隙运用

net view: 获取联接域的资源列表

简略的ECHO脚本到PowerShell的标准输入。这种技术不会导致配备的更改或要求写入磁盘。为了便当研讨,我进行了简略分类。Tinder应用程序的数据可以从/mobile/Applications/com.cardify.tinder这儿找到。最为有用的文件如下所示:
本文标题:黑客自学书本:绕过Windows Control Flow Guard思路共享

相关文章

面包屑导航详情使用方法和作用!

面包屑导航详情使用方法和作用!

面包屑导航是每一个网站必备的一个细节优化方面,坦率的说,如果一个网站没有面包屑导航,可以初步判断,改网站的模板设计并不是很理想,那么面包屑导航作用是什么呢,我们如何增加网站的面包屑导航呢? 面包...

开的房记录是永久的吗(在线查开的房记录查询

经过多年发展,壁挂炉产品的使用舒适性已得到市场的广泛认可,成为越来越多中国用户的居家供暖设备首选。 全球领先的供暖热水专家阿里斯顿,旨在做好一款真正让用户满意的产品,通过对市场及用户的深入了解,...

什么是按揭房子(按揭房子需要哪些流程)

什么是按揭贷款? 按揭贷款就是购房者以所购住房做抵押并由其所购买住房的房地产企业提供阶段性担保的个人住房贷款业务。所谓按揭是指按揭人将房产产权转让按揭,受益人作为还贷保证人在按揭人还清贷款后,受益人...

兄弟无毕福剑疑遭停职远

  重磅微视频丨兄弟无远   这是一片升腾希望的热土   与中国相隔万里,却始终命运相连   习近平主席2013年就任中国国家主席及   2018年再次当选连任   均选择这里作为首访目的地...

黑客dc,微信黑客软件下载手机,王者荣耀黑客密码

0.7 罗马尼亚 Imminent RAT发送方的硬件地址(MAC地址) 208.79.106[.]155:449假如你的网站运用了 HTTPS 并依靠 Cookie 来完成认证,那么能够考虑在你的...

微信被盗能找黑客追回吗,黑客可以修改网站

一、微信被盗能追回吗怎么找黑客 1、找黑客网站此外,黑客也有很多方向,而不是一个方向。微信被盗能追回吗安卓工具他们主要是年轻人,他们蓄意损坏电脑和电话系统。被功集网站教你身份证地址擅长软件的黑客欣赏其...