四.客户端攻击
     客户端攻击与服务端攻击有个显著不同的标识,就是攻击者向用户主机发送的恶意数据不会直接导致用户系统中的服务进程溢出,而是需要结合一些社会工程学技巧,诱使客户端用户去访问这些恶意数据,间接发生攻击。
     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. [javaSE] GUI(菜单)

    菜单MenuBar Menu  MenuItem 调用Frame对象的setMenuBar()方法,设置菜单,参数:MenuBar对象 import java.awt.FlowLayout; impo ...

  2. ckeditor添加自定义按钮整合swfupload实现批量上传图片

    ckeditor添加自定义按钮整合swfupload实现批量上传图片给ckeditor添加自定义按钮,由于ckeditor只能上传一张图片,如果要上传多张图片就要结合ckfinder,而ckfinde ...

  3. linux ssh免密登陆

    大致流程: 两台linux系统A B 如果A要登陆到B 1.生成A的密钥对 2.将A的公钥拷贝到B的authorized_keys中即可 可以使用命令:ssh-copy-id -i ~/.ssh/id ...

  4. oauth2.0授权协议

    参考文章 一.OAuth是什么? OAuth的英文全称是Open Authorization,它是一种开放授权协议.OAuth目前共有2个版本,2007年12月的1.0版(之后有一个修正版1.0a)和 ...

  5. JSP九个内置对象及指令、动作标签

    一.JSP九大内置对象 (一)JSP中无需创建就可以使用的9个对象 输入输出对象 1.response(HttpServletResponse):处理JSP生成的响应,然后将响应结果发送给客户端.是s ...

  6. jquery自动去除form表单中input框前后的空格

    1. 2. <script type="text/javascript"> $(document).ready(function() { $('#searchform ...

  7. plSql读取Oracle数据库中文乱码

    新建环境变量,设置变量名:NLS_LANG,变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,确定即可

  8. Algorithm——无重复字符的最长子串

    一.问题 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "a ...

  9. python_Django 实现登入功能form表单的参数接收处理

    1.创建Django工程. 参考https://www.cnblogs.com/CK85/p/10159159.html中步骤. 2.在urls.py文件中添加url分发路径 "" ...

  10. BZOJ5068: 友好的生物(状压 贪心)

    题意 题目链接 Sol 又是一道神仙题??.. 把绝对值拆开之后状压前面的符号?.. 下界显然,但是上界为啥是对的呀qwq.. #include<bits/stdc++.h> using ...