一般,进犯者可以通过运用内存缝隙来截获控制流。但是研究人员也提出了各式各样的防护手法防止发作这样的问题,例如地址空间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这儿找到。最为有用的文件如下所示:告白人又名追热点的人,必需相识最新的资讯,把握时下最in的潮水。所以哪个圈产生了什么热门,告白人就会吃这个瓜;最近又出了什么热门电视或影戏,告白人就会去追这个片。就算没时间深入相识,也会蹭个热点,阐...
喉咙痛怎么办咽口水都痛(咽口水都痛是怎么回事)虽然这个春节我们过得并不安稳,但是春节假期,长时间的休息,容易养成不规律的生活作息习惯,因为不用工作,很多人会在春节期间通宵玩乐,这很容易导致身体新陈代谢...
原题目《纽约时报转型:在报摊告诉读者别买报纸去上网》,IT之家编写酌情考虑改动。 在智能机时期,顾客广泛根据手机上...
本文目录一览: 1、江苏卷作文看似简单实则内涵满满,如何看待江苏卷的作文? 2、2020江苏高考作文题反面角度比较好写吗? 3、为什么2020江苏高考作文题会被评地狱难度? 4、新媒体环境...
人力资源管理六大模块(人力资源管理的八大要素和六大模块)人力资源(HR)管理,目标是让企业HR更好地进行人力资源的发展和规划。系统重点是实现人力资源部门在员工素质管理、薪酬管理、绩效考核等方面的需求。...
http://download.windowsupdate.com/d/msdownload/update/software/secu/2019/05/windows6.0-kb4499180-ia6...