(OWASP汉化)攻击系列大全(一):二进制植入

介绍

Last revision : 01/30/2013

二进制植入
攻击者通过对系统(本地或者远程)植入含有恶意代码的文件,从而来利用那些具有漏洞的应用程序且执行任意操作

攻击可能存在于下列场景:

  • 在本地目录下, 不安全的访问权限使得攻击者可以从本地发起攻击,植入恶意二进制文件到可信位置.
    • 典例: 应用安装程序没有正确的对安装目录下的文件设定权限,可能会使得被任意修改等.
  • 攻击者通过利用应用程序A,植入恶意二进制文件到另一个应用程序B的可信位置.
  • 应用程序会在不可信位置下搜索(加载)二进制文件,甚至可以是远程文件系统
    • 典例: 当当前文件目录设置为网络共享文件夹的情况下, window应用程序还可以在里面加载动态链接库

危险因素

待确定

例子

基于不安全的访问权限攻击

  1. window安装程序会创建一个文件夹(C:\application)用来安装程序, 但是没有对文件夹限制权限(写权限),使得未经允许的用户非法获得权限.
  2. 假设应用程序从加载库中加载动态链接文件.这个库一般在Windows System32文件夹中可以找到
  3. 本地用户A 植入一个恶意的动态连接库到 C:\application
  4. 本地用户B 启动应用程序的同时,应用程序会加载用户A植入恶意的动态链接文件而不是正常的文件.

基于当前目录的攻击

  1. 假设应用程序从加载库(ALL.DLL)中加载动态链接文件(AD.DLL).这个库一般在Windows System32文件夹中可以找到,但只有windows vista 和 window 7 这两个系统采用才有.
  2. 假设应用程序与文件扩展名是’.bp’的文件有关联.
  3. 攻击者设置一个网络共享文件夹,里面有着 ‘example.bp’ 文件和 AD.DLL (可能是隐藏的)
  4. 攻击者诱导一个用XP系统的用户访问共享文件夹
  5. 当用户双击’example.bp’文件时, 用户系统的资源管理器会认定共享文件夹是当前目录.而应用程序会启动,打开这个’bp文件’.
  6. 应用程序启动时会加载AD.DLL,但是此时未能在系统目录下找到这个动态链接文件(已经被篡改为攻击者的系统目录了),所以这时应用程序会从共享文件夹下加载恶意的动态链接文件.