了解Linux ROP原理,攻防皆在掌握 (linux rop原理)

ROP(Return Oriented Programming)是一种利用程序内已存在的代码片段(也称为“gadget”)来构造恶意程序或攻击指令流的一种技术手段。在Linux操作系统中,由于程序栈的存在,ROP已成为黑客利用漏洞攻击系统的一种常用方式之一。了解Linux ROP原理可以帮助我们更好地进行安全防御和攻击。

1. ROP原理

在学习ROP之前,我们需要了解一些计算机底层知识。计算机在执行程序时,会将程序的指令和数据存放在内存中,其中程序指令一般是以二进制形式存在,在处理器内部被解码成实际的操作码。而程序栈则是用来存储函数调用后的返回地址、函数参数等信息的一块连续内存区域。当函数调用结束后,程序需要回到调用它的地方继续执行,这时就需要把保存在栈中的返回地址弹出来,跳转到该地址处继续执行。

ROP的原理就是利用程序中存在的可执行代码片段(比如系统库函数等),来构造恶意程序。这些代码片段被称为“gadget”(小工具),由一段指令序列组成,每个gadget执行完毕后,将会跳转到下一个gadget执行。通过构造一系列gadget,可以构建出一段恶意代码执行路径,从而实现攻击。

2. ROP攻击实例

下面通过一个简单的例子,来看看如何通过ROP实现攻击。假设有一个漏洞存在于程序中,允许我们输入一个字符串,但是没有做好输入长度的检查。如果我们输入一个超出预期长度的字符串,就会导致栈溢出,从而导致程序崩溃或者产生未知行为。那么我们就可以利用这个漏洞来进行ROP攻击了。

具体步骤如下:

(1)输入一个超出预期长度的字符串,覆盖掉栈中保存的返回地址。这样程序返回时,会跳转到我们构造的恶意代码执行。

(2)根据程序中存在的gadget,构造一条流程,使其最终跳转到我们想要执行的shellcode,并执行。shellcode是一段二进制代码,可以执行我们想要操作的指令。

下面是一个C语言程序的ROP攻击代码示例:

“`

#include

void vulnerable_function(char *str){

char buffer[16];

strcpy(buffer, str);

}

int mn(int argc, char **argv){

char buffer[256];

read(0, buffer, 256);

vulnerable_function(buffer);

}

“`

具体实现过程:

(1)使用gdb调试该程序,找到可利用的gadget,这里以一个简单gadget为例:

“`

mov eax, 0x0

add esp, 0x8

pop ebx

pop ecx

pop edx

ret

“`

这个gadget将eax的值置为0,并弹出3个寄存器的值。在构造攻击流程时,我们可以利用这个gadget来清空一些寄存器的值。

(2)构造ROP攻击流程,使其最终跳转到我们想要执行的shellcode,并执行。这里假设我们想要执行一个简单的shellcmd:

“`

char shellcmd[] = “/bin/sh”;

system(shellcmd);

“`

具体攻击流程如下:

“`

payload = junk + gadget_1 + “/bin//sh” + gadget_2 + gadget_3

“`

其中,junk是一些垃圾数据,用于填充栈的其他部分。gadget_1是我们找到的gadget,用于清空一些寄存器的值。”/bin//sh”是我们想要执行的shell命令,gadget_2和gadget_3组成的流程,则是将”/bin//sh”的地址存入寄存器并调用system函数的过程。

(3)通过交互式输入的方式,将payload发送给程序。程序执行到返回地址时,跳转到payload中我们构造的ROP攻击流程,便可以实现我们想要的攻击效果。

3. ROP的防御

了解了ROP的攻击原理之后,我们也应该关注如何防范这种攻击。ROP攻击的本质是利用程序内部已有的代码来构造攻击流程,因此之一步应该是尽可能减少程序中可以利用的gadget的数量。具体可以采取以下措施:

(1)采用ASLR机制:ASLR(Address Space Layout Randomization)是一种内存保护机制,用于增加攻击者构造ROP攻击的难度。ASLR将系统中各个部分的内存地址随机化,攻击者不能确定关键代码的位置,从而使攻击流程无法构造成功。

(2)限制可执行内存的范围:可以通过修改内存权限来限制可执行代码的范围,减少攻击面。一些操作系统上,可以利用mmap函数来动态分配可执行内存区域,并对其进行权限设置。

(3)代码审查和安全测试:对程序中的代码进行代码审查和安全测试,找出潜在的漏洞并修补。同时,保证程序代码的规范性和可读性,减少写出容易产生漏洞的代码。

(4)堆栈保护:使用堆栈保护技术,如可以使用Canary机制来检测栈溢出行为,加一稳固程序的防护。

相关问题拓展阅读:

《黑客攻防技术宝典iOS实战篇》pdf下载在线阅读,求百度网盘云资源

《黑客攻防技术宝典》(Charlie Miller)电子书网盘下载免费在线阅读

资源链接:

链接:

提取码:vwga    

书名:黑客攻防技术宝典

作者:Charlie Miller

译者:傅尔也

出版社:人民邮电出版社

出版年份:2023-9

页数:320

内容简介:安全始终是计算机和互联网领域最重要的话题。进入移动互联网时代,移动平台和设备的安全问题更加突出。iOS系统凭借其在移动市场的占有山中率拥有着举足轻重的地位。虽然iOS系统向来以安全著称,但由其自身漏洞而引发的威胁同样一直存在。

《黑客攻防技术宝典:iOS实战篇》由美国国家安全局全球网络漏洞攻击分析师、连续4年Pwn2Own黑客竞赛大奖得主Charlie Miller领衔,6位业内顶级专家合力打造,全面深入介绍了iOS的工作原理、安全架构、安全风险敏唯判,揭秘了iOS越狱工作原理,探讨了加密、代码签名、内存保护、沙盒机制、iPhone模糊测试、漏洞攻击程序、ROP有效载荷、基带攻击等内容,为深入理解和保护iOS设备提供了足够的知识与工具,是学习iOS设备工作原理、理解越狱和破解、开展iOS漏洞研究的重量级专著。

本书作为国内之一本全桥改面介绍iOS漏洞及攻防的专著,作者阵容空前豪华,内容权威性毋庸置疑。Charlie Miller曾在美国国家安全局担任全球网络漏洞攻击分析师5年,并连续4届摘得Pwn2Own黑客竞赛桂冠。Dionysus Blazakis擅长漏洞攻击缓解技术,2023年赢得了Pwnie Award更具创新研究奖。Dino Dai Zovi是Trail of Bits联合创始人和首席技术官,有十余年信息安全领域从业经验,出版过两部信息安全专著。Vincenzo Iozzo现任BlackHat和Shakacon安全会议评审委员会委员,因2023年和2023年连续两届获得Pwn2Own比赛大奖在信息安全领域名声大振。Stefan Esser是业界知名的PHP安全问题专家,是从原厂XBOX的硬盘上直接引导Linux成功的之一人。Ralf-Philipp Weinmann作为德国达姆施塔特工业大学密码学博士、卢森堡大学博士后研究员,对密码学、移动设备安全等都有深入研究。

本书适合想了解iOS设备工作原理的人,适合对越狱和破解感兴趣的人,适合关注iOS应用及数据安全的开发人员,适合公司技术管理人员(他们需要了解如何保障iOS设备安全),还适合从事iOS漏洞研究的安全研究人员。

作者简介:Charlie Miller

Accuvant Labs首席研究顾问,曾在美国国家安全局担任全球网络漏洞攻击分析师5年,连续4年赢得CanSecWest Pwn2Own黑客大赛。他发现了iPhone与G1安卓手机之一个公开的远程漏洞,通过短信对iPhone进行漏洞攻击并发现了可以让恶意软件进入iOS的代码签名机制缺陷。作为圣母大学博士的他还与人合著了The Mac Hacker’s Handbook和Fuzzing for Software Security Testing and Quality Assurance两本信息安全类图书。

Dionysus Blazakis

程序员和安全研究人员,擅长漏洞攻击缓解技术,经常在安全会议上发表有关漏洞攻击缓解技术、绕过缓解技术和寻找漏洞的新方法等主题演讲,因利用即时编译器绕过数据执行保护的技术赢得了2023年Pwnie Award更具创新研究奖。另外,他与Charlie Miller为参加2023年Pwn2Own大赛开发的iOS漏洞攻击程序赢得了iPhone漏洞攻击比赛的大奖。

Dino Dai Zovi

Trail of Bits联合创始人和首席技术官,有十余年信息安全领域从业经验,

做过红队(red teaming,又称“伦理黑客”)、渗透测试、软件安全、信息安全管理和网络安全研究与开发等多种工作。Dino是信息安全会议的常客,在DEFCON、BlackHat和CanSecWest等世界知名的信息安全会议上发表过对内存损坏利用技术、802.11无线客户端攻击和英特尔VT-x虚拟化rootkit程序等课题的独立研究成果。他还是The Mac Hacker’s Handbook和The Art of Software Security Testing的合著者。

Vincenzo Iozzo

Tiqad srl安全研究人员,BlackHat和Shakacon安全会议评审委员会成员,常在BlackHat和CanSecWest等信息安全会议上发表演讲。他与人合作为BlackBerryOS和iPhoneOS编写了漏洞攻击程序,因2023年和2023年连续两届获得Pwn2Own比赛大奖在信息安全领域名声大振。

Stefan Esser

因在PHP安全方面的造诣为人熟知,2023年成为PHP核心开发者以来主要关注PHP和PHP应用程序漏洞的研究,早期发表过很多关于CVS、Samba、OpenBSD或Internet Explorer等软件中漏洞的报告。2023年他利用了XBOX字体加载器中存在的缓冲区溢出漏洞,成为从原厂XBOX的硬盘上直接引导Linux成功的之一人;2023年成立Hardened-PHP项目,旨在开发更安全的PHP,也就是Hardened-PHP(2023年融入Suhosin PHP安全系统);2023年与人合办德国Web应用开发公司SektionEins GmbH并负责研发工作;2023年起积极研究iOS安全问题,并在2023年提供了一个用于越狱的漏洞攻击程序(曾在苹果多次更新后幸存下来)。

Ralf-Philipp Weinmann

linux查看显卡是gtx1070还是1080

根据官方公布的参数,GTX 1070核心型号为GP,CUDA单元削减到1920个,纹理单元为120个,相比GTX 1080削减了四分之一,ROP单元保留了完整的64个,显存方面虽然还是256-bit位宽、8GB容量,但颗粒从新的GDDR5X回到传统的GDDR5,等效频率8GHz,因此带宽为256GB/s,少了五分之一;

和GTX1080显卡相比,GTX1070显卡有着更高的性价比,其超越GTX980Ti的性能,足可让玩家们畅玩各类大型游戏,而价格方面,却比GTX1080要敏敬低了很多,3000多的价格势必成为高端显卡市场的主流,因此可以预见的是,GTX1070不仅将会继承GTX970的辉煌,甚至可能远远超越GTX970创下的销售业绩;

GTX 1070作为GTX 1080的降棚拿滚级版,尽管现在评测还没有解禁,但从规格上看它绝对可以在1080p和1440p下斩杀任何游戏,即使是4K下也不会掉出30帧,当然了,VR游戏和多显示器也肯定是没有问题的;

功耗除了超强的性能外,GTX 1080和GTX 1070的功耗表现也令人印象深刻,尤其是两块卡竟然只用单个8 pin接口就能带起来这一点。GTX 1080的TDP仅为180W,比链余GTX 1070高30W,但无论如何都比GTX 980ti和Titan X的250W TDP要强,从目前泄露的跑分来看,性能的确给力,重度发烧级GTX1080是当今的单芯卡皇。

linux rop原理的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux rop原理,了解Linux ROP原理,攻防皆在掌握,《黑客攻防技术宝典iOS实战篇》pdf下载在线阅读,求百度网盘云资源,linux查看显卡是gtx1070还是1080的信息别忘了在本站进行查找喔。


数据运维技术 » 了解Linux ROP原理,攻防皆在掌握 (linux rop原理)