zoukankan      html  css  js  c++  java
  • 20169220 <网络攻防实践> 第十四周实验—免杀

    一、基础问题回答

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

    • 基于特征码的检测
      恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
    • 启发式恶意软件检测
      简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。
    • 基于行为的恶意软件检测
      通用的、多特征的、非精确的扫描,如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码。

    2.免杀是做什么?

    一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。

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

    免杀的总体技术有:

    3.1.改变特征码

    3.1.1 如果你手里只有EXE

    • 加壳:压缩壳 加密壳

    3.1.2 有shellcode(像Meterpreter)

    • 用encode进行编码

    3.1.3 基于payload重新编译生成可执行文件

    • 有源代码
    • 用其他语言进行重写再编译(veil-evasion)

    3.2.改变行为

    2.1 通讯方式

    • 尽量使用反弹式连接
    • 使用隧道技术
    • 加密通讯数据

    3.2.2 操作模式

    • 基于内存操作
    • 减少对系统的修改
    • 加入混淆作用的正常功能代码

    二、使用msf编码器直接生成一个后门程序


    三、Veil-Evasion

    • 1.Veil-Evasion 是 Veil-Framework 框架的一部分,也是其主要的项目。利用它我们可以生成绕过杀软的 payload,kali 上并未安装,下面我们来进行简单的安装。我们直接从 github上进行 clone 下载:

    • 2.下载完成后,我们还需要对其软件配置包进行安装,依次输入如下命令:lscd Veil-Evasion/lscd setup/ls./setup.sh,依次按照提示安装。

    • 3.在以上一系列繁杂的安装过程后下面我们就可以来正常使用 Veil-Evasion ,我们进入到Veil-Evasion目录下,执行如下命令:python Veil-Evasion.py.成功进入到菜单界面,可以看到当前一共有 51 种 payload 可用。我们可以使用 list 命令来查看 payload 的详细信息,根据 payload 编号,这里我选择6号的 python payload进行演示。


    • 4.成功完成以上编译后,编译后的文件被保存在 /usr/share/veil-output/compiled/123.exe下。

    • 5.同时新生成的 shellcode 的 rc 文件也被保存在了 veil-output下的 handlers目录下,既然有了 rc 文件,那么我们就可以方便的利用 MSF 进行调用了msfconsole -r 123_handler.rc,此时当目标系统上成功运行我们生成的 shellcode 后,我们将在 kali 上取得目标系统的反弹shell

    • 6.但是免杀未能成功


    四、shellcode编程

    • 在kali终端下生成一个c格式的十六进制数组,IP是kali的
    • 按照实验教程模版在windows VS 中编写一个c语言的shellcode代码,并将kali中生成的带有kali ip的十六进制数组加入c代码的编写中,
    • kali中运行msf监听

    实践总结与体会

    此次实验使我深入了解了杀毒软件查杀的原理,以及恶意代码的伪装手段。发现即使安装了杀毒软件以及防火墙,还是不能完全的保证电脑是安全的。因此,了解相关恶意程序的原理和伪装手段对提高网络安全意识和增强病毒防护能力由很大的帮助。

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

    目前我们所做的所有操作都是基于对靶机的一定了解,比如掌握IP信息,或者要求靶机配合接收传输的木马文件,而且木马一般都会被杀掉。要在实战中好的实现攻击,还需要对攻击方法的过程更加了解和更好的木马代码,以及对电脑系统漏洞的掌握。

    遇到的问题与解决过程

    目前免杀技术的要求比较高,所以想做出能被免杀的程序还是比较难,对于我们刚刚入门的人来说,必须先学好基础知识,差得还有点远。

  • 相关阅读:
    Java四种内部类
    Java多态详解
    为啥java要使用 set ()和get()方法---封装
    Python---django轻量级框架
    java 读取数据库数据转化输出XML输出在jsp页面
    操作系统专栏
    learn more ,study less(三):超越整体性学习
    learn more ,study less(二):整体性学习技术(下)
    learn more ,study less(二):整体性学习技术(上)
    Spring博客专栏
  • 原文地址:https://www.cnblogs.com/nirvanakurt/p/6925331.html
Copyright © 2011-2022 走看看