四.客户端攻击
     客户端攻击与服务端攻击有个显著不同的标识,就是攻击者向用户主机发送的恶意数据不会直接导致用户系统中的服务进程溢出,而是需要结合一些社会工程学技巧,诱使客户端用户去访问这些恶意数据,间接发生攻击。
     4.1客户端渗透攻击的安全防护机制
             ①DEP
                DEP(数据执行保护)基本原理是操作系统通过设置内存页的属性,指明数据所在的内存页为不可执行。
             ②ASLR
                ASLR(地址空间布局随机化)是系统在运行程序时,不用固定的基地址加载进程及相关工作库文件。
                包括:堆地址的随机化,栈基址的随机化,PE文件映像基址的随机化,PEB,TEB地址的随机化。
     4.2.针对浏览器的渗透攻击
           4.2.1浏览器渗透
                  针对浏览器本身的渗透攻击和对内嵌的第三方插件的渗透攻击
           4.2.2堆喷射
                  客户端渗透攻击经常用到这一技术。攻击者在溢出漏洞之前,在堆区申请大量充满空指令的内存块,每个内存块都尾随shellcode,然后,在溢出时,修改溢出之后的返回地址到这个空间。在浏览器攻击中,一般都会用javascript脚本进行堆喷射。这里不再详解堆喷射技术。
           4.2.3MSF中的自动化浏览器攻击
                 metasploit框架中包含一些针对浏览器及插件的模块,并且还提供了辅助模块 server/browser——autopwn,它在接到来自浏览器的请求后,会依次做三个操作:提取浏览器指纹,自动化渗透,列出渗透模块,但是他不会列出第三方插件的利用模块,因为它无法提取到插件的指纹。
       4.3针对应用软件的渗透攻击
           对于这类安全漏洞,攻击者一般会恶意构造符合正常文件格式的畸形文件,来进行漏洞利用。
           4.3.1内存攻击技术ROP的实现
                  攻击者在溢出程序后,并不执行栈中的shellcode,而是寻找程序已加载模块中的一些特殊指令块,配合栈上的压栈参数,返回地址等数据,将这些孤立的指令块联系起来,从而实现一定的功能,最终完成远程代码执行的目标。但是在哪些苛刻的坏字符的限制条件下,实现的难度太大,根据这个思想,现在有很多技术绕过DEP
                  1.将包含shellcode的内存页面设置为可执行状态。
                  2.先利用virtualalloc函数开辟一段具有执行权限的内存空间,然后将shellcode复制到这段代码中

3.通过一些函数直接关掉DEP机制,常用的有ZwSetInformation函数

《metasploit渗透测试魔鬼训练营》学习笔记第六章--客户端渗透的更多相关文章

  1. JVM学习笔记-第六章-类文件结构

    JVM学习笔记-第六章-类文件结构 6.3 Class类文件的结构 本章中,笔者只是通俗地将任意一个有效的类或接口锁应当满足的格式称为"Class文件格式",实际上它完全不需要以磁 ...

  2. C Primer Plus 学习笔记 -- 前六章

    记录自己学习C Primer Plus的学习笔记 第一章 C语言高效在于C语言通常是汇编语言才具有的微调控能力设计的一系列内部指令 C不是面向对象编程 编译器把源代码转化成中间代码,链接器把中间代码和 ...

  3. Linux学习笔记(第六章)

    第六章-档案权限与目录配置#chgrp:改变档案的所属群组#chown:改变档案的拥有者#chmod:改变档案的权限及属性 chown用法 chmod用法: r:4 w:2 x:1对于文档: 对于目录 ...

  4. o'Reill的SVG精髓(第二版)学习笔记——第六章

    第六章:坐标系统变换 想要旋转.缩放或者移动图片到新的位置.可以给对应的SVG元素添加transform属性. 6.1 translate变换 可以为<use>元素使用x和y属性,以在特性 ...

  5. 学习笔记 第六章 使用CSS美化图片

    第六章  使用CSS美化图片 6.1  在网页中插入图片 GIF图像 跨平台能力,无兼容性问题: 具有减少颜色显示数目而极度压缩文件的能力,不会降低图像的品质(无损压缩): 支持背景透明功能,便于图像 ...

  6. [Python学习笔记][第六章Python面向对象程序设计]

    1月29日学习内容 Python面向对象程序设计 类的定义与使用 类定义语法 使用class关键词 class Car: def infor(self): print("This is ca ...

  7. Java 学习笔记 ------第六章 继承与多态

    本章学习目标: 了解继承的目的 了解继承与多态的关系 知道如何重新定义方法 认识java.lang.object 简介垃圾回收机制 一.继承 继承是java面向对象编程技术的一块基石,因为它允许创建分 ...

  8. Python学习笔记 -- 第六章 文件操作

    I/O编程 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这 ...

  9. JavaScript高级程序设计学习笔记第六章--面向对象程序设计

    1.ECMAScript没有类的概念,ECMA-262 把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.”,有点类似于散列表 2.ECMAScript 中有两种属性:数据属性和访问 ...

随机推荐

  1. 关系型数据库之MySQL基础总结_part1

    一:数据库的操作语言的种类 MySQL 是我们最常使用的关系型数据库,对于MySQL的操作的语言种类又可以分为:DDL,DML,DCL,DQL DDL:是数据库的定义语言:主要对于数据库信息的一些定义 ...

  2. 二、hive shell常用命令

    在使用hive shell之前我们需要先安装hive,并启动hdfs 请参考:https://www.cnblogs.com/lay2017/p/9973298.html hive shell 我们先 ...

  3. Vim 技巧

    :r 文件名 导入另一文件到当前文件中 :! 命令 可以不退出当前编辑的文本而能执行系统的命令 自定义快捷键 注意这里的^P这个是ctrl + V + P :map ^P I//<ESC> ...

  4. 10、List、Set

    List接口 List接口的特点 *A:List接口的特点: a:它是一个元素存取有序的集合. 例如,存元素的顺序是11.22.33.那么集合中,元素的存储就是按照11.22.33的顺序完成的). b ...

  5. jquery的事件绑定on()动态绑定

    常用 这里有个文章列表, 通过on() 点击标题获取标题内容 <div class="article"> <div class="title" ...

  6. hdu2044 一只小蜜蜂

    和之前的楼梯题一样,递推求解 但是要注意这里可以到50,结果已经超出了Int的范围,所以要用64位保存 #include<iostream> #include<cmath> # ...

  7. MySQL并发控制

    并发即指在同一时刻,多个操作并行执行.MySQL对并发的处理主要应用了两种机制——是“锁”和“多版本控制”. 锁 锁分为读锁和写锁两种,也称作共享锁和排他锁.因为多个读操作同时进行是不会破坏数据的,所 ...

  8. BZOJ4011: [HNOI2015]落忆枫音(dp 乘法原理)

    题意 题目链接 Sol 非常妙的一道题 设\(inder[i]\)表示\(i\)号节点的度数 首先如果是个DAG的话,可以考虑在每个点的入边中选一条边作为树形图上的边,这样\(ans = \prod_ ...

  9. 创建一个Dribbble的作品展示

    Most designers on dribbble have a personal portfolio website that usually consists of a name and a b ...

  10. cookie和session 区别

    cookie机制采用的是在客户端保持状态的方案,session机制采用的是在服务器端保持状态的方案. 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很 ...