别太小看“静态免杀“

0x01 简述

免杀总体来说可分为两种,静态免杀/动态免杀。往往来说,我们更注重于在内部代码层面实现一些免杀技巧,但在有些时候,动态免杀+静态免杀以"打组合拳"的方式效果往往会更出人所料。

当我们的程序生成后,杀毒软件会对整个文件做一个扫描(反编译、行为监控等)当匹配到其病毒特征库时,则会kill掉我们的程序,静态免杀则是让杀软"摸不着头脑",匹配不到其的特征库。以下将会介绍几种方法来实现静态免杀。

一.花指令

花指令(junk code)是一种专门用来迷惑反编译器的指令片段,这些指令片段不会影响程序的原有功能,但会使得反汇编器的结果出现偏差,从而使破解者分析失败。比较经典的花指令技巧有利用 jmpcallret指令改变执行流,从而使得反汇编器解析出与运行时不相符的错误代码。

直接上代码,在vs中使用内敛汇编的方式将花指令插入其中:

复制代码
__asm
    {
      PUSH EAX
      XOR EAX, EAX
      JZ True1
      __asm __emit(0xca)
      __asm __emit(0x55)
      __asm __emit(0x78)
      __asm __emit(0x2c)
      __asm __emit(0x02)
      __asm __emit(0x9b)
      __asm __emit(0x6e)
      __asm __emit(0xe9)
      __asm __emit(0x3d)
      __asm __emit(0x6f)
      True1:
      POP EAX
    }
    
  __asm
    {
      PUSH EAX
      XOR EAX, EAX
      JZ True2
      __asm __emit(0xd5)
      __asm __emit(0xb6)
      __asm __emit(0x43)
      __asm __emit(0x87)
      __asm __emit(0xde)
      __asm __emit(0x37)
      __asm __emit(0x24)
      __asm __emit(0xb0)
      __asm __emit(0x3d)
      __asm __emit(0xee)
      True2:
      POP EAX
    }  

在这段代码中,首先使用PUSH EAX和POP EAX指令保存和恢复EAX寄存器的值。XOR EAX, EAX指令将EAX寄存器的值设置为0,然后使用JZ True1指令跳转到True1标签。在这两个指令之间,可以看到一系列__asm __emit指令,它们将一些随机字节插入到代码中。这些字节对程序的功能没有影响,但会影响反编译之后的分析过程。

二.数字签名

当我们为一个exe添加官方的数字签名后,也会规避一些杀软的检测。

工具:sigthief.py(可私信获取),以企鹅为例子

复制代码
python .\sigthief.py -i 企鹅.exe -t target.exe -o
demo.exe

输出后的demo.exe会带上企鹅的签名:

三.资源混淆

听名字就可以很好的理解,将一个安全的程序于我们远控程序进行资源整合并输出资源混合后的文件,这样也能规避杀软的检测。

工具:Restorator

将我们编译出来的exe与正常文件进行合并资源,将正常文件的特征合并到远控exe中。以某录屏软件进行演示

这里可以看到我们的Project12.exe带上了正常软件的图标、版本、Manifest

四.加壳

加壳,意思是加个保护壳,具体含义是利用特殊的算法,对可执行文件里的资源进行压缩,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。它们附加在原程序上通过加载器载入内存后,先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译。

这里直接采用VM来进行加壳:

将我们编译后的exe直接拖入该软件,以最基础的保护作为演示,左上角进行编译后,则会输出加壳后的exe

拖入ida后会弹出如下警告:

代表成功加壳。

以上四种就是常见的静态免杀,当然还有其他的方式例如分离shellcode、白加黑等等。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

4.工具包、面试题和源码

"工欲善其事必先利其器"我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF...

因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

相关推荐
echome8881 小时前
Python 异步编程实战:asyncio 核心概念与最佳实践
开发语言·网络·python
剑海风云1 小时前
JDK 26之安全增强
java·开发语言·安全·jdk26
Predestination王瀞潞1 小时前
5.4.3 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web) 协议架构(分层)
前端·网络·网络协议·架构·www
喵喵爱自由1 小时前
Docker容器共享宿主机-安全网络
网络·安全·docker
星爷AG I1 小时前
15-6 威胁性信息(AGI基础理论)
网络·agi
旺仔.2912 小时前
Linux系统基础详解(二)
linux·开发语言·网络
木梯子2 小时前
以科技筑牢安全新基线,金鸿星智能全自动防洪闸新品重磅发布
人工智能·科技·安全
南梦浅2 小时前
全过程步骤(从零到高可用企业网络)
开发语言·网络·php
极客小云2 小时前
【Electron-Vue 企业级安全启动模板:electron-vue-theme-template 使用指南】
vue.js·安全·electron
Fairy要carry2 小时前
面试10-Agent 团队协议的管理
运维·服务器·网络