难点

  1. 特殊字符需要转码。
    • 比如strcpy等函数造成的缓冲区溢出,会认为NULL是字符串的终结,所以shellcode中不能有null,如果有则需要变通或编码。
  2. 函数API定位很困难。
    • 比如在windows系统下,系统调用多数都是封装在高级API中来调用的,而且不同的ServicePack或版本的操作系统其API都可能有所改动,所以不可能直接调用,因此需要采用动态的方法获取API地址。

Metasploit

  • 目前最流行、最强大、最具拓展性的渗透测试平台软件

  • 基于Metasploit进行渗透测试和漏洞分析的流程和方法

  • 2003年由HD More发布第一版,2007年用ruby重写

    • 集成了渗透测试标准(PETS)思想
    • 一定程度上统一了渗透测试和漏洞研究的工作环境
    • 新的攻击代码可以比较容易的加入框架

Backdoor-factory

  • Patch
    • 通过替换exe、dll、注册表等方法修复系统漏洞或问题的方法
    • BDF:向二进制文件中增加或者删除代码内容
      • 某些受保护的二进制程序无法patch
      • 存在一定概率文件会被patch破坏掉
  • 后门工厂
    • 将shellcode代码patch进模板文件,躲避AV检查
    • 支持msf payload、自定义payload

恶意软件

  • 病毒、木马、蠕虫、键盘记录、僵尸程序、流氓软件、勒索软件、广告程序
  • 在用户非自愿的情况下执行安装
  • 出于某种恶意目的:控制、窃取、勒索、偷窥、推送、攻击。
主要防护手段
  • 杀毒软件/防病毒软件/
  • 客户端/服务器/邮件防病毒
检测原理
  • 基于二进制文件中特征签名的黑名单检测
  • 基于行为的分析方法(启发式)
事后手段
  • 永远落后于病毒发展