搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
笔触狂放9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
通用视觉框架OpenMMLab实践,MMEditing工具包,windows10配置_pytorch1.12安装哪个版本的mmcv
2
宝塔webhook+Gitee配置实现服务器的代码自动同步_宝塔怎么和gitee同步
3
安装 Ubuntu 22.04.3 和 docker_ubuntu 22.04.3 lts下载
4
Flask框架学习笔记10-jinjia2模板继承实例_{% block %} {% endblock %}
5
RabbitMQ安装和使用详细教程
6
华为OD机试(41-60)老题库解析&Java源码系列连载ing_华为java机试题库及答案
7
Python实战案例,Streamlit+Plotly模块,Python制作销售数据可视化看板,展示分析一步到位_streamlit plotly_python可以做数据看板吗
8
3.Spring Cloud LoadBalancer 入门与使用_spring.cloud.loadbalancer
9
AI短视频制作一本通:文本生成视频、图片生成视频、视频生成视频_怎样用文档图片自动ai合成视频
10
2024年华为OD机试真题-抢7游戏-C++-OD统一考试(C卷D卷)
当前位置:
article
> 正文
免杀基础知识总结_安全免杀需要懂什么
作者:笔触狂放9 | 2024-06-12 00:28:17
赞
踩
安全免杀需要懂什么
最近研究木马免杀,先了解一下基础的免杀知识,看了《杀不死的秘密》、《黑客免杀攻防》等免杀书籍,发现都大同小异,基本内容都是一样的,找特征码,修改特征码....我认为免杀还是要针对杀毒软件的查杀特性来做,所谓知己知彼,用在免杀上就特贴切。能够写在书本上的技术肯定不是最新的技术,反病毒软件肯定也有了应对措施,要想真正做到免杀,还是要通过其它渠道学习或是自己深入研究。但是,曾经的免杀方法并不是无用了,而是成为基本的步骤了,所以了解免杀基础知识还是必要的。以下是我的学习总结,以备今后温故之用。
1.免杀的最基本思想就是破坏特征,可能是特征码,可能是行为特征。
2.PEID通过进行壳特征码比对来判断被载入文件的加壳信息,防病毒软件亦如此。
3.特征码查杀技术
两个最基本要素:特征码和该特征码所在的偏移。
复合特征码查杀
隐含特征码查杀
启发式扫描查杀
NOD32启发式扫描:将危险的函数整理出来,按照病毒的特性排列这些API的顺序,若发现类似的调用API顺序,判为病毒。
主动防御是一种特殊的API HOOK,它HOOK了一些木马病毒常用的API.卡巴斯基主动防御对函数的监控及环境判断。
特征码定位技术:MyCCL 、MultiCCL定位文件特征码和内存特征码。
4.文件扫描
1.第一代扫描技术,字符串扫描,通配符扫描等。
2.第二代扫描技术,智能扫描法,近似精确识别法(多套特征码,校验和),骨架扫描法,精确识别法。
5.脱壳方法:
1.单步跟踪法。遇到程序往上跳转的时候在回跳的下一句代码上单击并按键盘上的'"F4"键跳过回跳指令。 单步跟踪法也是其它方法中要用到的基本的方法。过UPX.
2.ESP定律法。OD加载程序后F8走到下一条指令,若ESP发生变化,在命令行中输入hr [esp中的值],F9运行,然后用单步跟踪法。原理:我们可以把壳看成一个子程序,必须要遵循堆栈平衡原理。过NSPACK.
3.二次断点法。首先在“选项”---“调试设置”----“异常”勾选全部复选框,即忽略所有异常,“alt+M"打开内存窗口,在.rsrc设断点,shift+f9,再在.text下断点,shift+f9,然后单步跟踪法。过ASPACK.
4.末次异常法。首先在“选项”---“调试设置”----“异常”清除所有复选框,即不忽略任何异常,连续按shift+f9,直到程序运行,记下总次数X,重新加载,按下X-1次shift+f9,在栈窗口中找到se句柄,在该地址处下断点,shift+f9,然后单步跟踪。
5.SFX自动脱壳法。将OD设置为忽略所有异常;将”调试选项“对话框的SFX选项卡中选择”字节模式跟踪实践入口“并确定;加载程序,会自动停在OEP处。成功后记得吧SFX的设置改回去。过DXPACK
6.出口标志法。OD加载程序后查找“所有命令”,输入”popad"并查找。逐一尝试跟踪。
7.使用脱壳工具脱壳。
6.常用免杀方法:
1.利用加多花指令。利用软件zeroadd加一个全0区段,在里边加入花指令,最后一条指令jmp OEP,然后更改程序入口点为该区段的偏移地址。
2.利用壳前加花指令。原理同前。
3.利用FreeRes实现加多壳免杀。一般先给木马加上一层加密壳,然后用FreeRes这个工具进行释放,就可以被另一个壳进行二次处理了。
4.利用修改壳头实现免杀。利用等效代码实现对木马壳头的修改。如jmp xxxx换成call xxxx 或用ja xxx jnb xxx jb xxx替换,add ebx,ebp 换成 adc ebx,ebp.
5.利用去头加花的方法实现免杀。在文件中找到一段0空间或插入0区段,将程序入口点改为该处地址,在该地址处写上花指令后再加上原入口处的n条指令,然后jmp 到n+1条指令处。
6.利用SEH技术给木马加花。生成0区段,写入
push OEP
MOV EAX DWORD PTR FS:[0]
push eax
mov dword ptr fs:[0],esp
mov ebx,0
div ebx
7.利用reloc改壳免杀。
8.利用LoadPE重建PE实现免杀。
9.利用添加PE数字签名实现免杀
7.从PE结构入手的免杀:
1.加壳免杀
按免杀效果分:
1.文件免杀壳,多为加密壳。
2.内存免杀壳,多为加密壳,往往利用某特定杀软的杀毒引擎缺陷。
3.行为免杀壳,针对某些行为检测工具。
2.加花免杀
3.修改特征码免杀
8.特征码修改技术
1.等值替换。2.修改ASCLL特征码大小写,windows对文件扩展名大小写不敏感,但对API函数大小写敏感,需要区别对待。
3.移除无用ASCII特征码。4.移动ASCII特征码位置。程序都是将字符串首字节的地址压入栈中利用的。改变ASCII特征码在文件中的位置,然后在源码中修改引用地址为新地址。 5.颠倒无依赖关系的指令从而改变特征码。6.利用跳转法修改特征码。
7.移动输入表函数特征码。杀软常把内存特征码定位在输入表函数上。输入表特征码分两种:1.位于输入表函数上的特征码2.位于输入表函数所在的DLL文件。
8.加\x90免杀输入表文件名。9.移动输出表函数特征码。输出表特征码分两类:1.输出表函数名特征码。2.输出表动态链接库文件名特征码。
10.利用异或算法加密特征码。
11.特征码交换,新入口点设置" mov 特征码内存地址 ,X",然后"jmp 原入口点,将特征码用其它字符替换。
9.RootKit
最关键的思路:通过勾住特定的系统函数,从而改变系统函数执行路径的目的,以使其在做关键操作时被我们提供的函数拦截并过滤。
本质:就是各种钩子的应用。
10.免杀技术的发展趋势
免杀技术从2008年以后就已经脱离了修改特征码与修改PE文件的阶段,进而发展内核层对抗,在内核层被大部分反病毒软件掌控后,主要战场有转移到用户层。随着云查杀和白名单技术相结合,病毒防护效果得到巨大提示,免杀技术已经与信息安全领域内其他技术有了较大的结合。免杀技术将会持续着向两方面发展:1.基于本地溢出漏洞的技术方向。2.基于用户对抗 的技巧方向。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/笔触狂放9/article/detail/705335
推荐阅读
article
自然语言
处理(NLP)基础知识——
机器
翻译
Metrics(
PPL
、
BLEU
、
ROUGE
)_ppl
翻译
...
自然语言
处理(NLP)基础知识——
机器
翻译
Metrics(
PPL
、
BLEU
、
ROUGE
)_ppl
翻译
指标ppl
翻译
指标 ...
赞
踩
article
SQL
Sever
基础知识
-
数据
查询
_
sql
server
是什么语法
查询
表结构...
sql
查询
语句,
sql
select、from、where、order by等语句简单介绍_
sql
server
是什么...
赞
踩
article
MATLAB
中的
数学
建模
:
基础知识
、实例与
方法论
_
matlab
建模
...
在当今科技高速发展的时代,
数学
建模
成为了解析复杂世界的关键工具,而
MATLAB
作为一种专业的科学计算软件,为我们提供了强...
赞
踩
article
【
大
模型
学习
】
私有
大
模型
部署
(
基础知识
)_
大
模型
私有
域
部署
...
保护内部隐私。_
大
模型
私有
域
部署
大
模型
私有
域
部署
私有
大
...
赞
踩
article
基础知识
----
Java
ArrayList
遍历输出
顺序
会和添加的
顺序
不一致吗?_
arraylist
...
基础知识
----
Java
ArrayList
遍历输出
顺序
会和添加的
顺序
不一致吗?_
arraylist
顺序
会乱吗array...
赞
踩
article
React
前端框架学习 基础知识@
stage
3
--
-
week5
--
day2_
react
中@
stage
...
React
React
学习版本: 16.x
React
老版本项目: 15.x
react
官网说 17.x 会使用的一些技术Re...
赞
踩
相关标签
自然语言处理
机器翻译
人工智能
机器学习
困惑度
BLEU
ROUGE
sql
数据库
sqlserver
数学建模
matlab
开发语言
笔记
学习
大模型
深度学习
java
链表
React框架
基础知识