20154329《网络对抗技术》免杀原理与实践
Exp3 免杀原理与实践
前情提要
上一个实验,我们在关闭了杀毒软件之后成功控制主机。这次的实验,是要瞒天过海,在杀毒软件开启的情况下控制主机。
实验过程
准备工作
任务一 使用Msfvenom编码器
直接检测上次实验生成的后门文件
很显然,能够直接被360检测出来的木马文件被判定为危险
编码十次试试
任务二 使用Veil-Evasion
veil-evasion和Metasploit类似,可以生成后门文件,但Linux里没有需要我们自己安装,用 sudo apt-get install veil-evasion 指令下载软件包,下载好后输入 veil 开始安装。
(这个安装过程异常漫长&鬼畜)
我选择use 8
进行如图所示设置
设置好之后就开始生成病毒了,我将它命名为gaojiatong4329
将它复制到主机目录下,进行检测
!!!就......就很诡异
这次的图很好看有木有?
360完全没反应!
这这这......算不算免杀成功?
任务三 C语言调用Shellcode
在Kali下生成一个C语言格式的shellcode数组,回连的IP为虚拟机的IP,端口自定为4329
1.Linux平台交叉编译Windows应用
检测编译运行生成的exe
2. VisualStudio
回连成功!
360没有反应
任务四 加壳
1.压缩壳UPX
我好像加壳...加错文件了。应该给报毒率低的exe加壳的......
2.加密壳Hyperion
这个......还没实现,以后补上
基础问题回答
(1)杀软是如何检测出恶意代码的?
- 检查特征码
杀毒软件通过检索程序代码是否与库中的特征码相来吻合判定该程序/文件是否有毒。
对于商业AV软件来说,特征码库就是它的竞争点所在。所以这种方法直接准确,但要及时更新特征码库 - 启发式恶意软件检测
- 如果该程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可以认为该程序是病毒程序。宁可错杀一百也不能放过一个,这种情况下可能会拦截我们需要的软件。
- 基于行为的恶意软件检测
这个我不是很懂,也许这种情况算是一种吧——某个程序会定期偷偷扫描我的主机(滑稽)
(2)免杀是做什么?
呵,证明杀毒软件形同虚设!
(3)免杀的基本方法有哪些?
- 改变特征码
- 加壳:压缩壳 加密壳
- 有shellcode(像Meterpreter)
基于payload重新编译生成可执行文件 - 有源代码
用其他语言进行重写再编译
- 改变行为
尽量使用反弹式连接
实践总结与体会
做这个实验的时候,对上一个实验理解更透彻了,运用也更熟练了。 这个实验证实了我一直就有的想法,杀毒软件有的时候其实没什么用,真正可怕的木马发现不了,想安装的软件倒是被拦截了不少。我觉得实验会越来越有意思,也越来越充满挑战,从制作一个小木马到关闭杀毒软件控制主机,再到开启杀毒软件能控制主机,依旧期待之后的实验。对于实验思路还是比较清晰的,就是在实现的时候......我的C语言水平令人难过。(面壁思过.gif)
补在后边——我的360只能查出msf编码器产生的backdoor.exe(哭.jpg)我想,也许是我很久没更新360的原因(皱眉)。
离实战还缺些什么技术或步骤
我认为还缺少将木马病毒和某个实用软件捆绑在一起的操作,不然怎么骗过用户呢?