1、免杀技巧的遏制

1.1、PE文件

  • 入口点不在第一个区段或在最后一个区段
  • 入口点处代码附近只有一小段代码
  • 入口点在正常范围之外
  • 入口点为一个无效的值,实际入口点为TLS的入口点
  • 区段名重复或者不属于正常范围
  • 拥有可执行属性的区段数量过多

1.2、程序行为

  • 加载系统DLL
  • 枚举反病毒软件进程的窗口
  • 将自己复制到系统目录
  • 安装SPI(控制网络通信或者另类的方法远程注入DLL文件)
  • 远程注入线程或改写其他进程的内存
  • 操作MBR

2、Anti Rootkit

2.1、检查SSDT钩子与IDT钩子

一般情况下SSDT所指向的内核例程地址都在0x800000000~0x8FFFFFFFF之间,攻击者后加载的驱动程序所在的内存地址往往较高。因此修改后的SSDT所指向的内核例程地址很难落在0x800000000~0x8FFFFFFFF之间。此类方法也适用于检查IDT钩子。

2.2、检查IAT钩子

交叉对比程序可信副本

2.3、检查IRP钩子

每个驱动程序都在DRIVER_OBJECT中保存了一些I/O请求包的函数指针。检查函数指针是否指向其驱动本身的地址范围之内。

2.4、检查内联钩子

通过分析未被执行的内核文件,从而得出真实的函数代码,并用其与内存中的可执行映像对比找出不同点。

4、收获

通过这本书学习了反汇编、脱壳、内核编程的基础知识,了解几年前免杀技术的方式。

这本书是看的时间很长的一本书,因为工作外出的原因,只能抽出业余时间陆陆续续对本书进行学习。很多时候内心平静不下来就使用抄书的方式学习,每个章节通读后截取一个中心句抄写出来并对源码继续断点调试跟进。

  • 免杀技术:由于现在安全产品不断涌现,书中的免杀方法已经不适用于绕过当前的安全防护方案,不过了解了解从前的免杀技术也是不错,毕竟是2013出版的书籍。
  • 反汇编:原先对反汇编不熟悉的地方,对第9章的小例子全都编译和练习了一遍。if-else分支、循环、switch-case、指针与数组、结构体与对象、虚函数,剩下的几个章节稍显烧脑。所以没有细看。
  • PE文件:通过第7章的阅读,对DOS、区段表、导出表、导入表、资源表都动手查了一遍,有些错别名字让我这个初学者刚开始看的时候有点懵逼,好在作者给出了勘误表,及时修正一些我搞不懂的地方。下一步应该要把Windows PE权威指南在好好看看,书里PE部分讲得比较浅。

  • 内核编程:这个章节的部分HOOK代码编译成功后,我在Windows7上仍然可用。但是还有几份钩子代码编译过,加载到系统中没效果。

  • 脱壳:这里作者介绍了几个方法,利用内存断点、利用堆栈平衡、利用编译语言特点、利用跨区段跳转也都是脱壳的基础,还有最后一次异常法、SFX法书里面没有提到,当然也可能本书的主题就是介绍免杀和基础知识。

OK,下一步书单继续。踏踏实实地把技术基础打牢。

https://github.com/riusksk/secbook

5、感谢

与大多数少年有区别的是,因为看书会参考互联网博客笔记,感谢每个用心写博客的博主。

这几位博主,看书有不解的时候参考了他们的博客内容。

【黑客免杀攻防】读书笔记18-最终章Anti Rootkit的更多相关文章

  1. 【黑客免杀攻防】读书笔记5 - PE格式讲解

    0x01 MS-DOS头 MS-DOS头部的字段重点关注e_magic与最后一个e_lfanew是需要关注的. 第一个e_magic字段的值为4D5A,作用是可以作为判断这个文件是否是PE文件. 最后 ...

  2. 【黑客免杀攻防】读书笔记8 - 软件逆向工程基础2(if-else,三目运算符)

    0x1 if-else分支 if-else分支4种状态 1.1 以常量为判断条件的简单if-else分支 C源代码: 单层if-else判断,常量为判断条件 int _tmain(int argc, ...

  3. 【黑客免杀攻防】读书笔记7 - 软件逆向工程基础1(函数调用约定、Main函数查找)

    0x1 准备工作 1.1.准备工具 IDA:交互式反汇编工具 OllyDbg:用户层调试工具 Visual Studio:微软开发工具 1.2.基础知识 C++开发 汇编语言 0x2 查找真正的mai ...

  4. 【黑客免杀攻防】读书笔记6 - PE文件知识在免杀中的应用

    0x1 PE文件与免杀思路 基于PE文件结构知识的免杀技术主要用于对抗启发式扫描. 通过修改PE文件中的一些关键点来达到欺骗反病毒软件的目的. 修改区段名 1.1 移动PE文件头位置免杀 工具:PeC ...

  5. 【黑客免杀攻防】读书笔记2 - 免杀与特征码、其他免杀技术、PE进阶介绍

    第3章 免杀与特征码 这一章主要讲了一些操作过程.介绍了MyCCL脚本木马免杀的操作,对于定位特征码在FreeBuf也曾发表过类似工具. VirTest5.0特征码定位器 http://www.fre ...

  6. 【黑客免杀攻防】读书笔记15 - 源码免杀、C++壳的编写

    1.源码免杀 1.1 定位产生特征的源码 定位文件特征 1.根据MyCCL的特征码定位工具,定位出有特征的地址 2.根据VS的反汇编窗口,输入有特征的地址得到特征地址与源码的关系 3.插入Messag ...

  7. 【黑客免杀攻防】读书笔记10 - switch-case分支

    0x1 switch-case分支 switch-case其实就是if-else语句的另一种体现形式.但大于3之后的switchc-case.编译器会对代码进行优化. 1.1 简单switch-cas ...

  8. 【黑客免杀攻防】读书笔记17 - Rootkit基础

    1.构建Rootkit基础环境 1.1.构建开发环境 VS2012+WDK8 1.2.构建基于VS2012的调试环境 将目标机.调试机配置在同一个工作组内 sVS2012配置->DRIVER-& ...

  9. 【黑客免杀攻防】读书笔记14 - 面向对象逆向-虚函数、MFC逆向

    虚函数存在是为了克服类型域解决方案的缺陷,以使程序员可以在基类里声明一些能够在各个派生类里重新定义的函数. 1 识别简单的虚函数 代码示例: #include "stdafx.h" ...

随机推荐

  1. HDU4436_str2int

    很好的一个题目.对于理解后缀自动机很有用. 题目给你若干数字串,总长度不超过100000,任意一个串的任意一个子串都可以拿出来单独的作为一个数字.同一个数字只算一次. 问所有不同数字的和为多少? 嗯嗯 ...

  2. python list类型的变量相当于全局变量 可以被函数与类引用

    python list类型的变量相当于全局变量 可以被函数与类引用

  3. 美团codeM之美团代金券

    前天做了下美团的一个codeM比赛的资格赛,遇到一个题目挺有意思的,所以现在做一下总结. 题目描述 美团的每一个用户都有一个用户代金券的消费记录日志,每位用户都能购买若干种代金券,但是每一种代金券最多 ...

  4. 【BZOJ3309】DZY Loves Math 解题报告

    [BZOJ3309]DZY Loves Math Description 对于正整数\(n\),定义\(f(n)\)为\(n\)所含质因子的最大幂指数.例如\(f(1960)=f(2^3×5^1×7^ ...

  5. Webpack + React 开发 01 HelloWorld

    1.项目依赖 安装所需要依赖的其它第三方开源库,项目依赖如下: "dependencies": { "babel-core": "^6.21.0&qu ...

  6. .net 控件开发常见的特性总结

    http://blog.csdn.net/aofengdaxia/article/details/5924364 在.net开发中常常需要使用一些[]里面的特性描述,我发现对常用的几个知道大概的意思, ...

  7. shell 循环语句

    1.while 2.for 3.until 4.select while #!/bin/bash # 显示一系列数字 count=1 while [ $count -le 6 ]; do echo $ ...

  8. 关于JSON的解析方式

    借鉴:站在巨人的肩膀上 一.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,在Json.org网站上,Java可以使用 ...

  9. vs配置SP++3.0

    最近在研究信号处理的C语言算法,突然发现一个西安交大的师兄之前已经写出来了一个完整的库,同样是研究生三年,差别怎么这样大呢. 先从用轮子开始吧. 一.SP++3.0安装及测试 官网下载地址: http ...

  10. PHP5下WSDL,SOAP调用实现过程

    一.基础概念 SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装 ...